@prose-reader/core 0.0.41 → 0.0.44

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 (30) hide show
  1. package/dist/createReaderWithEnhancer.d.ts +166 -23
  2. package/dist/enhancers/zoom/elementZoomer.d.ts +18 -0
  3. package/dist/enhancers/zoom/index.d.ts +2 -0
  4. package/dist/enhancers/zoom/types.d.ts +26 -0
  5. package/dist/enhancers/zoom/viewportZoomer.d.ts +18 -0
  6. package/dist/index.js +1 -1
  7. package/dist/reader.d.ts +1 -1
  8. package/dist/settings.d.ts +1 -0
  9. package/dist/spine/cfiLocator.d.ts +1 -1
  10. package/dist/spine/createSpine.d.ts +17 -3
  11. package/dist/spine/locationResolver.d.ts +2 -2
  12. package/dist/spineItem/commonSpineItem.d.ts +1 -1
  13. package/dist/spineItem/createSpineItem.d.ts +2 -2
  14. package/dist/spineItem/prePaginatedSpineItem.d.ts +1 -1
  15. package/dist/spineItem/reflowableSpineItem.d.ts +1 -1
  16. package/dist/spineItemManager.d.ts +1 -1
  17. package/dist/types/Hook.d.ts +3 -0
  18. package/dist/types/Reader.d.ts +14 -11
  19. package/dist/types/Spine.d.ts +2 -4
  20. package/dist/utils/layout.d.ts +7 -0
  21. package/dist/utils/layout.test.d.ts +1 -0
  22. package/dist/{spine/viewportNavigator → viewportNavigator}/manualViewportNavigator.d.ts +12 -12
  23. package/dist/{spine/viewportNavigator → viewportNavigator}/panViewportNavigator.d.ts +6 -6
  24. package/dist/{spine/viewportNavigator → viewportNavigator}/scrollViewportNavigator.d.ts +16 -4
  25. package/dist/viewportNavigator/types.d.ts +33 -0
  26. package/dist/{spine/viewportNavigator → viewportNavigator}/viewportNavigator.d.ts +41 -32
  27. package/package.json +7 -7
  28. package/dist/enhancers/zoom.d.ts +0 -16
  29. package/dist/utils/contentType.d.ts +0 -2
  30. package/dist/utils/url.d.ts +0 -1
@@ -1,15 +1,29 @@
1
- import { BehaviorSubject } from "rxjs";
1
+ import { BehaviorSubject, Observable } from "rxjs";
2
2
  import { Context } from "../context";
3
3
  import { Pagination } from "../pagination";
4
4
  import { SpineItemManager } from "../spineItemManager";
5
+ import { createLocationResolver as createSpineLocationResolver } from "./locationResolver";
6
+ import { createLocationResolver as createSpineItemLocationResolver } from "../spineItem/locationResolver";
7
+ import { createCfiLocator } from "./cfiLocator";
5
8
  import { Hook } from "../types/Hook";
6
9
  import { Spine } from "../types/Spine";
7
- export declare const createSpine: ({ parentElement, context, pagination, iframeEventBridgeElement, spineItemManager, hooks$ }: {
8
- parentElement: HTMLElement;
10
+ import { AdjustedNavigation, Navigation } from "../viewportNavigator/types";
11
+ export declare const createSpine: ({ ownerDocument, context, pagination, iframeEventBridgeElement, spineItemManager, hooks$, spineItemLocator, spineLocator, cfiLocator, navigation$, navigationAdjusted$, currentNavigationPosition$, viewportState$ }: {
12
+ ownerDocument: Document;
9
13
  iframeEventBridgeElement: HTMLElement;
10
14
  context: Context;
11
15
  pagination: Pagination;
12
16
  spineItemManager: SpineItemManager;
13
17
  hooks$: BehaviorSubject<Hook[]>;
18
+ spineItemLocator: ReturnType<typeof createSpineItemLocationResolver>;
19
+ spineLocator: ReturnType<typeof createSpineLocationResolver>;
20
+ cfiLocator: ReturnType<typeof createCfiLocator>;
21
+ navigation$: Observable<Navigation>;
22
+ navigationAdjusted$: Observable<AdjustedNavigation>;
23
+ currentNavigationPosition$: Observable<{
24
+ x: number;
25
+ y: number;
26
+ }>;
27
+ viewportState$: Observable<`free` | `busy`>;
14
28
  }) => Spine;
15
29
  export { Spine };
@@ -117,7 +117,7 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
117
117
  computedWidthScale: number;
118
118
  viewportDimensions?: undefined;
119
119
  };
120
- isImageType: () => boolean | undefined;
120
+ isImageType: () => boolean;
121
121
  isReady: () => boolean;
122
122
  destroy: () => void;
123
123
  isUsingVerticalWriting: () => boolean | undefined;
@@ -286,7 +286,7 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
286
286
  computedWidthScale: number;
287
287
  viewportDimensions?: undefined;
288
288
  };
