@prose-reader/core 1.222.0 → 1.224.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 (54) hide show
  1. package/dist/cfi/generate.d.ts +4 -15
  2. package/dist/cfi/resolve.d.ts +7 -2
  3. package/dist/context/BridgeEvent.d.ts +7 -7
  4. package/dist/context/Context.d.ts +6 -6
  5. package/dist/createReaderWithEnhancer.d.ts +80 -79
  6. package/dist/enhancers/html/enhancer.d.ts +4 -2
  7. package/dist/enhancers/html/links.d.ts +2 -1
  8. package/dist/enhancers/html/renderer/HtmlRenderer.d.ts +6 -5
  9. package/dist/enhancers/layout/layoutEnhancer.d.ts +4 -4
  10. package/dist/enhancers/media/ImageRenderer.d.ts +6 -5
  11. package/dist/enhancers/navigation/links.d.ts +2 -1
  12. package/dist/enhancers/navigation/state.d.ts +2 -1
  13. package/dist/enhancers/pagination/ResourcesLocator.d.ts +3 -2
  14. package/dist/enhancers/pagination/chapters.d.ts +2 -1
  15. package/dist/enhancers/pagination/enhancer.d.ts +1 -0
  16. package/dist/enhancers/pagination/index.d.ts +3 -0
  17. package/dist/enhancers/pagination/progression.d.ts +2 -1
  18. package/dist/enhancers/selection/trackSpineItemSelection.d.ts +2 -1
  19. package/dist/hooks/HookManager.d.ts +3 -2
  20. package/dist/hooks/index.d.ts +2 -0
  21. package/dist/index.d.ts +15 -6
  22. package/dist/index.js +1431 -1349
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.umd.cjs +33 -33
  25. package/dist/index.umd.cjs.map +1 -1
  26. package/dist/navigation/InternalNavigator.d.ts +3 -3
  27. package/dist/navigation/Locker.d.ts +2 -2
  28. package/dist/navigation/Navigator.d.ts +24 -21
  29. package/dist/navigation/UserScrollNavigation.d.ts +2 -2
  30. package/dist/navigation/consolidation/consolidateWithPagination.d.ts +4 -3
  31. package/dist/navigation/resolvers/NavigationResolver.d.ts +3 -3
  32. package/dist/navigation/resolvers/getAdjustedPositionWithSafeEdge.d.ts +3 -3
  33. package/dist/navigation/resolvers/getNavigationFromSpineItemPosition.d.ts +2 -1
  34. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.d.ts +3 -3
  35. package/dist/navigation/restoration/restorePosition.d.ts +3 -3
  36. package/dist/pagination/index.d.ts +1 -0
  37. package/dist/reader.d.ts +36 -37
  38. package/dist/spine/Pages.d.ts +42 -0
  39. package/dist/spine/Spine.d.ts +20 -1
  40. package/dist/spine/SpineItemsManager.d.ts +2 -2
  41. package/dist/spine/locator/SpineLocator.d.ts +0 -7
  42. package/dist/spine/locator/getSpineItemFromPosition.d.ts +2 -1
  43. package/dist/spine/locator/getSpinePositionFromSpineItemPageIndex.d.ts +2 -1
  44. package/dist/spine/types.d.ts +3 -22
  45. package/dist/spineItem/locationResolver.d.ts +0 -7
  46. package/dist/spineItem/renderer/DefaultRenderer.d.ts +6 -5
  47. package/dist/spineItem/types.d.ts +23 -0
  48. package/dist/utils/DestroyableClass.d.ts +2 -1
  49. package/dist/utils/dom.d.ts +4 -2
  50. package/package.json +4 -4
  51. package/dist/enhancers/layout/layoutInfo.d.ts +0 -25
  52. package/dist/enhancers/navigation/report.d.ts +0 -1
  53. package/dist/report.d.ts +0 -8
  54. package/dist/spineItem/layout/getSpineItemPagesPosition.d.ts +0 -11
@@ -1,22 +1,11 @@
1
1
  import { Manifest } from '@prose-reader/shared';
2
+ import { Spine } from '../spine/Spine';
2
3
  import { SpineItem } from '../spineItem/SpineItem';
3
- import { SpineItemLocator } from '../spineItem/locationResolver';
4
4
  export declare const generateRootCfi: (item: Manifest["spineItems"][number]) => string;
