@prose-reader/core 1.59.0 → 1.61.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 (43) hide show
  1. package/dist/createReaderWithEnhancer.d.ts +4 -45
  2. package/dist/enhancers/fonts/SettingsManager.d.ts +10 -0
  3. package/dist/enhancers/fonts/fonts.d.ts +7 -0
  4. package/dist/enhancers/fonts/types.d.ts +9 -0
  5. package/dist/enhancers/layoutEnhancer/SettingsManager.d.ts +10 -0
  6. package/dist/enhancers/layoutEnhancer/layoutEnhancer.d.ts +5 -8
  7. package/dist/enhancers/layoutEnhancer/types.d.ts +5 -7
  8. package/dist/enhancers/pagination/spine.d.ts +1 -1
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +1220 -507
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.umd.cjs +1157 -444
  13. package/dist/index.umd.cjs.map +1 -1
  14. package/dist/pagination/pagination.d.ts +1 -1
  15. package/dist/reader.d.ts +2 -2
  16. package/dist/settings/ReaderSettingsManager.d.ts +20 -0
  17. package/dist/settings/SettingsInterface.d.ts +13 -0
  18. package/dist/settings/SettingsManager.d.ts +17 -11
  19. package/dist/settings/SettingsManagerOverload.d.ts +23 -0
  20. package/dist/settings/types.d.ts +6 -5
  21. package/dist/spine/cfiLocator.d.ts +3 -3
  22. package/dist/spine/createSpine.d.ts +2 -2
  23. package/dist/spine/locationResolver.d.ts +6 -6
  24. package/dist/spine/navigationResolver.d.ts +2 -2
  25. package/dist/spineItem/commonSpineItem.d.ts +3 -3
  26. package/dist/spineItem/createSpineItem.d.ts +3 -3
  27. package/dist/spineItem/frameItem/frameItem.d.ts +3 -4
  28. package/dist/spineItem/frameItem/loader.d.ts +3 -4
  29. package/dist/spineItem/navigationResolver.d.ts +3 -3
  30. package/dist/spineItem/prePaginatedSpineItem.d.ts +3 -3
  31. package/dist/spineItem/reflowableSpineItem.d.ts +3 -3
  32. package/dist/spineItemManager.d.ts +6 -6
  33. package/dist/types/reader.d.ts +4 -4
  34. package/dist/utils/objects.d.ts +1 -0
  35. package/dist/viewportNavigator/manualViewportNavigator.d.ts +2 -2
  36. package/dist/viewportNavigator/panViewportNavigator.d.ts +2 -2
  37. package/dist/viewportNavigator/scrollViewportNavigator.d.ts +2 -2
  38. package/dist/viewportNavigator/viewportNavigator.d.ts +4 -4
  39. package/package.json +3 -3
  40. package/dist/enhancers/fonts.d.ts +0 -19
  41. package/dist/settings/defaultSettings.d.ts +0 -3
  42. package/dist/settings/getComputedSettings.d.ts +0 -4
  43. package/dist/utils/compose.d.ts +0 -8
@@ -3,7 +3,7 @@ import { SpineItem } from '../spineItem/createSpineItem';
3
3
  import { SpineItemManager } from '../spineItemManager';
4
4
  import { PaginationInfo } from './types';
5
5
 
