@prose-reader/core 1.192.0 → 1.194.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.
@@ -1,9 +1,9 @@
1
1
  import { Observable } from 'rxjs';
2
- import { InternalNavigationEntry, InternalNavigationInput } from '../InternalNavigator';
3
2
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
3
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
5
- import { NavigationResolver } from '../resolvers/NavigationResolver';
6
4
  import { SpineLocator } from '../../spine/locator/SpineLocator';
5
+ import { InternalNavigationEntry, InternalNavigationInput } from '../InternalNavigator';
6
+ import { NavigationResolver } from '../resolvers/NavigationResolver';
7
7
  type Navigation = {
8
8
  navigation: InternalNavigationEntry | InternalNavigationInput;
9
9
  };
@@ -1,8 +1,8 @@
1
1
  import { Context } from '../../context/Context';
2
+ import { SpineItemsManager } from '../../spine/SpineItemsManager';
2
3
  import { SpineLocator } from '../../spine/locator/SpineLocator';
3
4
  import { SpineItem } from '../../spineItem/SpineItem';
4
5
  import { SpineItemNavigationResolver } from '../../spineItem/navigationResolver';
5
- import { SpineItemsManager } from '../../spine/SpineItemsManager';
6
6
  import { ViewportPosition } from '../viewport/ViewportNavigator';