5
- export declare const generateCfi: (node: Node, offset: number, item: Manifest["spineItems"][number]) => string;
6
- export declare const generateCfiForSpineItemPage: ({ pageIndex, spineItem, spineItemLocator, }: {
5
+ export declare const generateCfiForSpineItemPage: ({ pageIndex, spineItem, spine, }: {
7
6
  pageIndex: number;
8
7
  spineItem: SpineItem;
9
- spineItemLocator: SpineItemLocator;
8
+ spine: Spine;
10
9
  }) => string;
11
- export declare const generateCfiFromRange: (range: Range, item: Manifest[`spineItems`][number]) => {
12
- start: string;
13
- end: string;
14
- };
15
- export declare const generateCfiFromSelection: ({ item, selection, }: {
16
- selection: Selection;
17
- item: Manifest["spineItems"][number];
18
- }) => {
19
- anchorCfi: string | undefined;
20
- focusCfi: string | undefined;
21
- };
10
+ export declare const generateCfiFromRange: (range: Range, item: Manifest[`spineItems`][number]) => string;
22
11
  export declare const getItemAnchor: (item: Manifest["spineItems"][number]) => string;
@@ -1,13 +1,18 @@
1
1
  import { SpineItemsManager } from '../spine/SpineItemsManager';
2
+ import { SpineItem } from '..';
2
3
  export declare const resolveCfi: ({ cfi, spineItemsManager, }: {
3
4
  cfi: string;
4
5
  spineItemsManager: SpineItemsManager;
5
6
  }) => {
6
7
  node: Node | null | undefined;
8
+ isRange: boolean;
9
+ range: Range | null | undefined;
7
10
  offset: number | undefined;
8
- spineItem: import('..').SpineItem;
11
+ spineItem: SpineItem;
9
12
  } | {
10
- spineItem: import('..').SpineItem;
13
+ spineItem: SpineItem;
11
14
  node?: undefined;
15
+ isRange?: undefined;
16
+ range?: undefined;
12
17
  offset?: undefined;
13
18
  } | undefined;
@@ -1,4 +1,4 @@
1
- import { BehaviorSubject, ReplaySubject } from 'rxjs';
1
+ import { BehaviorSubject, ReplaySubject, Observable } from 'rxjs';
2
2
  import { Navigation } from '../navigation/types';
3
3
  import { PaginationInfo } from '../pagination/types';
4
4
  export declare class BridgeEvent {
@@ -6,10 +6,10 @@ export declare class BridgeEvent {
6
6
  viewportStateSubject: BehaviorSubject<"free" | "busy">;
7
7
  paginationSubject: ReplaySubject<PaginationInfo>;
8
8
  navigationIsLockedSubject: BehaviorSubject<boolean>;
9
- pagination$: import('rxjs').Observable<PaginationInfo>;
10
- navigationUnlocked$: import('rxjs').Observable<boolean>;
11
- viewportState$: import('rxjs').Observable<"free" | "busy">;
12
- viewportFree$: import('rxjs').Observable<"free">;
13
- viewportBusy$: import('rxjs').Observable<"busy">;
14
- navigation$: import('rxjs').Observable<Navigation>;
9
+ pagination$: Observable<PaginationInfo>;
10
+ navigationUnlocked$: Observable<boolean>;
11
+ viewportState$: Observable<"free" | "busy">;
12
+ viewportFree$: Observable<"free">;
13
+ viewportBusy$: Observable<"busy">;
14
+ navigation$: Observable<Navigation>;
15
15
  }
@@ -1,5 +1,5 @@
1
1
  import { Manifest } from '@prose-reader/shared';
2
- import { Subject } from 'rxjs';
2
+ import { Subject, Observable } from 'rxjs';
3
3
  import { ReactiveEntity } from '../utils/ReactiveEntity';
4
4
  import { BridgeEvent } from './BridgeEvent';
5
5
  export type ContextState = {
@@ -24,11 +24,11 @@ export type ContextState = {
24
24
  export declare class Context extends ReactiveEntity<ContextState> {
25
25
  bridgeEvent: BridgeEvent;
26
26
  destroy$: Subject<void>;
27
- state$: import('rxjs').Observable<ContextState>;
28
- manifest$: import('rxjs').Observable<Manifest>;
29
- containerElement$: import('rxjs').Observable<HTMLElement>;
30
- hasVerticalWriting$: import('rxjs').Observable<boolean>;
31
- isUsingSpreadMode$: import('rxjs').Observable<boolean | undefined>;
27
+ state$: Observable<ContextState>;
28
+ manifest$: Observable<Manifest>;
29
+ containerElement$: Observable<HTMLElement>;
30
+ hasVerticalWriting$: Observable<boolean>;
31
+ isUsingSpreadMode$: Observable<boolean | undefined>;
32
32
  constructor();
33
33
  update(newState: Partial<ContextState>): void;
34
34
  isRTL: () => boolean;
@@ -1,6 +1,13 @@
1
- export declare const createReaderWithEnhancers: (options: Partial<import('.').CoreInputSettings> & Partial<import('.').EnhancerLayoutInputSettings> & {
2
- theme?: import('.').Theme;
3
- } & Partial<import('.').EnhancerFontsInputSettings> & {
1
+ import { CoreInputSettings, EnhancerLayoutInputSettings, Theme, EnhancerFontsInputSettings, Context, Spine, SpineItem, InternalNavigationEntry, InternalNavigator, ScrollNavigationController, ControlledNavigationController, Locker, UserNavigationEntry, DeprecatedViewportPosition, SpinePosition, SpineItemPosition, SpineItemsObserver, SpineItemsManager, ContextState, SettingsInterface, CoreOutputSettings, Viewport, Features, LayoutEnhancerOutput, ComputedCoreSettings, ExtraPaginationInfo, ResourcesLocator, NavigationEnhancerOutput, ZoomEnhancerOutput } from '.';
2
+ import { HookManager, CoreHook } from './hooks';
3
+ import { Manifest } from '@prose-reader/shared';
4
+ import { resolveCfi } from './cfi';
5
+ import { Observable, ObservedValueOf, Subject } from 'rxjs';
6
+ import { getNavigationForSpineItemPage } from './navigation/resolvers/getNavigationForSpineItemPage';
7
+ import { PaginationInfo, Pagination } from './pagination';
8
+ export declare const createReaderWithEnhancers: (options: Partial< CoreInputSettings> & Partial< EnhancerLayoutInputSettings> & {
9
+ theme?: Theme;
10
+ } & Partial< EnhancerFontsInputSettings> & {
4
11
  loadingElementCreate?: (options: {
5
12
  container: HTMLElement;
6
13
  item: {
@@ -15,21 +22,11 @@ export declare const createReaderWithEnhancers: (options: Partial<import('.').Co
15
22
  };
16
23
  }) => HTMLElement;
17
24
  }) => Omit<Omit<Omit<Omit<{
18
- context: import('.').Context;
19
- spine: import('.').Spine;
20
- hookManager: import('.').HookManager<import('.').CoreHook>;
25
+ context: Context;
26
+ spine: Spine;
27
+ hookManager: HookManager<CoreHook>;
21
28
  cfi: {
22
- generateCfiFromRange: (range: Range, item: import('@prose-reader/shared').Manifest[`spineItems`][number]) => {
23
- start: string;
24
- end: string;
25
- };
26
- generateCfiFromSelection: ({ item, selection, }: {
27
- selection: Selection;
28
- item: import('@prose-reader/shared').Manifest["spineItems"][number];
29
- }) => {
30
- anchorCfi: string | undefined;
31
- focusCfi: string | undefined;
32
- };
29
+ generateCfiFromRange: (range: Range, item: Manifest[`spineItems`][number]) => string;
33
30
  parseCfi: (cfi: string) => {
34
31
  cleanedCfi: string;
35
32
  itemIndex?: number;
@@ -37,45 +34,49 @@ export declare const createReaderWithEnhancers: (options: Partial<import('.').Co
37
34
  };
38
35
  generateCfiForSpineItemPage: (params: {
39
36
  pageIndex: number;
40
- spineItem: import('.').SpineItem;
37
+ spineItem: SpineItem;
41
38
  }) => string;
42
- resolveCfi: (params: Omit<Parameters<typeof import('./cfi').resolveCfi>[0], "spineItemsManager">) => {
39
+ resolveCfi: (params: Omit<Parameters< resolveCfi>[0], "spineItemsManager">) => {
43
40
  node: Node | null | undefined;
41
+ isRange: boolean;
42
+ range: Range | null | undefined;
44
43
  offset: number | undefined;
45
- spineItem: import('.').SpineItem;
44
+ spineItem: SpineItem;
46
45
  } | {
47
- spineItem: import('.').SpineItem;
46
+ spineItem: SpineItem;
48
47
  node?: undefined;
48
+ isRange?: undefined;
49
+ range?: undefined;
49
50
  offset?: undefined;
50
51
  } | undefined;
51
52
  };
52
53
  navigation: {
53
54
  destroy: () => void;
54
- getNavigation: () => import('.').InternalNavigationEntry;
55
- internalNavigator: import('.').InternalNavigator;
56
- scrollNavigationController: import('.').ScrollNavigationController;
57
- controlledNavigationController: import('.').ControlledNavigationController;
58
- locker: import('.').Locker;
59
- viewportState$: import('rxjs').Observable<"free" | "busy">;
60
- navigate: (to: import('.').UserNavigationEntry) => void;
55
+ getNavigation: () => InternalNavigationEntry;
56
+ internalNavigator: InternalNavigator;
57
+ scrollNavigationController: ScrollNavigationController;
58
+ controlledNavigationController: ControlledNavigationController;
59
+ locker: Locker;
60
+ viewportState$: Observable<"free" | "busy">;
61
+ navigate: (to: UserNavigationEntry) => void;
61
62
  lock(): () => void;
62
63
  navigationResolver: {
63
64
  getNavigationForUrl: (url: string | URL) => {
64
- position: import('.').DeprecatedViewportPosition;
65
+ position: DeprecatedViewportPosition;
65
66
  spineItemId: string;
66
67
  } | undefined;
67
- getNavigationForSpineItemPage: (params: Omit<Parameters<typeof import('./navigation/resolvers/getNavigationForSpineItemPage').getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => import('.').SpinePosition;
68
+ getNavigationForSpineItemPage: (params: Omit<Parameters< getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => SpinePosition;
68
69
  getNavigationFromSpineItemPosition: (params: {
69
- spineItemPosition: import('./spineItem/types').SpineItemPosition;
70
- spineItem: import('.').SpineItem;
71
- }) => import('.').SpinePosition;
72
- getNavigationForCfi: (cfi: string) => import('.').DeprecatedViewportPosition | undefined;
73
- getNavigationForLastPage: (spineItem: import('.').SpineItem) => import('.').DeprecatedViewportPosition;
74
- getNavigationForSpineIndexOrId: (indexOrId: number | string | import('.').SpineItem) => import('.').DeprecatedViewportPosition;
75
- getNavigationForPosition: (viewportPosition: import('.').DeprecatedViewportPosition | import('.').SpinePosition) => import('.').SpinePosition;
76
- getMostPredominantNavigationForPosition: (viewportPosition: import('.').DeprecatedViewportPosition) => import('.').DeprecatedViewportPosition;
77
- getAdjustedPositionWithSafeEdge: (position: import('.').DeprecatedViewportPosition | import('.').SpinePosition) => import('.').SpinePosition;
78
- isNavigationGoingForwardFrom: (to: import('.').DeprecatedViewportPosition, from: import('.').DeprecatedViewportPosition) => boolean;
70
+ spineItemPosition: SpineItemPosition;
71
+ spineItem: SpineItem;
72
+ }) => SpinePosition;
73
+ getNavigationForCfi: (cfi: string) => DeprecatedViewportPosition | undefined;
74
+ getNavigationForLastPage: (spineItem: SpineItem) => DeprecatedViewportPosition;
75
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => DeprecatedViewportPosition;
76
+ getNavigationForPosition: (viewportPosition: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
77
+ getMostPredominantNavigationForPosition: (viewportPosition: DeprecatedViewportPosition) => DeprecatedViewportPosition;
78
+ getAdjustedPositionWithSafeEdge: (position: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
79
+ isNavigationGoingForwardFrom: (to: DeprecatedViewportPosition, from: DeprecatedViewportPosition) => boolean;
79
80
  arePositionsDifferent: (a: {
80
81
  x: number;
81
82
  y: number;
@@ -83,75 +84,75 @@ export declare const createReaderWithEnhancers: (options: Partial<import('.').Co
83
84
  x: number;
84
85
  y: number;
85
86
  }) => boolean;
86
- getAdjustedPositionForSpread: (position: import('.').DeprecatedViewportPosition | import('.').SpinePosition) => import('.').SpinePosition;
87
+ getAdjustedPositionForSpread: (position: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
87
88
  spineItemNavigator: {
88
- getNavigationForLastPage: (spineItem: import('.').SpineItem) => import('./spineItem/types').SpineItemPosition;
89
- getNavigationForPosition: (spineItem: import('.').SpineItem, position: import('./spineItem/types').SpineItemPosition) => import('./spineItem/types').SpineItemPosition;
90
- getNavigationFromNode: (spineItem: import('.').SpineItem, node: Node, offset: number) => import('./spineItem/types').SpineItemPosition;
89
+ getNavigationForLastPage: (spineItem: SpineItem) => SpineItemPosition;
90
+ getNavigationForPosition: (spineItem: SpineItem, position: SpineItemPosition) => SpineItemPosition;
91
+ getNavigationFromNode: (spineItem: SpineItem, node: Node, offset: number) => SpineItemPosition;
91
92
  };
92
93
  };
93
- navigation$: import('rxjs').Observable<{
94
- position: import('.').SpinePosition;
94
+ navigation$: Observable<{
95
+ position: SpinePosition;
95
96
  id: symbol;
96
97
  }>;
97
98
  };
98
- spineItemsObserver: import('./spine/SpineItemsObserver').SpineItemsObserver;
99
- spineItemsManager: import('.').SpineItemsManager;
99
+ spineItemsObserver: SpineItemsObserver;
100
+ spineItemsManager: SpineItemsManager;
100
101
  layout: () => void;
101
- load: (options: Required<Pick<import('.').ContextState, "manifest" | "containerElement">>) => void;
102
+ load: (options: Required<Pick< ContextState, "manifest" | "containerElement">>) => void;
102
103
  destroy: () => void;
103
104
  pagination: {
104
- readonly state: import('./pagination').PaginationInfo;
105
- readonly state$: import('rxjs').Observable<import('rxjs').ObservedValueOf<import('./pagination').Pagination>>;
105
+ readonly state: PaginationInfo;
106
+ readonly state$: Observable<ObservedValueOf<Pagination>>;
106
107
  };
107
- settings: import('./settings/SettingsInterface').SettingsInterface<NonNullable<import('.').CoreInputSettings>, NonNullable<import('.').CoreOutputSettings | undefined>>;
108
- viewport: import('./viewport/Viewport').Viewport;
109
- element$: import('rxjs').Observable<HTMLElement>;
110
- viewportState$: import('rxjs').Observable<"free" | "busy">;
111
- viewportFree$: import('rxjs').Observable<"free">;
112
- state$: import('rxjs').Observable<"idle" | "ready">;
113
- features: import('./features/Features').Features;
108
+ settings: SettingsInterface<NonNullable< CoreInputSettings>, NonNullable< CoreOutputSettings | undefined>>;
109
+ viewport: Viewport;
110
+ element$: Observable<HTMLElement>;
111
+ viewportState$: Observable<"free" | "busy">;
112
+ viewportFree$: Observable<"free">;
113
+ state$: Observable<"idle" | "ready">;
114
+ features: Features;
114
115
  $: {
115
- destroy$: import('rxjs').Subject<void>;
116
+ destroy$: Subject<void>;
116
117
  };
117
- }, "settings"> & import('.').LayoutEnhancerOutput & {
118
- settings: import('./settings/SettingsInterface').SettingsInterface<import('.').CoreInputSettings & import('.').EnhancerLayoutInputSettings, import('.').EnhancerLayoutInputSettings & import('.').CoreInputSettings & import('.').ComputedCoreSettings>;
118
+ }, "settings"> & LayoutEnhancerOutput & {
119
+ settings: SettingsInterface< CoreInputSettings & EnhancerLayoutInputSettings, EnhancerLayoutInputSettings & CoreInputSettings & ComputedCoreSettings>;
119
120
  }, "pagination"> & {
120
121
  pagination: Omit<{
121
- readonly state: import('./pagination').PaginationInfo;
122
- readonly state$: import('rxjs').Observable<import('rxjs').ObservedValueOf<import('./pagination').Pagination>>;
122
+ readonly state: PaginationInfo;
123
+ readonly state$: Observable<ObservedValueOf<Pagination>>;
123
124
  }, "state" | "state$"> & {
124
- state$: import('rxjs').Observable<import('./pagination').PaginationInfo & import('./enhancers/pagination/types').ExtraPaginationInfo>;
125
- state: import('./pagination').PaginationInfo & import('./enhancers/pagination/types').ExtraPaginationInfo;
125
+ state$: Observable< PaginationInfo & ExtraPaginationInfo>;
126
+ state: PaginationInfo & ExtraPaginationInfo;
126
127
  };
127
- locateResource: import('./enhancers/pagination/ResourcesLocator').ResourcesLocator["locateResource"];
128
+ locateResource: ResourcesLocator["locateResource"];
128
129
  } & {
129
130
  theme: {
130
- set: (theme: import('.').Theme) => void;
131
- get: () => import('.').Theme;
131
+ set: (theme: Theme) => void;
132
+ get: () => Theme;
132
133
  $: {
133
- theme$: import('rxjs').Observable<import('.').Theme>;
134
+ theme$: Observable<Theme>;
134
135
  };
135
136
  };
136
137
  } & {
137
- links$: ReturnType<typeof import('./enhancers/html/links').handleLinks>;
138
- }, "load"> & import('.').NavigationEnhancerOutput & import('.').ZoomEnhancerOutput & {
138
+ links$: Observable<MouseEvent>;
139
+ }, "load"> & NavigationEnhancerOutput & ZoomEnhancerOutput & {
139
140
  utils: {
140
141
  isOrIsWithinValidLink: (target: Event[`target`]) => boolean;
141
142
  };
142
143
  }, "settings"> & {
143
- settings: import('./settings/SettingsInterface').SettingsInterface<import('.').CoreInputSettings & import('.').EnhancerLayoutInputSettings & import('.').EnhancerFontsInputSettings, import('.').EnhancerFontsInputSettings & import('.').EnhancerLayoutInputSettings & import('.').CoreInputSettings & import('.').ComputedCoreSettings>;
144
+ settings: SettingsInterface< CoreInputSettings & EnhancerLayoutInputSettings & EnhancerFontsInputSettings, EnhancerFontsInputSettings & EnhancerLayoutInputSettings & CoreInputSettings & ComputedCoreSettings>;
144
145
  } & {
145
146
  loading: {
146
147
  $: {
147
- items$: import('rxjs').Observable<{
148
+ items$: Observable<{
148
149
  [key: string]: HTMLElement;
149
150
  }>;
150
151
  };
151
152
  };
152
153
  } & {
153
154
  selection: {
154
- selection$: import('rxjs').Observable<{
155
+ selection$: Observable<{
155
156
  itemIndex: number;
156
157
  type: "change";
157
158
  selection: Selection;
@@ -161,15 +162,15 @@ export declare const createReaderWithEnhancers: (options: Partial<import('.').Co
161
162
  event: Event;
162
163
  selection: Selection;
163
164
  } | undefined>;
164
- selectionStart$: import('rxjs').Observable<boolean>;
165
- selectionEnd$: import('rxjs').Observable<void>;
166
- selectionOver$: import('rxjs').Observable<{
165
+ selectionStart$: Observable<boolean>;
166
+ selectionEnd$: Observable<void>;
167
+ selectionOver$: Observable<{
167
168
  itemIndex: number;
168
169
  type: "over";
169
170
  event: Event;
170
171
  selection: Selection;
171
172
  }>;
172
- lastSelectionOnPointerdown$: import('rxjs').Observable<{
173
+ lastSelectionOnPointerdown$: Observable<{
173
174
  itemIndex: number;
174
175
  type: "change";
175
176
  selection: Selection;
@@ -196,7 +197,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('.').Co
196
197
  focusNode?: Node | null;
197
198
  focusOffset?: number;
198
199
  };
199
- spineItem: import('.').SpineItem;
200
+ spineItem: SpineItem;
200
201
  }) => Range | undefined;
201
202
  };
202
203
  };
@@ -1,8 +1,10 @@
1
1
  import { EnhancerOptions, EnhancerOutput, RootEnhancer } from '../types/enhancer';
2
2
  import { handleLinks } from './links';
3
+ type HandleLinksReturnType = ReturnType<typeof handleLinks>;
3
4
  export type HtmlEnhancerOutput = {
4
- links$: ReturnType<typeof handleLinks>;
5
+ links$: HandleLinksReturnType;
5
6
  };
6
7
  export declare const htmlEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & {
7
- links$: ReturnType<typeof handleLinks>;
8
+ links$: HandleLinksReturnType;
8
9
  };
10
+ export {};
@@ -1,2 +1,3 @@
1
1
  import { Reader } from '../../reader';
2
- export declare const handleLinks: (reader: Reader) => import('rxjs').Observable<MouseEvent>;
2
+ import { Observable } from 'rxjs';
3
+ export declare const handleLinks: (reader: Reader) => Observable<MouseEvent>;
@@ -1,18 +1,19 @@
1
1
  import { DocumentRenderer } from '../../../spineItem/renderer/DocumentRenderer';
2
+ import { Observable } from 'rxjs';
2
3
  export declare class HtmlRenderer extends DocumentRenderer {
3
4
  latestContentHeightWhenLoaded: number | undefined;
4
- onCreateDocument(): import('rxjs').Observable<HTMLIFrameElement>;
5
- onLoadDocument(): import('rxjs').Observable<HTMLIFrameElement>;
6
- onUnload(): import('rxjs').Observable<never>;
5
+ onCreateDocument(): Observable<HTMLIFrameElement>;
6
+ onLoadDocument(): Observable<HTMLIFrameElement>;
7
+ onUnload(): Observable<never>;
7
8
  onLayout({ minPageSpread, blankPagePosition, spreadPosition, }: {
8
9
  minPageSpread: number;
9
10
  blankPagePosition: `before` | `after` | `none`;
10
11
  spreadPosition: `none` | `left` | `right`;
11
- }): import('rxjs').Observable<undefined> | import('rxjs').Observable<{
12
+ }): Observable<undefined> | Observable<{
12
13
  width: number;
13
14
  height: number;
14
15
  }>;
15
- onRenderHeadless(): import('rxjs').Observable<Document | undefined>;
16
+ onRenderHeadless(): Observable<Document | undefined>;
16
17
  private isImageType;
17
18
  private getFrameElement;
18
19
  getComputedStyleAfterLoad(): CSSStyleDeclaration | undefined;
@@ -1,11 +1,11 @@
1
- import { Observable } from 'rxjs';
1
+ import { Observable, ObservedValueOf } from 'rxjs';
2
2
  import { SettingsInterface } from '../../settings/SettingsInterface';
3
+ import { Pages } from '../../spine/Pages';
3
4
  import { EnhancerOptions, EnhancerOutput, RootEnhancer } from '../types/enhancer';
4
- import { LayoutInfo } from './layoutInfo';
5
5
  import { EnhancerLayoutInputSettings, OutputSettings } from './types';
6
6
  export type LayoutEnhancerOutput = {
7
- layout$: Observable<LayoutInfo>;
8
- layoutInfo$: Observable<LayoutInfo>;
7
+ layout$: Observable<ObservedValueOf<Pages>>;
8
+ layoutInfo$: Observable<ObservedValueOf<Pages>>;
9
9
  };
10
10
  export declare const layoutEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>, InheritSettings extends NonNullable<InheritOutput["settings"]["_inputSettings"]>, InheritComputedSettings extends NonNullable<InheritOutput["settings"]["_outputSettings"]>, Output extends Omit<InheritOutput, "settings"> & LayoutEnhancerOutput & {
11
11
  settings: SettingsInterface<InheritSettings & EnhancerLayoutInputSettings, OutputSettings & InheritComputedSettings>;
@@ -1,17 +1,18 @@
1
1
  import { DocumentRenderer } from '../../spineItem/renderer/DocumentRenderer';
2
+ import { Observable } from 'rxjs';
2
3
  export declare class ImageRenderer extends DocumentRenderer {
3
4
  private getImageElement;
4
- onCreateDocument(): import('rxjs').Observable<HTMLImageElement>;
5
- onLoadDocument(): import('rxjs').Observable<Event>;
6
- onUnload(): import('rxjs').Observable<never>;
5
+ onCreateDocument(): Observable<HTMLImageElement>;
6
+ onLoadDocument(): Observable<Event>;
7
+ onUnload(): Observable<never>;
7
8
  onLayout({ spreadPosition, }: {
8
9
  minPageSpread: number;
9
10
  blankPagePosition: `before` | `after` | `none`;
10
11
  spreadPosition: `none` | `left` | `right`;
11
- }): import('rxjs').Observable<undefined> | import('rxjs').Observable<{
12
+ }): Observable<undefined> | Observable<{
12
13
  width: number;
13
14
  height: number;
14
15
  }>;
15
- onRenderHeadless(): import('rxjs').Observable<never>;
16
+ onRenderHeadless(): Observable<never>;
16
17
  getDocumentFrame(): undefined;
17
18
  }
@@ -1,4 +1,5 @@
1
1
  import { Reader } from '../../reader';
2
2
  import { HtmlEnhancerOutput } from '../html/enhancer';
3
3
  import { ManualNavigator } from './navigators/manualNavigator';
4
- export declare const handleLinksNavigation: (reader: Reader & HtmlEnhancerOutput, manualNavigator: ManualNavigator) => import('rxjs').Observable<MouseEvent>;
4
+ import { Observable } from 'rxjs';
5
+ export declare const handleLinksNavigation: (reader: Reader & HtmlEnhancerOutput, manualNavigator: ManualNavigator) => Observable<MouseEvent>;
@@ -1,6 +1,7 @@
1
1
  import { Reader } from '../../reader';
2
+ import { Observable } from 'rxjs';
2
3
  export type State = ReturnType<typeof observeState>;
3
- export declare const observeState: (reader: Reader) => import('rxjs').Observable<{
4
+ export declare const observeState: (reader: Reader) => Observable<{
4
5
  canTurnLeft: boolean;
5
6
  canTurnRight: boolean;
6
7
  canGoTopSpineItem: boolean;
@@ -3,7 +3,6 @@ import { Reader } from '../../reader';
3
3
  import { SpineItem } from '../../spineItem/SpineItem';
4
4
  type CfiLocatableResource = {
5
5
  cfi: string;
6
- endCfi?: string;
7
6
  };
8
7
  export type LocatableResource = SpineItem | CfiLocatableResource;
9
8
  export type ConsolidatedResource = CfiLocatableResource & {
@@ -12,7 +11,7 @@ export type ConsolidatedResource = CfiLocatableResource & {
12
11
  absolutePageIndex?: number;
13
12
  startNode?: Node;
14
13
  startOffset?: number;
15
- range?: Range;
14
+ range?: Range | null;
16
15
  };
17
16
  export declare const consolidate: (resource: ConsolidatedResource, reader: Reader) => Observable<ConsolidatedResource>;
18
17
  type Options = {
@@ -21,6 +20,8 @@ type Options = {
21
20
  export declare class ResourcesLocator {
22
21
  private reader;
23
22
  constructor(reader: Reader);
23
+ private locatorsByKey;
24
+ private deregisterMemoizedStream;
24
25
  locate: <T extends LocatableResource>(resource: T, options: Options) => Observable<{
25
26
  resource: T;
26
27
  meta: ConsolidatedResource;
@@ -1,4 +1,5 @@
1
1
  import { Reader } from '../../reader';
2
+ import { Observable } from 'rxjs';
2
3
  export type ChapterInfo = {
3
4
  title: string;
4
5
  subChapter?: {
@@ -18,6 +19,6 @@ export type ChapterInfo = {
18
19
  export declare const getChaptersInfo: (reader: Reader) => {
19
20
  [key: string]: ChapterInfo | undefined;
20
21
  };
21
- export declare const trackChapterInfo: (reader: Reader) => import('rxjs').Observable<{
22
+ export declare const trackChapterInfo: (reader: Reader) => Observable<{
22
23
  [key: string]: ChapterInfo | undefined;
23
24
  }>;
@@ -1,4 +1,5 @@
1
1
  import { LayoutEnhancerOutput } from '../layout/layoutEnhancer';
2
2
  import { EnhancerOutput, RootEnhancer } from '../types/enhancer';
3
3
  import { PaginationEnhancerAPI } from './types';
4
+ export type { PaginationEnhancerAPI, EnhancerPaginationInto } from './types';
4
5
  export declare const paginationEnhancer: <InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer> & LayoutEnhancerOutput, PaginationOutput extends PaginationEnhancerAPI<InheritOutput>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => PaginationOutput;
@@ -0,0 +1,3 @@
1
+ export * from './ResourcesLocator';
2
+ export * from './types';
3
+ export * from './enhancer';
@@ -1,7 +1,8 @@
1
1
  import { Reader } from '../../reader';
2
2
  import { SpineItem } from '../../spineItem/SpineItem';
3
3
  import { LayoutEnhancerOutput } from '../layout/layoutEnhancer';
4
+ import { Observable } from 'rxjs';
4
5
  export declare const getPercentageEstimate: (reader: Reader & LayoutEnhancerOutput, currentSpineIndex: number, pageIndex: number, currentPosition: {
5
6
  x: number;
6
7
  y: number;
7
- }, currentItem: SpineItem) => import('rxjs').Observable<number>;
8
+ }, currentItem: SpineItem) => Observable<number>;
@@ -1,5 +1,6 @@
1
1
  import { SpineItem } from '../../spineItem/SpineItem';
2
- export declare const trackSpineItemSelection: (spineItem: SpineItem) => import('rxjs').Observable<{
2
+ import { Observable } from 'rxjs';
3
+ export declare const trackSpineItemSelection: (spineItem: SpineItem) => Observable<{
3
4
  type: "change";
4
5
  selection: Selection;
5
6
  } | {
@@ -1,9 +1,10 @@
1
1
  import { CoreHook, Hook, HookExecution, HookFrom } from './types';
2
+ import { Observable } from 'rxjs';
2
3
  export declare class HookManager<H extends Hook<any, any, any> = CoreHook> {
3
4
  _hooks: Array<H>;
4
5
  _hookExecutions: Array<HookExecution<H>>;
5
- protected deregister(hookToDeregister: H): import('rxjs').Observable<unknown[]>;
6
+ protected deregister(hookToDeregister: H): Observable<unknown[]>;
6
7
  register<Name extends H["name"]>(name: Name, fn: HookFrom<H, Name>["runFn"]): () => void;
7
8
  execute<Name extends H["name"]>(name: Name, id: string | undefined, params: Omit<Parameters<HookFrom<H, Name>["runFn"]>[0], "destroy" | "destroy$">): ReturnType<HookFrom<H, Name>["runFn"]>[];
8
- destroy<Name extends H["name"]>(name: Name, id?: string, ref?: H): import('rxjs').Observable<unknown[]>;
9
+ destroy<Name extends H["name"]>(name: Name, id?: string, ref?: H): Observable<unknown[]>;
9
10
  }
@@ -0,0 +1,2 @@
1
+ export * from './HookManager';
2
+ export * from './types';
package/dist/index.d.ts CHANGED
@@ -5,26 +5,29 @@ export { ResourceHandler } from './spineItem/resources/ResourceHandler';
5
5
  export type { Theme } from './enhancers/theme';
6
6
  export { HookManager } from './hooks/HookManager';
7
7
  export { SettingsManager } from './settings/SettingsManager';
8
- export type Reader = ReturnType<typeof createReader>;
9
8
  export type CreateReaderOptions = Parameters<typeof createReader>[0];
10
9
  export { createReader };
10
+ export type Reader = ReturnType<typeof createReader>;
11
11
  export { isHtmlElement, isHtmlTagElement } from './utils/dom';
12
12
  export { isShallowEqual } from './utils/objects';
13
13
  export { waitForSwitch } from './utils/rxjs';
14
14
  export { SpineItem } from './spineItem/SpineItem';
15
- export type { PaginationInfo } from './pagination/types';
16
15
  export * from './utils/DestroyableClass';
17
16
  export * from './utils/frames';
18
17
  export * from './utils/rxjs';
19
- export type PaginationState = ReturnType<typeof createReader>["pagination"]["state"];
20
18
  export type { EnhancerFontsInputSettings } from './enhancers/fonts';
21
19
  export type { EnhancerLayoutInputSettings } from './enhancers/layout/types';
22
- export * from './settings/types';
23
- export * from './context/Context';
20
+ export * from './pagination';
24
21
  export * from './enhancers/layout/layoutEnhancer';
25
22
  export * from './enhancers/navigation/types';
26
23
  export * from './enhancers/zoom/types';
27
- export * from './hooks/types';
24
+ export * from './enhancers/types/enhancer';
25
+ export * from './enhancers/html/enhancer';
26
+ export * from './settings/types';
27
+ export * from './settings/SettingsInterface';
28
+ export * from './context/Context';
29
+ export * from './enhancers/pagination';
30
+ export * from './hooks';
28
31
  export * from './navigation/InternalNavigator';
29
32
  export * from './navigation/Locker';
30
33
  export * from './navigation/controllers/ControlledNavigationController';
@@ -33,3 +36,9 @@ export * from './navigation/types';
33
36
  export * from './spine/types';
34
37
  export * from './spine/SpineItemsManager';
35
38
  export * from './spine/Spine';
39
+ export * from './spine/SpineItemsObserver';
40
+ export * from './spine/Pages';
41
+ export * from './spineItem/types';
42
+ export * from './features/Features';
43
+ export * from './cfi';
44
+ export * from './viewport/Viewport';