@prose-reader/core 1.200.0 → 1.202.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 (58) hide show
  1. package/dist/context/Context.d.ts +5 -7
  2. package/dist/createReaderWithEnhancer.d.ts +30 -22
  3. package/dist/enhancers/{layoutEnhancer → layout}/types.d.ts +1 -0
  4. package/dist/enhancers/layout/viewportMode.d.ts +3 -0
  5. package/dist/enhancers/navigation/navigators/manualNavigator.d.ts +1 -1
  6. package/dist/enhancers/navigation/resolvers/getNavigationForLeftOrTopPage.d.ts +1 -1
  7. package/dist/enhancers/navigation/resolvers/getNavigationForLeftSinglePage.d.ts +1 -1
  8. package/dist/enhancers/navigation/resolvers/getNavigationForRightOrBottomPage.d.ts +1 -1
  9. package/dist/enhancers/navigation/resolvers/getNavigationForRightSinglePage.d.ts +1 -1
  10. package/dist/enhancers/pagination/enhancer.d.ts +1 -1
  11. package/dist/enhancers/pagination/pagination.d.ts +1 -1
  12. package/dist/enhancers/pagination/progression.d.ts +1 -1
  13. package/dist/hooks/types.d.ts +0 -5
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.js +2753 -2571
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.umd.cjs +2749 -2567
  18. package/dist/index.umd.cjs.map +1 -1
  19. package/dist/navigation/InternalNavigator.d.ts +6 -5
  20. package/dist/navigation/Navigator.d.ts +23 -21
  21. package/dist/navigation/UserScrollNavigation.d.ts +18 -0
  22. package/dist/navigation/consolidation/consolidateWithPagination.d.ts +1 -1
  23. package/dist/navigation/consolidation/mapUserNavigationToInternal.d.ts +1 -1
  24. package/dist/navigation/{viewport/ViewportNavigator.d.ts → controllers/ControlledNavigationController.d.ts} +5 -5
  25. package/dist/navigation/controllers/ScrollNavigationController.d.ts +27 -0
  26. package/dist/navigation/{viewport → controllers}/getScaledDownPosition.d.ts +1 -1
  27. package/dist/navigation/resolvers/NavigationResolver.d.ts +1 -1
  28. package/dist/navigation/resolvers/getAdjustedPositionForSpread.d.ts +1 -1
  29. package/dist/navigation/resolvers/getAdjustedPositionWithSafeEdge.d.ts +1 -1
  30. package/dist/navigation/resolvers/getNavigationForPosition.d.ts +1 -1
  31. package/dist/navigation/resolvers/getNavigationForSpineItemPage.d.ts +1 -1
  32. package/dist/navigation/resolvers/getNavigationForUrl.d.ts +1 -1
  33. package/dist/navigation/restoration/restorePosition.d.ts +1 -1
  34. package/dist/navigation/tests/utils.d.ts +0 -11
  35. package/dist/navigation/types.d.ts +11 -0
  36. package/dist/reader.d.ts +23 -14
  37. package/dist/settings/SettingsManagerOverload.d.ts +1 -0
  38. package/dist/spine/Spine.d.ts +8 -6
  39. package/dist/spine/SpineLayout.d.ts +3 -1
  40. package/dist/spine/layout/layoutItem.d.ts +3 -1
  41. package/dist/spine/loader/SpineItemsLoader.d.ts +2 -1
  42. package/dist/spine/locator/SpineLocator.d.ts +9 -3
  43. package/dist/spine/locator/getSpineItemFromPosition.d.ts +1 -1
  44. package/dist/spine/locator/getVisibleSpineItemsFromPosition.d.ts +4 -4
  45. package/dist/spineItem/SpineItemLayout.d.ts +3 -1
  46. package/dist/utils/ReactiveEntity.d.ts +8 -0
  47. package/dist/utils/rxjs.d.ts +1 -0
  48. package/dist/viewport/Viewport.d.ts +21 -0
  49. package/dist/viewport/translateSpinePositionToRelativeViewport.d.ts +1 -1
  50. package/package.json +3 -3
  51. package/dist/navigation/UserNavigator.d.ts +0 -29
  52. package/dist/navigation/tests/SpineItemsManagerMock.d.ts +0 -30
  53. package/dist/enhancers/{layoutEnhancer → layout}/SettingsManager.d.ts +1 -1
  54. /package/dist/enhancers/{layoutEnhancer → layout}/createMovingSafePan$.d.ts +0 -0
  55. /package/dist/enhancers/{layoutEnhancer → layout}/fixReflowable.d.ts +0 -0
  56. /package/dist/enhancers/{layoutEnhancer → layout}/layoutEnhancer.d.ts +0 -0
  57. /package/dist/enhancers/{layoutEnhancer → layout}/layoutInfo.d.ts +0 -0
  58. /package/dist/navigation/{viewport → controllers}/positions.d.ts +0 -0
