@prose-reader/core 1.201.0 → 1.203.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 (32) hide show
  1. package/dist/createReaderWithEnhancer.d.ts +10 -10
  2. package/dist/enhancers/{layoutEnhancer → layout}/types.d.ts +1 -0
  3. package/dist/enhancers/layout/viewportMode.d.ts +3 -0
  4. package/dist/enhancers/navigation/navigators/manualNavigator.d.ts +1 -1
  5. package/dist/enhancers/pagination/enhancer.d.ts +1 -1
  6. package/dist/enhancers/pagination/pagination.d.ts +1 -1
  7. package/dist/enhancers/pagination/progression.d.ts +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +169 -96
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.umd.cjs +171 -97
  12. package/dist/index.umd.cjs.map +1 -1
  13. package/dist/navigation/InternalNavigator.d.ts +1 -1
  14. package/dist/navigation/Navigator.d.ts +4 -2
  15. package/dist/navigation/UserScrollNavigation.d.ts +18 -0
  16. package/dist/navigation/consolidation/mapUserNavigationToInternal.d.ts +1 -1
  17. package/dist/navigation/controllers/ScrollNavigationController.d.ts +1 -0
  18. package/dist/navigation/tests/utils.d.ts +0 -11
  19. package/dist/navigation/types.d.ts +11 -0
  20. package/dist/reader.d.ts +2 -2
  21. package/dist/settings/SettingsManagerOverload.d.ts +1 -0
  22. package/dist/spine/loader/SpineItemsLoader.d.ts +2 -1
  23. package/dist/spineItem/renderer/DocumentRenderer.d.ts +4 -1
  24. package/dist/utils/rxjs.d.ts +1 -0
  25. package/dist/viewport/Viewport.d.ts +5 -1
  26. package/package.json +3 -3
  27. package/dist/navigation/UserNavigator.d.ts +0 -29
  28. package/dist/enhancers/{layoutEnhancer → layout}/SettingsManager.d.ts +1 -1
  29. /package/dist/enhancers/{layoutEnhancer → layout}/createMovingSafePan$.d.ts +0 -0
  30. /package/dist/enhancers/{layoutEnhancer → layout}/fixReflowable.d.ts +0 -0
  31. /package/dist/enhancers/{layoutEnhancer → layout}/layoutEnhancer.d.ts +0 -0
  32. /package/dist/enhancers/{layoutEnhancer → layout}/layoutInfo.d.ts +0 -0
@@ -6,10 +6,10 @@ import { SpinePosition } from '../spine/types';
6
6
  import { SpineItemPosition } from '../spineItem/types';
7
7
  import { DestroyableClass } from '../utils/DestroyableClass';
8
8
  import { Locker } from './Locker';
9
- import { UserNavigationEntry } from './UserNavigator';
10
9
  import { ControlledNavigationController, DeprecatedViewportPosition } from './controllers/ControlledNavigationController';
11
10
  import { ScrollNavigationController } from './controllers/ScrollNavigationController';
12
11
  import { createNavigationResolver } from './resolvers/NavigationResolver';