7
7
  export declare const getNavigationForSpineItemPage: ({ pageIndex, spineItemsManager, spineItemId, context, spineLocator, spineItemNavigationResolver, }: {
8
8
  pageIndex: number;
@@ -1,7 +1,7 @@
1
1
  import { Context } from '../../context/Context';
2
- import { ViewportPosition } from '../viewport/ViewportNavigator';
3
- import { SpineLocator } from '../../spine/locator/SpineLocator';
4
2
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
3
+ import { SpineLocator } from '../../spine/locator/SpineLocator';
4
+ import { ViewportPosition } from '../viewport/ViewportNavigator';
5
5
  export declare const getNavigationForUrl: ({ context, spineItemsManager, spineLocator, url, pageSizeWidth, visibleAreaRectWidth, }: {
6
6
  url: string | URL;
7
7
  spineItemsManager: SpineItemsManager;
@@ -1,13 +1,18 @@
1
+ import { SpineItem } from '../..';
1
2
  import { Context } from '../../context/Context';
3
+ import { HookManager } from '../../hooks/HookManager';
4
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
+ import { Spine } from '../../spine/Spine';
6
+ import { SpineItemsManager } from '../../spine/SpineItemsManager';
2
7
  import { InternalNavigator } from '../InternalNavigator';
3
8
  import { UserNavigator } from '../UserNavigator';
4
- import { Item, SpineItemsManagerMock } from './SpineItemsManagerMock';
5
- import { Spine } from '../../spine/Spine';
6
- export declare const generateItems: (size: number, number: number) => Item[];
9
+ export declare const generateItems: (size: number, number: number, context: Context, settings: ReaderSettingsManager, hookManager: HookManager) => SpineItem[];
7
10
  export declare const createNavigator: () => {
8
11
  internalNavigator: InternalNavigator;
9
12
  userNavigator: UserNavigator;
10
13
  context: Context;
11
- spineItemsManagerMock: SpineItemsManagerMock;
14
+ spineItemsManagerMock: SpineItemsManager;
12
15
  spine: Spine;
16
+ settings: ReaderSettingsManager;
17
+ hookManager: HookManager<import('../../hooks/types').CoreHook>;
13
18
  };
@@ -1,9 +1,9 @@
1
1
  import { Context } from '../context/Context';
2
- import { Pagination } from './Pagination';
2
+ import { Spine } from '../spine/Spine';
3
3
  import { SpineItemsManager } from '../spine/SpineItemsManager';
4
- import { DestroyableClass } from '../utils/DestroyableClass';
5
4
  import { createSpineItemLocator } from '../spineItem/locationResolver';
6
- import { Spine } from '../spine/Spine';
5
+ import { DestroyableClass } from '../utils/DestroyableClass';
6
+ import { Pagination } from './Pagination';
7
7
  export declare class PaginationController extends DestroyableClass {
8
8
  protected context: Context;
9
9
  protected pagination: Pagination;
package/dist/reader.d.ts CHANGED
@@ -103,7 +103,7 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
103
103
  };
104
104
  settings: SettingsInterface<NonNullable<CoreInputSettings>, NonNullable<import('./settings/types').CoreOutputSettings | undefined>>;
105
105
  element$: import('rxjs').Observable<HTMLElement>;
106
- layout$: import('rxjs').Observable<import('./spine/SpineLayout').Layout>;
106
+ layout$: import('rxjs').Observable<import('./spine/SpineLayout').LayoutInfo>;
107
107
  layoutInfo$: import('rxjs').Observable<import('./spine/SpineLayout').LayoutInfo>;
108
108
  viewportState$: import('rxjs').Observable<"free" | "busy">;
109
109
  viewportFree$: import('rxjs').Observable<"free">;
@@ -25,14 +25,11 @@ export type LayoutInfo = {
25
25
  spineItemsPagesAbsolutePositions: LayoutPosition[][];
26
26
  pages: PageLayoutInformation[];
27
27
  };
28
- export type Layout = LayoutInfo & {
29
- hasChanged: boolean;
30
- };
28
+ export type Layout = LayoutInfo;
31
29
  export declare class SpineLayout extends DestroyableClass {
32
30
  protected spineItemsManager: SpineItemsManager;
33
31
  protected context: Context;
34
32
  protected settings: ReaderSettingsManager;
35
- protected itemLayoutInformation: LayoutPosition[];
36
33
  protected layoutSubject: Subject<unknown>;
37
34
  readonly layout$: Observable<Layout>;
38
35
  readonly info$: Observable<LayoutInfo>;
@@ -40,13 +37,13 @@ export declare class SpineLayout extends DestroyableClass {
40
37
  layout(): void;
41
38
  getAbsolutePositionOf(spineItemOrIndex: SpineItem | number | string | undefined): {
42
39
  left: number;
43
- right: number;
44
40
  top: number;
41
+ right: number;
45
42
  bottom: number;
46
- width: number;
47
- height: number;
48
43
  x: number;
49
44
  y: number;
45
+ width: number;
46
+ height: number;
50
47
  };
51
48
  destroy(): void;
52
49
  }
@@ -3,8 +3,7 @@ import { SpineItem } from '../..';
3
3
  import { Context } from '../../context/Context';
4
4
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
5
  import { SpineItemsManager } from '../SpineItemsManager';
6
- import { LayoutPosition } from '../SpineLayout';
7
- export declare const layoutItem: ({ horizontalOffset, verticalOffset, context, spineItemsManager, isGloballyPrePaginated, settings, index, item, newItemLayoutInformation, }: {
6
+ export declare const layoutItem: ({ horizontalOffset, verticalOffset, context, spineItemsManager, isGloballyPrePaginated, settings, index, item, }: {
8
7
  horizontalOffset: number;
9
8
  verticalOffset: number;
10
9
  context: Context;
@@ -13,7 +12,6 @@ export declare const layoutItem: ({ horizontalOffset, verticalOffset, context, s
13
12
  settings: ReaderSettingsManager;
14
13
  item: SpineItem;
15
14
  index: number;
16
- newItemLayoutInformation: LayoutPosition[];
17
15
  }) => Observable<{
18
16
  horizontalOffset: number;
19
17
  verticalOffset: number;
@@ -1,14 +1,14 @@
1
1
  import { Context } from '../../context/Context';
2
+ import { ViewportPosition } from '../../navigation/viewport/ViewportNavigator';
3
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
2
4
  import { SpineItem } from '../../spineItem/SpineItem';
3
5
  import { createSpineItemLocator } from '../../spineItem/locationResolver';
4
- import { SpineItemsManager } from '../SpineItemsManager';
5
6
  import { SafeSpineItemPosition, UnsafeSpineItemPosition } from '../../spineItem/types';
6
- import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
7
- import { ViewportPosition } from '../../navigation/viewport/ViewportNavigator';
8
- import { getVisibleSpineItemsFromPosition } from './getVisibleSpineItemsFromPosition';
7
+ import { SpineItemsManager } from '../SpineItemsManager';
9
8
  import { SpineLayout } from '../SpineLayout';
10
- import { getSpineInfoFromAbsolutePageIndex } from './getSpineInfoFromAbsolutePageIndex';
11
9
  import { getAbsolutePageIndexFromPageIndex } from './getAbsolutePageIndexFromPageIndex';
10
+ import { getSpineInfoFromAbsolutePageIndex } from './getSpineInfoFromAbsolutePageIndex';
11
+ import { getVisibleSpineItemsFromPosition } from './getVisibleSpineItemsFromPosition';
12
12
  export type SpineLocator = ReturnType<typeof createSpineLocator>;
13
13
  export declare const createSpineLocator: ({ spineItemsManager, context, spineItemLocator, settings, spineLayout, }: {
14
14
  spineItemsManager: SpineItemsManager;
@@ -1,8 +1,10 @@
1
+ import { Observable } from 'rxjs';
2
+ import { Manifest } from '..';
1
3
  import { Context } from '../context/Context';
2
- import { DestroyableClass, Manifest } from '..';
3
- import { Observable, ObservedValueOf } from 'rxjs';
4
- import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
4
  import { HookManager } from '../hooks/HookManager';
5
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
6
+ import { DestroyableClass } from '../utils/DestroyableClass';
7
+ import { SpineItemLayout } from './SpineItemLayout';
6
8
  import { DocumentRenderer } from './renderer/DocumentRenderer';
7
9
  import { ResourceHandler } from './resources/ResourceHandler';
8
10
  export declare class SpineItem extends DestroyableClass {
@@ -12,43 +14,32 @@ export declare class SpineItem extends DestroyableClass {
12
14
  settings: ReaderSettingsManager;
13
15
  hookManager: HookManager;
14
16
  index: number;
15
- private layoutTriggerSubject;
17
+ private spineItemLayout;
16
18
  readonly containerElement: HTMLElement;
17
19
  readonly needsLayout$: Observable<unknown>;
18
20
  readonly renderer: DocumentRenderer;
19
21
  readonly resourcesHandler: ResourceHandler;
20
- readonly layout$: Observable<{
21
- width: number;
22
- height: number;
23
- }>;
22
+ readonly layout$: SpineItemLayout["layout$"];
23
+ readonly layout: SpineItemLayout["layout"];
24
+ readonly adjustPositionOfElement: SpineItemLayout["adjustPositionOfElement"];
24
25
  readonly isReady$: Observable<boolean>;
25
26
  constructor(item: Manifest[`spineItems`][number], parentElement: HTMLElement, context: Context, settings: ReaderSettingsManager, hookManager: HookManager, index: number);
26
- adjustPositionOfElement: ({ right, left, top, }: {
27
- right?: number;
28
- left?: number;
29
- top?: number;
30
- }) => void;
31
27
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
32
- layout: (params: ObservedValueOf<typeof this.layoutTriggerSubject>) => Observable<{
33
- width: number;
34
- height: number;
35
- }>;
36
28
  load: () => void;
37
29
  unload: () => void;
38
- getElementDimensions: () => {
39
- width: number;
40
- height: number;
41
- x: number;
42
- y: number;
43
- bottom: number;
44
- left: number;
45
- right: number;
46
- top: number;
47
- toJSON(): any;
48
- };
49
30
  destroy: () => void;
50
31
  get element(): HTMLElement;
51
32
  get readingDirection(): "rtl" | "ltr" | undefined;
33
+ get layoutPosition(): {
34
+ left: number;
35
+ top: number;
36
+ right: number;
37
+ bottom: number;
38
+ x: number;
39
+ y: number;
40
+ width: number;
41
+ height: number;
42
+ };
52
43
  isUsingVerticalWriting: () => boolean;
53
44
  get loaded$(): Observable<"loaded">;
54
45
  get unloaded$(): Observable<"idle">;
@@ -0,0 +1,50 @@
1
+ import { Manifest } from '@prose-reader/shared';
2
+ import { Observable, ObservedValueOf } from 'rxjs';
3
+ import { Context } from '../context/Context';
4
+ import { HookManager } from '../hooks/HookManager';
5
+ import { DestroyableClass } from '../utils/DestroyableClass';
6
+ import { DocumentRenderer } from './renderer/DocumentRenderer';
7
+ export declare class SpineItemLayout extends DestroyableClass {
8
+ item: Manifest[`spineItems`][number];
9
+ containerElement: HTMLElement;
10
+ context: Context;
11
+ hookManager: HookManager;
12
+ renderer: DocumentRenderer;
13
+ private layoutTriggerSubject;
14
+ private lastLayout;
15
+ readonly layout$: Observable<{
16
+ width: number;
17
+ height: number;
18
+ }>;
19
+ readonly layoutProcess$: Observable<{
20
+ readonly type: "start";
21
+ } | {
22
+ readonly type: "end";
23
+ readonly data: {
24
+ width: number;
25
+ height: number;
26
+ };
27
+ }>;
28
+ constructor(item: Manifest[`spineItems`][number], containerElement: HTMLElement, context: Context, hookManager: HookManager, renderer: DocumentRenderer);
29
+ private validateDimension;
30
+ private applyDimsAfterLayout;
31
+ layout: (params: ObservedValueOf<typeof this.layoutTriggerSubject>) => Observable<{
32
+ width: number;
33
+ height: number;
34
+ }>;
35
+ adjustPositionOfElement: ({ right, left, top, }: {
36
+ right?: number;
37
+ left?: number;
38
+ top?: number;
39
+ }) => void;
40
+ get layoutPosition(): {
41
+ left: number;
42
+ top: number;
43
+ right: number;
44
+ bottom: number;
45
+ x: number;
46
+ y: number;
47
+ width: number;
48
+ height: number;
49
+ };
50
+ }
@@ -1,7 +1,7 @@
1
1
  import { Context } from '../context/Context';
2
- import { SafeSpineItemPosition, UnsafeSpineItemPosition } from './types';
3
2
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
3
  import { SpineItem } from './SpineItem';
4
+ import { SafeSpineItemPosition, UnsafeSpineItemPosition } from './types';
5
5
  export type SpineItemLocator = ReturnType<typeof createSpineItemLocator>;
6
6
  export declare const createSpineItemLocator: ({ context, settings, }: {
7
7
  context: Context;
@@ -1,7 +1,7 @@
1
1
  import { Context } from '../context/Context';
2
- import { SafeSpineItemPosition, UnsafeSpineItemPosition } from './types';
3
2
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
3
  import { SpineItem } from './SpineItem';
4
+ import { SafeSpineItemPosition, UnsafeSpineItemPosition } from './types';
5
5
  export type SpineItemNavigationResolver = ReturnType<typeof createNavigationResolver>;
6
6
  export declare const createNavigationResolver: ({ context, settings, }: {
7
7
  context: Context;
@@ -21,7 +21,6 @@ type LayoutParams = {
21
21
  };
22
22
  export declare abstract class DocumentRenderer extends DestroyableClass {
23
23
  private triggerSubject;
24
- private lastLayoutDims;
25
24
  protected context: Context;
26
25
  protected settings: ReaderSettingsManager;
27
26
  protected hookManager: HookManager;
@@ -53,11 +52,7 @@ export declare abstract class DocumentRenderer extends DestroyableClass {
53
52
  layout(params: LayoutParams): Observable<{
54
53
  width: number;
55
54
  height: number;
56
- pageSize: {
57
- width: number;
58
- height: number;
59
- };
60
- }>;
55
+ } | undefined>;
61
56
  destroy(): void;
62
57
  abstract onRenderHeadless(params: {
63
58
  release: Observable<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/core",
3
- "version": "1.192.0",
3
+ "version": "1.194.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.192.0"
26
+ "@prose-reader/shared": "^1.194.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": "035f1337757519f5502ce99dee6811428a1e170d"
34
+ "gitHead": "dc135bf96a3e9f6bc08a072cdc2a906f8482a3b6"
35
35
  }