@prose-reader/core 1.57.0 → 1.59.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.
- package/dist/cfi.d.ts +74 -0
- package/dist/constants.d.ts +6 -0
- package/dist/context/Context.d.ts +63 -0
- package/dist/context/isUsingSpreadMode.d.ts +10 -0
- package/dist/createReaderWithEnhancer.d.ts +268 -0
- package/dist/enhancers/accessibility.d.ts +3 -0
- package/dist/enhancers/chrome.d.ts +3 -0
- package/dist/enhancers/events/createIframeEventBridgeElement.d.ts +1 -0
- package/dist/enhancers/events/events.d.ts +8 -0
- package/dist/enhancers/events/normalizeEventForViewport.d.ts +7 -0
- package/dist/enhancers/firefox.d.ts +3 -0
- package/dist/enhancers/fonts.d.ts +19 -0
- package/dist/enhancers/hotkeys.d.ts +3 -0
- package/dist/enhancers/layoutEnhancer/createMovingSafePan$.d.ts +4 -0
- package/dist/enhancers/layoutEnhancer/fixReflowable.d.ts +3 -0
- package/dist/enhancers/layoutEnhancer/layoutEnhancer.d.ts +10 -0
- package/dist/enhancers/layoutEnhancer/types.d.ts +8 -0
- package/dist/enhancers/links.d.ts +14 -0
- package/dist/enhancers/loadingEnhancer.d.ts +24 -0
- package/dist/enhancers/media.d.ts +3 -0
- package/dist/enhancers/navigation/navigation.d.ts +9 -0
- package/dist/enhancers/navigation/navigator.d.ts +8 -0
- package/dist/enhancers/navigation/state.d.ts +12 -0
- package/dist/enhancers/pagination/chapters.d.ts +24 -0
- package/dist/enhancers/pagination/constants.d.ts +1 -0
- package/dist/enhancers/pagination/enhancer.d.ts +14 -0
- package/dist/enhancers/pagination/pagination.d.ts +10 -0
- package/dist/enhancers/pagination/spine.d.ts +13 -0
- package/dist/enhancers/pagination/types.d.ts +19 -0
- package/dist/enhancers/pagination.test.d.ts +1 -0
- package/dist/enhancers/progression.d.ts +16 -0
- package/dist/enhancers/publicApi.d.ts +5 -0
- package/dist/enhancers/resources/index.d.ts +3 -0
- package/dist/enhancers/resources/indexedDB.d.ts +6 -0
- package/dist/enhancers/resources/resourcesManager.d.ts +7 -0
- package/dist/enhancers/theme.d.ts +32 -0
- package/dist/enhancers/types/enhancer.d.ts +9 -0
- package/dist/enhancers/utils.d.ts +7 -0
- package/dist/enhancers/webkit.d.ts +3 -0
- package/dist/enhancers/zoom/elementZoomer.d.ts +19 -0
- package/dist/enhancers/zoom/index.d.ts +4 -0
- package/dist/enhancers/zoom/types.d.ts +23 -0
- package/dist/enhancers/zoom/viewportZoomer.d.ts +19 -0
- package/dist/frames.d.ts +5 -0
- package/dist/hooks/HookManager.d.ts +10 -0
- package/dist/hooks/types.d.ts +64 -0
- package/dist/index.d.ts +9 -4262
- package/dist/index.js +225 -255
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +225 -255
- package/dist/index.umd.cjs.map +1 -1
- package/dist/manifest/areAllItemsPrePaginated.d.ts +3 -0
- package/dist/manifest/isFullyPrePaginated.d.ts +3 -0
- package/dist/pagination/pagination.d.ts +88 -0
- package/dist/pagination/types.d.ts +10 -0
- package/dist/reader.d.ts +8 -0
- package/dist/report.d.ts +26 -0
- package/dist/selection.d.ts +7 -0
- package/dist/settings/SettingsManager.d.ts +14 -0
- package/dist/settings/defaultSettings.d.ts +3 -0
- package/dist/settings/getComputedSettings.d.ts +4 -0
- package/dist/settings/types.d.ts +19 -0
- package/dist/spine/cfiLocator.d.ts +340 -0
- package/dist/spine/createSpine.d.ts +31 -0
- package/dist/spine/locationResolver.d.ts +636 -0
- package/dist/spine/navigationResolver.d.ts +48 -0
- package/dist/spine/types.d.ts +10 -0
- package/dist/spineItem/commonSpineItem.d.ts +165 -0
- package/dist/spineItem/createSpineItem.d.ts +167 -0
- package/dist/spineItem/frameItem/createFrame$.d.ts +1 -0
- package/dist/spineItem/frameItem/createFrameManipulator.d.ts +5 -0
- package/dist/spineItem/frameItem/createHtmlPageFromResource.d.ts +3 -0
- package/dist/spineItem/frameItem/frameItem.d.ts +49 -0
- package/dist/spineItem/frameItem/loader.d.ts +30 -0
- package/dist/spineItem/locationResolver.d.ts +24 -0
- package/dist/spineItem/navigationResolver.d.ts +16 -0
- package/dist/spineItem/prePaginatedSpineItem.d.ts +166 -0
- package/dist/spineItem/reflowableSpineItem.d.ts +165 -0
- package/dist/spineItem/styles/getStyleForViewportDocument.d.ts +1 -0
- package/dist/spineItem/trackers.d.ts +34 -0
- package/dist/spineItem/types.d.ts +19 -0
- package/dist/spineItemManager.d.ts +505 -0
- package/dist/types/Spine.d.ts +40 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/reader.d.ts +44 -0
- package/dist/utils/compose.d.ts +8 -0
- package/dist/utils/dom.d.ts +19 -0
- package/dist/utils/isDefined.d.ts +1 -0
- package/dist/utils/layout.d.ts +7 -0
- package/dist/utils/layout.test.d.ts +1 -0
- package/dist/utils/manifest.d.ts +3 -0
- package/dist/utils/objects.d.ts +6 -0
- package/dist/utils/objects.test.d.ts +1 -0
- package/dist/utils/rxjs.d.ts +5 -0
- package/dist/viewportNavigator/manualViewportNavigator.d.ts +96 -0
- package/dist/viewportNavigator/panViewportNavigator.d.ts +55 -0
- package/dist/viewportNavigator/scrollViewportNavigator.d.ts +38 -0
- package/dist/viewportNavigator/types.d.ts +34 -0
- package/dist/viewportNavigator/viewportNavigator.d.ts +82 -0
- package/package.json +3 -3
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { Reader } from '../../reader';
|
|
3
|
+
import { SpineItem } from '../../spineItem/createSpineItem';
|
|
4
|
+
|
|
5
|
+
export declare const getSpineItemNumberOfPages: ({ spineItem, reader }: {
|
|
6
|
+
spineItem: SpineItem;
|
|
7
|
+
reader: Reader;
|
|
8
|
+
}) => number;
|
|
9
|
+
export declare const getNumberOfPagesForAllSpineItems: (reader: Reader) => number[];
|
|
10
|
+
export declare const trackTotalPages: (reader: Reader) => Observable<{
|
|
11
|
+
numberOfPagesPerItems: number[];
|
|
12
|
+
numberOfTotalPages: number;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PaginationInfo } from '../../pagination/types';
|
|
2
|
+
import { Reader } from '../../reader';
|
|
3
|
+
import { progressionEnhancer } from '../progression';
|
|
4
|
+
import { EnhancerOutput } from '../types/enhancer';
|
|
5
|
+
import { ChapterInfo } from './chapters';
|
|
6
|
+
|
|
7
|
+
export type ReaderWithProgression = Reader & EnhancerOutput<typeof progressionEnhancer>;
|
|
8
|
+
export type ExtraPaginationInfo = {
|
|
9
|
+
beginChapterInfo: ChapterInfo | undefined;
|
|
10
|
+
beginSpineItemReadingDirection: `rtl` | `ltr` | undefined;
|
|
11
|
+
beginAbsolutePageIndex: number | undefined;
|
|
12
|
+
endChapterInfo: ChapterInfo | undefined;
|
|
13
|
+
endSpineItemReadingDirection: `rtl` | `ltr` | undefined;
|
|
14
|
+
endAbsolutePageIndex: number | undefined;
|
|
15
|
+
percentageEstimateOfBook: number | undefined;
|
|
16
|
+
numberOfTotalPages: number | undefined;
|
|
17
|
+
isUsingSpread: boolean;
|
|
18
|
+
};
|
|
19
|
+
export type EnhancerPaginationInto = PaginationInfo & ExtraPaginationInfo;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Context } from '../context/Context';
|
|
2
|
+
import { SpineItem } from '../spineItem/createSpineItem';
|
|
3
|
+
import { Reader } from '../reader';
|
|
4
|
+
|
|
5
|
+
export declare const progressionEnhancer: <InheritOptions, InheritOutput extends Reader>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & {
|
|
6
|
+
progression: {
|
|
7
|
+
getPercentageEstimate: (context: Context, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}, currentItem: SpineItem) => number;
|
|
11
|
+
getScrollPercentageWithinItem: (context: Context, currentPosition: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
}, currentItem: SpineItem) => number;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Reader } from '../reader';
|
|
2
|
+
|
|
3
|
+
export declare const publicApiEnhancer: <InheritOptions, InheritOutput extends Reader>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => Omit<InheritOutput, "pagination"> & {
|
|
4
|
+
pagination: Pick<InheritOutput["pagination"], "paginationInfo$" | "getPaginationInfo">;
|
|
5
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Context } from '../../context/Context';
|
|
2
|
+
import { Manifest } from '../../types';
|
|
3
|
+
|
|
4
|
+
export declare const createResourcesManager: (context: Context) => {
|
|
5
|
+
get: (itemIndexOrId: number | Pick<Manifest[`spineItems`][number], `id`>, fetchResource?: (item: Manifest[`spineItems`][number]) => Promise<Response>) => Promise<Response>;
|
|
6
|
+
destroy: () => void;
|
|
7
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { EnhancerOutput, RootEnhancer } from './types/enhancer';
|
|
3
|
+
|
|
4
|
+
declare const defaultThemes: ({
|
|
5
|
+
name: "bright";
|
|
6
|
+
backgroundColor: string;
|
|
7
|
+
foregroundColor?: undefined;
|
|
8
|
+
} | {
|
|
9
|
+
name: "sepia";
|
|
10
|
+
backgroundColor: string;
|
|
11
|
+
foregroundColor: string;
|
|
12
|
+
} | {
|
|
13
|
+
name: "night";
|
|
14
|
+
backgroundColor: string;
|
|
15
|
+
foregroundColor: string;
|
|
16
|
+
})[];
|
|
17
|
+
export type Theme = (typeof defaultThemes)[number][`name`] | `publisher`;
|
|
18
|
+
export interface ThemeEnhancer {
|
|
19
|
+
<InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput): (options: InheritOptions & {
|
|
20
|
+
theme?: Theme;
|
|
21
|
+
}) => InheritOutput & {
|
|
22
|
+
theme: {
|
|
23
|
+
set: (theme: Theme) => void;
|
|
24
|
+
get: () => Theme;
|
|
25
|
+
$: {
|
|
26
|
+
theme$: Observable<Theme>;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export declare const themeEnhancer: ThemeEnhancer;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CreateReaderParameters } from '../../reader';
|
|
2
|
+
import { ReaderInternal } from '../../types/reader';
|
|
3
|
+
|
|
4
|
+
export type EnhancerOutput<Enhancer extends (options: any) => any> = ReturnType<ReturnType<Enhancer>>;
|
|
5
|
+
export type EnhancerOptions<Enhancer extends (options: any) => any> = Parameters<ReturnType<Enhancer>>[0];
|
|
6
|
+
export interface RootEnhancer<Options extends CreateReaderParameters = CreateReaderParameters, Reader extends ReaderInternal = ReaderInternal> {
|
|
7
|
+
(next: (options: Options) => Reader): (options: Options) => Reader;
|
|
8
|
+
}
|
|
9
|
+
export declare const rootEnhancer: <Options extends CreateReaderParameters, Reader extends ReaderInternal>(next: (options: Options) => Reader) => (options: Options) => Reader;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EnhancerOutput, RootEnhancer } from './types/enhancer';
|
|
2
|
+
|
|
3
|
+
export declare const utilsEnhancer: <InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & {
|
|
4
|
+
utils: {
|
|
5
|
+
isOrIsWithinValidLink: (target: Event[`target`]) => boolean;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { EnhancerOptions, EnhancerOutput, RootEnhancer } from './types/enhancer';
|
|
2
|
+
|
|
3
|
+
export declare const webkitEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>>(createReader: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Reader } from '../../reader';
|
|
2
|
+
|
|
3
|
+
export declare const createElementZoomer: (reader: Reader) => {
|
|
4
|
+
enter: (imgElement: HTMLImageElement) => void;
|
|
5
|
+
exit: () => void;
|
|
6
|
+
move: (delta: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
} | undefined, { isFirst, isLast }: {
|
|
10
|
+
isFirst: boolean;
|
|
11
|
+
isLast: boolean;
|
|
12
|
+
}) => void;
|
|
13
|
+
scale: (userScale: number) => void;
|
|
14
|
+
setCurrentScaleAsBase: () => void;
|
|
15
|
+
getScaleValue: () => number;
|
|
16
|
+
isZooming: () => boolean;
|
|
17
|
+
destroy: () => void;
|
|
18
|
+
isZooming$: import('rxjs').Observable<boolean>;
|
|
19
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
|
|
3
|
+
export type Api = {
|
|
4
|
+
zoom: {
|
|
5
|
+
enter: (imgElement?: HTMLImageElement) => void;
|
|
6
|
+
exit: () => void;
|
|
7
|
+
move: (position: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
} | undefined, details: {
|
|
11
|
+
isFirst: boolean;
|
|
12
|
+
isLast: boolean;
|
|
13
|
+
}) => void;
|
|
14
|
+
isZooming: () => boolean;
|
|
15
|
+
isUsingScrollableZoom: () => boolean;
|
|
16
|
+
getScaleValue: () => number;
|
|
17
|
+
scale: (scale: number) => void;
|
|
18
|
+
setCurrentScaleAsBase: () => void;
|
|
19
|
+
$: {
|
|
20
|
+
isZooming$: Observable<boolean>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Reader } from '../../reader';
|
|
2
|
+
|
|
3
|
+
export declare const createViewportZoomer: (reader: Reader) => {
|
|
4
|
+
enter: () => void;
|
|
5
|
+
exit: () => void;
|
|
6
|
+
move: (_: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
} | undefined, __: {
|
|
10
|
+
isFirst: boolean;
|
|
11
|
+
isLast: boolean;
|
|
12
|
+
}) => void;
|
|
13
|
+
scale: (userScale: number) => void;
|
|
14
|
+
setCurrentScaleAsBase: () => void;
|
|
15
|
+
getScaleValue: () => number;
|
|
16
|
+
isZooming: () => boolean;
|
|
17
|
+
destroy: () => void;
|
|
18
|
+
isZooming$: import('rxjs').Observable<boolean>;
|
|
19
|
+
};
|
package/dist/frames.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const createRemoveStyleHelper: (frameElement: HTMLIFrameElement | undefined) => (id: string) => void;
|
|
2
|
+
export declare const createAddStyleHelper: (frameElement: HTMLIFrameElement | undefined) => (id: string, style: string, prepend?: boolean) => void;
|
|
3
|
+
export declare const getAttributeValueFromString: (string: string, key: string) => number;
|
|
4
|
+
export declare const getOriginalFrameEventFromDocumentEvent: <E extends Event>(event: E) => E | undefined;
|
|
5
|
+
export declare const attachOriginalFrameEventToDocumentEvent: <E extends Event>(event: E, frameEvent: E) => void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CoreHook, Hook, HookExecution, HookFrom } from './types';
|
|
2
|
+
|
|
3
|
+
export declare class HookManager<H extends Hook<any, any, any> = CoreHook> {
|
|
4
|
+
_hooks: Array<H>;
|
|
5
|
+
_hookExecutions: Array<HookExecution<H>>;
|
|
6
|
+
protected deregister(hookToDeregister: H): import('rxjs').Observable<unknown[]>;
|
|
7
|
+
register<Name extends H["name"]>(name: Name, fn: HookFrom<H, Name>["runFn"]): () => void;
|
|
8
|
+
execute<Name extends H["name"]>(name: Name, id: string | undefined, params: Omit<Parameters<HookFrom<H, Name>["runFn"]>[0], "destroy" | "destroy$">): ReturnType<HookFrom<H, Name>["runFn"]>[];
|
|
9
|
+
destroy<Name extends H["name"]>(name: Name, id?: string, ref?: H): import('rxjs').Observable<unknown[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Manifest } from '@prose-reader/shared';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
|
|
4
|
+
export type UserDestroyFn = () => void | Observable<unknown>;
|
|
5
|
+
export interface Hook<Name, Params, Result> {
|
|
6
|
+
name: Name;
|
|
7
|
+
runFn: (params: Params) => Result;
|
|
8
|
+
}
|
|
9
|
+
export type CoreHook = {
|
|
10
|
+
name: `item.onLoad`;
|
|
11
|
+
runFn: (params: {
|
|
12
|
+
destroy$: Observable<void>;
|
|
13
|
+
destroy: (fn: UserDestroyFn) => void;
|
|
14
|
+
itemId: string;
|
|
15
|
+
frame: HTMLIFrameElement;
|
|
16
|
+
}) => Observable<void> | void;
|
|
17
|
+
} | {
|
|
18
|
+
name: "item.onAfterLayout";
|
|
19
|
+
runFn: (params: {
|
|
20
|
+
blankPagePosition: "before" | "after" | "none";
|
|
21
|
+
item: Manifest["spineItems"][number];
|
|
22
|
+
minimumWidth: number;
|
|
23
|
+
}) => void;
|
|
24
|
+
} | {
|
|
25
|
+
name: "item.onBeforeContainerCreated";
|
|
26
|
+
runFn: (params: {
|
|
27
|
+
element: HTMLElement;
|
|
28
|
+
}) => void;
|
|
29
|
+
} | {
|
|
30
|
+
name: "item.onLayoutBeforeMeasurement";
|
|
31
|
+
runFn: (params: {
|
|
32
|
+
frame: {
|
|
33
|
+
getManipulableFrame: () => undefined | {
|
|
34
|
+
removeStyle: (id: string) => void;
|
|
35
|
+
addStyle: (id: string, style: CSSStyleDeclaration[`cssText`]) => void;
|
|
36
|
+
};
|
|
37
|
+
getViewportDimensions: () => {
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
} | undefined;
|
|
41
|
+
isUsingVerticalWriting: () => boolean;
|
|
42
|
+
getIsReady: () => boolean;
|
|
43
|
+
};
|
|
44
|
+
container: HTMLElement;
|
|
45
|
+
item: Manifest[`spineItems`][number];
|
|
46
|
+
minimumWidth: number;
|
|
47
|
+
isImageType: () => boolean | undefined;
|
|
48
|
+
}) => void;
|
|
49
|
+
} | {
|
|
50
|
+
name: "onViewportOffsetAdjust";
|
|
51
|
+
runFn: (params: void) => void;
|
|
52
|
+
} | {
|
|
53
|
+
name: `viewportNavigator.onBeforeContainerCreated`;
|
|
54
|
+
runFn: (params: {
|
|
55
|
+
element: HTMLElement;
|
|
56
|
+
}) => void;
|
|
57
|
+
};
|
|
58
|
+
export type HookExecution<H extends Hook<any, any, any>> = {
|
|
59
|
+
name: string;
|
|
60
|
+
id: string | undefined;
|
|
61
|
+
destroyFn: () => Observable<unknown>;
|
|
62
|
+
ref: H;
|
|
63
|
+
};
|
|
64
|
+
export type HookFrom<H extends Hook<any, any, any>, Name extends H["name"]> = H extends infer HK ? HK extends H ? HK["name"] extends Name ? HK : never : never : never;
|