@@ -1,9 +1,10 @@
1
1
  import { Manifest } from '@prose-reader/shared';
2
- import { BehaviorSubject, Subject } from 'rxjs';
3
- import { AbsoluteViewport, RelativeViewport } from '../viewport/types';
2
+ import { Subject } from 'rxjs';
3
+ import { ReactiveEntity } from '../utils/ReactiveEntity';
4
4
  import { BridgeEvent } from './BridgeEvent';
5
5
  export type ContextState = {
6
6
  containerElement?: HTMLElement;
7
+ rootElement?: HTMLElement;
7
8
  manifest?: Manifest;
8
9
  hasVerticalWriting?: boolean;
9
10
  isUsingSpreadMode?: boolean;
@@ -20,8 +21,7 @@ export type ContextState = {
20
21
  y: number;
21
22
  };
22
23
  };
23
- export declare class Context {
24
- _stateSubject: BehaviorSubject<ContextState>;
24
+ export declare class Context extends ReactiveEntity<ContextState> {
25
25
  bridgeEvent: BridgeEvent;
26
26
  destroy$: Subject<void>;
27
27
  state$: import('rxjs').Observable<ContextState>;
@@ -29,6 +29,7 @@ export declare class Context {
29
29
  containerElement$: import('rxjs').Observable<HTMLElement>;
30
30
  hasVerticalWriting$: import('rxjs').Observable<boolean>;
31
31
  isUsingSpreadMode$: import('rxjs').Observable<boolean | undefined>;
32
+ constructor();
32
33
  update(newState: Partial<ContextState>): void;
33
34
  isRTL: () => boolean;
34
35
  get state(): ContextState;
@@ -38,7 +39,4 @@ export declare class Context {
38
39
  width: number;
39
40
  height: number;
40
41
  };
41
- get absoluteViewport(): AbsoluteViewport;
42
- get relativeViewport(): RelativeViewport;
43
- destroy: () => void;
44
42
  }
@@ -1,5 +1,5 @@
1
- export declare const createReaderWithEnhancers: (options: Partial<import('./settings/types').CoreInputSettings> & Partial<import('./enhancers/layoutEnhancer/types').InputSettings> & {
2
- theme?: import('./enhancers/theme').Theme;
1
+ export declare const createReaderWithEnhancers: (options: Partial<import('./settings/types').CoreInputSettings> & Partial<import('./enhancers/layout/types').InputSettings> & {
2
+ theme?: import('.').Theme;
3
3
  } & Partial<import('./enhancers/fonts/types').InputSettings> & {
4
4
  loadingElementCreate?: (options: {
5
5
  container: HTMLElement;
@@ -50,15 +50,18 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
50
50
  } | undefined;
51
51
  };
52
52
  navigation: {
53
- viewportBusy$: import('rxjs').Observable<"busy">;
54
- getViewportPosition: () => import('./spine/types').SpinePosition;
53
+ destroy: () => void;
55
54
  getNavigation: () => import('./navigation/InternalNavigator').InternalNavigationEntry;
56
- getElement: () => HTMLElement;
57
- navigate: (to: import('./navigation/UserNavigator').UserNavigationEntry) => void;
58
- lock: () => () => void;
55
+ internalNavigator: import('./navigation/InternalNavigator').InternalNavigator;
56
+ scrollNavigationController: import('./navigation/controllers/ScrollNavigationController').ScrollNavigationController;
57
+ controlledNavigationController: import('./navigation/controllers/ControlledNavigationController').ControlledNavigationController;
58
+ locker: import('./navigation/Locker').Locker;
59
+ viewportState$: import('rxjs').Observable<"free" | "busy">;
60
+ navigate: (to: import('./navigation/types').UserNavigationEntry) => void;
61
+ lock(): () => void;
59
62
  navigationResolver: {
60
63
  getNavigationForUrl: (url: string | URL) => {
61
- position: import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition;
64
+ position: import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition;
62
65
  spineItemId: string;
63
66
  } | undefined;
64
67
  getNavigationForSpineItemPage: (params: Omit<Parameters<typeof import('./navigation/resolvers/getNavigationForSpineItemPage').getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => import('./spine/types').SpinePosition;
@@ -66,13 +69,13 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
66
69
  spineItemPosition: import('./spineItem/types').SpineItemPosition;
67
70
  spineItem: import('.').SpineItem;
68
71
  }) => import('./spine/types').SpinePosition;
69
- getNavigationForCfi: (cfi: string) => import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition | undefined;
70
- getNavigationForLastPage: (spineItem: import('.').SpineItem) => import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition;
71
- getNavigationForSpineIndexOrId: (indexOrId: number | string | import('.').SpineItem) => import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition;
72
- getNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition | import('./spine/types').SpinePosition) => import('./spine/types').SpinePosition;
73
- getMostPredominantNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition) => import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition;
74
- getAdjustedPositionWithSafeEdge: (position: import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition | import('./spine/types').SpinePosition) => import('./spine/types').SpinePosition;
75
- isNavigationGoingForwardFrom: (to: import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition, from: import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition) => boolean;
72
+ getNavigationForCfi: (cfi: string) => import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition | undefined;
73
+ getNavigationForLastPage: (spineItem: import('.').SpineItem) => import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition;
74
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | import('.').SpineItem) => import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition;
75
+ getNavigationForPosition: (viewportPosition: import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition | import('./spine/types').SpinePosition) => import('./spine/types').SpinePosition;
76
+ getMostPredominantNavigationForPosition: (viewportPosition: import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition) => import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition;
77
+ getAdjustedPositionWithSafeEdge: (position: import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition | import('./spine/types').SpinePosition) => import('./spine/types').SpinePosition;
78
+ isNavigationGoingForwardFrom: (to: import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition, from: import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition) => boolean;
76
79
  arePositionsDifferent: (a: {
77
80
  x: number;
78
81
  y: number;
@@ -80,13 +83,17 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
80
83
  x: number;
81
84
  y: number;
82
85
  }) => boolean;
83
- getAdjustedPositionForSpread: (position: import('./navigation/viewport/ViewportNavigator').DeprecatedViewportPosition | import('./spine/types').SpinePosition) => import('./spine/types').SpinePosition;
86
+ getAdjustedPositionForSpread: (position: import('./navigation/controllers/ControlledNavigationController').DeprecatedViewportPosition | import('./spine/types').SpinePosition) => import('./spine/types').SpinePosition;
84
87
  spineItemNavigator: {
85
88
  getNavigationForLastPage: (spineItem: import('.').SpineItem) => import('./spineItem/types').SpineItemPosition;
86
89
  getNavigationForPosition: (spineItem: import('.').SpineItem, position: import('./spineItem/types').SpineItemPosition) => import('./spineItem/types').SpineItemPosition;
87
90
  getNavigationFromNode: (spineItem: import('.').SpineItem, node: Node, offset: number) => import('./spineItem/types').SpineItemPosition;
88
91
  };
89
92
  };
93
+ navigation$: import('rxjs').Observable<{
94
+ position: import('./spine/types').SpinePosition;
95
+ id: symbol;
96
+ }>;
90
97
  };
91
98
  spineItemsObserver: import('./spine/SpineItemsObserver').SpineItemsObserver;
92
99
  spineItemsManager: import('./spine/SpineItemsManager').SpineItemsManager;
@@ -98,6 +105,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
98
105
  state$: import('rxjs').Observable<import('./pagination/Pagination').PaginationInfo>;
99
106
  };
100
107
  settings: import('./settings/SettingsInterface').SettingsInterface<NonNullable<import('./settings/types').CoreInputSettings>, NonNullable<import('./settings/types').CoreOutputSettings | undefined>>;
108
+ viewport: import('./viewport/Viewport').Viewport;
101
109
  element$: import('rxjs').Observable<HTMLElement>;
102
110
  viewportState$: import('rxjs').Observable<"free" | "busy">;
103
111
  viewportFree$: import('rxjs').Observable<"free">;
@@ -111,8 +119,8 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
111
119
  }>;
