@prose-reader/core 1.296.0 → 1.298.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 (30) hide show
  1. package/dist/cfi/CfiManager.d.ts +43 -0
  2. package/dist/cfi/index.d.ts +1 -0
  3. package/dist/createReaderWithEnhancer.d.ts +6 -22
  4. package/dist/enhancers/html/renderer/createHtmlPageFromResource.test.d.ts +1 -0
  5. package/dist/enhancers/html/renderer/reflowable/renderReflowable.d.ts +2 -1
  6. package/dist/enhancers/pagination/ResourcesLocator.d.ts +2 -2
  7. package/dist/hooks/HookManager.d.ts +9 -2
  8. package/dist/hooks/HookManager.test.d.ts +1 -0
  9. package/dist/hooks/types.d.ts +33 -7
  10. package/dist/index.js +2808 -2561
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.umd.cjs +28 -41
  13. package/dist/index.umd.cjs.map +1 -1
  14. package/dist/navigation/InternalNavigator.d.ts +3 -1
  15. package/dist/navigation/Navigator.d.ts +3 -1
  16. package/dist/navigation/consolidation/withSpineItem.d.ts +3 -1
  17. package/dist/navigation/resolvers/NavigationResolver.d.ts +3 -1
  18. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.d.ts +4 -2
  19. package/dist/navigation/restoration/restorePosition.d.ts +3 -1
  20. package/dist/navigation/restoration/withRestoredPosition.d.ts +3 -1
  21. package/dist/pagination/PaginationController.d.ts +3 -1
  22. package/dist/reader.d.ts +7 -23
  23. package/dist/spine/Spine.d.ts +2 -2
  24. package/dist/spine/SpineItemsManager.d.ts +0 -1
  25. package/dist/spine/SpineLayout.d.ts +5 -2
  26. package/dist/spine/SpineLayout.test.d.ts +1 -0
  27. package/dist/spineItem/renderer/DocumentRenderer.test.d.ts +1 -0
  28. package/dist/utilities.d.ts +1 -1
  29. package/dist/utils/dom.d.ts +5 -0
  30. package/package.json +4 -4
@@ -1,4 +1,5 @@
1
1
  import { BehaviorSubject, Observable } from 'rxjs';
2
+ import { CfiManager } from '../cfi';
2
3
  import { Context } from '../context/Context';
3
4
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
5
  import { Spine } from '../spine/Spine';
@@ -16,12 +17,13 @@ export declare class InternalNavigator extends DestroyableClass {
16
17
  protected navigationResolver: ReturnType<typeof createNavigationResolver>;
17
18
  protected spine: Spine;
18
19
  protected viewport: Viewport;
20
+ protected cfiManager: CfiManager;
19
21
  protected isUserInteractionLocked$: Observable<boolean>;
20
22
  navigationSubject: BehaviorSubject<InternalNavigationEntry>;
21
23
  navigation$: Observable<Pick<InternalNavigationEntry, "id" | "position" | "requestedPosition" | "requestedVisibleArea"> & {
22
24
  triggeredBy: InternalNavigationEntry["meta"]["triggeredBy"];
23
25
  }>;
24
26
  locker: Locker;
25
- constructor(settings: ReaderSettingsManager, context: Context, userNavigation$: Observable<UserNavigationEntry>, getActiveNavigationModeController: () => NavigationModeController, navigationModeLayout$: Observable<unknown>, navigationResolver: ReturnType<typeof createNavigationResolver>, spine: Spine, viewport: Viewport, isUserInteractionLocked$: Observable<boolean>);
27
+ constructor(settings: ReaderSettingsManager, context: Context, userNavigation$: Observable<UserNavigationEntry>, getActiveNavigationModeController: () => NavigationModeController, navigationModeLayout$: Observable<unknown>, navigationResolver: ReturnType<typeof createNavigationResolver>, spine: Spine, viewport: Viewport, cfiManager: CfiManager, isUserInteractionLocked$: Observable<boolean>);
26
28
  get navigation(): InternalNavigationEntry;
27
29
  }
@@ -1,3 +1,4 @@
1
+ import { CfiManager } from '../cfi';
1
2
  import { Context } from '../context/Context';