12
+ import { UserNavigationEntry } from './types';
13
13
  export type NavigationConsolidation = {
14
14
  spineItemHeight?: number;
15
15
  spineItemWidth?: number;
@@ -5,8 +5,10 @@ import { Spine } from '../spine/Spine';
5
5
  import { SpineItemsManager } from '../spine/SpineItemsManager';
6
6
  import { Viewport } from '../viewport/Viewport';
7
7
  import { InternalNavigator } from './InternalNavigator';
8
+ import { Locker } from './Locker';
8
9
  import { ControlledNavigationController } from './controllers/ControlledNavigationController';
9
10
  import { ScrollNavigationController } from './controllers/ScrollNavigationController';
11
+ import { UserNavigationEntry } from './types';
10
12
  export declare const createNavigator: ({ spineItemsManager, context, hookManager, spine, settings, viewport, }: {
11
13
  spineItemsManager: SpineItemsManager;
12
14
  context: Context;
@@ -20,9 +22,9 @@ export declare const createNavigator: ({ spineItemsManager, context, hookManager
20
22
  internalNavigator: InternalNavigator;
21
23
  scrollNavigationController: ScrollNavigationController;
22
24
  controlledNavigationController: ControlledNavigationController;
23
- isLocked$: import('rxjs').Observable<boolean>;
25
+ locker: Locker;
24
26
  viewportState$: import('rxjs').Observable<"free" | "busy">;
25
- navigate: (to: import('./UserNavigator').UserNavigationEntry) => void;
27
+ navigate: (to: UserNavigationEntry) => void;
26
28
  lock(): () => void;
27
29
  navigationResolver: {
28
30
  getNavigationForUrl: (url: string | URL) => {
@@ -0,0 +1,18 @@
1
+ import { Subject } from 'rxjs';
2
+ import { Context } from '../context/Context';
3
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
+ import { Spine } from '../spine/Spine';
5
+ import { DestroyableClass } from '../utils/DestroyableClass';
6
+ import { Locker } from './Locker';
7
+ import { ScrollNavigationController } from './controllers/ScrollNavigationController';
8
+ import { UserNavigationEntry } from './types';
9
+ export declare class UserScrollNavigation extends DestroyableClass {
10
+ protected settings: ReaderSettingsManager;
11
+ protected context: Context;
12
+ protected spine: Spine;
13
+ protected scrollNavigationController: ScrollNavigationController;
14
+ protected locker: Locker;
15
+ protected navigationSubject: Subject<UserNavigationEntry>;
16
+ navigation$: import('rxjs').Observable<UserNavigationEntry>;
17
+ constructor(settings: ReaderSettingsManager, context: Context, spine: Spine, scrollNavigationController: ScrollNavigationController, locker: Locker);
18
+ }
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
- import { UserNavigationEntry } from '../UserNavigator';
3
2
  import { InternalNavigationEntry, InternalNavigationInput } from '../InternalNavigator';
3
+ import { UserNavigationEntry } from '../types';
4
4
  export declare const mapUserNavigationToInternal: (stream: Observable<[UserNavigationEntry, InternalNavigationEntry]>) => Observable<{
5
5
  navigation: InternalNavigationInput;
6
6
  previousNavigation: InternalNavigationEntry;
@@ -19,6 +19,7 @@ export declare class ScrollNavigationController extends ReactiveEntity<{
19
19
  protected scrollingSubject: BehaviorSubject<boolean>;
20
20
  isScrolling$: Observable<boolean>;
21
21
  isNavigating$: Observable<boolean>;
22
+ userScroll$: Observable<Event>;
22
23
  constructor(viewport: Viewport, settings: ReaderSettingsManager, hookManager: HookManager, spine: Spine, context: Context);
23
24
  protected setViewportPosition: ({ position }: ViewportNavigationEntry) => void;
24
25
  navigate(navigation: ViewportNavigationEntry): void;
@@ -4,15 +4,4 @@ import { HookManager } from '../../hooks/HookManager';
4
4
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
5
  import { Spine } from '../../spine/Spine';
6
6
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
7
- import { InternalNavigator } from '../InternalNavigator';
8
- import { UserNavigator } from '../UserNavigator';
9
7
  export declare const generateItems: (size: number, number: number, context: Context, settings: ReaderSettingsManager, hookManager: HookManager, spine: Spine, spineItemsManager: SpineItemsManager) => SpineItem[];
10
- export declare const createNavigator: () => {
11
- internalNavigator: InternalNavigator;
12
- userNavigator: UserNavigator;
13
- context: Context;
14
- spineItemsManagerMock: SpineItemsManager;
15
- spine: Spine;
16
- settings: ReaderSettingsManager;
17
- hookManager: HookManager<import('../../hooks/types').CoreHook>;
18
- };
@@ -0,0 +1,11 @@
1
+ import { SpinePosition } from '../spine/types';
2
+ import { DeprecatedViewportPosition } from './controllers/ControlledNavigationController';
3
+ export type UserNavigationEntry = {
4
+ position?: DeprecatedViewportPosition | SpinePosition;
5
+ spineItem?: number | string;
6
+ url?: string | URL;
7
+ cfi?: string;
8
+ animation?: boolean | "turn" | "snap";
9
+ type?: "api" | "scroll";
10
+ direction?: "left" | "right" | "top" | "bottom";
11
+ };
package/dist/reader.d.ts CHANGED
@@ -53,9 +53,9 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
53
53
  internalNavigator: import('./navigation/InternalNavigator').InternalNavigator;
54
54
  scrollNavigationController: import('./navigation/controllers/ScrollNavigationController').ScrollNavigationController;
55
55
  controlledNavigationController: import('./navigation/controllers/ControlledNavigationController').ControlledNavigationController;
56
- isLocked$: import('rxjs').Observable<boolean>;
56
+ locker: import('./navigation/Locker').Locker;
57
57
  viewportState$: import('rxjs').Observable<"free" | "busy">;
58
- navigate: (to: import('./navigation/UserNavigator').UserNavigationEntry) => void;
58
+ navigate: (to: import('./navigation/types').UserNavigationEntry) => void;
59
59
  lock(): () => void;
60
60
  navigationResolver: {
61
61
  getNavigationForUrl: (url: string | URL) => {
@@ -18,6 +18,7 @@ export declare abstract class SettingsManagerOverload<InputSettings, OutputSetti
18
18
  };
19
19
  update(settings: Partial<InputSettings & ParentInputSettings>): void;
20
20
  get values(): ParentOutputSettings & OutputSettings;
21
+ watch<K extends keyof ObservedValueOf<typeof this.values$>>(key: K): Observable<(ParentOutputSettings & OutputSettings)[K]>;
21
22
  watch<K extends keyof ObservedValueOf<typeof this.values$>>(keys: K[]): Observable<Pick<ParentOutputSettings & OutputSettings, K>>;
22
23
  destroy(): void;
23
24
  }
@@ -1,3 +1,4 @@
1
+ import { SpineItem } from '../..';
1
2
  import { Context } from '../../context/Context';
2
3
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
3
4
  import { DestroyableClass } from '../../utils/DestroyableClass';
@@ -12,6 +13,6 @@ export declare class SpineItemsLoader extends DestroyableClass {
12
13
  protected spineLayout: SpineLayout;
13
14
  private forcedOpenSubject;
14
15
  constructor(context: Context, spineItemsManager: SpineItemsManager, spineLocator: SpineLocator, settings: ReaderSettingsManager, spineLayout: SpineLayout);
15
- forceOpen(spineItems: number[]): () => void;
16
+ forceOpen(spineItems: (number | SpineItem)[]): () => void;
16
17
  destroy(): void;
17
18
  }
@@ -20,6 +20,7 @@ type LayoutParams = {
20
20
  minimumWidth: number;
21
21
  };
22
22
  export declare abstract class DocumentRenderer extends DestroyableClass {
23
+ static readonly DOCUMENT_CONTAINER_CLASS_NAME = "prose-reader-document-container";
23
24
  private triggerSubject;
24
25
  protected context: Context;
25
26
  protected settings: ReaderSettingsManager;
@@ -30,7 +31,7 @@ export declare abstract class DocumentRenderer extends DestroyableClass {
30
31
  protected stateSubject: BehaviorSubject<"loading" | "idle" | "loaded" | "unloading">;
31
32
  protected unload$: Observable<undefined>;
32
33
  protected load$: Observable<undefined>;
33
- documentContainer: HTMLElement | undefined;
34
+ private _documentContainer;
34
35
  constructor(params: {
35
36
  context: Context;
36
37
  settings: ReaderSettingsManager;
@@ -39,6 +40,7 @@ export declare abstract class DocumentRenderer extends DestroyableClass {
39
40
  containerElement: HTMLElement;
40
41
  resourcesHandler: ResourceHandler;
41
42
  });
43
+ protected setDocumentContainer(element: HTMLElement): void;
42
44
  protected attach(): void;
43
45
  protected detach(): void;
44
46
  get state$(): BehaviorSubject<"loading" | "idle" | "loaded" | "unloading">;
@@ -65,6 +67,7 @@ export declare abstract class DocumentRenderer extends DestroyableClass {
65
67
  height: number;
66
68
  } | undefined>;
67
69
  abstract getDocumentFrame(): HTMLIFrameElement | undefined;
70
+ get documentContainer(): HTMLElement | undefined;
68
71
  get writingMode(): `vertical-rl` | `horizontal-tb` | undefined;
69
72
  get readingDirection(): `rtl` | `ltr` | undefined;
70
73
  get renditionLayout(): "reflowable" | "pre-paginated";
@@ -7,3 +7,4 @@ export declare const deferNextResult: <T>(stream: Observable<T>) => () => Observ
7
7
  export declare function idle(): Observable<void>;
8
8
  export declare function deferIdle<T>(callback: () => Observable<T>): Observable<T>;
9
9
  export declare const observeMutation: (target: Node, options?: MutationObserverInit) => Observable<MutationRecord[]>;
10
+ export declare function observeIntersection(element: HTMLElement, options?: IntersectionObserverInit): Observable<IntersectionObserverEntry[]>;
@@ -3,11 +3,15 @@ import { ReactiveEntity } from '../utils/ReactiveEntity';
3
3
  import { AbsoluteViewport, RelativeViewport } from './types';
4
4
  type State = {
5
5
  element: HTMLElement;
6
+ pageSize: {
7
+ width: number;
8
+ height: number;
9
+ };
6
10
  };
7
11
  export declare class Viewport extends ReactiveEntity<State> {
8
12
  protected context: Context;
9
13
  constructor(context: Context);
10
- getPageSize(): {
14
+ protected calculatePageSize(): {
11
15
  width: number;
12
16
  height: number;
13
17
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/core",
3
- "version": "1.201.0",
3
+ "version": "1.203.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.umd.cjs",
6
6
  "module": "./dist/index.js",
@@ -23,7 +23,7 @@
23
23
  "tsc": "tsc"
24
24
  },
25
25
  "dependencies": {
26
- "@prose-reader/shared": "^1.201.0"
26
+ "@prose-reader/shared": "^1.203.0"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "rxjs": "*"
@@ -31,5 +31,5 @@
31
31
  "devDependencies": {
32
32
  "happy-dom": "^17.1.0"
33
33
  },
34
- "gitHead": "bf5a124e26d14cd42d88e623a85f010c08cc44e8"
34
+ "gitHead": "3d7485595c3a36462daf1921b08454d7cba84dc5"
35
35
  }
@@ -1,29 +0,0 @@
1
- import { Observable, Subject } from 'rxjs';
2
- import { Context } from '../context/Context';
3
- import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
- import { Spine } from '../spine/Spine';
5
- import { SpinePosition } from '../spine/types';
6
- import { DestroyableClass } from '../utils/DestroyableClass';
7
- import { Locker } from './Locker';
8
- import { DeprecatedViewportPosition } from './controllers/ControlledNavigationController';
9
- export type UserNavigationEntry = {
10
- position?: DeprecatedViewportPosition | SpinePosition;
11
- spineItem?: number | string;
12
- url?: string | URL;
13
- cfi?: string;
14
- animation?: boolean | "turn" | "snap";
15
- type?: "api" | "scroll";
16
- direction?: "left" | "right" | "top" | "bottom";
17
- };
18
- export declare class UserNavigator extends DestroyableClass {
19
- protected settings: ReaderSettingsManager;
20
- protected scrollNavigatorElement$: Observable<HTMLElement | undefined>;
21
- protected context: Context;
22
- protected scrollHappeningFromBrowser$: Observable<unknown>;
23
- protected spine: Spine;
24
- protected navigationSubject: Subject<UserNavigationEntry>;
25
- locker: Locker;
26
- navigation$: Observable<UserNavigationEntry>;
27
- constructor(settings: ReaderSettingsManager, scrollNavigatorElement$: Observable<HTMLElement | undefined>, context: Context, scrollHappeningFromBrowser$: Observable<unknown>, spine: Spine);
28
- navigate(to: UserNavigationEntry): void;
29
- }
@@ -1,6 +1,6 @@
1
- import { InputSettings, OutputSettings } from './types';
2
1
  import { SettingsManagerOverload } from '../../settings/SettingsManagerOverload';
3
2
  import { CoreInputSettings, CoreOutputSettings } from '../../settings/types';
3
+ import { InputSettings, OutputSettings } from './types';
4
4
  export declare class SettingsManager<ParentInputSettings extends CoreInputSettings, ParentOutputSettings extends CoreOutputSettings> extends SettingsManagerOverload<InputSettings, OutputSettings, ParentInputSettings, ParentOutputSettings> {
5
5
  computeOutputSettings(inputSettings: InputSettings): InputSettings;
6
6
  hasSettingsChanged(newOutputSettings: InputSettings): boolean;