@prose-reader/core 1.197.0 → 1.198.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 (45) hide show
  1. package/dist/createReaderWithEnhancer.d.ts +12 -14
  2. package/dist/enhancers/layoutEnhancer/layoutEnhancer.d.ts +7 -1
  3. package/dist/enhancers/layoutEnhancer/layoutInfo.d.ts +25 -0
  4. package/dist/enhancers/loading/loadingEnhancer.d.ts +1 -1
  5. package/dist/enhancers/navigation/resolvers/getNavigationForLeftOrTopPage.d.ts +3 -2
  6. package/dist/enhancers/navigation/resolvers/getNavigationForLeftSinglePage.d.ts +4 -3
  7. package/dist/enhancers/navigation/resolvers/getNavigationForRightOrBottomPage.d.ts +3 -2
  8. package/dist/enhancers/navigation/resolvers/getNavigationForRightSinglePage.d.ts +4 -3
  9. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForLeftPage.d.ts +4 -4
  10. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForRightPage.d.ts +4 -4
  11. package/dist/enhancers/pagination/enhancer.d.ts +2 -1
  12. package/dist/enhancers/pagination/pagination.d.ts +2 -1
  13. package/dist/enhancers/pagination/progression.d.ts +2 -1
  14. package/dist/index.js +253 -212
  15. package/dist/index.js.map +1 -1
  16. package/dist/index.umd.cjs +252 -211
  17. package/dist/index.umd.cjs.map +1 -1
  18. package/dist/navigation/InternalNavigator.d.ts +6 -5
  19. package/dist/navigation/Navigator.d.ts +8 -8
  20. package/dist/navigation/consolidation/consolidateWithPagination.d.ts +2 -2
  21. package/dist/navigation/resolvers/NavigationResolver.d.ts +12 -11
  22. package/dist/navigation/resolvers/getAdjustedPositionForSpread.d.ts +2 -1
  23. package/dist/navigation/resolvers/getAdjustedPositionWithSafeEdge.d.ts +2 -1
  24. package/dist/navigation/resolvers/getNavigationForPosition.d.ts +2 -1
  25. package/dist/navigation/resolvers/getNavigationFromSpineItemPosition.d.ts +2 -2
  26. package/dist/navigation/restoration/restorePosition.d.ts +2 -1
  27. package/dist/navigation/tests/SpineItemsManagerMock.d.ts +1 -1
  28. package/dist/navigation/viewport/ViewportNavigator.d.ts +6 -5
  29. package/dist/reader.d.ts +7 -9
  30. package/dist/spine/SpineLayout.d.ts +5 -6
  31. package/dist/spine/layout/layoutItem.d.ts +2 -2
  32. package/dist/spine/locator/SpineLocator.d.ts +17 -26
  33. package/dist/spine/locator/getItemVisibilityForPosition.d.ts +2 -1
  34. package/dist/spine/locator/getSpineItemFromPosition.d.ts +2 -1
  35. package/dist/spine/locator/getSpinePositionFromSpineItemPageIndex.d.ts +1 -1
  36. package/dist/spine/locator/getSpinePositionFromSpineItemPosition.d.ts +4 -4
  37. package/dist/spine/locator/getVisibleSpineItemsFromPosition.d.ts +2 -1
  38. package/dist/spine/types.d.ts +35 -16
  39. package/dist/spineItem/layout/getSpineItemPagesPosition.d.ts +1 -1
  40. package/dist/spineItem/layout/getSpineItemPositionFromPageIndex.d.ts +2 -2
  41. package/dist/spineItem/locationResolver.d.ts +8 -18
  42. package/dist/spineItem/navigationResolver.d.ts +4 -4
  43. package/dist/spineItem/types.d.ts +9 -10
  44. package/package.json +3 -3
  45. package/dist/spine/layout/convertViewportPositionToLayoutPosition.d.ts +0 -9
