@eternalheart/angular-file-preview 1.6.5
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/LICENSE +22 -0
- package/README.md +879 -0
- package/README.zh-CN.md +876 -0
- package/lib/LICENSE +22 -0
- package/lib/README.md +879 -0
- package/lib/components/preview/file-preview-toolbar.d.ts +19 -0
- package/lib/components/preview/nav-arrows.d.ts +25 -0
- package/lib/components/preview/renderer-outlet.d.ts +23 -0
- package/lib/components/preview/toolbar-button.d.ts +12 -0
- package/lib/components/resizable-split.d.ts +32 -0
- package/lib/di/locale.service.d.ts +12 -0
- package/lib/di/request.service.d.ts +20 -0
- package/lib/di/theme-mode.d.ts +6 -0
- package/lib/di/theme.service.d.ts +9 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-avifLoader-BP3fgcMm-CZsJ9svm.mjs +55 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-avifLoader-BP3fgcMm-CZsJ9svm.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-RendererError-DtNihCIX-DtNihCIX.mjs +58 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-RendererError-DtNihCIX-DtNihCIX.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-UobTf36G.mjs +5835 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-UobTf36G.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-base.types-D5x7QPey-D5x7QPey.mjs +17 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-base.types-D5x7QPey-D5x7QPey.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs +284 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-6dZS_Cfs-B1itLV5R.mjs +703 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-6dZS_Cfs-B1itLV5R.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B1ANUCTy-BRs7TMLn.mjs +231 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B1ANUCTy-BRs7TMLn.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BEaqpRV8-BidVIVlO.mjs +552 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BEaqpRV8-BidVIVlO.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BGqTRZbm-CAOLRw20.mjs +688 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BGqTRZbm-CAOLRw20.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Bv3JRXKn-B4Wewc-4.mjs +273 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Bv3JRXKn-B4Wewc-4.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C0McUoqT-DJ35bhIz.mjs +288 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C0McUoqT-DJ35bhIz.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C518mdUd-B5SCzrzU.mjs +550 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C518mdUd-B5SCzrzU.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CDjKPqyW-CmX5sdkL.mjs +102 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CDjKPqyW-CmX5sdkL.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CHi9tOe0-NOeQYAnM.mjs +516 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CHi9tOe0-NOeQYAnM.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CQwhffym-DAGw4Xy_.mjs +823 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CQwhffym-DAGw4Xy_.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs +164 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cb1RLXeO-Bj9gjS1Z.mjs +655 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cb1RLXeO-Bj9gjS1Z.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs +207 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D35x1nwM-CugEEXjg.mjs +199 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D35x1nwM-CugEEXjg.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D9jJNzeM-mWX59Aj2.mjs +194 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D9jJNzeM-mWX59Aj2.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DbmuvdvN-C29uLyt2.mjs +94 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DbmuvdvN-C29uLyt2.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DsNNZ59Q-C8MaSME6.mjs +468 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DsNNZ59Q-C8MaSME6.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DufW2Fuc-CTosCut6.mjs +193 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DufW2Fuc-CTosCut6.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-TSTa_Q7E-DBhkL6pV.mjs +184 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-TSTa_Q7E-DBhkL6pV.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-pG0Ko5mI-DthQJg-X.mjs +492 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-pG0Ko5mI-DthQJg-X.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CL9cG481-BKfwdOpN.mjs +68 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CL9cG481-BKfwdOpN.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-heicLoader-CH_raQNn-BSXHd_oi.mjs +36 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-heicLoader-CH_raQNn-BSXHd_oi.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-jp2Loader-ldvCSsvm-DJEhfimG.mjs +121 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-jp2Loader-ldvCSsvm-DJEhfimG.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-psdLoader-D5CkupyY-D5Gegcdg.mjs +78 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-psdLoader-D5CkupyY-D5Gegcdg.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-rawLoader-0mLvxCNp-CCXn9Rdp.mjs +81 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-rawLoader-0mLvxCNp-CCXn9Rdp.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-tiffLoader-CmUAD1vO-0JqIws9t.mjs +59 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-tiffLoader-CmUAD1vO-0JqIws9t.mjs.map +1 -0
- package/lib/fesm2022/eternalheart-angular-file-preview.mjs +2 -0
- package/lib/fesm2022/eternalheart-angular-file-preview.mjs.map +1 -0
- package/lib/file-preview-content.d.ts +65 -0
- package/lib/file-preview-embed.d.ts +30 -0
- package/lib/file-preview-modal.d.ts +34 -0
- package/lib/fp-core.d.ts +1 -0
- package/lib/index.css +2119 -0
- package/lib/index.d.ts +11 -0
- package/lib/renderers/Audio/index.d.ts +74 -0
- package/lib/renderers/Cad/index.d.ts +45 -0
- package/lib/renderers/Cad/toolbar.d.ts +15 -0
- package/lib/renderers/Csv/index.d.ts +26 -0
- package/lib/renderers/Doc/index.d.ts +19 -0
- package/lib/renderers/Docx/index.d.ts +42 -0
- package/lib/renderers/Epub/index.d.ts +57 -0
- package/lib/renderers/Font/font-preview-line.d.ts +26 -0
- package/lib/renderers/Font/index.d.ts +52 -0
- package/lib/renderers/Image/index.d.ts +79 -0
- package/lib/renderers/Json/index.d.ts +61 -0
- package/lib/renderers/Markdown/index.d.ts +35 -0
- package/lib/renderers/Mobi/index.d.ts +51 -0
- package/lib/renderers/Msg/index.d.ts +47 -0
- package/lib/renderers/Pdf/index.d.ts +55 -0
- package/lib/renderers/Ppt/index.d.ts +19 -0
- package/lib/renderers/Pptx/index.d.ts +29 -0
- package/lib/renderers/RendererError.d.ts +9 -0
- package/lib/renderers/RendererLoading.d.ts +7 -0
- package/lib/renderers/Subtitle/index.d.ts +25 -0
- package/lib/renderers/Text/index.d.ts +29 -0
- package/lib/renderers/Unsupported/index.d.ts +15 -0
- package/lib/renderers/Video/index.d.ts +28 -0
- package/lib/renderers/Xlsx/index.d.ts +25 -0
- package/lib/renderers/Xml/index.d.ts +26 -0
- package/lib/renderers/Zip/index.d.ts +58 -0
- package/lib/renderers/Zip/tree-item.d.ts +29 -0
- package/lib/renderers/base.types.d.ts +10 -0
- package/lib/renderers/lazy.d.ts +23 -0
- package/lib/renderers/registry.d.ts +13 -0
- package/lib/renderers/toolbar.types.d.ts +19 -0
- package/lib/types.d.ts +26 -0
- package/lib/utils/audio-player.d.ts +20 -0
- package/lib/utils/shiki-highlight.d.ts +7 -0
- package/package.json +119 -0
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const VERSION = "1.6.4";
|
|
2
|
+
export { FilePreviewModal } from './file-preview-modal';
|
|
3
|
+
export { FilePreviewEmbed } from './file-preview-embed';
|
|
4
|
+
export { FilePreviewContent } from './file-preview-content';
|
|
5
|
+
export type { PreviewFile, PreviewFileLink, PreviewFileInput, FileType, PreviewState, ToolbarAction, CustomRenderer, CustomRendererContext, CustomRendererEventPayload, RequestHandler, RequestInitFactory, RequestOptions, Fetcher, ShouldFetchAsBlob, } from './types';
|
|
6
|
+
export { normalizeFile, normalizeFiles, getFileType, configurePdfWorker, SUPPORTED_FILE_TYPES, } from './fp-core';
|
|
7
|
+
export type { PdfWorkerOptions } from './fp-core';
|
|
8
|
+
export type { Locale, Messages, Translator, Theme } from './fp-core';
|
|
9
|
+
export { LocaleService } from './di/locale.service';
|
|
10
|
+
export { ThemeService } from './di/theme.service';
|
|
11
|
+
export { RequestService } from './di/request.service';
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { formatTime } from '../../fp-core';
|
|
2
|
+
import type { RendererHandle } from '../base.types';
|
|
3
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AudioRenderer implements RendererHandle {
|
|
6
|
+
url: import("@angular/core").InputSignal<string>;
|
|
7
|
+
fileName: import("@angular/core").InputSignal<string>;
|
|
8
|
+
private readonly emitter;
|
|
9
|
+
private readonly locale;
|
|
10
|
+
private readonly destroyRef;
|
|
11
|
+
protected readonly t: import("@eternalheart/file-preview-core").Translator;
|
|
12
|
+
protected readonly formatTime: typeof formatTime;
|
|
13
|
+
protected readonly Math: Math;
|
|
14
|
+
protected readonly playIcon: import("lucide-angular").LucideIconData;
|
|
15
|
+
protected readonly pauseIcon: import("lucide-angular").LucideIconData;
|
|
16
|
+
protected readonly skipBackIcon: import("lucide-angular").LucideIconData;
|
|
17
|
+
protected readonly skipForwardIcon: import("lucide-angular").LucideIconData;
|
|
18
|
+
protected readonly repeatIcon: import("lucide-angular").LucideIconData;
|
|
19
|
+
private readonly player;
|
|
20
|
+
protected readonly isPlaying: import("@angular/core").WritableSignal<boolean>;
|
|
21
|
+
protected readonly isLoop: import("@angular/core").WritableSignal<boolean>;
|
|
22
|
+
protected readonly currentTime: import("@angular/core").WritableSignal<number>;
|
|
23
|
+
protected readonly duration: import("@angular/core").WritableSignal<number>;
|
|
24
|
+
protected readonly volume: import("@angular/core").WritableSignal<number>;
|
|
25
|
+
protected readonly isMuted: import("@angular/core").WritableSignal<boolean>;
|
|
26
|
+
protected readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
27
|
+
protected readonly togglePlay: () => void;
|
|
28
|
+
protected readonly toggleMute: () => void;
|
|
29
|
+
protected readonly toggleLoop: () => void;
|
|
30
|
+
readonly showVolume: import("@angular/core").WritableSignal<boolean>;
|
|
31
|
+
readonly isCompact: import("@angular/core").WritableSignal<boolean>;
|
|
32
|
+
readonly controlScale: import("@angular/core").WritableSignal<number>;
|
|
33
|
+
readonly isDragging: import("@angular/core").WritableSignal<boolean>;
|
|
34
|
+
readonly dragTime: import("@angular/core").WritableSignal<number>;
|
|
35
|
+
private readonly containerRef;
|
|
36
|
+
private readonly volumeRef;
|
|
37
|
+
private readonly audioEl;
|
|
38
|
+
private volumeHideTimer;
|
|
39
|
+
private resizeObserver;
|
|
40
|
+
private bindRaf;
|
|
41
|
+
private readonly vinylBase;
|
|
42
|
+
private readonly vinylHeightBase;
|
|
43
|
+
protected readonly displayTime: import("@angular/core").Signal<number>;
|
|
44
|
+
protected readonly progress: import("@angular/core").Signal<number>;
|
|
45
|
+
private readonly vinylScale;
|
|
46
|
+
private readonly finalVinylScale;
|
|
47
|
+
protected readonly volumeIcon: import("@angular/core").Signal<import("lucide-angular").LucideIconData>;
|
|
48
|
+
protected readonly timeRowClass: import("@angular/core").Signal<"afp-flex afp-justify-between afp-text-fg-tertiary afp-text-[10px] afp-mt-1.5" | "afp-flex afp-justify-between afp-text-fg-tertiary afp-text-xs afp-mt-2.5">;
|
|
49
|
+
constructor();
|
|
50
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
51
|
+
onToolbarChange: (listener: () => void) => () => void;
|
|
52
|
+
protected skip(seconds: number): void;
|
|
53
|
+
protected onProgressPointerDown(): void;
|
|
54
|
+
protected onProgressInput(e: Event): void;
|
|
55
|
+
protected onProgressPointerUp(e: Event): void;
|
|
56
|
+
protected onVolumeInput(e: Event): void;
|
|
57
|
+
protected handleVolumeEnter(): void;
|
|
58
|
+
protected handleVolumeLeave(): void;
|
|
59
|
+
protected vinylBoxStyle(): string;
|
|
60
|
+
protected glowStyle(): string;
|
|
61
|
+
protected vinylStyle(): string;
|
|
62
|
+
protected labelStyle(): string;
|
|
63
|
+
protected spindleStyle(): string;
|
|
64
|
+
protected tonearmStyle(): string;
|
|
65
|
+
protected panelStyle(): string;
|
|
66
|
+
protected progressFillStyle(): string;
|
|
67
|
+
protected playBtnStyle(): string;
|
|
68
|
+
protected volumePopupStyle(): string;
|
|
69
|
+
protected volumeFillStyle(): string;
|
|
70
|
+
private checkSize;
|
|
71
|
+
private readonly handleClickOutside;
|
|
72
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AudioRenderer, never>;
|
|
73
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AudioRenderer, "afp-audio-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
74
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { RendererHandle } from '../base.types';
|
|
2
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CadRenderer implements RendererHandle {
|
|
5
|
+
url: import("@angular/core").InputSignal<string>;
|
|
6
|
+
file: import("@angular/core").InputSignal<File | undefined>;
|
|
7
|
+
fileName: import("@angular/core").InputSignal<string | undefined>;
|
|
8
|
+
private readonly locale;
|
|
9
|
+
private readonly request;
|
|
10
|
+
protected readonly t: import("@eternalheart/file-preview-core").Translator;
|
|
11
|
+
private readonly container;
|
|
12
|
+
private readonly toolbarEmitter;
|
|
13
|
+
private readonly mounted;
|
|
14
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
15
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
16
|
+
readonly wireframe: import("@angular/core").WritableSignal<boolean>;
|
|
17
|
+
readonly showGrid: import("@angular/core").WritableSignal<boolean>;
|
|
18
|
+
readonly showAxes: import("@angular/core").WritableSignal<boolean>;
|
|
19
|
+
private scene;
|
|
20
|
+
private camera;
|
|
21
|
+
private renderer;
|
|
22
|
+
private controls;
|
|
23
|
+
private model;
|
|
24
|
+
private grid;
|
|
25
|
+
private axes;
|
|
26
|
+
private animationId;
|
|
27
|
+
private abortController;
|
|
28
|
+
private isCleanedUp;
|
|
29
|
+
constructor();
|
|
30
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
31
|
+
onToolbarChange: (listener: () => void) => () => void;
|
|
32
|
+
private getExtension;
|
|
33
|
+
private resetView;
|
|
34
|
+
private toggleWireframe;
|
|
35
|
+
private toggleGrid;
|
|
36
|
+
private toggleAxes;
|
|
37
|
+
private disposeMaterial;
|
|
38
|
+
private disposeThreeResources;
|
|
39
|
+
private initScene;
|
|
40
|
+
private loadModel;
|
|
41
|
+
private readonly handleResize;
|
|
42
|
+
private cleanup;
|
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CadRenderer, never>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CadRenderer, "afp-cad-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; "file": { "alias": "file"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Translator } from '../../fp-core';
|
|
2
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
3
|
+
export interface CadToolbarContext {
|
|
4
|
+
cadRef: {
|
|
5
|
+
resetView: () => void;
|
|
6
|
+
toggleWireframe: () => void;
|
|
7
|
+
toggleGrid: () => void;
|
|
8
|
+
toggleAxes: () => void;
|
|
9
|
+
} | null;
|
|
10
|
+
wireframe: boolean;
|
|
11
|
+
showGrid: boolean;
|
|
12
|
+
showAxes: boolean;
|
|
13
|
+
t: Translator;
|
|
14
|
+
}
|
|
15
|
+
export declare function getCadToolbarGroups(ctx: CadToolbarContext): ToolbarGroup[];
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { RendererHandle } from '../base.types';
|
|
2
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CsvRenderer implements RendererHandle {
|
|
5
|
+
url: import("@angular/core").InputSignal<string>;
|
|
6
|
+
fileName: import("@angular/core").InputSignal<string>;
|
|
7
|
+
private readonly locale;
|
|
8
|
+
private readonly request;
|
|
9
|
+
private readonly destroyRef;
|
|
10
|
+
protected readonly t: import("@eternalheart/file-preview-core").Translator;
|
|
11
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
12
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
13
|
+
private readonly container;
|
|
14
|
+
private sheetData;
|
|
15
|
+
private resizeObserver;
|
|
16
|
+
private resizeTimeout;
|
|
17
|
+
private lastDimensions;
|
|
18
|
+
private urlWatchStarted;
|
|
19
|
+
constructor();
|
|
20
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
21
|
+
private calculateDimensions;
|
|
22
|
+
private mountSpreadsheet;
|
|
23
|
+
private loadCsv;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CsvRenderer, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CsvRenderer, "afp-csv-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RendererHandle } from '../base.types';
|
|
2
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class DocRenderer implements RendererHandle {
|
|
5
|
+
url: import("@angular/core").InputSignal<string>;
|
|
6
|
+
private readonly locale;
|
|
7
|
+
private readonly request;
|
|
8
|
+
private readonly sanitizer;
|
|
9
|
+
private readonly t;
|
|
10
|
+
readonly html: import("@angular/core").WritableSignal<string>;
|
|
11
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
12
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
13
|
+
constructor();
|
|
14
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
15
|
+
protected trust(html: string): import("@angular/platform-browser").SafeHtml;
|
|
16
|
+
private loadDoc;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DocRenderer, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DocRenderer, "afp-doc-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type DocxTheme } from '../../fp-core';
|
|
2
|
+
import type { RendererHandle } from '../base.types';
|
|
3
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class DocxRenderer implements RendererHandle {
|
|
6
|
+
url: import("@angular/core").InputSignal<string>;
|
|
7
|
+
private readonly locale;
|
|
8
|
+
private readonly request;
|
|
9
|
+
private readonly sanitizer;
|
|
10
|
+
private readonly t;
|
|
11
|
+
readonly html: import("@angular/core").WritableSignal<string>;
|
|
12
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
13
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
14
|
+
readonly pages: import("@angular/core").WritableSignal<string[]>;
|
|
15
|
+
readonly theme: import("@angular/core").WritableSignal<DocxTheme>;
|
|
16
|
+
private readonly measureRef;
|
|
17
|
+
protected readonly pageGap = 24;
|
|
18
|
+
protected readonly contentStyle: import("@angular/core").Signal<Record<string, string>>;
|
|
19
|
+
protected readonly measureStyle: import("@angular/core").Signal<{
|
|
20
|
+
position: string;
|
|
21
|
+
visibility: string;
|
|
22
|
+
width: string;
|
|
23
|
+
pointerEvents: string;
|
|
24
|
+
}>;
|
|
25
|
+
protected readonly pageBoxStyle: {
|
|
26
|
+
width: string;
|
|
27
|
+
maxWidth: string;
|
|
28
|
+
minHeight: string;
|
|
29
|
+
background: string;
|
|
30
|
+
boxShadow: string;
|
|
31
|
+
flexShrink: number;
|
|
32
|
+
padding: string;
|
|
33
|
+
};
|
|
34
|
+
constructor();
|
|
35
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
36
|
+
protected trust(html: string): import("@angular/platform-browser").SafeHtml;
|
|
37
|
+
readonly displayPages: import("@angular/core").Signal<string[]>;
|
|
38
|
+
private loadDocx;
|
|
39
|
+
private paginate;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DocxRenderer, never>;
|
|
41
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DocxRenderer, "afp-docx-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
42
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { RendererHandle } from '../base.types';
|
|
2
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
interface TocItem {
|
|
5
|
+
label: string;
|
|
6
|
+
href: string;
|
|
7
|
+
subitems?: TocItem[];
|
|
8
|
+
}
|
|
9
|
+
export declare class EpubRenderer implements RendererHandle {
|
|
10
|
+
url: import("@angular/core").InputSignal<string>;
|
|
11
|
+
private readonly emitter;
|
|
12
|
+
private readonly locale;
|
|
13
|
+
private readonly request;
|
|
14
|
+
protected readonly t: import("@eternalheart/file-preview-core").Translator;
|
|
15
|
+
private readonly viewer;
|
|
16
|
+
protected readonly xIcon: import("lucide-angular").LucideIconData;
|
|
17
|
+
protected readonly a4Width = 794;
|
|
18
|
+
readonly currentChapter: import("@angular/core").WritableSignal<number>;
|
|
19
|
+
readonly totalChapters: import("@angular/core").WritableSignal<number>;
|
|
20
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
21
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
22
|
+
readonly isFullWidth: import("@angular/core").WritableSignal<boolean>;
|
|
23
|
+
readonly toc: import("@angular/core").WritableSignal<TocItem[]>;
|
|
24
|
+
readonly showToc: import("@angular/core").WritableSignal<boolean>;
|
|
25
|
+
readonly activeTocHref: import("@angular/core").WritableSignal<string>;
|
|
26
|
+
private readonly mounted;
|
|
27
|
+
private book;
|
|
28
|
+
private rendition;
|
|
29
|
+
private totalLocations;
|
|
30
|
+
private lastCfi;
|
|
31
|
+
private resizeObserver;
|
|
32
|
+
private resizeTimeout;
|
|
33
|
+
private lastDimensions;
|
|
34
|
+
private isInitialResize;
|
|
35
|
+
private scrollContainer;
|
|
36
|
+
constructor();
|
|
37
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
38
|
+
onToolbarChange: (listener: () => void) => () => void;
|
|
39
|
+
protected isActive(href: string): boolean;
|
|
40
|
+
protected tocButtonStyle(href: string, sub: boolean): Record<string, string>;
|
|
41
|
+
protected onTocEnter(ev: Event, href: string): void;
|
|
42
|
+
protected onTocLeave(ev: Event, href: string): void;
|
|
43
|
+
protected handleTocClick(href: string): void;
|
|
44
|
+
private prevPage;
|
|
45
|
+
private nextPage;
|
|
46
|
+
private toggleFullWidth;
|
|
47
|
+
private toggleToc;
|
|
48
|
+
private cleanup;
|
|
49
|
+
private loadEpub;
|
|
50
|
+
private doResize;
|
|
51
|
+
private setupResizeObserver;
|
|
52
|
+
private readonly onContainerScroll;
|
|
53
|
+
private reattachScrollListener;
|
|
54
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EpubRenderer, never>;
|
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EpubRenderer, "afp-epub-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
type RenderMode = 'fontface' | 'canvas';
|
|
3
|
+
interface OpentypeFontLike {
|
|
4
|
+
getAdvanceWidth: (text: string, fontSize: number) => number;
|
|
5
|
+
getPath: (text: string, x: number, y: number, fontSize: number) => {
|
|
6
|
+
fill: string | null;
|
|
7
|
+
draw: (ctx: CanvasRenderingContext2D) => void;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export declare class FontPreviewLine {
|
|
11
|
+
font: import("@angular/core").InputSignal<OpentypeFontLike | null>;
|
|
12
|
+
text: import("@angular/core").InputSignal<string>;
|
|
13
|
+
fontSize: import("@angular/core").InputSignal<number>;
|
|
14
|
+
renderMode: import("@angular/core").InputSignal<RenderMode>;
|
|
15
|
+
theme: import("@angular/core").InputSignal<"dark" | "light">;
|
|
16
|
+
private readonly wrapper;
|
|
17
|
+
private readonly canvas;
|
|
18
|
+
private resizeObserver;
|
|
19
|
+
constructor();
|
|
20
|
+
private teardownObserver;
|
|
21
|
+
private drawCanvas;
|
|
22
|
+
private setupObserver;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FontPreviewLine, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FontPreviewLine, "afp-font-preview-line", never, { "font": { "alias": "font"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": true; "isSignal": true; }; "fontSize": { "alias": "fontSize"; "required": true; "isSignal": true; }; "renderMode": { "alias": "renderMode"; "required": true; "isSignal": true; }; "theme": { "alias": "theme"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Font as OpentypeFont } from 'opentype.js';
|
|
2
|
+
import type { RendererHandle } from '../base.types';
|
|
3
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
interface FontMetadata {
|
|
6
|
+
family: string;
|
|
7
|
+
subfamily: string;
|
|
8
|
+
version: string;
|
|
9
|
+
designer: string;
|
|
10
|
+
glyphCount: number;
|
|
11
|
+
format: string;
|
|
12
|
+
}
|
|
13
|
+
type RenderMode = 'fontface' | 'canvas';
|
|
14
|
+
type MetadataStatus = 'loading' | 'ready' | 'unavailable';
|
|
15
|
+
export declare class FontRenderer implements RendererHandle {
|
|
16
|
+
url: import("@angular/core").InputSignal<string>;
|
|
17
|
+
private readonly locale;
|
|
18
|
+
private readonly request;
|
|
19
|
+
private readonly theme;
|
|
20
|
+
protected readonly t: import("@eternalheart/file-preview-core").Translator;
|
|
21
|
+
protected readonly sizes: number[];
|
|
22
|
+
protected readonly samples: {
|
|
23
|
+
latin: string;
|
|
24
|
+
chinese: string;
|
|
25
|
+
mixed: string;
|
|
26
|
+
};
|
|
27
|
+
readonly font: import("@angular/core").WritableSignal<OpentypeFont | null>;
|
|
28
|
+
readonly metadata: import("@angular/core").WritableSignal<FontMetadata | null>;
|
|
29
|
+
readonly metadataStatus: import("@angular/core").WritableSignal<MetadataStatus>;
|
|
30
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
31
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
32
|
+
readonly customText: import("@angular/core").WritableSignal<string>;
|
|
33
|
+
readonly renderMode: import("@angular/core").WritableSignal<RenderMode>;
|
|
34
|
+
readonly displayText: import("@angular/core").Signal<string>;
|
|
35
|
+
readonly showMetaPlaceholder: import("@angular/core").Signal<boolean>;
|
|
36
|
+
readonly metaPlaceholder: import("@angular/core").Signal<string>;
|
|
37
|
+
readonly effectiveRenderMode: import("@angular/core").Signal<RenderMode>;
|
|
38
|
+
readonly resolvedTheme: import("@angular/core").Signal<import("../../di/theme.service").ResolvedTheme>;
|
|
39
|
+
private fontFace;
|
|
40
|
+
constructor();
|
|
41
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
42
|
+
protected onCustomInput(ev: Event): void;
|
|
43
|
+
private releaseFontFace;
|
|
44
|
+
private detectFormat;
|
|
45
|
+
private formatLabel;
|
|
46
|
+
private loadFontFace;
|
|
47
|
+
private loadMetadata;
|
|
48
|
+
private loadFont;
|
|
49
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FontRenderer, never>;
|
|
50
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FontRenderer, "afp-font-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import type { PreviewFile } from '../../fp-core';
|
|
3
|
+
import type { RendererHandle } from '../base.types';
|
|
4
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ImageRenderer implements RendererHandle {
|
|
7
|
+
url: import("@angular/core").InputSignal<string>;
|
|
8
|
+
fileSize: import("@angular/core").InputSignal<number | undefined>;
|
|
9
|
+
file: import("@angular/core").InputSignal<PreviewFile | File | undefined>;
|
|
10
|
+
private readonly emitter;
|
|
11
|
+
private readonly locale;
|
|
12
|
+
private readonly request;
|
|
13
|
+
private readonly destroyRef;
|
|
14
|
+
protected readonly t: import("@eternalheart/file-preview-core").Translator;
|
|
15
|
+
protected readonly loader2Icon: import("lucide-angular").LucideIconData;
|
|
16
|
+
protected readonly Math: Math;
|
|
17
|
+
readonly zoom: import("@angular/core").WritableSignal<number>;
|
|
18
|
+
readonly rotation: import("@angular/core").WritableSignal<number>;
|
|
19
|
+
readonly loaded: import("@angular/core").WritableSignal<boolean>;
|
|
20
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
21
|
+
readonly decoding: import("@angular/core").WritableSignal<boolean>;
|
|
22
|
+
readonly decodeProgress: import("@angular/core").WritableSignal<number>;
|
|
23
|
+
readonly decodeError: import("@angular/core").WritableSignal<string | null>;
|
|
24
|
+
readonly imageSrc: import("@angular/core").WritableSignal<string>;
|
|
25
|
+
readonly currentPage: import("@angular/core").WritableSignal<number>;
|
|
26
|
+
readonly totalPages: import("@angular/core").WritableSignal<number>;
|
|
27
|
+
readonly position: import("@angular/core").WritableSignal<{
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
}>;
|
|
31
|
+
readonly isDragging: import("@angular/core").WritableSignal<boolean>;
|
|
32
|
+
readonly naturalSize: import("@angular/core").WritableSignal<{
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
}>;
|
|
36
|
+
private dragStart;
|
|
37
|
+
private blobUrl;
|
|
38
|
+
private fileBlobCache;
|
|
39
|
+
private loaderCache;
|
|
40
|
+
private readonly pageCache;
|
|
41
|
+
private isTouchDevice;
|
|
42
|
+
private touchStartDistance;
|
|
43
|
+
private touchStartZoom;
|
|
44
|
+
private touchStartPos;
|
|
45
|
+
private lastTapTime;
|
|
46
|
+
private listenersEl;
|
|
47
|
+
protected readonly containerRef: import("@angular/core").Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
48
|
+
protected readonly sizeText: import("@angular/core").Signal<string>;
|
|
49
|
+
protected readonly transformCss: import("@angular/core").Signal<string>;
|
|
50
|
+
constructor();
|
|
51
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
52
|
+
onToolbarChange: (listener: () => void) => () => void;
|
|
53
|
+
private handleZoomIn;
|
|
54
|
+
private handleZoomOut;
|
|
55
|
+
private handleRotateRight;
|
|
56
|
+
private handleRotateLeft;
|
|
57
|
+
private handleOriginalSize;
|
|
58
|
+
private handleReset;
|
|
59
|
+
private handleFitToWidth;
|
|
60
|
+
private revokeBlobs;
|
|
61
|
+
private load;
|
|
62
|
+
protected handlePageChange(page: number): Promise<void>;
|
|
63
|
+
private clampPosition;
|
|
64
|
+
protected handleLoad(e: Event): void;
|
|
65
|
+
protected handleError(): void;
|
|
66
|
+
protected handleDoubleClick(): void;
|
|
67
|
+
private readonly handleWheelNative;
|
|
68
|
+
protected handleMouseDown(e: MouseEvent): void;
|
|
69
|
+
protected handleMouseMove(e: MouseEvent): void;
|
|
70
|
+
protected handleMouseUp(): void;
|
|
71
|
+
private readonly handleTouchStart;
|
|
72
|
+
private readonly handleTouchMove;
|
|
73
|
+
private readonly handleTouchEnd;
|
|
74
|
+
private attachListeners;
|
|
75
|
+
private detachListeners;
|
|
76
|
+
private cleanup;
|
|
77
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ImageRenderer, never>;
|
|
78
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ImageRenderer, "afp-image-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; "fileSize": { "alias": "fileSize"; "required": false; "isSignal": true; }; "file": { "alias": "file"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
79
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { RendererHandle } from '../base.types';
|
|
2
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
interface JsonColors {
|
|
5
|
+
key: string;
|
|
6
|
+
string: string;
|
|
7
|
+
number: string;
|
|
8
|
+
keyword: string;
|
|
9
|
+
bracket: string;
|
|
10
|
+
colon: string;
|
|
11
|
+
collapsed: string;
|
|
12
|
+
arrow: string;
|
|
13
|
+
}
|
|
14
|
+
interface JsonChildEntry {
|
|
15
|
+
track: string | number;
|
|
16
|
+
keyName: string | undefined;
|
|
17
|
+
value: unknown;
|
|
18
|
+
}
|
|
19
|
+
export declare class JsonNode {
|
|
20
|
+
keyName: import("@angular/core").InputSignal<string | undefined>;
|
|
21
|
+
value: import("@angular/core").InputSignal<unknown>;
|
|
22
|
+
depth: import("@angular/core").InputSignal<number>;
|
|
23
|
+
defaultExpanded: import("@angular/core").InputSignal<boolean>;
|
|
24
|
+
private readonly locale;
|
|
25
|
+
private readonly themeService;
|
|
26
|
+
private readonly t;
|
|
27
|
+
protected readonly chevronRight: import("lucide-angular").LucideIconData;
|
|
28
|
+
protected readonly chevronDown: import("lucide-angular").LucideIconData;
|
|
29
|
+
protected readonly expanded: import("@angular/core").WritableSignal<boolean>;
|
|
30
|
+
protected readonly colors: import("@angular/core").Signal<JsonColors>;
|
|
31
|
+
protected readonly indent: import("@angular/core").Signal<number>;
|
|
32
|
+
protected readonly isComposite: import("@angular/core").Signal<boolean>;
|
|
33
|
+
protected readonly isArr: import("@angular/core").Signal<boolean>;
|
|
34
|
+
protected readonly count: import("@angular/core").Signal<number>;
|
|
35
|
+
protected readonly childEntries: import("@angular/core").Signal<JsonChildEntry[]>;
|
|
36
|
+
protected openBracket(): string;
|
|
37
|
+
protected closeBracket(): string;
|
|
38
|
+
protected collapsedLabel(): string;
|
|
39
|
+
protected isNullish(): boolean;
|
|
40
|
+
protected primitiveColor(): string;
|
|
41
|
+
protected primitiveText(): string;
|
|
42
|
+
protected toggle(): void;
|
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<JsonNode, never>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<JsonNode, "afp-json-node", never, { "keyName": { "alias": "keyName"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "depth": { "alias": "depth"; "required": true; "isSignal": true; }; "defaultExpanded": { "alias": "defaultExpanded"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
45
|
+
}
|
|
46
|
+
export declare class JsonRenderer implements RendererHandle {
|
|
47
|
+
url: import("@angular/core").InputSignal<string>;
|
|
48
|
+
fileName: import("@angular/core").InputSignal<string>;
|
|
49
|
+
private readonly locale;
|
|
50
|
+
private readonly request;
|
|
51
|
+
private readonly t;
|
|
52
|
+
readonly data: import("@angular/core").WritableSignal<unknown>;
|
|
53
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
54
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
55
|
+
constructor();
|
|
56
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
57
|
+
private loadJson;
|
|
58
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<JsonRenderer, never>;
|
|
59
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<JsonRenderer, "afp-json-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { RendererHandle } from '../base.types';
|
|
2
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
3
|
+
import 'katex/dist/katex.min.css';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class MarkdownRenderer implements RendererHandle {
|
|
6
|
+
url: import("@angular/core").InputSignal<string>;
|
|
7
|
+
private readonly emitter;
|
|
8
|
+
private readonly locale;
|
|
9
|
+
private readonly request;
|
|
10
|
+
private readonly themeService;
|
|
11
|
+
private readonly sanitizer;
|
|
12
|
+
private readonly injector;
|
|
13
|
+
private readonly t;
|
|
14
|
+
readonly viewMode: import("@angular/core").WritableSignal<"source" | "preview">;
|
|
15
|
+
readonly content: import("@angular/core").WritableSignal<string>;
|
|
16
|
+
readonly html: import("@angular/core").WritableSignal<string>;
|
|
17
|
+
readonly highlightedSource: import("@angular/core").WritableSignal<string>;
|
|
18
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
19
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
20
|
+
private readonly container;
|
|
21
|
+
readonly shikiTheme: import("@angular/core").Signal<"github-light" | "github-dark">;
|
|
22
|
+
readonly trustedHtml: import("@angular/core").Signal<import("@angular/platform-browser").SafeHtml>;
|
|
23
|
+
readonly trustedSource: import("@angular/core").Signal<import("@angular/platform-browser").SafeHtml>;
|
|
24
|
+
private readonly md;
|
|
25
|
+
private themeWatchStarted;
|
|
26
|
+
constructor();
|
|
27
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
28
|
+
onToolbarChange: (listener: () => void) => () => void;
|
|
29
|
+
private static createMarkdownIt;
|
|
30
|
+
private loadMarkdown;
|
|
31
|
+
private createCopyButton;
|
|
32
|
+
private highlightAndInjectCopyButtons;
|
|
33
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MarkdownRenderer, never>;
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MarkdownRenderer, "afp-markdown-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import 'foliate-js/view.js';
|
|
2
|
+
import type { RendererHandle } from '../base.types';
|
|
3
|
+
import type { ToolbarGroup } from '../toolbar.types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
interface TocItem {
|
|
6
|
+
label: string;
|
|
7
|
+
href?: string;
|
|
8
|
+
subitems?: TocItem[];
|
|
9
|
+
}
|
|
10
|
+
export declare class MobiTocList {
|
|
11
|
+
items: import("@angular/core").InputSignal<TocItem[]>;
|
|
12
|
+
activeHref: import("@angular/core").InputSignal<string>;
|
|
13
|
+
depth: import("@angular/core").InputSignal<number>;
|
|
14
|
+
select: import("@angular/core").OutputEmitterRef<string>;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MobiTocList, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MobiTocList, "afp-mobi-toc-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "activeHref": { "alias": "activeHref"; "required": false; "isSignal": true; }; "depth": { "alias": "depth"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, never, true, never>;
|
|
17
|
+
}
|
|
18
|
+
export declare class MobiRenderer implements RendererHandle {
|
|
19
|
+
url: import("@angular/core").InputSignal<string>;
|
|
20
|
+
private readonly emitter;
|
|
21
|
+
private readonly locale;
|
|
22
|
+
private readonly request;
|
|
23
|
+
protected readonly t: import("@eternalheart/file-preview-core").Translator;
|
|
24
|
+
private readonly host;
|
|
25
|
+
protected readonly xIcon: import("lucide-angular").LucideIconData;
|
|
26
|
+
protected readonly a4Width = 794;
|
|
27
|
+
readonly currentChapter: import("@angular/core").WritableSignal<number>;
|
|
28
|
+
readonly totalChapters: import("@angular/core").WritableSignal<number>;
|
|
29
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
30
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
31
|
+
readonly toc: import("@angular/core").WritableSignal<TocItem[]>;
|
|
32
|
+
readonly showToc: import("@angular/core").WritableSignal<boolean>;
|
|
33
|
+
readonly activeTocHref: import("@angular/core").WritableSignal<string>;
|
|
34
|
+
readonly isFullWidth: import("@angular/core").WritableSignal<boolean>;
|
|
35
|
+
private readonly mounted;
|
|
36
|
+
private viewInstance;
|
|
37
|
+
private totalLocations;
|
|
38
|
+
constructor();
|
|
39
|
+
getToolbarGroups: () => ToolbarGroup[];
|
|
40
|
+
onToolbarChange: (listener: () => void) => () => void;
|
|
41
|
+
protected handleTocClick(href: string): void;
|
|
42
|
+
private prevPage;
|
|
43
|
+
private nextPage;
|
|
44
|
+
private toggleToc;
|
|
45
|
+
private toggleFullWidth;
|
|
46
|
+
private reportProgress;
|
|
47
|
+
private load;
|
|
48
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MobiRenderer, never>;
|
|
49
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MobiRenderer, "afp-mobi-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
50
|
+
}
|
|
51
|
+
export {};
|