6
- export declare const createPagination: ({ context }: {
6
+ export declare const createPagination: ({ context, }: {
7
7
  context: Context;
8
8
  spineItemManager: SpineItemManager;
9
9
  }) => {
package/dist/reader.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ReaderInternal } from './types/reader';
2
- import { Settings } from './settings/types';
2
+ import { CoreInputSettings } from './settings/types';
3
3
 
4
- export type CreateReaderOptions = Partial<Settings>;
4
+ export type CreateReaderOptions = Partial<CoreInputSettings>;
5
5
  export type CreateReaderParameters = CreateReaderOptions;
6
6
  export declare const createReader: (inputSettings: CreateReaderOptions) => ReaderInternal;
7
7
  type Reader = ReturnType<typeof createReader>;
@@ -0,0 +1,20 @@
1
+ import { CoreInputSettings, ComputedCoreSettings, CoreOutputSettings } from './types';
2
+ import { Context } from '../context/Context';
3
+ import { SettingsManager } from './SettingsManager';
4
+
5
+ export declare class ReaderSettingsManager extends SettingsManager<CoreInputSettings, CoreOutputSettings> {
6
+ protected context: Context;
7
+ constructor(initialSettings: Partial<CoreInputSettings>, context: Context);
8
+ private getComputedSettings;
9
+ getOutputSettings(inputSettings: CoreInputSettings): CoreInputSettings & ComputedCoreSettings;
10
+ getDefaultSettings(): {
11
+ forceSinglePageMode: boolean;
12
+ pageTurnAnimation: "none";
13
+ pageTurnDirection: "horizontal";
14
+ pageTurnAnimationDuration: undefined;
15
+ pageTurnMode: "controlled";
16
+ snapAnimationDuration: number;
17
+ navigationSnapThreshold: number;
18
+ numberOfAdjacentSpineItemToPreLoad: number;
19
+ };
20
+ }
@@ -0,0 +1,13 @@
1
+ import { Observable } from 'rxjs';
2
+
3
+ export interface SettingsInterface<InputSettings, OutputSettings = Record<string, never>> {
4
+ _outputSettings?: OutputSettings;
5
+ _inputSettings?: InputSettings;
6
+ _prepareUpdate(settings: Partial<InputSettings>): {
7
+ hasChanged: boolean;
8
+ commit: () => OutputSettings;
9
+ };
10
+ update(settings: Partial<InputSettings>): void;
11
+ settings$: Observable<OutputSettings>;
12
+ settings: OutputSettings;
13
+ }
@@ -1,14 +1,20 @@
1
- import { BehaviorSubject, Observable } from 'rxjs';
2
- import { Settings, ComputedSettings } from './types';
3
- import { Context } from '../context/Context';
1
+ import { Observable, Subject } from 'rxjs';
2
+ import { SettingsInterface } from './SettingsInterface';
4
3
 
5
- export declare class SettingsManager {
6
- _settingsSubject$: BehaviorSubject<ComputedSettings>;
7
- _context: Context;
8
- settings$: Observable<ComputedSettings>;
9
- constructor(initialSettings: Partial<Settings>, context: Context);
10
- _updateSettings(settings: Settings): void;
11
- setSettings(settings: Partial<Settings>): void;
12
- get settings(): ComputedSettings;
4
+ export declare abstract class SettingsManager<InputSettings, OutputSettings> implements SettingsInterface<InputSettings, OutputSettings> {
5
+ protected inputSettings: InputSettings;
6
+ protected outputSettings?: OutputSettings;
7
+ protected outputSettingsUpdateSubject: Subject<OutputSettings>;
8
+ settings$: Observable<OutputSettings>;
9
+ constructor(initialSettings: Partial<InputSettings>);
10
+ _prepareUpdate(settings: Partial<InputSettings>): {
11
+ hasChanged: boolean;
12
+ state: OutputSettings;
13
+ commit: () => OutputSettings;
14
+ };
15
+ abstract getOutputSettings(inputSettings: InputSettings): OutputSettings;
16
+ abstract getDefaultSettings(): InputSettings;
17
+ update(settings: Partial<InputSettings>): void;
18
+ get settings(): OutputSettings;
13
19
  destroy(): void;
14
20
  }
@@ -0,0 +1,23 @@
1
+ import { Observable, Subject } from 'rxjs';
2
+ import { SettingsInterface } from './SettingsInterface';
3
+ import { CoreInputSettings, CoreOutputSettings } from './types';
4
+
5
+ export declare abstract class SettingsManagerOverload<InputSettings, OutputSettings, ParentInputSettings extends CoreInputSettings, ParentOutputSettings extends CoreOutputSettings> implements SettingsInterface<InputSettings & ParentInputSettings, OutputSettings & ParentOutputSettings> {
6
+ protected inputSettings: InputSettings;
7
+ protected outputSettings: OutputSettings;
8
+ protected outputSettingsUpdateSubject: Subject<OutputSettings>;
9
+ protected settingsManager: SettingsInterface<ParentInputSettings, ParentOutputSettings>;
10
+ settings$: Observable<ParentOutputSettings & OutputSettings>;
11
+ constructor(initialSettings: Partial<InputSettings>, settingsManager: SettingsInterface<ParentInputSettings, ParentOutputSettings>);
12
+ abstract getDefaultSettings(): InputSettings;
13
+ abstract computeOutputSettings(inputSettings: InputSettings): OutputSettings;
14
+ abstract hasSettingsChanged(newOutputSettings: OutputSettings): boolean;
15
+ abstract getCleanedParentInputSettings(settings: Partial<InputSettings & ParentInputSettings>): ParentInputSettings;
16
+ _prepareUpdate(settings: Partial<InputSettings & ParentInputSettings>): {
17
+ hasChanged: boolean;
18
+ commit: () => OutputSettings & ParentOutputSettings;
19
+ };
20
+ update(settings: Partial<InputSettings & ParentInputSettings>): void;
21
+ get settings(): ParentOutputSettings & OutputSettings;
22
+ destroy(): void;
23
+ }
@@ -1,6 +1,6 @@
1
1
  import { Manifest } from '@prose-reader/shared';
2
2
 
3
- export type Settings = {
3
+ export type CoreInputSettings = {
4
4
  forceSinglePageMode: boolean;
5
5
  pageTurnAnimation: `none` | `fade` | `slide`;
6
6
  pageTurnAnimationDuration: undefined | number;
@@ -11,9 +11,10 @@ export type Settings = {
11
11
  numberOfAdjacentSpineItemToPreLoad: number;
12
12
  fetchResource?: (item: Manifest[`spineItems`][number]) => Promise<Response>;
13
13
  };
14
- export type ComputedSettings = Settings & {
15
- computedPageTurnMode: Settings[`pageTurnMode`];
16
- computedPageTurnDirection: Settings[`pageTurnDirection`];
17
- computedPageTurnAnimation: Settings[`pageTurnAnimation`];
14
+ export type ComputedCoreSettings = {
15
+ computedPageTurnMode: CoreInputSettings[`pageTurnMode`];
16
+ computedPageTurnDirection: CoreInputSettings[`pageTurnDirection`];
17
+ computedPageTurnAnimation: CoreInputSettings[`pageTurnAnimation`];
18
18
  computedPageTurnAnimationDuration: number;
19
19
  };
20
+ export type CoreOutputSettings = CoreInputSettings & ComputedCoreSettings;
@@ -28,7 +28,7 @@ export declare const createCfiLocator: ({ spineItemManager, spineItemLocator, }:
28
28
  mediaType?: string;
29
29
  };
30
30
  load: () => void;
31
- adjustPositionOfElement: ({ right, left, top }: {
31
+ adjustPositionOfElement: ({ right, left, top, }: {
32
32
  right?: number;
33
33
  left?: number;
34
34
  top?: number;
@@ -184,7 +184,7 @@ export declare const createCfiLocator: ({ spineItemManager, spineItemLocator, }:
184
184
  mediaType?: string;
185
185
  };
186
186
  load: () => void;
187
- adjustPositionOfElement: ({ right, left, top }: {
187
+ adjustPositionOfElement: ({ right, left, top, }: {
188
188
  right?: number;
189
189
  left?: number;
190
190
  top?: number;
@@ -328,7 +328,7 @@ export declare const createCfiLocator: ({ spineItemManager, spineItemLocator, }:
328
328
  node?: undefined;
329
329
  offset?: undefined;
330
330
  } | undefined;
331
- generateFromRange: ({ startNode, start, end, endNode }: {
331
+ generateFromRange: ({ startNode, start, end, endNode, }: {
332
332
  startNode: Node;
333
333
  start: number;
334
334
  endNode: Node;
@@ -7,7 +7,7 @@ import { createLocationResolver as createSpineItemLocationResolver } from '../sp
7
7
  import { createCfiLocator } from './cfiLocator';
8
8
  import { Spine } from '../types/Spine';
9
9
  import { AdjustedNavigation, Navigation } from '../viewportNavigator/types';
10
- import { SettingsManager } from '../settings/SettingsManager';
10
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
11
11
  import { HookManager } from '../hooks/HookManager';
12
12
 
13
13
  export declare const createSpine: ({ element$, context, pagination, spineItemManager, spineItemLocator, spineLocator, cfiLocator, navigation$, navigationAdjusted$, currentNavigationPosition$, viewportState$, settings, hookManager, }: {
@@ -25,7 +25,7 @@ export declare const createSpine: ({ element$, context, pagination, spineItemMan
25
25
  y: number;
26
26
  }>;
27
27
  viewportState$: Observable<`free` | `busy`>;
28
- settings: SettingsManager;
28
+ settings: ReaderSettingsManager;
29
29
  hookManager: HookManager;
30
30
  }) => Spine;
31
31
  export { Spine };
@@ -4,13 +4,13 @@ import { createLocationResolver as createSpineItemLocator } from '../spineItem/l
4
4
  import { SpineItemManager } from '../spineItemManager';
5
5
  import { SpineItemNavigationPosition, SpineItemPosition, UnsafeSpineItemPosition } from '../spineItem/types';
6
6
  import { SpinePosition, UnsafeSpinePosition } from './types';
7
- import { SettingsManager } from '../settings/SettingsManager';
7
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
8
8
 
9
9
  export declare const createLocationResolver: ({ spineItemManager, context, spineItemLocator, settings, }: {
10
10
  spineItemManager: SpineItemManager;
11
11
  context: Context;
12
12
  spineItemLocator: ReturnType<typeof createSpineItemLocator>;
13
- settings: SettingsManager;
13
+ settings: ReaderSettingsManager;
14
14
  }) => {
15
15
  getSpinePositionFromSpineItemPosition: (spineItemPosition: SpineItemNavigationPosition | SpineItemPosition, spineItem: SpineItem) => SpinePosition;
16
16
  getSpinePositionFromSpineItem: (spineItem: SpineItem) => SpinePosition;
@@ -34,7 +34,7 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
34
34
  mediaType?: string;
35
35
  };
36
36
  load: () => void;
37
- adjustPositionOfElement: ({ right, left, top }: {
37
+ adjustPositionOfElement: ({ right, left, top, }: {
38
38
  right?: number;
39
39
  left?: number;
40
40
  top?: number;
@@ -187,7 +187,7 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
187
187
  mediaType?: string;
188
188
  };
189
189
  load: () => void;
190
- adjustPositionOfElement: ({ right, left, top }: {
190
+ adjustPositionOfElement: ({ right, left, top, }: {
191
191
  right?: number;
192
192
  left?: number;
193
193
  top?: number;
@@ -339,7 +339,7 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
339
339
  mediaType?: string;
340
340
  };
341
341
  load: () => void;
342
- adjustPositionOfElement: ({ right, left, top }: {
342
+ adjustPositionOfElement: ({ right, left, top, }: {
343
343
  right?: number;
344
344
  left?: number;
345
345
  top?: number;
@@ -492,7 +492,7 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
492
492
  mediaType?: string;
493
493
  };
494
494
  load: () => void;
495
- adjustPositionOfElement: ({ right, left, top }: {
495
+ adjustPositionOfElement: ({ right, left, top, }: {
496
496
  right?: number;
497
497
  left?: number;
498
498
  top?: number;
@@ -4,7 +4,7 @@ import { SpineItem } from '../spineItem/createSpineItem';
4
4
  import { createLocationResolver } from './locationResolver';
5
5
  import { createCfiLocator } from './cfiLocator';
6
6
  import { SpinePosition, UnsafeSpinePosition } from './types';
7
- import { SettingsManager } from '../settings/SettingsManager';
7
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
8
8
 
9
9
  export type ViewportNavigationEntry = {
10
10
  x: number;
@@ -20,7 +20,7 @@ export declare const createNavigationResolver: ({ context, spineItemManager, cfi
20
20
  spineItemManager: SpineItemManager;
21
21
  cfiLocator: ReturnType<typeof createCfiLocator>;
22
22
  locator: ReturnType<typeof createLocationResolver>;
23
- settings: SettingsManager;
23
+ settings: ReaderSettingsManager;
24
24
  }) => {
25
25
  getNavigationForCfi: (cfi: string) => ViewportNavigationEntry;
26
26
  getNavigationForPage: (pageIndex: number, spineItem?: SpineItem) => ViewportNavigationEntry;
@@ -2,7 +2,7 @@ import { Context } from '../context/Context';
2
2
  import { Manifest } from '../types';
3
3
  import { Observable } from 'rxjs';
4
4
  import { createFrameManipulator } from './frameItem/createFrameManipulator';
5
- import { SettingsManager } from '../settings/SettingsManager';
5
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
6
6
  import { HookManager } from '../hooks/HookManager';
7
7
 
8
8
  export declare const createCommonSpineItem: ({ item, context, parentElement, viewportState$, settings, hookManager, }: {
@@ -10,7 +10,7 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, vie
10
10
  parentElement: HTMLElement;
11
11
  context: Context;
12
12
  viewportState$: Observable<`free` | `busy`>;
13
- settings: SettingsManager;
13
+ settings: ReaderSettingsManager;
14
14
  hookManager: HookManager;
15
15
  }) => {
16
16
  item: {
@@ -29,7 +29,7 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, vie
29
29
  blankPagePosition: `before` | `after` | `none`;
30
30
  minimumWidth: number;
31
31
  }) => void;
32
- adjustPositionOfElement: ({ right, left, top }: {
32
+ adjustPositionOfElement: ({ right, left, top, }: {
33
33
  right?: number;
34
34
  left?: number;
35
35
  top?: number;
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Context } from '../context/Context';
3
3
  import { Manifest } from '../types';
4
- import { SettingsManager } from '../settings/SettingsManager';
4
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
5
  import { HookManager } from '../hooks/HookManager';
6
6
 
7
7
  export declare const createSpineItem: ({ item, context, containerElement, viewportState$, settings, hookManager, }: {
@@ -9,7 +9,7 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
9
9
  containerElement: HTMLElement;
10
10
  context: Context;
11
11
  viewportState$: Observable<`free` | `busy`>;
12
- settings: SettingsManager;
12
+ settings: ReaderSettingsManager;
13
13
  hookManager: HookManager;
14
14
  }) => {
15
15
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
@@ -30,7 +30,7 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
30
30
  mediaType?: string;
31
31
  };
32
32
  load: () => void;
33
- adjustPositionOfElement: ({ right, left, top }: {
33
+ adjustPositionOfElement: ({ right, left, top, }: {
34
34
  right?: number;
35
35
  left?: number;
36
36
  top?: number;
@@ -2,16 +2,15 @@ import { Observable } from 'rxjs';
2
2
  import { Manifest } from '../../types';
3
3
  import { Context } from '../../context/Context';
4
4
  import { createFrameManipulator } from './createFrameManipulator';
5
- import { SettingsManager } from '../../settings/SettingsManager';
5
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
6
6
  import { HookManager } from '../../hooks/HookManager';
7
7
 
8
- export declare const createFrameItem: ({ item, parent, fetchResource, context, viewportState$, settings, hookManager, }: {
8
+ export declare const createFrameItem: ({ item, parent, context, viewportState$, settings, hookManager, }: {
9
9
  parent: HTMLElement;
10
10
  item: Manifest[`spineItems`][number];
11
11
  context: Context;
12
- fetchResource?: (item: Manifest[`spineItems`][number]) => Promise<Response>;
13
12
  viewportState$: Observable<`free` | `busy`>;
14
- settings: SettingsManager;
13
+ settings: ReaderSettingsManager;
15
14
  hookManager: HookManager;
16
15
  }) => {
17
16
  getIsLoaded: () => boolean;
@@ -1,15 +1,14 @@
1
1
  import { BehaviorSubject, Observable } from 'rxjs';
2
2
  import { Context } from '../../context/Context';
3
3
  import { Manifest } from '../../types';
4
- import { SettingsManager } from '../../settings/SettingsManager';
4
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
5
  import { HookManager } from '../../hooks/HookManager';
6
6
 
7
- export declare const createLoader: ({ item, parent, fetchResource, context, viewportState$, settings, hookManager, }: {
7
+ export declare const createLoader: ({ item, parent, context, viewportState$, settings, hookManager, }: {
8
8
  item: Manifest[`spineItems`][number];
9
9
  parent: HTMLElement;
10
- fetchResource?: (item: Manifest[`spineItems`][number]) => Promise<Response>;
11
10
  context: Context;
12
- settings: SettingsManager;
11
+ settings: ReaderSettingsManager;
13
12
  viewportState$: Observable<`free` | `busy`>;
14
13
  hookManager: HookManager;
15
14
  }) => {
@@ -1,11 +1,11 @@
1
1
  import { SpineItem } from './createSpineItem';
2
2
  import { Context } from '../context/Context';
3
3
  import { SpineItemNavigationPosition, UnsafeSpineItemPosition } from './types';
4
- import { SettingsManager } from '../settings/SettingsManager';
4
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
5
 
6
- export declare const createNavigationResolver: ({ context }: {
6
+ export declare const createNavigationResolver: ({ context, }: {
7
7
  context: Context;
8
- settings: SettingsManager;
8
+ settings: ReaderSettingsManager;
9
9
  }) => {
10
10
  getNavigationForLeftPage: (position: UnsafeSpineItemPosition, spineItem: SpineItem) => SpineItemNavigationPosition;
11
11
  getNavigationForRightPage: (position: UnsafeSpineItemPosition, spineItem: SpineItem) => SpineItemNavigationPosition;
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Context } from '../context/Context';
3
3
  import { Manifest } from '../types';
4
- import { SettingsManager } from '../settings/SettingsManager';
4
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
5
  import { HookManager } from '../hooks/HookManager';
6
6
 
7
7
  export declare const createPrePaginatedSpineItem: ({ item, context, containerElement, viewportState$, settings, hookManager, }: {
@@ -9,7 +9,7 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
9
9
  containerElement: HTMLElement;
10
10
  context: Context;
11
11
  viewportState$: Observable<`free` | `busy`>;
12
- settings: SettingsManager;
12
+ settings: ReaderSettingsManager;
13
13
  hookManager: HookManager;
14
14
  }) => {
15
15
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
@@ -30,7 +30,7 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
30
30
  mediaType?: string;
31
31
  };
32
32
  load: () => void;
33
- adjustPositionOfElement: ({ right, left, top }: {
33
+ adjustPositionOfElement: ({ right, left, top, }: {
34
34
  right?: number;
35
35
  left?: number;
36
36
  top?: number;
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Context } from '../context/Context';
3
3
  import { Manifest } from '../types';
4
- import { SettingsManager } from '../settings/SettingsManager';
4
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
5
  import { HookManager } from '../hooks/HookManager';
6
6
 
7
7
  export declare const createReflowableSpineItem: ({ item, context, containerElement, viewportState$, settings, hookManager, }: {
@@ -9,7 +9,7 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
9
9
  containerElement: HTMLElement;
10
10
  context: Context;
11
11
  viewportState$: Observable<`free` | `busy`>;
12
- settings: SettingsManager;
12
+ settings: ReaderSettingsManager;
13
13
  hookManager: HookManager;
14
14
  }) => {
15
15
  layout: ({ blankPagePosition, minimumWidth, }: {
@@ -29,7 +29,7 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
29
29
  mediaType?: string;
30
30
  };
31
31
  load: () => void;
32
- adjustPositionOfElement: ({ right, left, top }: {
32
+ adjustPositionOfElement: ({ right, left, top, }: {
33
33
  right?: number;
34
34
  left?: number;
35
35
  top?: number;
@@ -1,10 +1,10 @@
1
1
  import { Context } from './context/Context';
2
2
  import { SpineItem } from './spineItem/createSpineItem';
3
- import { SettingsManager } from './settings/SettingsManager';
3
+ import { ReaderSettingsManager } from './settings/ReaderSettingsManager';
4
4
 
5
- export declare const createSpineItemManager: ({ context, settings }: {
5
+ export declare const createSpineItemManager: ({ context, settings, }: {
6
6
  context: Context;
7
- settings: SettingsManager;
7
+ settings: ReaderSettingsManager;
8
8
  }) => {
9
9
  destroyItems: () => void;
10
10
  add: (spineItem: SpineItem) => void;
@@ -27,7 +27,7 @@ export declare const createSpineItemManager: ({ context, settings }: {
27
27
  mediaType?: string;
28
28
  };
29
29
  load: () => void;
30
- adjustPositionOfElement: ({ right, left, top }: {
30
+ adjustPositionOfElement: ({ right, left, top, }: {
31
31
  right?: number;
32
32
  left?: number;
33
33
  top?: number;
@@ -180,7 +180,7 @@ export declare const createSpineItemManager: ({ context, settings }: {
180
180
  mediaType?: string;
181
181
  };
182
182
  load: () => void;
183
- adjustPositionOfElement: ({ right, left, top }: {
183
+ adjustPositionOfElement: ({ right, left, top, }: {
184
184
  right?: number;
185
185
  left?: number;
186
186
  top?: number;
@@ -346,7 +346,7 @@ export declare const createSpineItemManager: ({ context, settings }: {
346
346
  mediaType?: string;
347
347
  };
348
348
  load: () => void;
349
- adjustPositionOfElement: ({ right, left, top }: {
349
+ adjustPositionOfElement: ({ right, left, top, }: {
350
350
  right?: number;
351
351
  left?: number;
352
352
  top?: number;
@@ -4,12 +4,12 @@ import { Pagination } from '../pagination/pagination';
4
4
  import { Manifest } from '@prose-reader/shared';
5
5
  import { SpineItemManager } from '../spineItemManager';
6
6
  import { ViewportNavigator } from '../viewportNavigator/viewportNavigator';
7
- import { SettingsManager } from '../settings/SettingsManager';
8
- import { Settings } from '../settings/types';
7
+ import { ComputedCoreSettings, CoreInputSettings } from '../settings/types';
9
8
  import { Context } from '../context/Context';
10
9
  import { HookManager } from '../hooks/HookManager';
10
+ import { SettingsInterface } from '../settings/SettingsInterface';
11
11
 
12
- export type ContextSettings = Partial<Settings>;
12
+ export type ContextSettings = Partial<CoreInputSettings>;
13
13
  export type LoadOptions = {
14
14
  cfi?: string | null;
15
15
  containerElement: HTMLElement;
@@ -19,7 +19,7 @@ export type ReaderInternal = {
19
19
  spine: Spine;
20
20
  spineItemManager: SpineItemManager;
21
21
  viewportNavigator: ViewportNavigator;
22
- settings: SettingsManager;
22
+ settings: SettingsInterface<CoreInputSettings, CoreInputSettings & ComputedCoreSettings>;
23
23
  hookManager: HookManager;
24
24
  layout: () => void;
25
25
  load: (manifest: Manifest, loadOptions: LoadOptions) => void;
@@ -4,3 +4,4 @@ export declare const isShallowEqual: <T = any, R = any>(objectA: T, objectB: R,
4
4
  }) => boolean;
5
5
  export declare const groupBy: <T, K extends keyof any>(list: T[], getKey: (item: T) => K) => Record<K, T[]>;
6
6
  export declare const getBase64FromBlob: (data: Blob) => Promise<string>;
7
+ export declare function shallowMergeIfDefined<T, U>(obj1: T, obj2: U): T & U;
@@ -13,10 +13,10 @@ export declare const createManualViewportNavigator: ({ navigator, spineItemManag
13
13
  }) => {
14
14
  destroy: () => void;
15
15
  adjustReadingOffset: () => boolean;
16
- turnLeft: ({ allowSpineItemChange }?: {
16
+ turnLeft: ({ allowSpineItemChange, }?: {
17
17
  allowSpineItemChange?: boolean;
18
18
  }) => void;
19
- turnRight: ({ allowSpineItemChange }?: {
19
+ turnRight: ({ allowSpineItemChange, }?: {
20
20
  allowSpineItemChange?: boolean;
21
21
  }) => void;
22
22
  goToCfi: (cfi: string, options?: {
@@ -4,7 +4,7 @@ import { SpineItemManager } from '../spineItemManager';
4
4
  import { createNavigationResolver, ViewportNavigationEntry } from '../spine/navigationResolver';
5
5
  import { createLocationResolver } from '../spine/locationResolver';
6
6
  import { ViewportPosition } from '../types';
7
- import { SettingsManager } from '../settings/SettingsManager';
7
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
8
8
 
9
9
  export declare const createPanViewportNavigator: ({ getCurrentViewportPosition, navigator, spineItemManager, locator, context, currentNavigationSubject$, settings, }: {
10
10
  context: Context;
@@ -13,7 +13,7 @@ export declare const createPanViewportNavigator: ({ getCurrentViewportPosition,
13
13
  spineItemManager: SpineItemManager;
14
14
  locator: ReturnType<typeof createLocationResolver>;
15
15
  getCurrentViewportPosition: () => ViewportPosition;
16
- settings: SettingsManager;
16
+ settings: ReaderSettingsManager;
17
17
  }) => {
18
18
  moveTo: ((delta: {
19
19
  x: number;
@@ -4,12 +4,12 @@ import { Spine } from '../spine/createSpine';
4
4
  import { createNavigationResolver, ViewportNavigationEntry } from '../spine/navigationResolver';
5
5
  import { SpineItemManager } from '../spineItemManager';
6
6
  import { ViewportPosition } from '../types';
7
- import { SettingsManager } from '../settings/SettingsManager';
7
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
8
8
 
9
9
  type ScaledDownPosition = ViewportPosition;
10
10
  export declare const createScrollViewportNavigator: ({ context, element$, navigator, currentNavigationSubject$, settings, spine, }: {
11
11
  context: Context;
12
- settings: SettingsManager;
12
+ settings: ReaderSettingsManager;
13
13
  element$: BehaviorSubject<HTMLElement>;
14
14
  navigator: ReturnType<typeof createNavigationResolver>;
15
15
  currentNavigationSubject$: BehaviorSubject<ViewportNavigationEntry>;
@@ -7,7 +7,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
7
7
  import { createCfiLocator } from '../spine/cfiLocator';
8
8
  import { LastUserExpectedNavigation, Navigation } from './types';
9
9
  import { Spine } from '../spine/createSpine';
10
- import { SettingsManager } from '../settings/SettingsManager';
10
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
11
11
  import { HookManager } from '../hooks/HookManager';
12
12
 
13
13
  export declare const createViewportNavigator: ({ spineItemManager, context, pagination, parentElement$, cfiLocator, spineLocator, hookManager, spine, settings, }: {
@@ -19,7 +19,7 @@ export declare const createViewportNavigator: ({ spineItemManager, context, pagi
19
19
  spineLocator: ReturnType<typeof createLocationResolver>;
20
20
  hookManager: HookManager;
21
21
  spine: Spine;
22
- settings: SettingsManager;
22
+ settings: ReaderSettingsManager;
23
23
  }) => {
24
24
  destroy: () => void;
25
25
  layout: () => void;
@@ -31,10 +31,10 @@ export declare const createViewportNavigator: ({ spineItemManager, context, pagi
31
31
  x: number;
32
32
  y: number;
33
33
  }>);
34
- turnLeft: ({ allowSpineItemChange }?: {
34
+ turnLeft: ({ allowSpineItemChange, }?: {
35
35
  allowSpineItemChange?: boolean;
36
36
  }) => void;
37
- turnRight: ({ allowSpineItemChange }?: {
37
+ turnRight: ({ allowSpineItemChange, }?: {
38
38
  allowSpineItemChange?: boolean;
39
39
  }) => void;
40
40
  goToPage: (pageIndex: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/core",
3
- "version": "1.59.0",
3
+ "version": "1.61.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.umd.cjs",
6
6
  "module": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "tsc": "tsc"
26
26
  },
27
27
  "dependencies": {
28
- "@prose-reader/shared": "^1.59.0"
28
+ "@prose-reader/shared": "^1.61.0"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "rxjs": "*"
@@ -33,5 +33,5 @@
33
33
  "devDependencies": {
34
34
  "jsdom": "^24.0.0"
35
35
  },
36
- "gitHead": "5ed33409006dfee0c979e6ccd20c9b49cdbc3839"
36
+ "gitHead": "3236a7970b14582c47340ed53bf307877fcab0a2"
37
37
  }
@@ -1,19 +0,0 @@
1
- import { Observable, ObservedValueOf } from 'rxjs';
2
- import { EnhancerOptions, EnhancerOutput, RootEnhancer } from './types/enhancer';
3
-
4
- declare const FONT_WEIGHT: readonly [100, 200, 300, 400, 500, 600, 700, 800, 900];
5
- declare const FONT_JUSTIFICATION: readonly ["center", "left", "right", "justify"];
6
- type Options = {
7
- fontScale?: number;
8
- lineHeight?: number | `publisher`;
9
- fontWeight?: (typeof FONT_WEIGHT)[number] | `publisher`;
10
- fontJustification?: (typeof FONT_JUSTIFICATION)[number] | `publisher`;
11
- };
12
- type OutputOptions = Required<Options>;
13
- export declare const fontsEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>, SetSettings extends (settings: Parameters<InheritOutput["settings"]["setSettings"]>[0] & Options) => void, Settings$ extends Observable<ObservedValueOf<InheritOutput["settings"]["settings$"]> & OutputOptions>, Output extends Omit<InheritOutput, "settings"> & {
14
- settings: Omit<InheritOutput["settings"], "setSettings" | "settings$"> & {
15
- settings$: Settings$;
16
- setSettings: SetSettings;
17
- };
18
- }>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions & Options) => Output;
19
- export {};
@@ -1,3 +0,0 @@
1
- import { Settings } from './types';
2
-
3
- export declare const defaultSettings: Settings;
@@ -1,4 +0,0 @@
1
- import { ComputedSettings, Settings } from './types';
2
- import { Context } from '../context/Context';
3
-
4
- export declare const getComputedSettings: (settings: Settings, context: Context) => Omit<ComputedSettings, keyof Settings>;