@@ -1,6 +1,6 @@
1
- export declare const createReaderWithEnhancers: (options: Partial<import('./settings/types').CoreInputSettings> & {
1
+ export declare const createReaderWithEnhancers: (options: Partial<import('./settings/types').CoreInputSettings> & Partial<import('./enhancers/layoutEnhancer/types').InputSettings> & {
2
2
  theme?: import('./enhancers/theme').Theme;
3
- } & Partial<import('./enhancers/layoutEnhancer/types').InputSettings> & Partial<import('./enhancers/fonts/types').InputSettings> & {
3
+ } & Partial<import('./enhancers/fonts/types').InputSettings> & {
4
4
  loadingElementCreate?: (options: {
5
5
  container: HTMLElement;
6
6
  item: {
@@ -66,15 +66,15 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
66
66
  } | undefined;
67
67
  getNavigationForSpineItemPage: (params: Omit<Parameters<typeof import('./navigation/resolvers/getNavigationForSpineItemPage').getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
68
68
  getNavigationFromSpineItemPosition: (params: {
69
- spineItemPosition: import('./spineItem/types').UnsafeSpineItemPosition;
69
+ spineItemPosition: import('./spineItem/types').SpineItemPosition;
70
70
  spineItem: import('.').SpineItem;
71
71
  }) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
72
72
  getNavigationForCfi: (cfi: string) => import('./navigation/viewport/ViewportNavigator').ViewportPosition | undefined;
73
73
  getNavigationForLastPage: (spineItem: import('.').SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
74
74
  getNavigationForSpineIndexOrId: (indexOrId: number | string | import('.').SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
75
- getNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
75
+ getNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition | import('./spine/types').SpinePosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
76
76
  getMostPredominantNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
77
- getAdjustedPositionWithSafeEdge: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => {
77
+ getAdjustedPositionWithSafeEdge: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition | import('./spine/types').SpinePosition) => {
78
78
  x: number;
79
79
  y: number;
80
80
  };
@@ -87,11 +87,11 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
87
87
  x: number;
88
88
  y: number;
89
89
  }) => boolean;
90
- getAdjustedPositionForSpread: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
90
+ getAdjustedPositionForSpread: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition | import('./spine/types').SpinePosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
91
91
  spineItemNavigator: {
92
- getNavigationForLastPage: (spineItem: import('.').SpineItem) => import('./spineItem/types').SafeSpineItemPosition;
93
- getNavigationForPosition: (spineItem: import('.').SpineItem, position: import('./spineItem/types').UnsafeSpineItemPosition) => import('./spineItem/types').SafeSpineItemPosition;
94
- getNavigationFromNode: (spineItem: import('.').SpineItem, node: Node, offset: number) => import('./spineItem/types').SafeSpineItemPosition;
92
+ getNavigationForLastPage: (spineItem: import('.').SpineItem) => import('./spineItem/types').SpineItemPosition;
93
+ getNavigationForPosition: (spineItem: import('.').SpineItem, position: import('./spineItem/types').SpineItemPosition) => import('./spineItem/types').SpineItemPosition;
94
+ getNavigationFromNode: (spineItem: import('.').SpineItem, node: Node, offset: number) => import('./spineItem/types').SpineItemPosition;
95
95
  };
96
96
  };
97
97
  };
@@ -106,8 +106,6 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
106
106
  };
107
107
  settings: import('./settings/SettingsInterface').SettingsInterface<NonNullable<import('./settings/types').CoreInputSettings>, NonNullable<import('./settings/types').CoreOutputSettings | undefined>>;
108
108
  element$: import('rxjs').Observable<HTMLElement>;
109
- layout$: import('rxjs').Observable<import('./spine/SpineLayout').LayoutInfo>;
110
- layoutInfo$: import('rxjs').Observable<import('./spine/SpineLayout').LayoutInfo>;
111
109
  viewportState$: import('rxjs').Observable<"free" | "busy">;
112
110
  viewportFree$: import('rxjs').Observable<"free">;
113
111
  state$: import('rxjs').Observable<"idle" | "ready">;
@@ -120,6 +118,8 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
120
118
  }>;
121
119
  destroy$: import('rxjs').Subject<void>;
122
120
  };
121
+ }, "settings"> & import('./enhancers/layoutEnhancer/layoutEnhancer').LayoutEnhancerOutput & {
122
+ 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>;
123
123
  }, "pagination"> & {
124
124
  pagination: Omit<{
125
125
  getState: () => import('./pagination/Pagination').PaginationInfo;
@@ -140,9 +140,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
140
140
  };
141
141
  } & {
142
142
  links$: ReturnType<typeof import('./enhancers/html/links').handleLinks>;
143
- }, "load"> & import('./enhancers/navigation/types').NavigationEnhancerOutput & import('./enhancers/zoom/types').ZoomEnhancerOutput, "settings"> & {
144
- 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>;
145
- } & {
143
+ }, "load"> & import('./enhancers/navigation/types').NavigationEnhancerOutput & import('./enhancers/zoom/types').ZoomEnhancerOutput & {
146
144
  utils: {
147
145
  isOrIsWithinValidLink: (target: Event[`target`]) => boolean;
148
146
  };
@@ -1,6 +1,12 @@
1
+ import { Observable } from 'rxjs';
1
2
  import { SettingsInterface } from '../../settings/SettingsInterface';
2
3
  import { EnhancerOptions, EnhancerOutput, RootEnhancer } from '../types/enhancer';
4
+ import { LayoutInfo } from './layoutInfo';
3
5
  import { InputSettings, OutputSettings } from './types';
4
- 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"> & {
6
+ export type LayoutEnhancerOutput = {
7
+ layout$: Observable<LayoutInfo>;
8
+ layoutInfo$: Observable<LayoutInfo>;
9
+ };
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 & {
5
11
  settings: SettingsInterface<InheritSettings & InputSettings, OutputSettings & InheritComputedSettings>;
6
12
  }>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions & Partial<InputSettings>) => Output;
@@ -0,0 +1,25 @@
1
+ import { Reader } from '../../reader';
2
+ import { SpineItemPageSpineLayout, SpineItemSpineLayout, SpinePosition } from '../../spine/types';
3
+ export type PageLayoutInformation = {
4
+ absolutePageIndex: number;
5
+ itemIndex: number;
6
+ absolutePosition: SpineItemSpineLayout;
7
+ };
8
+ export type LayoutInfo = {
9
+ pages: PageLayoutInformation[];
10
+ };
11
+ export declare const spinePositionToSpineItemSpineLayout: ({ position, pageSize, }: {
12
+ position: SpinePosition;
13
+ pageSize: {
14
+ height: number;
15
+ width: number;
16
+ };
17
+ }) => SpineItemPageSpineLayout;
18
+ export declare const createLayoutInfo: (reader: Reader) => {
19
+ layout$: import('rxjs').Observable<{
20
+ pages: PageLayoutInformation[];
21
+ }>;
22
+ info$: import('rxjs').Observable<{
23
+ pages: PageLayoutInformation[];
24
+ }>;
25
+ };
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Manifest } from '../..';
3
- import { EnhancerOutput } from '../types/enhancer';
4
3
  import { themeEnhancer } from '../theme';