289
- isImageType: () => boolean | undefined;
289
+ isImageType: () => boolean;
290
290
  isReady: () => boolean;
291
291
  destroy: () => void;
292
292
  isUsingVerticalWriting: () => boolean | undefined;
@@ -92,7 +92,7 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, ifr
92
92
  computedWidthScale: number;
93
93
  viewportDimensions?: undefined;
94
94
  };
95
- isImageType: () => boolean | undefined;
95
+ isImageType: () => boolean;
96
96
  isReady: () => boolean;
97
97
  destroy: () => void;
98
98
  isUsingVerticalWriting: () => boolean | undefined;
@@ -100,7 +100,7 @@ export declare const createSpineItem: ({ item, context, containerElement, iframe
100
100
  computedWidthScale: number;
101
101
  viewportDimensions?: undefined;
102
102
  };
103
- isImageType: () => boolean | undefined;
103
+ isImageType: () => boolean;
104
104
  isReady: () => boolean;
105
105
  destroy: () => void;
106
106
  isUsingVerticalWriting: () => boolean | undefined;
@@ -267,7 +267,7 @@ export declare const createSpineItem: ({ item, context, containerElement, iframe
267
267
  computedWidthScale: number;
268
268
  viewportDimensions?: undefined;
269
269
  };
270
- isImageType: () => boolean | undefined;
270
+ isImageType: () => boolean;
271
271
  isReady: () => boolean;
272
272
  destroy: () => void;
273
273
  isUsingVerticalWriting: () => boolean | undefined;
@@ -95,7 +95,7 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
95
95
  computedWidthScale: number;
96
96
  viewportDimensions?: undefined;
97
97
  };
98
- isImageType: () => boolean | undefined;
98
+ isImageType: () => boolean;
99
99
  isReady: () => boolean;
100
100
  destroy: () => void;
101
101
  isUsingVerticalWriting: () => boolean | undefined;
@@ -94,7 +94,7 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
94
94
  computedWidthScale: number;
95
95
  viewportDimensions?: undefined;
96
96
  };
97
- isImageType: () => boolean | undefined;
97
+ isImageType: () => boolean;
98
98
  isReady: () => boolean;
99
99
  destroy: () => void;
100
100
  isUsingVerticalWriting: () => boolean | undefined;