112
120
  destroy$: import('rxjs').Subject<void>;
113
121
  };
114
- }, "settings"> & import('./enhancers/layoutEnhancer/layoutEnhancer').LayoutEnhancerOutput & {
115
- settings: import('./settings/SettingsInterface').SettingsInterface<import('./settings/types').CoreInputSettings & import('./enhancers/layoutEnhancer/types').InputSettings, import('./enhancers/layoutEnhancer/types').InputSettings & import('./settings/types').CoreInputSettings & import('./settings/types').ComputedCoreSettings>;
122
+ }, "settings"> & import('./enhancers/layout/layoutEnhancer').LayoutEnhancerOutput & {
123
+ settings: import('./settings/SettingsInterface').SettingsInterface<import('./settings/types').CoreInputSettings & import('./enhancers/layout/types').InputSettings, import('./enhancers/layout/types').InputSettings & import('./settings/types').CoreInputSettings & import('./settings/types').ComputedCoreSettings>;
116
124
  }, "pagination"> & {
117
125
  pagination: Omit<{
118
126
  getState: () => import('./pagination/Pagination').PaginationInfo;
@@ -125,10 +133,10 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
125
133
  };
126
134
  } & {
127
135
  theme: {
128
- set: (theme: import('./enhancers/theme').Theme) => void;
129
- get: () => import('./enhancers/theme').Theme;
136
+ set: (theme: import('.').Theme) => void;
137
+ get: () => import('.').Theme;
130
138
  $: {
131
- theme$: import('rxjs').Observable<import('./enhancers/theme').Theme>;
139
+ theme$: import('rxjs').Observable<import('.').Theme>;
132
140
  };
133
141
  };
134
142
  } & {
@@ -138,7 +146,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
138
146
  isOrIsWithinValidLink: (target: Event[`target`]) => boolean;
139
147
  };