4
+ import { EnhancerOutput } from '../types/enhancer';
5
5
  type Entries = {
6
6
  [key: string]: HTMLElement;
7
7
  };
@@ -1,11 +1,12 @@
1
1
  import { Context } from '../../../context/Context';
2
2
  import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
3
  import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
+ import { SpineItemsManager } from '../../../spine/SpineItemsManager';
4
5
  import { SpineLocator } from '../../../spine/locator/SpineLocator';
6
+ import { SpinePosition } from '../../../spine/types';
5
7
  import { SpineItem } from '../../../spineItem/SpineItem';
6
- import { SpineItemsManager } from '../../../spine/SpineItemsManager';
7
8
  export declare const getNavigationForLeftOrTopPage: ({ position, spineItem, context, navigationResolver, spineItemsManager, spineLocator, computedPageTurnDirection, }: {
8
- position: ViewportPosition;
9
+ position: ViewportPosition | SpinePosition;
9
10
  spineItem: SpineItem;
10
11
  context: Context;
11
12
  spineItemsManager: SpineItemsManager;
@@ -1,13 +1,14 @@
1
1
  import { Context } from '../../../context/Context';
2
2
  import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
3
  import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
- import { SpineLocator } from '../../../spine/locator/SpineLocator';
5
4
  import { SpineItemsManager } from '../../../spine/SpineItemsManager';
5
+ import { SpineLocator } from '../../../spine/locator/SpineLocator';
6
+ import { SpinePosition } from '../../../spine/types';
6
7
  export declare const getNavigationForLeftSinglePage: ({ position, navigationResolver, computedPageTurnDirection, spineItemsManager, spineLocator, context, }: {
7
- position: ViewportPosition;
8
+ position: ViewportPosition | SpinePosition;
8
9
  navigationResolver: NavigationResolver;
9
10
  computedPageTurnDirection: "horizontal" | "vertical";
10
11
  spineItemsManager: SpineItemsManager;
11
12
  spineLocator: SpineLocator;
12
13
  context: Context;
13
- }) => ViewportPosition;
14
+ }) => ViewportPosition | SpinePosition;
@@ -1,11 +1,12 @@
1
1
  import { Context } from '../../../context/Context';