2
3
  import { HookManager } from '../hooks/HookManager';
3
4
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
@@ -11,7 +12,8 @@ import { UserNavigationEntry, InternalNavigationEntry, NavigationVisibleArea, Sp
11
12
  import { Observable } from 'rxjs';
12
13
  import { SpinePosition, SpineItemPosition, SpineItem, UnboundSpinePosition } from '..';
13
14
  import { getNavigationForSpineItemPage } from './resolvers/getNavigationForSpineItemPage';
14
- export declare const createNavigator: ({ spineItemsManager, context, hookManager, spine, settings, viewport, }: {
15
+ export declare const createNavigator: ({ spineItemsManager, context, hookManager, spine, settings, viewport, cfi, }: {
16
+ cfi: CfiManager;
15
17
  spineItemsManager: SpineItemsManager;
16
18
  context: Context;
17
19
  hookManager: HookManager;
@@ -1,4 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { CfiManager } from '../../cfi';
2
3
  import { Context } from '../../context/Context';
3
4
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
5
  import { SpineLocator } from '../../spine/locator/SpineLocator';
@@ -8,7 +9,8 @@ import { InternalNavigationInput } from '../types';
8
9
  type Navigation = {
9
10
  navigation: InternalNavigationInput;
10
11
  };
11
- export declare const withSpineItem: ({ settings, spineItemsManager, navigationResolver, spineLocator, }: {
12
+ export declare const withSpineItem: ({ settings, spineItemsManager, navigationResolver, spineLocator, cfi: cfiManager, }: {
13
+ cfi: CfiManager;
12
14
  context: Context;
13
15
  settings: ReaderSettingsManager;
14
16
  spineItemsManager: SpineItemsManager;
@@ -1,3 +1,4 @@
1
+ import { CfiManager } from '../../cfi';
1
2
  import { Context } from '../../context/Context';
2
3
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
3
4
  import { SpineLocator } from '../../spine/locator/SpineLocator';
@@ -11,7 +12,8 @@ import { NavigationVisibleArea, SpineBoundary } from '../types';
11
12
  import { getNavigationForSpineItemPage } from './getNavigationForSpineItemPage';
12
13
  export declare const NAMESPACE = "spineNavigator";
13
14
  export type NavigationResolver = ReturnType<typeof createNavigationResolver>;
14
- export declare const createNavigationResolver: ({ context, spineItemsManager, locator, settings, spine, viewport, }: {
15
+ export declare const createNavigationResolver: ({ context, spineItemsManager, locator, settings, spine, viewport, cfi: cfiManager, }: {
16
+ cfi: CfiManager;
15
17
  context: Context;
16
18
  spineItemsManager: SpineItemsManager;
17
19
  locator: SpineLocator;
@@ -1,14 +1,16 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { CfiManager } from '../../cfi';
3
+ import { SpineLocator } from '../../spine/locator/SpineLocator';
2
4
  import { Spine } from '../../spine/Spine';
3
5
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
4
- import { SpineLocator } from '../../spine/locator/SpineLocator';
5
6
  import { SpinePosition } from '../../spine/types';
6
7
  import { NavigationResolver } from '../resolvers/NavigationResolver';
7
8
  import { InternalNavigationEntry } from '../types';
8
- export declare const restoreNavigationForControlledPageTurnMode: ({ spineLocator, navigation, navigationResolver, spineItemsManager, spine, }: {
9
+ export declare const restoreNavigationForControlledPageTurnMode: ({ spineLocator, navigation, navigationResolver, spineItemsManager, spine, cfiManager, }: {
9
10
  navigation: InternalNavigationEntry;
10
11
  spineLocator: SpineLocator;
11
12
  navigationResolver: NavigationResolver;
12
13
  spineItemsManager: SpineItemsManager;
13
14
  spine: Spine;
15
+ cfiManager: CfiManager;
14
16
  }) => Observable<SpinePosition>;
@@ -1,4 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { CfiManager } from '../../cfi';
2
3
  import { Context } from '../../context/Context';
3
4
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
5
  import { SpineLocator } from '../../spine/locator/SpineLocator';
@@ -8,7 +9,7 @@ import { SpinePosition, UnboundSpinePosition } from '../../spine/types';
8
9
  import { SpineItemLocator } from '../../spineItem/locationResolver';
9
10
  import { NavigationResolver } from '../resolvers/NavigationResolver';
10
11
  import { InternalNavigationEntry } from '../types';
11
- export declare const restorePosition: ({ navigation, spineItemsManager, settings, spineLocator, navigationResolver, spine, }: {
12
+ export declare const restorePosition: ({ navigation, spineItemsManager, settings, spineLocator, navigationResolver, spine, cfiManager, }: {
12
13
  spineLocator: SpineLocator;
13
14
  settings: ReaderSettingsManager;
14
15
  navigationResolver: NavigationResolver;
@@ -17,4 +18,5 @@ export declare const restorePosition: ({ navigation, spineItemsManager, settings
17
18
  spineItemLocator: SpineItemLocator;
18
19
  context: Context;
19
20
  spine: Spine;
21
+ cfiManager: CfiManager;
20
22
  }) => Observable<SpinePosition | UnboundSpinePosition>;
@@ -1,4 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { CfiManager } from '../../cfi';
2
3
  import { Context } from '../../context/Context';
3
4
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
5
  import { Spine } from '../../spine/Spine';
@@ -7,10 +8,11 @@ import { InternalNavigationEntry } from '../types';
7
8
  type Navigation = {
8
9
  navigation: InternalNavigationEntry;
9
10
  };
10
- export declare const withRestoredPosition: ({ settings, navigationResolver, context, spine, }: {
11
+ export declare const withRestoredPosition: ({ settings, navigationResolver, context, spine, cfiManager, }: {
11
12
  navigationResolver: NavigationResolver;
12
13
  settings: ReaderSettingsManager;
13
14
  context: Context;
14
15
  spine: Spine;
16
+ cfiManager: CfiManager;
15
17
  }) => <N extends Navigation>(stream: Observable<N>) => Observable<N>;
16
18
  export {};
@@ -1,4 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { CfiManager } from '../cfi';
2
3
  import { Context } from '../context/Context';
3
4
  import { Spine } from '../spine/Spine';
4
5
  import { SpineItemsManager } from '../spine/SpineItemsManager';
@@ -12,5 +13,6 @@ export declare class PaginationController extends DestroyableClass {
12
13
  protected spine: Spine;
13
14
  protected spineItemLocator: ReturnType<typeof createSpineItemLocator>;
14
15
  protected isNavigationLocked$: Observable<boolean>;
15
- constructor(context: Context, pagination: Pagination, spineItemsManager: SpineItemsManager, spine: Spine, spineItemLocator: ReturnType<typeof createSpineItemLocator>, isNavigationLocked$: Observable<boolean>);
16
+ protected cfi: CfiManager;
17
+ constructor(context: Context, pagination: Pagination, spineItemsManager: SpineItemsManager, spine: Spine, spineItemLocator: ReturnType<typeof createSpineItemLocator>, isNavigationLocked$: Observable<boolean>, cfi: CfiManager);
16
18
  }
package/dist/reader.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Observable, ObservedValueOf, Subject } from 'rxjs';
2
- import { resolveCfi } from './cfi/resolve';
2
+ import { CfiManager } from './cfi';
3
3
  import { Context, ContextState } from './context/Context';
4
4
  import { Features } from './features/Features';
5
5
  import { HookManager } from './hooks/HookManager';
@@ -11,38 +11,22 @@ import { SpineItemsManager } from './spine/SpineItemsManager';
11
11
  import { SpineItemReference } from './spineItem/SpineItem';
12
12
  import { Viewport } from './viewport/Viewport';
13
13
  import { CoreHook } from './hooks';
14
- import { Manifest } from '@prose-reader/shared';
15
- import { ProseParsedCfi } from './cfi';
16
- import { PageEntry, SpineItem, InternalNavigationEntry, InternalNavigator, ScrollNavigationController, ControlledNavigationController, UserNavigationEntry, SpinePosition, SpineItemPosition, UnboundSpinePosition, NavigationVisibleArea, SpineBoundary, SpineItemsObserver, CoreOutputSettings } from '.';
14
+ import { InternalNavigationEntry, InternalNavigator, ScrollNavigationController, ControlledNavigationController, UserNavigationEntry, SpinePosition, SpineItemPosition, SpineItem, UnboundSpinePosition, NavigationVisibleArea, SpineBoundary, SpineItemsObserver, CoreOutputSettings } from '.';
17
15
  import { getNavigationForSpineItemPage } from './navigation/resolvers/getNavigationForSpineItemPage';
18
16
  import { PaginationInfo } from './pagination';
19
17
  export type CreateReaderOptions = Partial<CoreInputSettings>;
20
18
  export type CreateReaderParameters = CreateReaderOptions;
21
19
  export type ContextSettings = Partial<CoreInputSettings>;
22
20
  export type ReaderInternal = ReturnType<typeof createReader>;
21
+ type ReaderLayoutOptions = {
22
+ immediate?: boolean;
23
+ };
23
24
  export declare const createReader: (inputSettings: CreateReaderOptions) => {
24
25
  id: `${string}-${string}-${string}-${string}-${string}`;
25
26
  context: Context;
26
27
  spine: Spine;
27
28
  hookManager: HookManager< CoreHook>;
28
- cfi: {
29
- generateCfiFromRange: (range: Range, item: Manifest[`spineItems`][number]) => string;
30
- parseCfi: (cfi: string) => ProseParsedCfi & {
31
- offset: number;
32
- };
33
- generateCfiForSpineItemPage: ({ spineItem, pageNode, }: {
34
- spineItem: Manifest["spineItems"][number];
35
- pageNode: NonNullable< PageEntry["firstVisibleNode"]>;
36
- }) => string;
37
- resolveCfi: (params: Omit<Parameters<typeof resolveCfi>[0], "spineItemsManager">) => Omit< ProseParsedCfi & {
38
- offset: number;
39
- }, "offset"> & {
40
- offset?: number | undefined;
41
- node: Node | null;
42
- range?: Range | null;
43
- spineItem?: SpineItem;
44
- };
45
- };
29
+ cfi: CfiManager;
46
30
  navigation: {
47
31
  destroy: () => void;
48
32
  getNavigation: () => InternalNavigationEntry;
@@ -92,7 +76,7 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
92
76
  };
93
77
  spineItemsObserver: SpineItemsObserver;
94
78
  spineItemsManager: SpineItemsManager;
95
- layout: () => void;
79
+ layout: (options?: ReaderLayoutOptions) => void;
96
80
  load: (options: Required<Pick<ContextState, "manifest"> & {
97
81
  containerElement: HTMLElement;
98
82
  }>) => void;
@@ -12,7 +12,7 @@ import { SpineLocator } from './locator/SpineLocator';
12
12
  import { Pages, PagesState } from './Pages';
13
13
  import { SpineItemsManager } from './SpineItemsManager';
14
14
  import { SpineItemsObserver } from './SpineItemsObserver';
15
- import { SpineLayout } from './SpineLayout';
15
+ import { SpineLayout, SpineLayoutOptions } from './SpineLayout';
16
16
  import { SpineItemSpineLayout } from './types';
17
17
  export declare class Spine extends DestroyableClass {
18
18
  protected context: Context;
@@ -31,7 +31,7 @@ export declare class Spine extends DestroyableClass {
31
31
  element$: Observable<HTMLElement | undefined>;
32
32
  constructor(context: Context, pagination: Pagination, spineItemsManager: SpineItemsManager, spineItemLocator: ReturnType<typeof createSpineItemLocationResolver>, settings: ReaderSettingsManager, hookManager: HookManager, viewport: Viewport);
33
33
  get element(): HTMLElement | undefined;
34
- layout(): void;
34
+ layout(options?: SpineLayoutOptions): void;
35
35
  getSpineItemSpineLayoutInfo(spineItemOrIndex: SpineItem | number | string | undefined): SpineItemSpineLayout;
36
36
  get layout$(): Observable<PagesState>;
37
37
  destroy(): void;
@@ -13,7 +13,6 @@ export declare class SpineItemsManager extends DestroyableClass {
13
13
  comparePositionOf(toCompare: SpineItem, withItem: SpineItem): "before" | "after" | "same";
14
14
  getSpineItemIndex(spineItemOrId: SpineItem | string | number | undefined): number | undefined;
15
15
  addMany(spineItems: SpineItem[]): void;
16
- getSpineItemFromCfi(cfi: string): SpineItem | undefined;
17
16
  get items(): SpineItem[];
18
17
  destroyItems(): void;
19
18
  }
@@ -15,18 +15,21 @@ export type PageLayoutInformation = {
15
15
  export type LayoutInfo = {
16
16
  pages: PageLayoutInformation[];
17
17
  };
18
+ export type SpineLayoutOptions = {
19
+ immediate?: boolean;
20
+ };
18
21
  export declare class SpineLayout extends DestroyableClass {
19
22
  protected spineItemsManager: SpineItemsManager;
20
23
  protected spineItemsObserver: SpineItemsObserver;
21
24
  protected context: Context;
22
25
  protected settings: ReaderSettingsManager;
23
26
  protected viewport: Viewport;
24
- protected externalLayoutTrigger: Subject<unknown>;
27
+ protected externalLayoutTrigger: Subject<SpineLayoutOptions>;
25
28
  protected spineItemsRelativeLayouts: SpineItemSpineLayout[];
26
29
  readonly layout$: Observable<unknown>;
27
30
  constructor(spineItemsManager: SpineItemsManager, spineItemsObserver: SpineItemsObserver, context: Context, settings: ReaderSettingsManager, viewport: Viewport);
28
31
  private watchForVerticalWritingUpdate;
29
- layout(): void;
32
+ layout(options?: SpineLayoutOptions): void;
30
33
  getSpineItemSpineLayoutInfo(spineItemOrIndex: SpineItem | number | string | undefined): SpineItemSpineLayout;
31
34
  get numberOfPages(): number;
32
35
  destroy(): void;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
1
  export type { BookBoundaryReachedEvent, BookBoundaryReachedOptions, } from './enhancers/navigation/bookBoundary';
2
2
  export { observeBookBoundaryReached } from './enhancers/navigation/bookBoundary';
3
3
  export * from './navigation/operators';
4
- export { isHtmlElement, isHtmlTagElement } from './utils/dom';
4
+ export { injectCSS, isHtmlElement, isHtmlTagElement, removeAttributeIfPresent, removeStylePropertyIfPresent, setAttributeIfChanged, setPropertyIfChanged, setStylePropertyIfChanged, } from './utils/dom';
@@ -1,3 +1,8 @@
1
+ export declare function setAttributeIfChanged(element: Element, name: string, value: string | number | boolean): void;
2
+ export declare function removeAttributeIfPresent(element: Element, name: string): void;
3
+ export declare function setPropertyIfChanged<T, K extends keyof T>(object: T, key: K, value: T[K]): void;
4
+ export declare function setStylePropertyIfChanged(style: CSSStyleDeclaration, property: string, value: string): void;
5
+ export declare function removeStylePropertyIfPresent(style: CSSStyleDeclaration, property: string): void;
1
6
  type ViewPort = {
2
7
  left: number;
3
8
  right: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/core",
3
- "version": "1.296.0",
3
+ "version": "1.298.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.umd.cjs",
6
6
  "module": "./dist/index.js",
@@ -23,8 +23,8 @@
23
23
  "tsc": "tsc"
24
24
  },
25
25
  "dependencies": {
26
- "@prose-reader/cfi": "^1.296.0",
27
- "@prose-reader/shared": "^1.296.0"
26
+ "@prose-reader/cfi": "^1.298.0",
27
+ "@prose-reader/shared": "^1.298.0"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "rxjs": "*"
@@ -40,5 +40,5 @@
40
40
  }
41
41
  }
42
42
  },
43
- "gitHead": "c0d44e365c1456f94d2ece521af3546b97dc86b9"
43
+ "gitHead": "70dc850174a2782f66b31c5eebadd0950a8c7be1"
44
44
  }