@@ -126,7 +126,7 @@ export declare const createSpineItemManager: ({ context }: {
126
126
  computedWidthScale: number;
127
127
  viewportDimensions?: undefined;
128
128
  };
129
- isImageType: () => boolean | undefined;
129
+ isImageType: () => boolean;
130
130
  isReady: () => boolean;
131
131
  destroy: () => void;
132
132
  isUsingVerticalWriting: () => boolean | undefined;
@@ -37,6 +37,9 @@ export declare type Hook = {
37
37
  } | {
38
38
  name: `spine.onBeforeContainerCreated`;
39
39
  fn: (payload: HTMLElement) => HTMLElement;
40
+ } | {
41
+ name: `viewportNavigator.onBeforeContainerCreated`;
42
+ fn: (payload: HTMLElement) => HTMLElement;
40
43
  } | {
41
44
  name: `onViewportOffsetAdjust`;
42
45
  fn: () => void;
@@ -6,7 +6,9 @@ import { Manifest } from "@prose-reader/shared";
6
6
  import { Pagination } from "../pagination";
7
7
  import { Observable } from "rxjs";
8
8
  import { createSelection } from "../selection";
9
+ import { createViewportNavigator } from "../viewportNavigator/viewportNavigator";
9
10
  declare type ContextSettings = Parameters<Context[`setSettings`]>[0];
11
+ declare type ViewportNavigator = ReturnType<typeof createViewportNavigator>;
10
12
  export declare type LoadOptions = {
11
13
  cfi?: string;
12
14
  fetchResource?: ((item: Manifest[`spineItems`][number]) => Promise<Response>);
@@ -16,17 +18,18 @@ export declare type Reader = {
16
18
  context: Context;
17
19
  registerHook: RegisterHook;
18
20
  spine: Spine;
21
+ viewportNavigator: ViewportNavigator;
19
22
  manipulateSpineItems: Spine[`manipulateSpineItems`];
20
23
  manipulateSpineItem: Spine[`manipulateSpineItem`];
21
24
  manipulateContainer: (cb: (container: HTMLElement) => boolean) => void;
22
- moveTo: Spine[`viewportNavigator`][`moveTo`];
23
- turnLeft: Spine[`viewportNavigator`][`turnLeft`];
24
- turnRight: Spine[`viewportNavigator`][`turnRight`];
25
- goToPageOfCurrentChapter: Spine[`viewportNavigator`][`goToPageOfCurrentChapter`];
26
- goToPage: Spine[`viewportNavigator`][`goToPage`];
27
- goToUrl: Spine[`viewportNavigator`][`goToUrl`];
28
- goToCfi: Spine[`viewportNavigator`][`goToCfi`];
29
- goToSpineItem: Spine[`viewportNavigator`][`goToSpineItem`];
25
+ moveTo: ViewportNavigator[`moveTo`];
26
+ turnLeft: ViewportNavigator[`turnLeft`];
27
+ turnRight: ViewportNavigator[`turnRight`];
28
+ goToPageOfCurrentChapter: ViewportNavigator[`goToPageOfCurrentChapter`];
29
+ goToPage: ViewportNavigator[`goToPage`];
30
+ goToUrl: ViewportNavigator[`goToUrl`];
31
+ goToCfi: ViewportNavigator[`goToCfi`];
32
+ goToSpineItem: ViewportNavigator[`goToSpineItem`];
30
33
  getFocusedSpineItemIndex: SpineItemManager[`getFocusedSpineItemIndex`];
31
34
  getSpineItem: SpineItemManager[`get`];
32
35
  getSpineItems: SpineItemManager[`getAll`];
@@ -38,8 +41,8 @@ export declare type Reader = {
38
41
  resolveCfi: Spine[`cfiLocator`][`resolveCfi`];
39
42
  generateCfi: Spine[`cfiLocator`][`generateFromRange`];
40
43
  locator: Spine[`locator`];
41
- getCurrentNavigationPosition: Spine[`viewportNavigator`][`getCurrentNavigationPosition`];
42
- getCurrentViewportPosition: Spine[`viewportNavigator`][`getCurrentViewportPosition`];
44
+ getCurrentNavigationPosition: ViewportNavigator[`getCurrentNavigationPosition`];
45
+ getCurrentViewportPosition: ViewportNavigator[`getCurrentViewportPosition`];
43
46
  layout: () => void;
44
47
  load: (manifest: Manifest, loadOptions?: LoadOptions) => void;
45
48
  destroy: () => void;
@@ -55,7 +58,7 @@ export declare type Reader = {
55
58
  }>;
56
59
  ready$: Observable<void>;
57
60
  selection$: Observable<ReturnType<typeof createSelection> | null>;
58
- viewportState$: Spine[`$`][`viewportState$`];
61
+ viewportState$: ViewportNavigator[`$`][`state$`];
59
62
  layout$: Spine[`$`][`layout$`];
60
63
  itemsCreated$: Spine[`$`][`itemsCreated$`];
61
64
  itemsBeforeDestroy$: Spine[`$`][`itemsBeforeDestroy$`];
@@ -1,15 +1,14 @@
1
1
  import { Observable } from "rxjs";
2
2
  import { Manifest } from "@prose-reader/shared";
3
- import { createViewportNavigator } from "../spine/viewportNavigator/viewportNavigator";
4
3
  import { SpineItem } from "../spineItem/createSpineItem";
5
4
  import { createSelection } from "../selection";
6
5
  import { createCfiLocator } from "../spine/cfiLocator";
7
6
  import { createLocationResolver } from "../spine/locationResolver";
8
7
  import { createLocationResolver as createSpineItemLocator } from "../spineItem/locationResolver";
8
+ import { ViewportNavigationEntry } from "../spine/navigationResolver";
9
9
  declare type RequireLayout = boolean;
10
10
  declare type ManipulableSpineItemCallback = Parameters<SpineItem[`manipulateSpineItem`]>[0];
11
11
  declare type ManipulableSpineItemCallbackPayload = Parameters<ManipulableSpineItemCallback>[0];
12
- declare type ViewportNavigator = ReturnType<typeof createViewportNavigator>;
13
12
  declare type CfiLocator = ReturnType<typeof createCfiLocator>;
14
13
  declare type SpineItemLocator = ReturnType<typeof createSpineItemLocator>;
15
14
  declare type Locator = ReturnType<typeof createLocationResolver>;
@@ -18,7 +17,6 @@ declare type Event = {
18
17
  data: ReturnType<typeof createSelection> | null;
19
18
  };
20
19
  export declare type Spine = {
21
- viewportNavigator: ViewportNavigator;
22
20
  element: HTMLElement;
23
21
  locator: Locator;
24
22
  spineItemLocator: SpineItemLocator;
@@ -32,9 +30,9 @@ export declare type Spine = {
32
30
  destroy: () => void;
33
31
  isSelecting: () => boolean | undefined;
34
32
  getSelection: () => Selection | undefined;
33
+ adjustPagination: (position: ViewportNavigationEntry) => Observable<`free` | `busy`>;
35
34
  $: {
36
35
  $: Observable<Event>;
37
- viewportState$: Observable<`free` | `busy`>;
38
36
  layout$: Observable<boolean>;
39
37
  itemsCreated$: Observable<{
40
38
  item: Manifest[`spineItems`][number];
@@ -0,0 +1,7 @@
1
+ export declare const getNewScaledOffset: ({ newScale, oldScale, screenSize, scrollOffset }: {
2
+ screenSize: number;
3
+ pageSize: number;
4
+ scrollOffset: number;
5
+ newScale: number;
6
+ oldScale: number;
7
+ }) => number;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,8 +1,8 @@
1
1
  import { BehaviorSubject } from "rxjs";
2
- import { Context } from "../../context";
3
- import { SpineItemManager } from "../../spineItemManager";
4
- import { createNavigationResolver, ViewportNavigationEntry } from "../navigationResolver";
5
- import { createLocationResolver } from "../locationResolver";
2
+ import { Context } from "../context";
3
+ import { SpineItemManager } from "../spineItemManager";
4
+ import { createNavigationResolver, ViewportNavigationEntry } from "../spine/navigationResolver";
5
+ import { createLocationResolver } from "../spine/locationResolver";
6
6
  export declare const createManualViewportNavigator: ({ navigator, spineItemManager, currentNavigationSubject$, locator, context }: {
7
7
  context: Context;
8
8
  element: HTMLElement;
@@ -41,7 +41,7 @@ export declare const createManualViewportNavigator: ({ navigator, spineItemManag
41
41
  };
42
42
  x: number;
43
43
  y: number;
44
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
44
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
45
45
  url: URL;
46
46
  } | {
47
47
  animate: boolean;
@@ -50,13 +50,13 @@ export declare const createManualViewportNavigator: ({ navigator, spineItemManag
50
50
  };
51
51
  x: number;
52
52
  y: number;
53
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
53
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
54
54
  } | {
55
55
  lastUserExpectedNavigation: undefined;
56
56
  animate: boolean;
57
57
  x: number;
58
58
  y: number;
59
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
59
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
60
60
  } | {
61
61
  lastUserExpectedNavigation: {
62
62
  type: "navigate-from-next-item";
@@ -64,7 +64,7 @@ export declare const createManualViewportNavigator: ({ navigator, spineItemManag
64
64
  animate: boolean;
65
65
  x: number;
66
66
  y: number;
67
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
67
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
68
68
  } | {
69
69
  lastUserExpectedNavigation: {
70
70
  type: "navigate-from-previous-item";
@@ -72,13 +72,13 @@ export declare const createManualViewportNavigator: ({ navigator, spineItemManag
72
72
  animate: boolean;
73
73
  x: number;
74
74
  y: number;
75
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
75
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
76
76
  } | {
77
77
  lastUserExpectedNavigation: undefined;
78
78
  animate: boolean;
79
79
  x: number;
80
80
  y: number;
81
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
81
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
82
82
  } | {
83
83
  animate: boolean;
84
84
  lastUserExpectedNavigation: {
@@ -87,13 +87,13 @@ export declare const createManualViewportNavigator: ({ navigator, spineItemManag
87
87
  };
88
88
  x: number;
89
89
  y: number;
90
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
90
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
91
91
  } | {
92
92
  lastUserExpectedNavigation: undefined;
93
93
  animate: boolean;
94
94
  x: number;
95
95
  y: number;
96
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
96
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
97
97
  }>;
98
98
  };
99
99
  };
@@ -1,9 +1,9 @@
1
1
  import { BehaviorSubject, Subject } from "rxjs";
2
- import { Context } from "../../context";
3
- import { SpineItemManager } from "../../spineItemManager";
4
- import { createNavigationResolver, ViewportNavigationEntry } from "../navigationResolver";
5
- import { createLocationResolver } from "../locationResolver";
6
- import { ViewportPosition } from "../../types";
2
+ import { Context } from "../context";
3
+ import { SpineItemManager } from "../spineItemManager";
4
+ import { createNavigationResolver, ViewportNavigationEntry } from "../spine/navigationResolver";
5
+ import { createLocationResolver } from "../spine/locationResolver";
6
+ import { ViewportPosition } from "../types";
7
7
  export declare const createPanViewportNavigator: ({ getCurrentViewportPosition, navigator, spineItemManager, locator, context, currentNavigationSubject$ }: {
8
8
  context: Context;
9
9
  element: HTMLElement;
@@ -44,7 +44,7 @@ export declare const createPanViewportNavigator: ({ getCurrentViewportPosition,
44
44
  } | undefined;
45
45
  x: number;
46
46
  y: number;
47
- spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
47
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
48
48
  }>;
49
49
  };
50
50
  };
@@ -1,19 +1,30 @@
1
1
  import { BehaviorSubject, Observable } from "rxjs";
2
- import { Context } from "../../context";
3
- import { createNavigationResolver, ViewportNavigationEntry } from "../navigationResolver";
4
- export declare const createScrollViewportNavigator: ({ context, element, navigator, currentNavigationSubject$ }: {
2
+ import { Context } from "../context";
3
+ import { Spine } from "../spine/createSpine";
4
+ import { createNavigationResolver, ViewportNavigationEntry } from "../spine/navigationResolver";
5
+ import { SpineItemManager } from "../spineItemManager";
6
+ import { ViewportPosition } from "../types";
7
+ declare type ScaledDownPosition = ViewportPosition;
8
+ export declare const createScrollViewportNavigator: ({ context, element, navigator, currentNavigationSubject$, spine }: {
5
9
  context: Context;
6
10
  element: HTMLElement;
7
11
  navigator: ReturnType<typeof createNavigationResolver>;
8
12
  currentNavigationSubject$: BehaviorSubject<ViewportNavigationEntry>;
13
+ spine: Spine;
14
+ spineItemManager: SpineItemManager;
9
15
  }) => {
10
16
  destroy: () => void;
11
17
  adjustReadingOffset: ({ x, y }: {
12
18
  x: number;
13
19
  y: number;
14
20
  }) => boolean;
21
+ getNavigationForPosition: (position: ScaledDownPosition) => ViewportNavigationEntry;
22
+ getCurrentViewportPosition: () => {
23
+ x: number;
24
+ y: number;
25
+ };
15
26
  $: {
16
- state$: Observable<string>;
27
+ state$: Observable<"start" | "end">;
17
28
  navigation$: Observable<{
18
29
  position: ViewportNavigationEntry;
19
30
  animate: boolean;
@@ -21,3 +32,4 @@ export declare const createScrollViewportNavigator: ({ context, element, navigat
21
32
  }>;
22
33
  };
23
34
  };
35
+ export {};
@@ -0,0 +1,33 @@
1
+ import { SpineItem } from "../spineItem/createSpineItem";
2
+ export declare type LastUserExpectedNavigation = undefined | {
3
+ type: `navigate-from-previous-item`;
4
+ } | {
5
+ type: `navigate-from-next-item`;
6
+ } | {
7
+ type: `navigate-from-cfi`;
8
+ data: string;
9
+ } | {
10
+ type: `navigate-from-anchor`;
11
+ data: string;
12
+ };
13
+ export declare type Navigation = {
14
+ position: {
15
+ x: number;
16
+ y: number;
17
+ spineItem?: SpineItem | undefined;
18
+ };
19
+ triggeredBy: `scroll` | `manual` | `adjust`;
20
+ animation: false | `turn` | `snap`;
21
+ lastUserExpectedNavigation: LastUserExpectedNavigation;
22
+ };
23
+ export declare type AdjustedNavigation = {
24
+ previousNavigationPosition: {
25
+ x: number;
26
+ y: number;
27
+ };
28
+ adjustedSpinePosition: {
29
+ x: number;
30
+ y: number;
31
+ };
32
+ areDifferent: boolean;
33
+ };
@@ -1,24 +1,29 @@
1
- import { Context } from "../../context";
2
- import { Pagination } from "../../pagination";
3
- import { SpineItemManager } from "../../spineItemManager";
4
- import { createLocationResolver } from "../locationResolver";
5
- import { ViewportNavigationEntry } from "../navigationResolver";
6
- import { Observable } from "rxjs";
7
- import { SpineItem } from "../../spineItem/createSpineItem";
8
- import { createCfiLocator } from "../cfiLocator";
9
- import { Hook } from "../../types/Hook";
10
- export declare const createViewportNavigator: ({ spineItemManager, context, pagination, element, cfiLocator, locator, hooks$ }: {
1
+ import { Context } from "../context";
2
+ import { Pagination } from "../pagination";
3
+ import { SpineItemManager } from "../spineItemManager";
4
+ import { createLocationResolver } from "../spine/locationResolver";
5
+ import { BehaviorSubject, Observable } from "rxjs";
6
+ import { SpineItem } from "../spineItem/createSpineItem";
7
+ import { createCfiLocator } from "../spine/cfiLocator";
8
+ import { Hook } from "../types/Hook";
9
+ import { LastUserExpectedNavigation, Navigation } from "./types";
10
+ import { Spine } from "../spine/createSpine";
11
+ export declare const createViewportNavigator: ({ spineItemManager, context, pagination, parentElement, cfiLocator, spineLocator, hooks$, spine }: {
11
12
  spineItemManager: SpineItemManager;
12
13
  pagination: Pagination;
13
14
  context: Context;
14
- element: HTMLElement;
15
+ parentElement: HTMLElement;
15
16
  cfiLocator: ReturnType<typeof createCfiLocator>;
16
- locator: ReturnType<typeof createLocationResolver>;
17
- hooks$: Observable<Hook[]>;
17
+ spineLocator: ReturnType<typeof createLocationResolver>;
18
+ hooks$: BehaviorSubject<Hook[]>;
19
+ spine: Spine;
18
20
  }) => {
19
21
  destroy: () => void;
20
22
  layout: () => void;
21
- getCurrentNavigationPosition: () => ViewportNavigationEntry;
23
+ getCurrentNavigationPosition: () => {
24
+ x: number;
25
+ y: number;
26
+ };
22
27
  getCurrentViewportPosition: (() => {
23
28
  x: number;
24
29
  y: number;
@@ -42,8 +47,14 @@ export declare const createViewportNavigator: ({ spineItemManager, context, pagi
42
47
  }) => void;
43
48
  goToPageOfCurrentChapter: (pageIndex: number) => void;
44
49
  adjustNavigation: (spineItem: SpineItem) => Observable<{
45
- previousNavigationPosition: ViewportNavigationEntry;
46
- adjustedSpinePosition: ViewportNavigationEntry;
50
+ previousNavigationPosition: {
51
+ x: number;
52
+ y: number;
53
+ };
54
+ adjustedSpinePosition: {
55
+ x: number;
56
+ y: number;
57
+ };
47
58
  areDifferent: boolean;
48
59
  }>;
49
60
  moveTo: ((delta: {
@@ -59,27 +70,25 @@ export declare const createViewportNavigator: ({ spineItemManager, context, pagi
59
70
  start?: boolean | undefined;
60
71
  final?: boolean | undefined;
61
72
  } | undefined) => void);
62
- getLastUserExpectedNavigation: () => {
63
- type: `navigate-from-previous-item`;
64
- } | {
65
- type: `navigate-from-next-item`;
66
- } | {
67
- type: `navigate-from-cfi`;
68
- data: string;
69
- } | {
70
- type: `navigate-from-anchor`;
71
- data: string;
72
- } | undefined;
73
+ getLastUserExpectedNavigation: () => LastUserExpectedNavigation;
74
+ element: HTMLElement;
73
75
  $: {
74
76
  state$: Observable<"free" | "busy">;
75
- navigation$: Observable<{
76
- position: {
77
+ navigation$: Observable<Navigation>;
78
+ navigationAdjustedAfterLayout$: Observable<{
79
+ previousNavigationPosition: {
77
80
  x: number;
78
81
  y: number;
79
- spineItem?: SpineItem;
80
82
  };
81
- triggeredBy: `manual` | `adjust` | `scroll`;
82
- animation: false | `turn` | `snap`;
83
+ adjustedSpinePosition: {
84
+ x: number;
85
+ y: number;
86
+ };
87
+ areDifferent: boolean;
88
+ }>;
89
+ currentNavigationPosition$: Observable<{
90
+ x: number;
91
+ y: number;
83
92
  }>;
84
93
  };
85
94
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/core",
3
- "version": "0.0.41",
3
+ "version": "0.0.44",
4
4
  "main": "dist/index.js",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -9,7 +9,7 @@
9
9
  "scripts": {
10
10
  "start": "concurrently -n src,types \"yarn start-src\" \"yarn start-types\"",
11
11
  "start-src": "NODE_ENV=development webpack build --config ./webpack.config.js --watch",
12
- "start-types": "yarn tsc -w --declaration --noEmit false --emitDeclarationOnly",
12
+ "start-types": "yarn tsc -w --preserveWatchOutput --declaration --noEmit false --emitDeclarationOnly",
13
13
  "build": "NODE_ENV=development webpack build --config ./webpack.config.js && yarn build-types",
14
14
  "build-types": "yarn tsc --declaration --noEmit false --emitDeclarationOnly",
15
15
  "build:prod": "NODE_ENV=production webpack build --config ./webpack.config.js",
@@ -18,7 +18,7 @@
18
18
  "tsc": "tsc"
19
19
  },
20
20
  "dependencies": {
21
- "@prose-reader/shared": "^0.0.5"
21
+ "@prose-reader/shared": "^0.0.6"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "rxjs": "*"
@@ -26,18 +26,18 @@
26
26
  "devDependencies": {
27
27
  "@typescript-eslint/eslint-plugin": "^5.0.0",
28
28
  "@typescript-eslint/parser": "^5.0.0",
29
- "concurrently": "^6.3.0",
29
+ "concurrently": "^6.5.1",
30
30
  "eslint": "^7.32.0",
31
31
  "eslint-config-standard": "^16.0.3",
32
32
  "eslint-plugin-import": "^2.25.2",
33
- "eslint-plugin-jest": "^25.3.0",
33
+ "eslint-plugin-jest": "^25.3.2",
34
34
  "html-webpack-plugin": "^5.5.0",
35
- "terser-webpack-plugin": "^5.2.5",
35
+ "terser-webpack-plugin": "^5.3.0",
36
36
  "ts-loader": "^9.2.6",
37
37
  "typescript": "*",
38
38
  "webpack": "^5.65.0",
39
39
  "webpack-bundle-analyzer": "^4.5.0",
40
40
  "webpack-cli": "^4.9.1"
41
41
  },
42
- "gitHead": "61fb143e4b0072a043c5d1ae00f91de31eaebd0a"
42
+ "gitHead": "693da1fcbc70bc97f2574db4803a25d8b3df0823"
43
43
  }
@@ -1,16 +0,0 @@
1
- import { Enhancer } from "./types";
2
- export declare const zoomEnhancer: Enhancer<{}, {
3
- zoom: {
4
- enter: (imgElement: HTMLImageElement) => void;
5
- exit: () => void;
6
- move: (position: {
7
- x: number;
8
- y: number;
9
- } | undefined, details: {
10
- isFirst: boolean;
11
- isLast: boolean;
12
- }) => void;
13
- isEnabled: () => boolean;
14
- scale: (scale: number) => void;
15
- };
16
- }>;
@@ -1,2 +0,0 @@
1
- export declare const detectContentType: (name: string) => "image/png" | "image/jpg" | "image/jpeg" | "text/plain" | "image/webp" | undefined;
2
- export declare const parseContentType: (str: string) => string | undefined;
@@ -1 +0,0 @@
1
- export declare const getUrlExtension: (url: string) => string;