2
2
  import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
3
  import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
- import { SpineLocator } from '../../../spine/locator/SpineLocator';
5
4
  import { SpineItemsManager } from '../../../spine/SpineItemsManager';
5
+ import { SpineLocator } from '../../../spine/locator/SpineLocator';
6
+ import { SpinePosition } from '../../../spine/types';
6
7
  import { SpineItem } from '../../../spineItem/SpineItem';
7
8
  export declare const getNavigationForRightOrBottomPage: ({ position, spineItem, context, navigationResolver, spineItemsManager, spineLocator, computedPageTurnDirection, }: {
8
- position: ViewportPosition;
9
+ position: ViewportPosition | SpinePosition;
9
10
  spineItem: SpineItem;
10
11
  context: Context;
11
12
  spineItemsManager: SpineItemsManager;
@@ -1,13 +1,14 @@
1
1
  import { Context } from '../../../context/Context';
2
2
  import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
3
  import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
- import { SpineLocator } from '../../../spine/locator/SpineLocator';
5
4
  import { SpineItemsManager } from '../../../spine/SpineItemsManager';
5
+ import { SpineLocator } from '../../../spine/locator/SpineLocator';
6
+ import { SpinePosition } from '../../../spine/types';
6
7
  export declare const getNavigationForRightSinglePage: ({ position, navigationResolver, computedPageTurnDirection, spineItemsManager, spineLocator, context, }: {
7
- position: ViewportPosition;
8
+ position: ViewportPosition | SpinePosition;
8
9
  navigationResolver: NavigationResolver;
9
10
  computedPageTurnDirection: "horizontal" | "vertical";
10
11
  spineItemsManager: SpineItemsManager;
11
12
  spineLocator: SpineLocator;
12
13
  context: Context;
13
- }) => ViewportPosition;
14
+ }) => ViewportPosition | SpinePosition;
@@ -1,10 +1,10 @@
1
- import { SpineItemLocator } from '../../../spineItem/locationResolver';
2
1
  import { SpineItem } from '../../../spineItem/SpineItem';
