@prose-reader/core 1.67.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 +4933 -4293
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.umd.cjs +5019 -4379
  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
@@ -0,0 +1,15 @@
1
+ import { Context } from '../context/Context';
2
+ import { Pagination } from './Pagination';
3
+ import { SpineItemsManager } from '../spine/SpineItemsManager';
4
+ import { DestroyableClass } from '../utils/DestroyableClass';
5
+ import { createSpineItemLocator } from '../spineItem/locationResolver';
6
+ import { Spine } from '../spine/Spine';
7
+
8
+ export declare class PaginationController extends DestroyableClass {
9
+ protected context: Context;
10
+ protected pagination: Pagination;
11
+ protected spineItemsManager: SpineItemsManager;
12
+ protected spine: Spine;
13
+ protected spineItemLocator: ReturnType<typeof createSpineItemLocator>;
14
+ constructor(context: Context, pagination: Pagination, spineItemsManager: SpineItemsManager, spine: Spine, spineItemLocator: ReturnType<typeof createSpineItemLocator>);
15
+ }
package/dist/reader.d.ts CHANGED
@@ -1,8 +1,114 @@
1
- import { ReaderInternal } from './types/reader';
1
+ import { Subject } from 'rxjs';
2
+ import { Context } from './context/Context';
3
+ import { Manifest } from '@prose-reader/shared';
4
+ import { HookManager } from './hooks/HookManager';
2
5
  import { CoreInputSettings } from './settings/types';
6
+ import { resolveCfi } from './cfi/lookup/resolveCfi';
7
+ import { SpineItemsObserver } from './spine/SpineItemsObserver';
8
+ import { SpineItemsManager } from './spine/SpineItemsManager';
9
+ import { SettingsInterface } from './settings/SettingsInterface';
10
+ import { Spine } from './spine/Spine';
3
11
 
4
12
  export type CreateReaderOptions = Partial<CoreInputSettings>;
5
13
  export type CreateReaderParameters = CreateReaderOptions;