140
148
  }, "settings"> & {
141
- settings: import('./settings/SettingsInterface').SettingsInterface<import('./settings/types').CoreInputSettings & import('./enhancers/layoutEnhancer/types').InputSettings & import('./enhancers/fonts/types').InputSettings, import('./enhancers/fonts/types').InputSettings & import('./enhancers/layoutEnhancer/types').InputSettings & import('./settings/types').CoreInputSettings & import('./settings/types').ComputedCoreSettings>;
149
+ settings: import('./settings/SettingsInterface').SettingsInterface<import('./settings/types').CoreInputSettings & import('./enhancers/layout/types').InputSettings & import('./enhancers/fonts/types').InputSettings, import('./enhancers/fonts/types').InputSettings & import('./enhancers/layout/types').InputSettings & import('./settings/types').CoreInputSettings & import('./settings/types').ComputedCoreSettings>;
142
150
  } & {
143
151
  loading: {
144
152
  $: {
@@ -3,5 +3,6 @@ export type InputSettings = {
3
3
  pageVerticalMargin: number;
4
4
  layoutAutoResize: `container` | false;
5
5
  layoutLayerTransition: boolean;
6
+ viewportMode: `normal` | `thumbnails`;
6
7
  };
7
8
  export type OutputSettings = InputSettings;
@@ -0,0 +1,3 @@
1
+ import { Observable } from 'rxjs';
2
+ import { Reader } from '../../reader';
3
+ export declare const createViewportModeHandler: (reader: Reader, viewportMode$: Observable<`normal` | `thumbnails`>) => Observable<"normal" | "thumbnails">;
@@ -1,4 +1,4 @@
1
- import { UserNavigationEntry } from '../../../navigation/UserNavigator';
1
+ import { UserNavigationEntry } from '../../../navigation/types';
2
2
  import { Reader } from '../../../reader';
3
3
  import { SpinePosition } from '../../../spine/types';
4
4
  export declare class ManualNavigator {
@@ -1,6 +1,6 @@
1
1
  import { Context } from '../../../context/Context';
2
+ import { DeprecatedViewportPosition } from '../../../navigation/controllers/ControlledNavigationController';
2
3
  import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
- import { DeprecatedViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
4
  import { SpineItemsManager } from '../../../spine/SpineItemsManager';
5
5
  import { SpineLocator } from '../../../spine/locator/SpineLocator';
6
6
  import { SpinePosition } from '../../../spine/types';
@@ -1,6 +1,6 @@
1
1
  import { Context } from '../../../context/Context';
2
+ import { DeprecatedViewportPosition } from '../../../navigation/controllers/ControlledNavigationController';
2
3
  import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
- import { DeprecatedViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
4
  import { SpineItemsManager } from '../../../spine/SpineItemsManager';
5
5
  import { SpineLocator } from '../../../spine/locator/SpineLocator';
6
6
  import { SpinePosition } from '../../../spine/types';
@@ -1,6 +1,6 @@
1
1
  import { Context } from '../../../context/Context';
2
+ import { DeprecatedViewportPosition } from '../../../navigation/controllers/ControlledNavigationController';
2
3
  import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
- import { DeprecatedViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
4
  import { SpineItemsManager } from '../../../spine/SpineItemsManager';
5
5
  import { SpineLocator } from '../../../spine/locator/SpineLocator';
6
6
  import { SpinePosition } from '../../../spine/types';
@@ -1,6 +1,6 @@
1
1
  import { Context } from '../../../context/Context';
2
+ import { DeprecatedViewportPosition } from '../../../navigation/controllers/ControlledNavigationController';
2
3
  import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
- import { DeprecatedViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
4
  import { SpineItemsManager } from '../../../spine/SpineItemsManager';
5
5
  import { SpineLocator } from '../../../spine/locator/SpineLocator';
6
6
  import { SpinePosition } from '../../../spine/types';
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { PaginationInfo } from '../../pagination/Pagination';
3
- import { LayoutEnhancerOutput } from '../layoutEnhancer/layoutEnhancer';
3
+ import { LayoutEnhancerOutput } from '../layout/layoutEnhancer';
4
4
  import { EnhancerOutput, RootEnhancer } from '../types/enhancer';
5
5
  import { ConsolidatedResource, LocatableResource } from './locate';
6
6
  import { ExtraPaginationInfo } from './types';
@@ -1,7 +1,7 @@
1
1
  import { Observable, ObservedValueOf } from 'rxjs';
2
2
  import { PaginationInfo } from '../../pagination/Pagination';
3
3
  import { Reader } from '../../reader';
4
- import { LayoutEnhancerOutput } from '../layoutEnhancer/layoutEnhancer';
4
+ import { LayoutEnhancerOutput } from '../layout/layoutEnhancer';
5
5
  import { trackChapterInfo } from './chapters';
6
6
  import { EnhancerPaginationInto, ExtraPaginationInfo } from './types';
7
7
  export declare const mapPaginationInfoToExtendedInfo: (reader: Reader, paginationInfo: PaginationInfo, chaptersInfo: ObservedValueOf<ReturnType<typeof trackChapterInfo>>, percentageEstimateOfBook: number) => Observable<Omit<ExtraPaginationInfo, "beginAbsolutePageIndex" | "endAbsolutePageIndex" | "beginAbsolutePageIndex" | "numberOfTotalPages">>;
@@ -1,6 +1,6 @@
1
1
  import { Reader } from '../../reader';
2
2
  import { SpineItem } from '../../spineItem/SpineItem';
3
- import { LayoutEnhancerOutput } from '../layoutEnhancer/layoutEnhancer';
3
+ import { LayoutEnhancerOutput } from '../layout/layoutEnhancer';
4
4
  export declare const getPercentageEstimate: (reader: Reader & LayoutEnhancerOutput, currentSpineIndex: number, pageIndex: number, currentPosition: {
5
5
  x: number;
6
6
  y: number;
@@ -41,11 +41,6 @@ export type CoreHook = {
41
41
  } | {
42
42
  name: "onViewportOffsetAdjust";
43
43
  runFn: (params: undefined) => void;
44
- } | {
45
- name: `navigator.onBeforeContainerCreated`;
46
- runFn: (params: {
47
- element: HTMLElement;
48
- }) => void;
49
44
  };
50
45
  export type HookExecution<H extends Hook<any, any, any>> = {
51
46
  name: string;
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { createReaderWithEnhancers as createReader } from './createReaderWithEnh
2
2
  export type { Manifest } from '@prose-reader/shared';
3
3
  export { DocumentRenderer } from './spineItem/renderer/DocumentRenderer';
4
4
  export { ResourceHandler } from './spineItem/resources/ResourceHandler';
5
+ export type { Theme } from './enhancers/theme';
5
6
  export { HookManager } from './hooks/HookManager';
6
7
  export { SettingsManager } from './settings/SettingsManager';
7
8
  export type Reader = ReturnType<typeof createReader>;