3
- import { SafeSpineItemPosition, UnsafeSpineItemPosition } from '../../../spineItem/types';
2
+ import { SpineItemLocator } from '../../../spineItem/locationResolver';
3
+ import { SpineItemPosition } from '../../../spineItem/types';
4
4
  export declare const getSpineItemPositionForLeftPage: ({ position, spineItem, pageHeight, pageWidth, spineItemLocator, }: {
5
- position: UnsafeSpineItemPosition;
5
+ position: SpineItemPosition;
6
6
  spineItem: SpineItem;
7
7
  pageWidth: number;
8
8
  pageHeight: number;
9
9
  spineItemLocator: SpineItemLocator;
10
- }) => SafeSpineItemPosition;
10
+ }) => SpineItemPosition;
@@ -1,10 +1,10 @@
1
- import { SpineItemLocator } from '../../../spineItem/locationResolver';
2
1
  import { SpineItem } from '../../../spineItem/SpineItem';
3
- import { SafeSpineItemPosition, UnsafeSpineItemPosition } from '../../../spineItem/types';
2
+ import { SpineItemLocator } from '../../../spineItem/locationResolver';
3
+ import { SpineItemPosition } from '../../../spineItem/types';
4
4
  export declare const getSpineItemPositionForRightPage: ({ position, spineItem, pageHeight, pageWidth, spineItemLocator, }: {
5
- position: UnsafeSpineItemPosition;
5
+ position: SpineItemPosition;
6
6
  spineItem: SpineItem;
7
7
  pageWidth: number;
8
8
  pageHeight: number;
9
9
  spineItemLocator: SpineItemLocator;
10
- }) => SafeSpineItemPosition;
10
+ }) => SpineItemPosition;
@@ -1,9 +1,10 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { PaginationInfo } from '../../pagination/Pagination';
3
+ import { LayoutEnhancerOutput } from '../layoutEnhancer/layoutEnhancer';
3
4
  import { EnhancerOutput, RootEnhancer } from '../types/enhancer';
4
5
  import { ConsolidatedResource, LocatableResource } from './locate';
5
6
  import { ExtraPaginationInfo } from './types';
6
- export declare const paginationEnhancer: <InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer>, PaginationOutput extends Omit<InheritOutput["pagination"], "state$" | "state"> & {
7
+ export declare const paginationEnhancer: <InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer> & LayoutEnhancerOutput, PaginationOutput extends Omit<InheritOutput["pagination"], "state$" | "state"> & {
7
8
  state$: Observable<PaginationInfo & ExtraPaginationInfo>;
8
9
  state: PaginationInfo & ExtraPaginationInfo;
9
10
  }>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => Omit<InheritOutput, "pagination"> & {
@@ -1,10 +1,11 @@
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
5
  import { trackChapterInfo } from './chapters';
5
6
  import { EnhancerPaginationInto, ExtraPaginationInfo } from './types';
6
7
  export declare const mapPaginationInfoToExtendedInfo: (reader: Reader, paginationInfo: PaginationInfo, chaptersInfo: ObservedValueOf<ReturnType<typeof trackChapterInfo>>, percentageEstimateOfBook: number) => Observable<Omit<ExtraPaginationInfo, "beginAbsolutePageIndex" | "endAbsolutePageIndex" | "beginAbsolutePageIndex" | "numberOfTotalPages">>;
7
- export declare const trackPaginationInfo: (reader: Reader) => {
8
+ export declare const trackPaginationInfo: (reader: Reader & LayoutEnhancerOutput) => {
8
9
  paginationInfo$: Observable<EnhancerPaginationInto>;
9
10
  getPaginationInfo: () => EnhancerPaginationInto;
10
11
  };
@@ -1,6 +1,7 @@
1
1
  import { Reader } from '../../reader';
2
2
  import { SpineItem } from '../../spineItem/SpineItem';
3
- export declare const getPercentageEstimate: (reader: Reader, currentSpineIndex: number, pageIndex: number, currentPosition: {
3
+ import { LayoutEnhancerOutput } from '../layoutEnhancer/layoutEnhancer';
4
+ export declare const getPercentageEstimate: (reader: Reader & LayoutEnhancerOutput, currentSpineIndex: number, pageIndex: number, currentPosition: {
4
5
  x: number;
5
6
  y: number;
6
7
  }, currentItem: SpineItem) => import('rxjs').Observable<number>;