@filens/vue 0.0.0-stage → 0.1.1
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 +21 -0
- package/README.md +198 -2
- package/dist/IworkPreview.vue.d.ts +40 -0
- package/dist/PptxPreview.vue.d.ts +38 -0
- package/dist/Preview.vue.d.ts +140 -0
- package/dist/components/SlideThumbnail.vue.d.ts +12 -0
- package/dist/defaults.d.ts +4 -0
- package/dist/i18n.d.ts +2900 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +5158 -0
- package/dist/locales/ca_ES.json.d.ts +106 -0
- package/dist/locales/cs_CZ.json.d.ts +106 -0
- package/dist/locales/da_DK.json.d.ts +106 -0
- package/dist/locales/de_DE.json.d.ts +106 -0
- package/dist/locales/el_GR.json.d.ts +106 -0
- package/dist/locales/en_GB.json.d.ts +106 -0
- package/dist/locales/en_US.json.d.ts +106 -0
- package/dist/locales/es_ES.json.d.ts +106 -0
- package/dist/locales/fr_FR.json.d.ts +106 -0
- package/dist/locales/ga_IE.json.d.ts +106 -0
- package/dist/locales/hr_HR.json.d.ts +106 -0
- package/dist/locales/hu_HU.json.d.ts +106 -0
- package/dist/locales/it_IT.json.d.ts +106 -0
- package/dist/locales/ja_JP.json.d.ts +106 -0
- package/dist/locales/ko_KR.json.d.ts +106 -0
- package/dist/locales/ml_IN.json.d.ts +106 -0
- package/dist/locales/nb_NO.json.d.ts +106 -0
- package/dist/locales/nl_NL.json.d.ts +106 -0
- package/dist/locales/pl_PL.json.d.ts +106 -0
- package/dist/locales/pt_BR.json.d.ts +106 -0
- package/dist/locales/pt_PT.json.d.ts +106 -0
- package/dist/locales/ro_RO.json.d.ts +106 -0
- package/dist/locales/ru_RU.json.d.ts +106 -0
- package/dist/locales/sk_SK.json.d.ts +106 -0
- package/dist/locales/sv_SE.json.d.ts +106 -0
- package/dist/locales/tr_TR.json.d.ts +106 -0
- package/dist/locales/zh_CN.json.d.ts +106 -0
- package/dist/locales/zh_TW.json.d.ts +106 -0
- package/dist/style.css +1 -0
- package/package.json +64 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 FiLens contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,199 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @filens/vue
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Vue 3 components for the shared preview engines: `Preview` is the all-format entry;
|
|
4
|
+
`PptxPreview` and `IworkPreview` provide specialized viewers. For a ready-to-deploy
|
|
5
|
+
single JS file or split modules including Vue, see the [standalone builds](../preview/README.md).
|
|
6
|
+
|
|
7
|
+
## All-format entry
|
|
8
|
+
|
|
9
|
+
```vue
|
|
10
|
+
<script setup lang="ts">
|
|
11
|
+
import { Preview } from '@filens/vue';
|
|
12
|
+
import '@filens/vue/style.css';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<Preview src="/report.pdf" name="report.pdf" />
|
|
17
|
+
</template>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`src` also accepts a `File`, `Blob` or byte array; provide `name` or `extension`
|
|
21
|
+
when the source has no filename. Legacy Office and RAW previews need a
|
|
22
|
+
`converter` configured with `createWasmConverterClient({ wasm, imageWasm, officeWasm })`
|
|
23
|
+
from `@filens/converter-client`. See the demo for complete WASM asset wiring.
|
|
24
|
+
|
|
25
|
+
`officeWasm` points to the optional `converter-office.wasm` asset. The current
|
|
26
|
+
core detects encrypted Office documents itself and loads this module only after
|
|
27
|
+
password submission. Omitting it retains ordinary conversions and password
|
|
28
|
+
prompts; encrypted conversions with a supplied password return `engine_unavailable`.
|
|
29
|
+
The standalone `@filens/preview` builds wire the module automatically.
|
|
30
|
+
|
|
31
|
+
## Languages (source build)
|
|
32
|
+
|
|
33
|
+
All three preview components accept `locale` and `messages`. Toolbars, model
|
|
34
|
+
controls, loading states and password prompts include 28 locale dictionaries,
|
|
35
|
+
using the same codes as ZimaOS:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
en_US en_GB it_IT nb_NO zh_CN zh_TW ja_JP ko_KR fr_FR de_DE sv_SE da_DK
|
|
39
|
+
nl_NL es_ES ca_ES pt_PT pt_BR pl_PL cs_CZ sk_SK hu_HU ro_RO hr_HR ru_RU
|
|
40
|
+
tr_TR el_GR ga_IE ml_IN
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
BCP 47 tags such as `zh-CN`, `zh-Hant` and `pt-BR` also work. Omit `locale` to
|
|
44
|
+
use the browser's preferred supported language; unsupported languages fall back
|
|
45
|
+
to English. Locale changes update controls without reopening the document.
|
|
46
|
+
Translations are ordinary strings rendered as text, with no `vue-i18n` dependency.
|
|
47
|
+
Document content, source warnings and driver errors retain their original text.
|
|
48
|
+
|
|
49
|
+
```vue
|
|
50
|
+
<Preview :src="file" :locale="zimaosLocale" :messages="{ Next: 'Forward' }" />
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`messages` maps English source phrases to host strings for that component only.
|
|
54
|
+
For example, `Warnings: {count}` preserves its named placeholder. Exported
|
|
55
|
+
`previewLocales` lists available codes; `resolvePreviewLocale()` normalizes host
|
|
56
|
+
locale tags. Standalone `createPreview()` accepts the same options and supports
|
|
57
|
+
`viewer.update({ locale: 'ja_JP' })`.
|
|
58
|
+
|
|
59
|
+
## Application icons (source build)
|
|
60
|
+
|
|
61
|
+
APK and IPA packages open as ZIP-compatible archives by default, with directory
|
|
62
|
+
browsing and entry previews. Windows EXE/DLL/MUI/MUN resource containers use the
|
|
63
|
+
shared WASM core to extract their application icon as PNG, then display it with
|
|
64
|
+
the normal image controls. The core also converts ICO to PNG; browser-native ICO
|
|
65
|
+
preview and existing ICNS preview remain available. No application is executed.
|
|
66
|
+
Configure `converter` as for legacy Office previews. APK/IPA icon extraction is
|
|
67
|
+
available through explicit conversion requests.
|
|
68
|
+
|
|
69
|
+
APK extraction follows the application's compiled manifest icon resource through
|
|
70
|
+
`resources.arsc`, including obfuscated paths and raster-backed adaptive XML. IPA
|
|
71
|
+
extraction uses the main `.app` bundle's XML or binary plist icon declarations,
|
|
72
|
+
selects the largest raster and normalizes iOS CgBI PNGs. PE extraction uses resource
|
|
73
|
+
RVA mapping and icon group IDs, with PNG and 1/4/8/24/32-bit DIB frames and masks.
|
|
74
|
+
Vector-only Android icons, asset-catalog-only IPA icons, legacy ICNS planes,
|
|
75
|
+
JPEG 2000 icons and OS-resolved `.app`/`.desktop` folder icons are not decoded.
|
|
76
|
+
Missing or unsupported icons produce a parse error.
|
|
77
|
+
|
|
78
|
+
## Install
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm install @filens/vue @filens/core @filens/iwork
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`vue` is a peer dependency and must be provided by the host app.
|
|
85
|
+
|
|
86
|
+
## Password-protected documents
|
|
87
|
+
|
|
88
|
+
The generic `Preview` component prompts for passwords when opening encrypted PDFs
|
|
89
|
+
and Office documents. Configure its `converter` with `createWasmConverterClient()`
|
|
90
|
+
for Office decryption in the browser. Supported Office encryption includes Agile,
|
|
91
|
+
Office 2007 Standard, legacy RC4 CryptoAPI and XLS XOR obfuscation; rights-managed
|
|
92
|
+
documents and other unsupported encryption methods report a format error.
|
|
93
|
+
|
|
94
|
+
The password form supports incorrect-password retries, cancellation and reopening.
|
|
95
|
+
It clears the entered password after submission, cancellation or changing files.
|
|
96
|
+
The optional `password` prop supplies a known password; `requestPassword` replaces
|
|
97
|
+
the built-in form with a host callback using `PreviewOptions['requestPassword']`.
|
|
98
|
+
|
|
99
|
+
## Usage
|
|
100
|
+
|
|
101
|
+
```vue
|
|
102
|
+
<script setup lang="ts">
|
|
103
|
+
import { IworkPreview, PptxPreview } from '@filens/vue';
|
|
104
|
+
import '@filens/vue/style.css';
|
|
105
|
+
|
|
106
|
+
const src = '/samples/sample-deck.pptx';
|
|
107
|
+
const keySrc = '/samples/a.key';
|
|
108
|
+
</script>
|
|
109
|
+
|
|
110
|
+
<template>
|
|
111
|
+
<PptxPreview :src="src" fit="contain" :toolbar="true" :thumbnails="true" />
|
|
112
|
+
<IworkPreview :src="keySrc" type="key" :toolbar="true" :thumbnails="true" />
|
|
113
|
+
</template>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## `PptxPreview` Props
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
interface PptxPreviewProps {
|
|
120
|
+
src: string | ArrayBuffer | Uint8Array | Blob | File;
|
|
121
|
+
fit?: 'contain' | 'width' | 'none';
|
|
122
|
+
initialScale?: number;
|
|
123
|
+
minScale?: number;
|
|
124
|
+
maxScale?: number;
|
|
125
|
+
toolbar?: boolean;
|
|
126
|
+
thumbnails?: boolean;
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## `PptxPreview` Emits
|
|
131
|
+
|
|
132
|
+
- `rendered`
|
|
133
|
+
- `error`
|
|
134
|
+
- `slide-change`
|
|
135
|
+
- `scale-change`
|
|
136
|
+
- `warnings`
|
|
137
|
+
|
|
138
|
+
## `IworkPreview` Props
|
|
139
|
+
|
|
140
|
+
```ts
|
|
141
|
+
interface IworkPreviewProps {
|
|
142
|
+
src: string | ArrayBuffer | Uint8Array | Blob | File;
|
|
143
|
+
type?: 'auto' | 'key' | 'pages' | 'numbers';
|
|
144
|
+
initialScale?: number;
|
|
145
|
+
minScale?: number;
|
|
146
|
+
maxScale?: number;
|
|
147
|
+
toolbar?: boolean;
|
|
148
|
+
thumbnails?: boolean;
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## `IworkPreview` Emits
|
|
153
|
+
|
|
154
|
+
- `rendered`
|
|
155
|
+
- `error`
|
|
156
|
+
- `warnings`
|
|
157
|
+
- `page-change`
|
|
158
|
+
- `sheet-change`
|
|
159
|
+
- `scale-change`
|
|
160
|
+
|
|
161
|
+
## Behavior
|
|
162
|
+
|
|
163
|
+
The components are designed to feel close to the `vue-office` direct-`src` usage pattern:
|
|
164
|
+
|
|
165
|
+
- pass `src` directly as a URL or binary source
|
|
166
|
+
- source changes trigger a fresh preview automatically
|
|
167
|
+
- the old preview task is discarded by the viewer lifecycle
|
|
168
|
+
- toolbar and thumbnails are built in
|
|
169
|
+
- `IworkPreview` automatically switches between paged and sheet-oriented behavior depending on document kind
|
|
170
|
+
|
|
171
|
+
## Included UI
|
|
172
|
+
|
|
173
|
+
- top toolbar
|
|
174
|
+
- left thumbnail rail
|
|
175
|
+
- main preview area
|
|
176
|
+
- zoom in / out
|
|
177
|
+
- fit to page
|
|
178
|
+
- fit to width
|
|
179
|
+
- previous / next slide
|
|
180
|
+
- previous / next iWork page or sheet where applicable
|
|
181
|
+
- keyboard navigation when the shell is focused
|
|
182
|
+
|
|
183
|
+
## Dist Output
|
|
184
|
+
|
|
185
|
+
Build output:
|
|
186
|
+
|
|
187
|
+
- `dist/index.js`
|
|
188
|
+
- `dist/style.css`
|
|
189
|
+
- `dist/index.d.ts`
|
|
190
|
+
|
|
191
|
+
Import CSS with:
|
|
192
|
+
|
|
193
|
+
```ts
|
|
194
|
+
import '@filens/vue/style.css';
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Scope
|
|
198
|
+
|
|
199
|
+
This package is for client-side Vue 3 apps in modern browsers. It is not currently positioned as an SSR-first or full Office/iWork-compatibility renderer.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PreviewMessages } from './i18n';
|
|
2
|
+
import { IworkFitMode, IworkSource, IworkTypeHint, ParsedIworkDocument } from '@filens/iwork';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
src: IworkSource;
|
|
5
|
+
type?: IworkTypeHint;
|
|
6
|
+
fit?: IworkFitMode;
|
|
7
|
+
initialScale?: number;
|
|
8
|
+
minScale?: number;
|
|
9
|
+
maxScale?: number;
|
|
10
|
+
toolbar?: boolean;
|
|
11
|
+
locale?: string;
|
|
12
|
+
messages?: PreviewMessages;
|
|
13
|
+
thumbnails?: boolean;
|
|
14
|
+
};
|
|
15
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
16
|
+
rendered: (document: ParsedIworkDocument | null) => any;
|
|
17
|
+
error: (error: Error) => any;
|
|
18
|
+
warnings: (warnings: string[]) => any;
|
|
19
|
+
"page-change": (pageIndex: number) => any;
|
|
20
|
+
"sheet-change": (sheetIndex: number) => any;
|
|
21
|
+
"scale-change": (scale: number) => any;
|
|
22
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
23
|
+
onRendered?: ((document: ParsedIworkDocument | null) => any) | undefined;
|
|
24
|
+
onError?: ((error: Error) => any) | undefined;
|
|
25
|
+
onWarnings?: ((warnings: string[]) => any) | undefined;
|
|
26
|
+
"onPage-change"?: ((pageIndex: number) => any) | undefined;
|
|
27
|
+
"onSheet-change"?: ((sheetIndex: number) => any) | undefined;
|
|
28
|
+
"onScale-change"?: ((scale: number) => any) | undefined;
|
|
29
|
+
}>, {
|
|
30
|
+
type: IworkTypeHint;
|
|
31
|
+
initialScale: number;
|
|
32
|
+
minScale: number;
|
|
33
|
+
maxScale: number;
|
|
34
|
+
toolbar: boolean;
|
|
35
|
+
thumbnails: boolean;
|
|
36
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
37
|
+
shellRef: HTMLDivElement;
|
|
38
|
+
viewerHost: HTMLDivElement;
|
|
39
|
+
}, HTMLDivElement>;
|
|
40
|
+
export default _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PreviewMessages } from './i18n';
|
|
2
|
+
import { FitMode, ParsedPresentation, PptxSource } from '@filens/core';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
src: PptxSource;
|
|
5
|
+
fit?: FitMode;
|
|
6
|
+
initialScale?: number;
|
|
7
|
+
minScale?: number;
|
|
8
|
+
maxScale?: number;
|
|
9
|
+
toolbar?: boolean;
|
|
10
|
+
locale?: string;
|
|
11
|
+
messages?: PreviewMessages;
|
|
12
|
+
thumbnails?: boolean;
|
|
13
|
+
};
|
|
14
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
15
|
+
rendered: (presentation: ParsedPresentation | null) => any;
|
|
16
|
+
error: (error: Error) => any;
|
|
17
|
+
warnings: (warnings: string[]) => any;
|
|
18
|
+
"scale-change": (scale: number) => any;
|
|
19
|
+
"slide-change": (slideIndex: number) => any;
|
|
20
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
21
|
+
onRendered?: ((presentation: ParsedPresentation | null) => any) | undefined;
|
|
22
|
+
onError?: ((error: Error) => any) | undefined;
|
|
23
|
+
onWarnings?: ((warnings: string[]) => any) | undefined;
|
|
24
|
+
"onScale-change"?: ((scale: number) => any) | undefined;
|
|
25
|
+
"onSlide-change"?: ((slideIndex: number) => any) | undefined;
|
|
26
|
+
}>, {
|
|
27
|
+
fit: FitMode;
|
|
28
|
+
initialScale: number;
|
|
29
|
+
minScale: number;
|
|
30
|
+
maxScale: number;
|
|
31
|
+
toolbar: boolean;
|
|
32
|
+
thumbnails: boolean;
|
|
33
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
34
|
+
shellRef: HTMLDivElement;
|
|
35
|
+
sidebarRef: HTMLElement;
|
|
36
|
+
viewerHost: HTMLDivElement;
|
|
37
|
+
}, HTMLDivElement>;
|
|
38
|
+
export default _default;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { PreviewMessages } from './i18n';
|
|
2
|
+
import { ConverterClient, FormatDefinition, PreviewDriver, PreviewFitMode, PreviewFontResolver, PreviewFontLoadingOptions, PreviewItemState, PreviewOptions, PreviewResourceResolver, PreviewSource, SourceDescriptor } from '@filens/core';
|
|
3
|
+
import { MediaPreviewDriverOptions } from '../../media/dist/index.js';
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
src: PreviewSource | SourceDescriptor;
|
|
6
|
+
name?: string;
|
|
7
|
+
extension?: string;
|
|
8
|
+
contentType?: string;
|
|
9
|
+
password?: string;
|
|
10
|
+
requestPassword?: PreviewOptions['requestPassword'];
|
|
11
|
+
fit?: PreviewFitMode;
|
|
12
|
+
initialScale?: number;
|
|
13
|
+
minScale?: number;
|
|
14
|
+
maxScale?: number;
|
|
15
|
+
toolbar?: boolean | 'minimal';
|
|
16
|
+
locale?: string;
|
|
17
|
+
messages?: PreviewMessages;
|
|
18
|
+
drivers?: PreviewDriver[];
|
|
19
|
+
routes?: FormatDefinition[];
|
|
20
|
+
converter?: ConverterClient;
|
|
21
|
+
mediaConverter?: ConverterClient;
|
|
22
|
+
browserMedia?: MediaPreviewDriverOptions['browserMedia'];
|
|
23
|
+
fontResolver?: PreviewFontResolver;
|
|
24
|
+
fontLoading?: boolean | PreviewFontLoadingOptions;
|
|
25
|
+
resourceResolver?: PreviewResourceResolver;
|
|
26
|
+
audio?: PreviewOptions['audio'];
|
|
27
|
+
panoramaProcessor?: MediaPreviewDriverOptions['panoramaProcessor'];
|
|
28
|
+
};
|
|
29
|
+
declare function previousPage(): void;
|
|
30
|
+
declare function nextPage(): void;
|
|
31
|
+
declare function goToIndex(index: number): void;
|
|
32
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
33
|
+
goToIndex: typeof goToIndex;
|
|
34
|
+
next: typeof nextPage;
|
|
35
|
+
prev: typeof previousPage;
|
|
36
|
+
fit: (mode?: PreviewFitMode) => void;
|
|
37
|
+
setScale: (nextScale: number) => void;
|
|
38
|
+
rotate: (degrees?: number) => void;
|
|
39
|
+
getState: () => {
|
|
40
|
+
loading: boolean;
|
|
41
|
+
error: string | null;
|
|
42
|
+
title?: string | undefined;
|
|
43
|
+
family: import('@filens/core').PreviewFamily;
|
|
44
|
+
warnings: string[];
|
|
45
|
+
fonts?: {
|
|
46
|
+
fontId?: string | undefined;
|
|
47
|
+
fontFamily?: string | undefined;
|
|
48
|
+
fontFile?: string | undefined;
|
|
49
|
+
styleName?: string | undefined;
|
|
50
|
+
resolvedFontFamily?: string | undefined;
|
|
51
|
+
status: import('@filens/core').PreviewFontStatus;
|
|
52
|
+
source: import('@filens/core').PreviewFontSource;
|
|
53
|
+
classification?: {
|
|
54
|
+
evidence: "metadata" | "known" | "name" | "unknown";
|
|
55
|
+
serif?: boolean | undefined;
|
|
56
|
+
monospace?: boolean | undefined;
|
|
57
|
+
style?: "text" | "handwriting" | "decorative" | "symbol" | undefined;
|
|
58
|
+
script?: "latin" | "cjk-sc" | "cjk-tc" | "japanese" | "korean" | "emoji" | undefined;
|
|
59
|
+
panose?: string | undefined;
|
|
60
|
+
weight?: number | undefined;
|
|
61
|
+
stretch?: number | undefined;
|
|
62
|
+
averageWidth?: number | undefined;
|
|
63
|
+
} | undefined;
|
|
64
|
+
substitutionReason?: string | undefined;
|
|
65
|
+
matchScore?: number | undefined;
|
|
66
|
+
coverage?: "matched" | "unknown" | undefined;
|
|
67
|
+
embedded?: boolean | undefined;
|
|
68
|
+
}[] | undefined;
|
|
69
|
+
capabilities: {
|
|
70
|
+
search?: boolean | undefined;
|
|
71
|
+
zoom?: boolean | undefined;
|
|
72
|
+
fit?: boolean | undefined;
|
|
73
|
+
paged?: boolean | undefined;
|
|
74
|
+
thumbnails?: boolean | undefined;
|
|
75
|
+
workbook?: boolean | undefined;
|
|
76
|
+
pan?: boolean | undefined;
|
|
77
|
+
rotate?: boolean | undefined;
|
|
78
|
+
fullscreen?: boolean | undefined;
|
|
79
|
+
playback?: boolean | undefined;
|
|
80
|
+
playlist?: boolean | undefined;
|
|
81
|
+
timeline?: boolean | undefined;
|
|
82
|
+
volume?: boolean | undefined;
|
|
83
|
+
subtitles?: boolean | undefined;
|
|
84
|
+
chapters?: boolean | undefined;
|
|
85
|
+
sheets?: boolean | undefined;
|
|
86
|
+
outline?: boolean | undefined;
|
|
87
|
+
codeHighlight?: boolean | undefined;
|
|
88
|
+
lineNumbers?: boolean | undefined;
|
|
89
|
+
wordWrap?: boolean | undefined;
|
|
90
|
+
minimap?: boolean | undefined;
|
|
91
|
+
archiveBrowse?: boolean | undefined;
|
|
92
|
+
layers?: boolean | undefined;
|
|
93
|
+
measure?: boolean | undefined;
|
|
94
|
+
section?: boolean | undefined;
|
|
95
|
+
orbit?: boolean | undefined;
|
|
96
|
+
explode?: boolean | undefined;
|
|
97
|
+
modelTree?: boolean | undefined;
|
|
98
|
+
metadata?: boolean | undefined;
|
|
99
|
+
materialFilter?: boolean | undefined;
|
|
100
|
+
displayMode?: boolean | undefined;
|
|
101
|
+
print?: boolean | undefined;
|
|
102
|
+
download?: boolean | undefined;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
106
|
+
rendered: (state: PreviewItemState) => any;
|
|
107
|
+
error: (error: Error) => any;
|
|
108
|
+
warnings: (warnings: string[]) => any;
|
|
109
|
+
"page-change": (pageIndex: number) => any;
|
|
110
|
+
"sheet-change": (sheetIndex: number) => any;
|
|
111
|
+
"scale-change": (scale: number) => any;
|
|
112
|
+
"state-change": (state: PreviewItemState) => any;
|
|
113
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
114
|
+
onRendered?: ((state: PreviewItemState) => any) | undefined;
|
|
115
|
+
onError?: ((error: Error) => any) | undefined;
|
|
116
|
+
onWarnings?: ((warnings: string[]) => any) | undefined;
|
|
117
|
+
"onPage-change"?: ((pageIndex: number) => any) | undefined;
|
|
118
|
+
"onSheet-change"?: ((sheetIndex: number) => any) | undefined;
|
|
119
|
+
"onScale-change"?: ((scale: number) => any) | undefined;
|
|
120
|
+
"onState-change"?: ((state: PreviewItemState) => any) | undefined;
|
|
121
|
+
}>, {
|
|
122
|
+
initialScale: number;
|
|
123
|
+
minScale: number;
|
|
124
|
+
maxScale: number;
|
|
125
|
+
toolbar: boolean | "minimal";
|
|
126
|
+
browserMedia: boolean | import('../../media/dist/index.js').BrowserMediaOptions;
|
|
127
|
+
panoramaProcessor: import('@filens/panorama').PanoramaProcessor;
|
|
128
|
+
drivers: PreviewDriver[];
|
|
129
|
+
routes: FormatDefinition[];
|
|
130
|
+
converter: ConverterClient;
|
|
131
|
+
mediaConverter: ConverterClient;
|
|
132
|
+
fontResolver: PreviewFontResolver;
|
|
133
|
+
fontLoading: boolean | PreviewFontLoadingOptions;
|
|
134
|
+
resourceResolver: PreviewResourceResolver;
|
|
135
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
136
|
+
shellRef: HTMLDivElement;
|
|
137
|
+
viewerHost: HTMLDivElement;
|
|
138
|
+
passwordField: HTMLInputElement;
|
|
139
|
+
}, HTMLDivElement>;
|
|
140
|
+
export default _default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ParsedPresentation, SlideModel } from '@filens/core';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
slide: SlideModel;
|
|
4
|
+
presentation: ParsedPresentation;
|
|
5
|
+
mediaRegistry: {
|
|
6
|
+
getUrl(mediaId: string): string;
|
|
7
|
+
} | null;
|
|
8
|
+
};
|
|
9
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
10
|
+
host: HTMLDivElement;
|
|
11
|
+
}, HTMLDivElement>;
|
|
12
|
+
export default _default;
|