6
- export declare const createReader: (inputSettings: CreateReaderOptions) => ReaderInternal;
14
+ export type ContextSettings = Partial<CoreInputSettings>;
15
+ export type LoadOptions = {
16
+ cfi?: string | null;
17
+ containerElement: HTMLElement;
18
+ };
19
+ export type ReaderInternal = ReturnType<typeof createReader>;
20
+ export declare const createReader: (inputSettings: CreateReaderOptions) => {
21
+ context: Context;
22
+ spine: Spine;
23
+ hookManager: HookManager<import('./hooks/types').CoreHook>;
24
+ cfi: {
25
+ generateCfiFromRange: ({ startNode, start, end, endNode, }: {
26
+ startNode: Node;
27
+ start: number;
28
+ endNode: Node;
29
+ end: number;
30
+ }, item: Manifest[`spineItems`][number]) => {
31
+ start: string;
32
+ end: string;
33
+ };
34
+ resolveCfi: (params: Omit<Parameters<typeof resolveCfi>[0], "spineItemsManager">) => {
35
+ node: Node | undefined;
36
+ offset: number | undefined;
37
+ spineItemIndex: number;
38
+ } | {
39
+ spineItemIndex: number;
40
+ node?: undefined;
41
+ offset?: undefined;
42
+ } | undefined;
43
+ };
44
+ navigation: {
45
+ viewportFree$: import('rxjs').Observable<"free">;
46
+ viewportBusy$: import('rxjs').Observable<"busy">;
47
+ readonly viewportPosition: {
48
+ x: number;
49
+ y: number;
50
+ };
51
+ getNavigation: () => import('./navigation/InternalNavigator').InternalNavigationEntry;
52
+ getElement: () => HTMLElement;
53
+ navigate: (to: import('./navigation/UserNavigator').UserNavigationEntry) => void;
54
+ lock: () => () => void;
55
+ navigationResolver: {
56
+ getNavigationForUrl: (url: string | URL) => {
57
+ position: import('./navigation/viewport/ViewportNavigator').ViewportPosition;
58
+ spineItemId: string;
59
+ } | undefined;
60
+ getNavigationForSpineItemPage: (params: Omit<Parameters<typeof import('./navigation/resolvers/getNavigationForSpineItemPage').getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
61
+ getNavigationFromSpineItemPosition: (params: {
62
+ spineItemPosition: import('./spineItem/types').UnsafeSpineItemPosition;
63
+ spineItem: import('./spineItem/createSpineItem').SpineItem;
64
+ }) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
65
+ getNavigationForCfi: (cfi: string) => import('./navigation/viewport/ViewportNavigator').ViewportPosition | undefined;
66
+ getNavigationForLastPage: (spineItem: import('./spineItem/createSpineItem').SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
67
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | import('./spineItem/createSpineItem').SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
68
+ getNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
69
+ getMostPredominantNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
70
+ wrapPositionWithSafeEdge: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => {
71
+ x: number;
72
+ y: number;
73
+ };
74
+ isNavigationGoingForwardFrom: (to: import('./navigation/viewport/ViewportNavigator').ViewportPosition, from: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => boolean;
75
+ areNavigationDifferent: (a: import('./navigation/viewport/ViewportNavigator').ViewportPosition, b: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => boolean;
76
+ arePositionsDifferent: (a: {
77
+ x: number;
78
+ y: number;
79
+ }, b: {
80
+ x: number;
81
+ y: number;
82
+ }) => boolean;
83
+ getAdjustedPositionForSpread: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
84
+ spineItemNavigator: {
85
+ getNavigationForLastPage: (spineItem: import('./spineItem/createSpineItem').SpineItem) => import('./spineItem/types').SafeSpineItemPosition;
86
+ getNavigationForPosition: (spineItem: import('./spineItem/createSpineItem').SpineItem, position: import('./spineItem/types').UnsafeSpineItemPosition) => import('./spineItem/types').SafeSpineItemPosition;
87
+ getNavigationFromNode: (spineItem: import('./spineItem/createSpineItem').SpineItem, node: Node, offset: number) => import('./spineItem/types').SafeSpineItemPosition;
88
+ };
89
+ };
90
+ };
91
+ spineItemsObserver: SpineItemsObserver;
92
+ spineItemsManager: SpineItemsManager;
93
+ layout: () => void;
94
+ load: (manifest: Manifest, loadOptions: LoadOptions) => void;
95
+ destroy: () => void;
96
+ pagination: {
97
+ pagination: import('./pagination/Pagination').PaginationInfo;
98
+ pagination$: import('rxjs').Observable<import('./pagination/Pagination').PaginationInfo>;
99
+ };
100
+ settings: SettingsInterface<NonNullable<CoreInputSettings>, NonNullable<import('./settings/types').CoreOutputSettings | undefined>>;
101
+ element$: import('rxjs').Observable<HTMLElement>;
102
+ $: {
103
+ state$: import('rxjs').Observable<{
104
+ supportedPageTurnAnimation: NonNullable<ContextSettings[`pageTurnAnimation`]>[];
105
+ supportedPageTurnMode: NonNullable<ContextSettings[`pageTurnMode`]>[];
106
+ supportedPageTurnDirection: NonNullable<ContextSettings[`pageTurnDirection`]>[];
107
+ supportedComputedPageTurnDirection: NonNullable<ContextSettings[`pageTurnDirection`]>[];
108
+ }>;
109
+ loadStatus$: import('rxjs').Observable<"idle" | "ready">;
110
+ destroy$: Subject<void>;
111
+ };
112
+ };
7
113
  type Reader = ReturnType<typeof createReader>;
8
114
  export type { Reader };
package/dist/report.d.ts CHANGED
@@ -2,6 +2,7 @@ export declare const Report: {
2
2
  namespace: (namespace: string) => {
3
3
  log: (...data: any[]) => void;
4
4
  warn: (...data: any[]) => void;
5
+ info: (...data: any[]) => void;
5
6
  error: (...data: any[]) => void;
6
7
  time: (name: string, targetDuration?: number) => () => void;
7
8
  logMetric: (performanceEntry: PerformanceEntry | {
@@ -14,6 +15,7 @@ export declare const Report: {
14
15
  };
15
16
  log: (...data: any[]) => void;
16
17
  warn: (...data: any[]) => void;
18
+ info: (...data: any[]) => void;
17
19
  error: (...data: any[]) => void;
18
20
  time: (name: string, targetDuration?: number) => () => void;
19
21
  logMetric: (performanceEntry: PerformanceEntry | {
@@ -1,4 +1,4 @@
1
- import { Manifest } from './types';
1
+ import { Manifest } from '.';
2
2
 
3
3
  export declare const createSelection: (selection: Selection, item: Manifest[`spineItems`][number]) => {
4
4
  toString: () => string;
@@ -1,8 +1,9 @@
1
1
  import { CoreInputSettings, ComputedCoreSettings, CoreOutputSettings } from './types';
2
2
  import { Context } from '../context/Context';
3
3
  import { SettingsManager } from './SettingsManager';
4
+ import { SettingsInterface } from './SettingsInterface';
4
5
 
5
- export declare class ReaderSettingsManager extends SettingsManager<CoreInputSettings, CoreOutputSettings> {
6
+ export declare class ReaderSettingsManager extends SettingsManager<CoreInputSettings, CoreOutputSettings> implements SettingsInterface<CoreInputSettings, CoreOutputSettings> {
6
7
  protected context: Context;
7
8
  constructor(initialSettings: Partial<CoreInputSettings>, context: Context);
8
9
  private getComputedSettings;
@@ -0,0 +1,32 @@
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
+ import { Context } from '../context/Context';
3
+ import { Pagination } from '../pagination/Pagination';
4
+ import { SpineItemsManager } from './SpineItemsManager';
5
+ import { SpineLocator } from './locator/SpineLocator';
6
+ import { createSpineItemLocator as createSpineItemLocationResolver } from '../spineItem/locationResolver';
7
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
8
+ import { HookManager } from '../hooks/HookManager';
9
+ import { SpineItemsLoader } from './loader/SpineItemsLoader';
10
+ import { DestroyableClass } from '../utils/DestroyableClass';
11
+
12
+ export declare class Spine extends DestroyableClass {
13
+ protected parentElement$: Observable<HTMLElement>;
14
+ protected context: Context;
15
+ protected pagination: Pagination;
16
+ protected spineItemsManager: SpineItemsManager;
17
+ spineItemLocator: ReturnType<typeof createSpineItemLocationResolver>;
18
+ protected settings: ReaderSettingsManager;
19
+ protected hookManager: HookManager;
20
+ protected elementSubject: BehaviorSubject<HTMLElement>;
21
+ protected spineItemsLoader: SpineItemsLoader;
22
+ locator: SpineLocator;
23
+ elementResize$: Observable<ResizeObserverEntry[]>;
24
+ element$: Observable<HTMLElement>;
25
+ constructor(parentElement$: Observable<HTMLElement>, context: Context, pagination: Pagination, spineItemsManager: SpineItemsManager, spineItemLocator: ReturnType<typeof createSpineItemLocationResolver>, settings: ReaderSettingsManager, hookManager: HookManager);
26
+ get element(): HTMLElement;
27
+ layout(): void;
28
+ isSelecting(): boolean;
29
+ getSelection(): Selection | undefined;
30
+ get layout$(): Observable<boolean>;
31
+ destroy(): void;
32
+ }