@eternalheart/react-file-preview 1.3.9 → 1.3.11
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/README.md +10 -0
- package/README.zh-CN.md +10 -0
- package/lib/FilePreviewContent.d.ts.map +1 -1
- package/lib/RequestContext.d.ts +1 -1
- package/lib/RequestContext.d.ts.map +1 -1
- package/lib/chunks/RendererError-BH6fzLrN.mjs +15 -0
- package/lib/chunks/RendererError-BH6fzLrN.mjs.map +1 -0
- package/lib/chunks/avifLoader-BP3fgcMm-BnpxLhxp.mjs +56 -0
- package/lib/chunks/avifLoader-BP3fgcMm-BnpxLhxp.mjs.map +1 -0
- package/lib/chunks/heicLoader-CH_raQNn-1fBLaICM.mjs +37 -0
- package/lib/chunks/heicLoader-CH_raQNn-1fBLaICM.mjs.map +1 -0
- package/lib/chunks/index-B57rEPin.mjs +54 -0
- package/lib/chunks/index-B57rEPin.mjs.map +1 -0
- package/lib/chunks/index-BCuRRLYt.mjs +222 -0
- package/lib/chunks/index-BCuRRLYt.mjs.map +1 -0
- package/lib/chunks/{index-BSD3w5eG.mjs → index-BJ6vTNxc.mjs} +76 -75
- package/lib/chunks/index-BJ6vTNxc.mjs.map +1 -0
- package/lib/chunks/index-BYdqrqnR.mjs +161 -0
- package/lib/chunks/index-BYdqrqnR.mjs.map +1 -0
- package/lib/chunks/index-BiyghBxu.mjs +136 -0
- package/lib/chunks/index-BiyghBxu.mjs.map +1 -0
- package/lib/chunks/{index-DdOEWhrk.mjs → index-C8CyS_sj.mjs} +66 -63
- package/lib/chunks/index-C8CyS_sj.mjs.map +1 -0
- package/lib/chunks/index-C8OrFLd5.mjs +594 -0
- package/lib/chunks/index-C8OrFLd5.mjs.map +1 -0
- package/lib/chunks/{index-DGuiWJr7.mjs → index-CCkHAeLh.mjs} +40 -37
- package/lib/chunks/index-CCkHAeLh.mjs.map +1 -0
- package/lib/chunks/index-CdmkF0CO.mjs +105 -0
- package/lib/chunks/index-CdmkF0CO.mjs.map +1 -0
- package/lib/chunks/index-CuAALtwC.mjs +2299 -0
- package/lib/chunks/index-CuAALtwC.mjs.map +1 -0
- package/lib/chunks/index-D660ENHx.mjs +114 -0
- package/lib/chunks/index-D660ENHx.mjs.map +1 -0
- package/lib/chunks/{index-DV5Jd7Qe.mjs → index-DBEG73K1.mjs} +79 -78
- package/lib/chunks/index-DBEG73K1.mjs.map +1 -0
- package/lib/chunks/index-DaFlk9dd.mjs +13097 -0
- package/lib/chunks/index-DaFlk9dd.mjs.map +1 -0
- package/lib/chunks/index-_mP0FkqE.mjs +113 -0
- package/lib/chunks/index-_mP0FkqE.mjs.map +1 -0
- package/lib/chunks/{index-U3w45GW8.mjs → index-nLTQXCV7.mjs} +84 -82
- package/lib/chunks/index-nLTQXCV7.mjs.map +1 -0
- package/lib/chunks/index-nVblatyi.mjs +55 -0
- package/lib/chunks/index-nVblatyi.mjs.map +1 -0
- package/lib/chunks/{index-zEVVgWCH.mjs → index-ow-nGpuu.mjs} +99 -98
- package/lib/chunks/index-ow-nGpuu.mjs.map +1 -0
- package/lib/chunks/index-qOC5xQyK.mjs +96 -0
- package/lib/chunks/index-qOC5xQyK.mjs.map +1 -0
- package/lib/chunks/index-rUfsiVR8.mjs +12335 -0
- package/lib/chunks/index-rUfsiVR8.mjs.map +1 -0
- package/lib/chunks/jp2Loader-Bn-qPMbD-Bn-qPMbD.mjs +122 -0
- package/lib/chunks/jp2Loader-Bn-qPMbD-Bn-qPMbD.mjs.map +1 -0
- package/lib/chunks/psdLoader-Doxw3mWm-DVOGFSlh.mjs +73 -0
- package/lib/chunks/psdLoader-Doxw3mWm-DVOGFSlh.mjs.map +1 -0
- package/lib/chunks/rawLoader-0mLvxCNp-CJmERiK7.mjs +82 -0
- package/lib/chunks/rawLoader-0mLvxCNp-CJmERiK7.mjs.map +1 -0
- package/lib/chunks/tiffLoader-CTFKVLqJ-B84NfwhR.mjs +60 -0
- package/lib/chunks/tiffLoader-CTFKVLqJ-B84NfwhR.mjs.map +1 -0
- package/lib/chunks/{useShikiHighlight-DzEAK0S7.mjs → useShikiHighlight-ClbUXJ2p.mjs} +3 -3
- package/lib/chunks/{useShikiHighlight-DzEAK0S7.mjs.map → useShikiHighlight-ClbUXJ2p.mjs.map} +1 -1
- package/lib/index.cjs +33 -20
- package/lib/index.cjs.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.mjs +14 -13
- package/lib/renderers/Audio/index.d.ts.map +1 -1
- package/lib/renderers/Csv/index.d.ts.map +1 -1
- package/lib/renderers/Docx/index.d.ts.map +1 -1
- package/lib/renderers/Epub/index.d.ts.map +1 -1
- package/lib/renderers/Font/index.d.ts +6 -0
- package/lib/renderers/Font/index.d.ts.map +1 -0
- package/lib/renderers/Image/index.d.ts +2 -0
- package/lib/renderers/Image/index.d.ts.map +1 -1
- package/lib/renderers/Json/index.d.ts.map +1 -1
- package/lib/renderers/Markdown/index.d.ts.map +1 -1
- package/lib/renderers/Mobi/index.d.ts.map +1 -1
- package/lib/renderers/Msg/index.d.ts.map +1 -1
- package/lib/renderers/Pdf/index.d.ts +0 -1
- package/lib/renderers/Pdf/index.d.ts.map +1 -1
- package/lib/renderers/Pptx/index.d.ts.map +1 -1
- package/lib/renderers/RendererError.d.ts +8 -0
- package/lib/renderers/RendererError.d.ts.map +1 -0
- package/lib/renderers/Subtitle/index.d.ts.map +1 -1
- package/lib/renderers/Text/index.d.ts.map +1 -1
- package/lib/renderers/Video/index.d.ts +1 -0
- package/lib/renderers/Video/index.d.ts.map +1 -1
- package/lib/renderers/Xlsx/index.d.ts.map +1 -1
- package/lib/renderers/Xml/index.d.ts.map +1 -1
- package/lib/renderers/Zip/index.d.ts.map +1 -1
- package/lib/renderers/lazy.d.ts +2 -0
- package/lib/renderers/lazy.d.ts.map +1 -1
- package/lib/utils/pdfConfig.d.ts +2 -2
- package/lib/utils/pdfConfig.d.ts.map +1 -1
- package/package.json +14 -5
- package/lib/chunks/index-B-H9HQiI.mjs +0 -110
- package/lib/chunks/index-B-H9HQiI.mjs.map +0 -1
- package/lib/chunks/index-BGeyzo6u.mjs +0 -96
- package/lib/chunks/index-BGeyzo6u.mjs.map +0 -1
- package/lib/chunks/index-BNUiNUWa.mjs +0 -103
- package/lib/chunks/index-BNUiNUWa.mjs.map +0 -1
- package/lib/chunks/index-BSD3w5eG.mjs.map +0 -1
- package/lib/chunks/index-BcBe6KW7.mjs +0 -99
- package/lib/chunks/index-BcBe6KW7.mjs.map +0 -1
- package/lib/chunks/index-BdYkTSTt.mjs +0 -51
- package/lib/chunks/index-BdYkTSTt.mjs.map +0 -1
- package/lib/chunks/index-BqEuP_8r.mjs +0 -152
- package/lib/chunks/index-BqEuP_8r.mjs.map +0 -1
- package/lib/chunks/index-Bv93wiEK.mjs +0 -2031
- package/lib/chunks/index-Bv93wiEK.mjs.map +0 -1
- package/lib/chunks/index-CKirCT35.mjs +0 -52
- package/lib/chunks/index-CKirCT35.mjs.map +0 -1
- package/lib/chunks/index-CgV8T0G5.mjs +0 -257
- package/lib/chunks/index-CgV8T0G5.mjs.map +0 -1
- package/lib/chunks/index-D8GtNeDn.mjs +0 -116
- package/lib/chunks/index-D8GtNeDn.mjs.map +0 -1
- package/lib/chunks/index-DGuiWJr7.mjs.map +0 -1
- package/lib/chunks/index-DV5Jd7Qe.mjs.map +0 -1
- package/lib/chunks/index-DdOEWhrk.mjs.map +0 -1
- package/lib/chunks/index-DmepcY31.mjs +0 -96
- package/lib/chunks/index-DmepcY31.mjs.map +0 -1
- package/lib/chunks/index-U3w45GW8.mjs.map +0 -1
- package/lib/chunks/index-r3q2xCCI.mjs +0 -129
- package/lib/chunks/index-r3q2xCCI.mjs.map +0 -1
- package/lib/chunks/index-zEVVgWCH.mjs.map +0 -1
package/lib/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export { FilePreviewEmbed } from './FilePreviewEmbed';
|
|
|
5
5
|
export { FilePreviewContent } from './FilePreviewContent';
|
|
6
6
|
export type { PreviewFile, PreviewFileLink, PreviewFileInput, FileType, ToolbarAction, PreviewState, CustomRenderer, CustomRendererContext, CustomRendererEventPayload, } from './types';
|
|
7
7
|
export { normalizeFile, normalizeFiles } from './utils/fileNormalizer';
|
|
8
|
+
export { SUPPORTED_FILE_TYPES } from '@eternalheart/file-preview-core';
|
|
8
9
|
export { configurePdfjs, pdfjs } from './utils/pdfConfig';
|
|
9
10
|
export type { PdfConfigOptions } from './utils/pdfConfig';
|
|
10
11
|
export { LocaleProvider, useTranslator, useLocale } from './i18n/LocaleContext';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,CAAC;AAMrB,eAAO,MAAM,OAAO,QAAsB,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,YAAY,EACV,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAChF,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACpF,YAAY,EACV,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,KAAK,GACN,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,CAAC;AAMrB,eAAO,MAAM,OAAO,QAAsB,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,YAAY,EACV,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAChF,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACpF,YAAY,EACV,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,KAAK,GACN,MAAM,iCAAiC,CAAC"}
|
package/lib/index.mjs
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { d as r, e as i, f as o, L as l, v as P, V as d, g as f, B as m, w as n, h as t, u as F } from "./chunks/index-CuAALtwC.mjs";
|
|
2
|
+
import * as e from "pdfjs-dist/build/pdf.mjs";
|
|
3
3
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
r as FilePreviewContent,
|
|
5
|
+
i as FilePreviewEmbed,
|
|
6
|
+
o as FilePreviewModal,
|
|
7
|
+
l as LocaleProvider,
|
|
8
|
+
P as SUPPORTED_FILE_TYPES,
|
|
9
|
+
d as VERSION,
|
|
10
|
+
f as configurePdfjs,
|
|
11
|
+
m as normalizeFile,
|
|
12
|
+
n as normalizeFiles,
|
|
13
|
+
e as pdfjs,
|
|
14
|
+
t as useLocale,
|
|
15
|
+
F as useTranslator
|
|
15
16
|
};
|
|
16
17
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Audio/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Audio/index.tsx"],"names":[],"mappings":"AAqJA,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkVtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Csv/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Csv/index.tsx"],"names":[],"mappings":"AAEA,OAAO,0CAA0C,CAAC;AAWlD,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAiLlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Docx/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Docx/index.tsx"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAeD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuIpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Epub/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Epub/index.tsx"],"names":[],"mappings":"AAsBA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACpD;AA8BD,eAAO,MAAM,YAAY,kHA8VxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Font/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AA2BxE,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAyBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAySpD,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { PreviewFile } from '@eternalheart/file-preview-core';
|
|
1
2
|
interface ImageRendererProps {
|
|
2
3
|
url: string;
|
|
3
4
|
zoom: number;
|
|
4
5
|
rotation: number;
|
|
5
6
|
resetKey?: number;
|
|
6
7
|
fileSize?: number;
|
|
8
|
+
file?: PreviewFile | File;
|
|
7
9
|
onZoomChange?: (zoom: number) => void;
|
|
8
10
|
onNaturalWidthChange?: (width: number) => void;
|
|
9
11
|
onNaturalHeightChange?: (height: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Image/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Image/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgZtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Json/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Json/index.tsx"],"names":[],"mappings":"AASA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwJD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA+CpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Markdown/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Markdown/index.tsx"],"names":[],"mappings":"AAYA,OAAO,0BAA0B,CAAC;AAElC,UAAU,qBAAqB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CACjC;AA6ED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA4M5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Mobi/index.tsx"],"names":[],"mappings":"AASA,OAAO,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Mobi/index.tsx"],"names":[],"mappings":"AASA,OAAO,oBAAoB,CAAC;AAgC5B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACpD;AAED,eAAO,MAAM,YAAY,kHA+PxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Msg/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Msg/index.tsx"],"names":[],"mappings":"AAQA,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AAoGD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4RlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Pdf/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Pdf/index.tsx"],"names":[],"mappings":"AA2BA,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+TlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Pptx/index.tsx"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Pptx/index.tsx"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyTpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RendererError.d.ts","sourceRoot":"","sources":["../../src/renderers/RendererError.tsx"],"names":[],"mappings":"AAEA,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsBtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Subtitle/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Subtitle/index.tsx"],"names":[],"mappings":"AAYA,UAAU,qBAAqB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkBD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAiI5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Text/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Text/index.tsx"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAmFpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Video/index.tsx"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Video/index.tsx"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAC;AAMpC,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAmCD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoJtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Xlsx/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Xlsx/index.tsx"],"names":[],"mappings":"AAGA,OAAO,0CAA0C,CAAC;AAMlD,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsNpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Xml/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Xml/index.tsx"],"names":[],"mappings":"AAOA,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2CD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsDlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Zip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/Zip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAwB1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AASjD,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD;AA4HD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsOlD,CAAC"}
|
package/lib/renderers/lazy.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ import type { XmlRenderer as XmlRendererImpl } from './Xml';
|
|
|
16
16
|
import type { SubtitleRenderer as SubtitleRendererImpl } from './Subtitle';
|
|
17
17
|
import type { ZipRenderer as ZipRendererImpl } from './Zip';
|
|
18
18
|
import type { TextRenderer as TextRendererImpl } from './Text';
|
|
19
|
+
import type { FontRenderer as FontRendererImpl } from './Font';
|
|
19
20
|
type Lazy<T> = LazyExoticComponent<T extends ComponentType<infer P> ? ComponentType<P> : never>;
|
|
20
21
|
export declare const ImageRenderer: Lazy<typeof ImageRendererImpl>;
|
|
21
22
|
export declare const PdfRenderer: Lazy<typeof PdfRendererImpl>;
|
|
@@ -34,5 +35,6 @@ export declare const XmlRenderer: Lazy<typeof XmlRendererImpl>;
|
|
|
34
35
|
export declare const SubtitleRenderer: Lazy<typeof SubtitleRendererImpl>;
|
|
35
36
|
export declare const ZipRenderer: Lazy<typeof ZipRendererImpl>;
|
|
36
37
|
export declare const TextRenderer: Lazy<typeof TextRendererImpl>;
|
|
38
|
+
export declare const FontRenderer: Lazy<typeof FontRendererImpl>;
|
|
37
39
|
export {};
|
|
38
40
|
//# sourceMappingURL=lazy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/renderers/lazy.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/renderers/lazy.tsx"],"names":[],"mappings":"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"}
|
package/lib/utils/pdfConfig.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as pdfjsLib from 'pdfjs-dist/build/pdf.mjs';
|
|
2
2
|
/**
|
|
3
3
|
* PDF.js Worker 配置选项
|
|
4
4
|
*/
|
|
@@ -39,5 +39,5 @@ export interface PdfConfigOptions {
|
|
|
39
39
|
* ```
|
|
40
40
|
*/
|
|
41
41
|
export declare function configurePdfjs(options?: PdfConfigOptions): void;
|
|
42
|
-
export { pdfjs };
|
|
42
|
+
export { pdfjsLib as pdfjs };
|
|
43
43
|
//# sourceMappingURL=pdfConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdfConfig.d.ts","sourceRoot":"","sources":["../../src/utils/pdfConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pdfConfig.d.ts","sourceRoot":"","sources":["../../src/utils/pdfConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,QAExD;AAED,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eternalheart/react-file-preview",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.11",
|
|
4
4
|
"description": "A modern, feature-rich file preview component for React with support for images, videos, audio, PDFs, Office documents (Word, Excel, PowerPoint), Markdown, and code files.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.cjs",
|
|
@@ -57,8 +57,10 @@
|
|
|
57
57
|
"url": "https://github.com/wh131462"
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
60
|
-
"build": "vite build
|
|
61
|
-
"
|
|
60
|
+
"build:esm": "vite build --mode esm",
|
|
61
|
+
"build:cjs": "vite build --mode cjs",
|
|
62
|
+
"build": "pnpm --filter @eternalheart/file-preview-core build && pnpm build:esm && pnpm build:cjs && tsc --project tsconfig.json",
|
|
63
|
+
"dev": "pnpm --filter @eternalheart/file-preview-core build && vite build --mode esm --watch --emptyOutDir false",
|
|
62
64
|
"prepublishOnly": "pnpm build",
|
|
63
65
|
"version:patch": "npm version patch",
|
|
64
66
|
"version:minor": "npm version minor",
|
|
@@ -73,32 +75,39 @@
|
|
|
73
75
|
"react-dom": "^18.0.0"
|
|
74
76
|
},
|
|
75
77
|
"dependencies": {
|
|
78
|
+
"@cornerstonejs/codec-openjpeg": "^1.3.0",
|
|
79
|
+
"@jsquash/avif": "^2.1.1",
|
|
76
80
|
"@kenjiuno/msgreader": "^1.28.0",
|
|
77
81
|
"@likecoin/epub-ts": "^0.6.0",
|
|
78
|
-
"
|
|
82
|
+
"ag-psd": "^30.1.1",
|
|
79
83
|
"docx-preview": "^0.3.2",
|
|
80
84
|
"exceljs": "^4.4.0",
|
|
81
85
|
"foliate-js": "1.0.1",
|
|
82
86
|
"framer-motion": "^11.11.17",
|
|
87
|
+
"heic2any": "^0.0.4",
|
|
88
|
+
"jpeg2000": "^1.1.1",
|
|
89
|
+
"jsonc-parser": "^3.3.1",
|
|
83
90
|
"jszip": "^3.10.1",
|
|
84
91
|
"katex": "^0.16.45",
|
|
85
92
|
"lucide-react": "^0.460.0",
|
|
86
93
|
"mammoth": "^1.8.0",
|
|
94
|
+
"opentype.js": "^2.0.0",
|
|
87
95
|
"pdfjs-dist": "4.8.69",
|
|
88
96
|
"pptx-preview": "^1.0.7",
|
|
89
97
|
"react-markdown": "^10.1.0",
|
|
90
|
-
"react-pdf": "9.2.1",
|
|
91
98
|
"rehype-katex": "^7.0.1",
|
|
92
99
|
"rehype-raw": "^7.0.0",
|
|
93
100
|
"remark-gfm": "^4.0.1",
|
|
94
101
|
"remark-math": "^6.0.0",
|
|
95
102
|
"shiki": "^1.29.2",
|
|
103
|
+
"utif": "^3.1.0",
|
|
96
104
|
"video.js": "^8.23.4",
|
|
97
105
|
"x-data-spreadsheet": "^1.1.9"
|
|
98
106
|
},
|
|
99
107
|
"devDependencies": {
|
|
100
108
|
"@eternalheart/file-preview-core": "workspace:*",
|
|
101
109
|
"@types/node": "^24.10.1",
|
|
110
|
+
"@types/opentype.js": "1.3.10",
|
|
102
111
|
"@types/react": "^18.3.12",
|
|
103
112
|
"@types/react-dom": "^18.3.1",
|
|
104
113
|
"@vitejs/plugin-react": "^4.3.4",
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { jsx as r, jsxs as s, Fragment as N } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo as j, useState as m, useEffect as v, useCallback as S } from "react";
|
|
3
|
-
import { ChevronDown as L, ChevronRight as $ } from "lucide-react";
|
|
4
|
-
import { u as k, a as C, c as O, b as E } from "./index-Bv93wiEK.mjs";
|
|
5
|
-
const R = {
|
|
6
|
-
key: "#9cdcfe",
|
|
7
|
-
string: "#ce9178",
|
|
8
|
-
number: "#b5cea8",
|
|
9
|
-
keyword: "#569cd6",
|
|
10
|
-
bracket: "#d4d4d4",
|
|
11
|
-
colon: "rgb(255 255 255 / 0.6)",
|
|
12
|
-
collapsed: "rgb(255 255 255 / 0.4)",
|
|
13
|
-
arrow: "rgb(255 255 255 / 0.5)"
|
|
14
|
-
}, J = {
|
|
15
|
-
key: "#005cc5",
|
|
16
|
-
string: "#032f62",
|
|
17
|
-
number: "#005cc5",
|
|
18
|
-
keyword: "#d73a49",
|
|
19
|
-
bracket: "#24292e",
|
|
20
|
-
colon: "rgb(23 23 23 / 0.6)",
|
|
21
|
-
collapsed: "rgb(23 23 23 / 0.45)",
|
|
22
|
-
arrow: "rgb(23 23 23 / 0.55)"
|
|
23
|
-
}, b = ({ keyName: e, value: n, depth: f, defaultExpanded: i, colors: t }) => {
|
|
24
|
-
const d = k(), [a, y] = m(i), p = f * 20, h = S(() => y((o) => !o), []);
|
|
25
|
-
if (n == null || typeof n != "object")
|
|
26
|
-
return /* @__PURE__ */ s("div", { className: "rfp-flex rfp-items-start rfp-py-px rfp-font-mono rfp-text-sm", style: { paddingLeft: `${p}px` }, children: [
|
|
27
|
-
/* @__PURE__ */ r("span", { className: "rfp-w-4 rfp-h-5 rfp-flex-shrink-0" }),
|
|
28
|
-
e !== void 0 && /* @__PURE__ */ s("span", { className: "rfp-flex-shrink-0", style: { color: t.key }, children: [
|
|
29
|
-
'"',
|
|
30
|
-
e,
|
|
31
|
-
'"',
|
|
32
|
-
/* @__PURE__ */ r("span", { style: { color: t.colon }, children: ": " })
|
|
33
|
-
] }),
|
|
34
|
-
A(n, t)
|
|
35
|
-
] });
|
|
36
|
-
const l = Array.isArray(n), c = (l ? n : Object.entries(n)).length, g = l ? "[" : "{", u = l ? "]" : "}";
|
|
37
|
-
return c === 0 ? /* @__PURE__ */ s("div", { className: "rfp-flex rfp-items-start rfp-py-px rfp-font-mono rfp-text-sm", style: { paddingLeft: `${p}px` }, children: [
|
|
38
|
-
/* @__PURE__ */ r("span", { className: "rfp-w-4 rfp-h-5 rfp-flex-shrink-0" }),
|
|
39
|
-
e !== void 0 && /* @__PURE__ */ s("span", { className: "rfp-flex-shrink-0", style: { color: t.key }, children: [
|
|
40
|
-
'"',
|
|
41
|
-
e,
|
|
42
|
-
'"',
|
|
43
|
-
/* @__PURE__ */ r("span", { style: { color: t.colon }, children: ": " })
|
|
44
|
-
] }),
|
|
45
|
-
/* @__PURE__ */ s("span", { style: { color: t.bracket }, children: [
|
|
46
|
-
g,
|
|
47
|
-
u
|
|
48
|
-
] })
|
|
49
|
-
] }) : /* @__PURE__ */ s("div", { children: [
|
|
50
|
-
/* @__PURE__ */ s(
|
|
51
|
-
"div",
|
|
52
|
-
{
|
|
53
|
-
className: "rfp-flex rfp-items-start rfp-py-px rfp-font-mono rfp-text-sm rfp-cursor-pointer hover:rfp-bg-surface-1 rfp-select-none",
|
|
54
|
-
style: { paddingLeft: `${p}px` },
|
|
55
|
-
onClick: h,
|
|
56
|
-
children: [
|
|
57
|
-
/* @__PURE__ */ r("span", { className: "rfp-w-4 rfp-h-5 rfp-flex-shrink-0 rfp-flex rfp-items-center rfp-justify-center", style: { color: t.arrow }, children: a ? /* @__PURE__ */ r(L, { className: "rfp-w-3.5 rfp-h-3.5" }) : /* @__PURE__ */ r($, { className: "rfp-w-3.5 rfp-h-3.5" }) }),
|
|
58
|
-
e !== void 0 && /* @__PURE__ */ s("span", { className: "rfp-flex-shrink-0", style: { color: t.key }, children: [
|
|
59
|
-
'"',
|
|
60
|
-
e,
|
|
61
|
-
'"',
|
|
62
|
-
/* @__PURE__ */ r("span", { style: { color: t.colon }, children: ": " })
|
|
63
|
-
] }),
|
|
64
|
-
/* @__PURE__ */ r("span", { style: { color: t.bracket }, children: g }),
|
|
65
|
-
!a && /* @__PURE__ */ s("span", { className: "rfp-ml-1", style: { color: t.collapsed }, children: [
|
|
66
|
-
l ? `${c} ${d("json.items")}` : `${c} ${d("json.keys")}`,
|
|
67
|
-
/* @__PURE__ */ s("span", { style: { color: t.bracket }, children: [
|
|
68
|
-
" ",
|
|
69
|
-
u
|
|
70
|
-
] })
|
|
71
|
-
] })
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
),
|
|
75
|
-
a && /* @__PURE__ */ s(N, { children: [
|
|
76
|
-
l ? n.map((o, x) => /* @__PURE__ */ r(b, { value: o, depth: f + 1, defaultExpanded: f < 1, colors: t }, x)) : Object.entries(n).map(([o, x]) => /* @__PURE__ */ r(b, { keyName: o, value: x, depth: f + 1, defaultExpanded: f < 1, colors: t }, o)),
|
|
77
|
-
/* @__PURE__ */ r("div", { className: "rfp-font-mono rfp-text-sm rfp-py-px", style: { paddingLeft: `${p + 20}px`, color: t.bracket }, children: u })
|
|
78
|
-
] })
|
|
79
|
-
] });
|
|
80
|
-
};
|
|
81
|
-
function A(e, n) {
|
|
82
|
-
return e === null ? /* @__PURE__ */ r("span", { style: { color: n.keyword, fontStyle: "italic" }, children: "null" }) : e === void 0 ? /* @__PURE__ */ r("span", { style: { color: n.keyword, fontStyle: "italic" }, children: "undefined" }) : typeof e == "boolean" ? /* @__PURE__ */ r("span", { style: { color: n.keyword }, children: String(e) }) : typeof e == "number" ? /* @__PURE__ */ r("span", { style: { color: n.number }, children: String(e) }) : typeof e == "string" ? /* @__PURE__ */ s("span", { style: { color: n.string }, children: [
|
|
83
|
-
'"',
|
|
84
|
-
e,
|
|
85
|
-
'"'
|
|
86
|
-
] }) : /* @__PURE__ */ r("span", { style: { color: n.bracket }, children: String(e) });
|
|
87
|
-
}
|
|
88
|
-
function T(e) {
|
|
89
|
-
return e === "light" ? J : R;
|
|
90
|
-
}
|
|
91
|
-
const G = ({ url: e }) => {
|
|
92
|
-
const n = k(), f = C(), i = O(), t = j(() => T(i), [i]), [d, a] = m(null), [y, p] = m(!0), [h, l] = m(null);
|
|
93
|
-
return v(() => {
|
|
94
|
-
(async () => {
|
|
95
|
-
try {
|
|
96
|
-
p(!0), l(null);
|
|
97
|
-
const c = await E(e, { fetcher: f });
|
|
98
|
-
a(JSON.parse(c));
|
|
99
|
-
} catch (c) {
|
|
100
|
-
l(n("json.load_failed")), console.error(c);
|
|
101
|
-
} finally {
|
|
102
|
-
p(!1);
|
|
103
|
-
}
|
|
104
|
-
})();
|
|
105
|
-
}, [e]), y ? /* @__PURE__ */ r("div", { className: "rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full", children: /* @__PURE__ */ r("div", { className: "rfp-w-12 rfp-h-12 rfp-border-4 rfp-border-line-strong rfp-border-t-spinner-head rfp-rounded-full rfp-animate-spin" }) }) : h ? /* @__PURE__ */ r("div", { className: "rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full", children: /* @__PURE__ */ r("div", { className: "rfp-text-fg-secondary rfp-text-center", children: /* @__PURE__ */ r("p", { className: "rfp-text-lg", children: h }) }) }) : /* @__PURE__ */ r("div", { className: "rfp-w-full rfp-h-full rfp-overflow-auto rfp-bg-code-bg rfp-py-3 rfp-pr-4", children: /* @__PURE__ */ r(b, { value: d, depth: 0, defaultExpanded: !0, colors: t }) });
|
|
106
|
-
};
|
|
107
|
-
export {
|
|
108
|
-
G as JsonRenderer
|
|
109
|
-
};
|
|
110
|
-
//# sourceMappingURL=index-B-H9HQiI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-B-H9HQiI.mjs","sources":["../../src/renderers/Json/index.tsx"],"sourcesContent":["import { useState, useEffect, useCallback, useMemo } from 'react';\nimport { ChevronRight, ChevronDown } from 'lucide-react';\nimport { fetchTextUtf8 } from '@eternalheart/file-preview-core';\nimport { useTranslator } from '../../i18n/LocaleContext';\nimport { useFetcher } from '../../RequestContext';\nimport { useResolvedTheme, type ResolvedTheme } from '../../ThemeContext';\n\ninterface JsonRendererProps {\n url: string;\n fileName: string;\n}\n\ninterface JsonColors {\n key: string;\n string: string;\n number: string;\n keyword: string;\n bracket: string; // { } [ ]\n colon: string; // :\n collapsed: string; // \"N items / N keys\" 折叠提示\n arrow: string; // 折叠箭头\n}\n\n// VSCode Dark Plus / GitHub Light 两套配色,与 react-syntax-highlighter 的 vscDarkPlus / vs 主题保持一致\nconst DARK_COLORS: JsonColors = {\n key: '#9cdcfe',\n string: '#ce9178',\n number: '#b5cea8',\n keyword: '#569cd6',\n bracket: '#d4d4d4',\n colon: 'rgb(255 255 255 / 0.6)',\n collapsed: 'rgb(255 255 255 / 0.4)',\n arrow: 'rgb(255 255 255 / 0.5)',\n};\n\nconst LIGHT_COLORS: JsonColors = {\n key: '#005cc5',\n string: '#032f62',\n number: '#005cc5',\n keyword: '#d73a49',\n bracket: '#24292e',\n colon: 'rgb(23 23 23 / 0.6)',\n collapsed: 'rgb(23 23 23 / 0.45)',\n arrow: 'rgb(23 23 23 / 0.55)',\n};\n\n// ---------- JSON 树节点 ----------\n\ninterface JsonNodeProps {\n keyName?: string;\n value: unknown;\n depth: number;\n defaultExpanded: boolean;\n colors: JsonColors;\n}\n\nconst JsonNode: React.FC<JsonNodeProps> = ({ keyName, value, depth, defaultExpanded, colors }) => {\n const t = useTranslator();\n const [expanded, setExpanded] = useState(defaultExpanded);\n const indent = depth * 20;\n\n const toggle = useCallback(() => setExpanded(prev => !prev), []);\n\n // 基本类型\n if (value === null || value === undefined || typeof value !== 'object') {\n return (\n <div className=\"rfp-flex rfp-items-start rfp-py-px rfp-font-mono rfp-text-sm\" style={{ paddingLeft: `${indent}px` }}>\n <span className=\"rfp-w-4 rfp-h-5 rfp-flex-shrink-0\" />\n {keyName !== undefined && (\n <span className=\"rfp-flex-shrink-0\" style={{ color: colors.key }}>\n \"{keyName}\"<span style={{ color: colors.colon }}>: </span>\n </span>\n )}\n {renderPrimitive(value, colors)}\n </div>\n );\n }\n\n const isArray = Array.isArray(value);\n const entries = isArray ? (value as unknown[]) : Object.entries(value as Record<string, unknown>);\n const count = entries.length;\n const openBracket = isArray ? '[' : '{';\n const closeBracket = isArray ? ']' : '}';\n\n // 空对象/数组\n if (count === 0) {\n return (\n <div className=\"rfp-flex rfp-items-start rfp-py-px rfp-font-mono rfp-text-sm\" style={{ paddingLeft: `${indent}px` }}>\n <span className=\"rfp-w-4 rfp-h-5 rfp-flex-shrink-0\" />\n {keyName !== undefined && (\n <span className=\"rfp-flex-shrink-0\" style={{ color: colors.key }}>\n \"{keyName}\"<span style={{ color: colors.colon }}>: </span>\n </span>\n )}\n <span style={{ color: colors.bracket }}>{openBracket}{closeBracket}</span>\n </div>\n );\n }\n\n return (\n <div>\n {/* 折叠行 */}\n <div\n className=\"rfp-flex rfp-items-start rfp-py-px rfp-font-mono rfp-text-sm rfp-cursor-pointer hover:rfp-bg-surface-1 rfp-select-none\"\n style={{ paddingLeft: `${indent}px` }}\n onClick={toggle}\n >\n <span className=\"rfp-w-4 rfp-h-5 rfp-flex-shrink-0 rfp-flex rfp-items-center rfp-justify-center\" style={{ color: colors.arrow }}>\n {expanded\n ? <ChevronDown className=\"rfp-w-3.5 rfp-h-3.5\" />\n : <ChevronRight className=\"rfp-w-3.5 rfp-h-3.5\" />\n }\n </span>\n {keyName !== undefined && (\n <span className=\"rfp-flex-shrink-0\" style={{ color: colors.key }}>\n \"{keyName}\"<span style={{ color: colors.colon }}>: </span>\n </span>\n )}\n <span style={{ color: colors.bracket }}>{openBracket}</span>\n {!expanded && (\n <span className=\"rfp-ml-1\" style={{ color: colors.collapsed }}>\n {isArray ? `${count} ${t('json.items')}` : `${count} ${t('json.keys')}`}\n <span style={{ color: colors.bracket }}> {closeBracket}</span>\n </span>\n )}\n </div>\n\n {/* 子节点 */}\n {expanded && (\n <>\n {isArray\n ? (value as unknown[]).map((item, i) => (\n <JsonNode key={i} value={item} depth={depth + 1} defaultExpanded={depth < 1} colors={colors} />\n ))\n : Object.entries(value as Record<string, unknown>).map(([k, v]) => (\n <JsonNode key={k} keyName={k} value={v} depth={depth + 1} defaultExpanded={depth < 1} colors={colors} />\n ))\n }\n <div className=\"rfp-font-mono rfp-text-sm rfp-py-px\" style={{ paddingLeft: `${indent + 20}px`, color: colors.bracket }}>\n {closeBracket}\n </div>\n </>\n )}\n </div>\n );\n};\n\nfunction renderPrimitive(value: unknown, colors: JsonColors) {\n if (value === null) return <span style={{ color: colors.keyword, fontStyle: 'italic' }}>null</span>;\n if (value === undefined) return <span style={{ color: colors.keyword, fontStyle: 'italic' }}>undefined</span>;\n if (typeof value === 'boolean') return <span style={{ color: colors.keyword }}>{String(value)}</span>;\n if (typeof value === 'number') return <span style={{ color: colors.number }}>{String(value)}</span>;\n if (typeof value === 'string') return <span style={{ color: colors.string }}>\"{value}\"</span>;\n return <span style={{ color: colors.bracket }}>{String(value)}</span>;\n}\n\nfunction pickColors(theme: ResolvedTheme): JsonColors {\n return theme === 'light' ? LIGHT_COLORS : DARK_COLORS;\n}\n\n// ---------- Main ----------\n\nexport const JsonRenderer: React.FC<JsonRendererProps> = ({ url }) => {\n const t = useTranslator();\n const fetcher = useFetcher();\n const resolvedTheme = useResolvedTheme();\n const colors = useMemo(() => pickColors(resolvedTheme), [resolvedTheme]);\n const [data, setData] = useState<unknown>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n const loadJson = async () => {\n try {\n setLoading(true);\n setError(null);\n const text = await fetchTextUtf8(url, { fetcher });\n setData(JSON.parse(text));\n } catch (err) {\n setError(t('json.load_failed'));\n console.error(err);\n } finally {\n setLoading(false);\n }\n };\n loadJson();\n }, [url]);\n\n if (loading) {\n return (\n <div className=\"rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full\">\n <div className=\"rfp-w-12 rfp-h-12 rfp-border-4 rfp-border-line-strong rfp-border-t-spinner-head rfp-rounded-full rfp-animate-spin\" />\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full\">\n <div className=\"rfp-text-fg-secondary rfp-text-center\">\n <p className=\"rfp-text-lg\">{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"rfp-w-full rfp-h-full rfp-overflow-auto rfp-bg-code-bg rfp-py-3 rfp-pr-4\">\n <JsonNode value={data} depth={0} defaultExpanded colors={colors} />\n </div>\n );\n};\n"],"names":["DARK_COLORS","LIGHT_COLORS","JsonNode","keyName","value","depth","defaultExpanded","colors","t","useTranslator","expanded","setExpanded","useState","indent","toggle","useCallback","prev","jsxs","jsx","renderPrimitive","isArray","count","openBracket","closeBracket","ChevronDown","ChevronRight","Fragment","item","i","k","v","pickColors","theme","JsonRenderer","url","fetcher","useFetcher","resolvedTheme","useResolvedTheme","useMemo","data","setData","loading","setLoading","error","setError","useEffect","text","fetchTextUtf8","err"],"mappings":";;;;AAwBA,MAAMA,IAA0B;AAAA,EAC9B,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,OAAO;AACT,GAEMC,IAA2B;AAAA,EAC/B,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,OAAO;AACT,GAYMC,IAAoC,CAAC,EAAE,SAAAC,GAAS,OAAAC,GAAO,OAAAC,GAAO,iBAAAC,GAAiB,QAAAC,QAAa;AAChG,QAAMC,IAAIC,EAAA,GACJ,CAACC,GAAUC,CAAW,IAAIC,EAASN,CAAe,GAClDO,IAASR,IAAQ,IAEjBS,IAASC,EAAY,MAAMJ,EAAY,OAAQ,CAACK,CAAI,GAAG,EAAE;AAG/D,MAAIZ,KAAU,QAA+B,OAAOA,KAAU;AAC5D,WACE,gBAAAa,EAAC,OAAA,EAAI,WAAU,gEAA+D,OAAO,EAAE,aAAa,GAAGJ,CAAM,KAAA,GAC3G,UAAA;AAAA,MAAA,gBAAAK,EAAC,QAAA,EAAK,WAAU,oCAAA,CAAoC;AAAA,MACnDf,MAAY,UACX,gBAAAc,EAAC,QAAA,EAAK,WAAU,qBAAoB,OAAO,EAAE,OAAOV,EAAO,IAAA,GAAO,UAAA;AAAA,QAAA;AAAA,QAC9DJ;AAAA,QAAQ;AAAA,QAAC,gBAAAe,EAAC,UAAK,OAAO,EAAE,OAAOX,EAAO,MAAA,GAAS,UAAA,KAAA,CAAE;AAAA,MAAA,GACrD;AAAA,MAEDY,EAAgBf,GAAOG,CAAM;AAAA,IAAA,GAChC;AAIJ,QAAMa,IAAU,MAAM,QAAQhB,CAAK,GAE7BiB,KADUD,IAAWhB,IAAsB,OAAO,QAAQA,CAAgC,GAC1E,QAChBkB,IAAcF,IAAU,MAAM,KAC9BG,IAAeH,IAAU,MAAM;AAGrC,SAAIC,MAAU,IAEV,gBAAAJ,EAAC,OAAA,EAAI,WAAU,gEAA+D,OAAO,EAAE,aAAa,GAAGJ,CAAM,KAAA,GAC3G,UAAA;AAAA,IAAA,gBAAAK,EAAC,QAAA,EAAK,WAAU,oCAAA,CAAoC;AAAA,IACnDf,MAAY,UACX,gBAAAc,EAAC,QAAA,EAAK,WAAU,qBAAoB,OAAO,EAAE,OAAOV,EAAO,IAAA,GAAO,UAAA;AAAA,MAAA;AAAA,MAC9DJ;AAAA,MAAQ;AAAA,MAAC,gBAAAe,EAAC,UAAK,OAAO,EAAE,OAAOX,EAAO,MAAA,GAAS,UAAA,KAAA,CAAE;AAAA,IAAA,GACrD;AAAA,sBAED,QAAA,EAAK,OAAO,EAAE,OAAOA,EAAO,WAAY,UAAA;AAAA,MAAAe;AAAA,MAAaC;AAAA,IAAA,EAAA,CAAa;AAAA,EAAA,GACrE,sBAKD,OAAA,EAEC,UAAA;AAAA,IAAA,gBAAAN;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,aAAa,GAAGJ,CAAM,KAAA;AAAA,QAC/B,SAASC;AAAA,QAET,UAAA;AAAA,UAAA,gBAAAI,EAAC,UAAK,WAAU,kFAAiF,OAAO,EAAE,OAAOX,EAAO,MAAA,GACrH,cACG,gBAAAW,EAACM,GAAA,EAAY,WAAU,uBAAsB,sBAC5CC,GAAA,EAAa,WAAU,uBAAsB,EAAA,CAEpD;AAAA,UACCtB,MAAY,UACX,gBAAAc,EAAC,QAAA,EAAK,WAAU,qBAAoB,OAAO,EAAE,OAAOV,EAAO,IAAA,GAAO,UAAA;AAAA,YAAA;AAAA,YAC9DJ;AAAA,YAAQ;AAAA,YAAC,gBAAAe,EAAC,UAAK,OAAO,EAAE,OAAOX,EAAO,MAAA,GAAS,UAAA,KAAA,CAAE;AAAA,UAAA,GACrD;AAAA,UAEF,gBAAAW,EAAC,UAAK,OAAO,EAAE,OAAOX,EAAO,QAAA,GAAY,UAAAe,GAAY;AAAA,UACpD,CAACZ,KACA,gBAAAO,EAAC,QAAA,EAAK,WAAU,YAAW,OAAO,EAAE,OAAOV,EAAO,UAAA,GAC/C,UAAA;AAAA,YAAAa,IAAU,GAAGC,CAAK,IAAIb,EAAE,YAAY,CAAC,KAAK,GAAGa,CAAK,IAAIb,EAAE,WAAW,CAAC;AAAA,8BACpE,QAAA,EAAK,OAAO,EAAE,OAAOD,EAAO,WAAW,UAAA;AAAA,cAAA;AAAA,cAAEgB;AAAA,YAAA,EAAA,CAAa;AAAA,UAAA,EAAA,CACzD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAKHb,KACC,gBAAAO,EAAAS,GAAA,EACG,UAAA;AAAA,MAAAN,IACIhB,EAAoB,IAAI,CAACuB,GAAMC,MAC9B,gBAAAV,EAAChB,KAAiB,OAAOyB,GAAM,OAAOtB,IAAQ,GAAG,iBAAiBA,IAAQ,GAAG,QAAAE,KAA9DqB,CAA8E,CAC9F,IACD,OAAO,QAAQxB,CAAgC,EAAE,IAAI,CAAC,CAACyB,GAAGC,CAAC,MACzD,gBAAAZ,EAAChB,KAAiB,SAAS2B,GAAG,OAAOC,GAAG,OAAOzB,IAAQ,GAAG,iBAAiBA,IAAQ,GAAG,QAAAE,KAAvEsB,CAAuF,CACvG;AAAA,MAEL,gBAAAX,EAAC,OAAA,EAAI,WAAU,uCAAsC,OAAO,EAAE,aAAa,GAAGL,IAAS,EAAE,MAAM,OAAON,EAAO,QAAA,GAC1G,UAAAgB,EAAA,CACH;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAASJ,EAAgBf,GAAgBG,GAAoB;AAC3D,SAAIH,MAAU,OAAa,gBAAAc,EAAC,QAAA,EAAK,OAAO,EAAE,OAAOX,EAAO,SAAS,WAAW,SAAA,GAAY,UAAA,QAAI,IACxFH,MAAU,SAAkB,gBAAAc,EAAC,QAAA,EAAK,OAAO,EAAE,OAAOX,EAAO,SAAS,WAAW,SAAA,GAAY,UAAA,aAAS,IAClG,OAAOH,KAAU,8BAAmB,QAAA,EAAK,OAAO,EAAE,OAAOG,EAAO,QAAA,GAAY,UAAA,OAAOH,CAAK,GAAE,IAC1F,OAAOA,KAAU,6BAAkB,QAAA,EAAK,OAAO,EAAE,OAAOG,EAAO,OAAA,GAAW,UAAA,OAAOH,CAAK,GAAE,IACxF,OAAOA,KAAU,WAAiB,gBAAAa,EAAC,QAAA,EAAK,OAAO,EAAE,OAAOV,EAAO,OAAA,GAAU,UAAA;AAAA,IAAA;AAAA,IAAEH;AAAA,IAAM;AAAA,EAAA,GAAC,IAC/E,gBAAAc,EAAC,QAAA,EAAK,OAAO,EAAE,OAAOX,EAAO,QAAA,GAAY,UAAA,OAAOH,CAAK,EAAA,CAAE;AAChE;AAEA,SAAS2B,EAAWC,GAAkC;AACpD,SAAOA,MAAU,UAAU/B,IAAeD;AAC5C;AAIO,MAAMiC,IAA4C,CAAC,EAAE,KAAAC,QAAU;AACpE,QAAM1B,IAAIC,EAAA,GACJ0B,IAAUC,EAAA,GACVC,IAAgBC,EAAA,GAChB/B,IAASgC,EAAQ,MAAMR,EAAWM,CAAa,GAAG,CAACA,CAAa,CAAC,GACjE,CAACG,GAAMC,CAAO,IAAI7B,EAAkB,IAAI,GACxC,CAAC8B,GAASC,CAAU,IAAI/B,EAAS,EAAI,GACrC,CAACgC,GAAOC,CAAQ,IAAIjC,EAAwB,IAAI;AAmBtD,SAjBAkC,EAAU,MAAM;AAcd,KAbiB,YAAY;AAC3B,UAAI;AACF,QAAAH,EAAW,EAAI,GACfE,EAAS,IAAI;AACb,cAAME,IAAO,MAAMC,EAAcd,GAAK,EAAE,SAAAC,GAAS;AACjD,QAAAM,EAAQ,KAAK,MAAMM,CAAI,CAAC;AAAA,MAC1B,SAASE,GAAK;AACZ,QAAAJ,EAASrC,EAAE,kBAAkB,CAAC,GAC9B,QAAQ,MAAMyC,CAAG;AAAA,MACnB,UAAA;AACE,QAAAN,EAAW,EAAK;AAAA,MAClB;AAAA,IACF,GACA;AAAA,EACF,GAAG,CAACT,CAAG,CAAC,GAEJQ,IAEA,gBAAAxB,EAAC,SAAI,WAAU,sEACb,4BAAC,OAAA,EAAI,WAAU,qHAAoH,EAAA,CACrI,IAIA0B,IAEA,gBAAA1B,EAAC,OAAA,EAAI,WAAU,sEACb,4BAAC,OAAA,EAAI,WAAU,yCACb,UAAA,gBAAAA,EAAC,KAAA,EAAE,WAAU,eAAe,UAAA0B,EAAA,CAAM,GACpC,GACF,IAKF,gBAAA1B,EAAC,OAAA,EAAI,WAAU,4EACb,UAAA,gBAAAA,EAAChB,GAAA,EAAS,OAAOsC,GAAM,OAAO,GAAG,iBAAe,IAAC,QAAAjC,GAAgB,GACnE;AAEJ;"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { jsx as e, jsxs as a } from "react/jsx-runtime";
|
|
2
|
-
import { useState as u, useRef as v, useEffect as g } from "react";
|
|
3
|
-
import x from "video.js";
|
|
4
|
-
import { u as y } from "./index-Bv93wiEK.mjs";
|
|
5
|
-
const b = (r) => {
|
|
6
|
-
var s;
|
|
7
|
-
const o = ((s = r.split(".").pop()) == null ? void 0 : s.toLowerCase().split("?")[0]) || "";
|
|
8
|
-
return {
|
|
9
|
-
mp4: "video/mp4",
|
|
10
|
-
webm: "video/webm",
|
|
11
|
-
ogg: "video/ogg",
|
|
12
|
-
ogv: "video/ogg",
|
|
13
|
-
mov: "video/quicktime",
|
|
14
|
-
// MOV 使用 QuickTime MIME 类型
|
|
15
|
-
avi: "video/x-msvideo",
|
|
16
|
-
mkv: "video/x-matroska",
|
|
17
|
-
m4v: "video/mp4",
|
|
18
|
-
"3gp": "video/3gpp",
|
|
19
|
-
flv: "video/x-flv"
|
|
20
|
-
}[o] || "video/mp4";
|
|
21
|
-
}, L = ({ url: r }) => {
|
|
22
|
-
const o = y(), [f, s] = u(null), [h, d] = u(!0), n = v(null), l = v(null);
|
|
23
|
-
return g(() => {
|
|
24
|
-
if (!l.current && n.current) {
|
|
25
|
-
const t = document.createElement("video-js");
|
|
26
|
-
t.classList.add("vjs-big-play-centered", "vjs-theme-apple"), n.current.appendChild(t);
|
|
27
|
-
const c = b(r), i = x(t, {
|
|
28
|
-
controls: !0,
|
|
29
|
-
fill: !0,
|
|
30
|
-
preload: "auto",
|
|
31
|
-
controlBar: {
|
|
32
|
-
children: [
|
|
33
|
-
"playToggle",
|
|
34
|
-
"volumePanel",
|
|
35
|
-
"currentTimeDisplay",
|
|
36
|
-
"timeDivider",
|
|
37
|
-
"durationDisplay",
|
|
38
|
-
"progressControl",
|
|
39
|
-
"remainingTimeDisplay",
|
|
40
|
-
"fullscreenToggle"
|
|
41
|
-
],
|
|
42
|
-
volumePanel: {
|
|
43
|
-
inline: !1
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
html5: {
|
|
47
|
-
vhs: {
|
|
48
|
-
overrideNative: !0
|
|
49
|
-
},
|
|
50
|
-
nativeVideoTracks: !1,
|
|
51
|
-
nativeAudioTracks: !1,
|
|
52
|
-
nativeTextTracks: !1
|
|
53
|
-
},
|
|
54
|
-
sources: c === "video/quicktime" ? [
|
|
55
|
-
{ src: r, type: "video/quicktime" },
|
|
56
|
-
{ src: r, type: "video/mp4" }
|
|
57
|
-
// 备用方案
|
|
58
|
-
] : [{ src: r, type: c }]
|
|
59
|
-
}), m = i.el().querySelector("video");
|
|
60
|
-
m && (m.style.objectFit = "contain"), i.on("loadeddata", () => {
|
|
61
|
-
d(!1);
|
|
62
|
-
}), i.on("error", () => {
|
|
63
|
-
const p = i.error();
|
|
64
|
-
console.error("Video.js error:", p), s(o("video.load_failed_with_error", { error: (p == null ? void 0 : p.message) || o("common.unknown_error") })), d(!1);
|
|
65
|
-
}), l.current = i;
|
|
66
|
-
}
|
|
67
|
-
}, [r]), g(() => {
|
|
68
|
-
const t = l.current;
|
|
69
|
-
return () => {
|
|
70
|
-
t && !t.isDisposed() && (t.dispose(), l.current = null);
|
|
71
|
-
};
|
|
72
|
-
}, []), f ? /* @__PURE__ */ e("div", { className: "rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full", children: /* @__PURE__ */ a("div", { className: "rfp-text-center", children: [
|
|
73
|
-
/* @__PURE__ */ e("div", { className: "rfp-w-16 rfp-h-16 rfp-mx-auto rfp-mb-4 rfp-rounded-full rfp-bg-red-500/10 rfp-flex rfp-items-center rfp-justify-center", children: /* @__PURE__ */ e("svg", { className: "rfp-w-8 rfp-h-8 rfp-text-red-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }) }),
|
|
74
|
-
/* @__PURE__ */ e("p", { className: "rfp-text-lg rfp-font-medium rfp-text-fg-primary rfp-mb-2", children: o("video.load_failed") }),
|
|
75
|
-
/* @__PURE__ */ e("p", { className: "rfp-text-sm rfp-text-fg-tertiary", children: f })
|
|
76
|
-
] }) }) : /* @__PURE__ */ e("div", { className: "rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full", children: /* @__PURE__ */ a("div", { className: "rfp-w-full rfp-h-full rfp-relative", children: [
|
|
77
|
-
h && /* @__PURE__ */ e("div", { className: "rfp-absolute rfp-inset-0 rfp-flex rfp-items-center rfp-justify-center rfp-bg-surface-3 rfp-backdrop-blur-sm rfp-z-10", children: /* @__PURE__ */ a("div", { className: "rfp-text-center", children: [
|
|
78
|
-
/* @__PURE__ */ e("div", { className: "rfp-w-12 rfp-h-12 rfp-mx-auto rfp-mb-3 rfp-border-3 rfp-border-line-strong rfp-border-t-spinner-head rfp-rounded-full rfp-animate-spin" }),
|
|
79
|
-
/* @__PURE__ */ e("p", { className: "rfp-text-sm rfp-text-fg-secondary rfp-font-medium", children: o("video.loading") })
|
|
80
|
-
] }) }),
|
|
81
|
-
/* @__PURE__ */ e(
|
|
82
|
-
"div",
|
|
83
|
-
{
|
|
84
|
-
ref: n,
|
|
85
|
-
className: "rfp-overflow-hidden rfp-w-full rfp-h-full [&_video]:rfp-object-contain",
|
|
86
|
-
style: {
|
|
87
|
-
boxShadow: "0 20px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05)"
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
)
|
|
91
|
-
] }) });
|
|
92
|
-
};
|
|
93
|
-
export {
|
|
94
|
-
L as VideoRenderer
|
|
95
|
-
};
|
|
96
|
-
//# sourceMappingURL=index-BGeyzo6u.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BGeyzo6u.mjs","sources":["../../src/renderers/Video/index.tsx"],"sourcesContent":["import { useRef, useEffect, useState } from 'react';\nimport videojs from 'video.js';\nimport 'video.js/dist/video-js.css';\nimport { useTranslator } from '../../i18n/LocaleContext';\n\ntype VideoJsPlayer = ReturnType<typeof videojs>;\n\ninterface VideoRendererProps {\n url: string;\n}\n\n// 根据 URL 获取视频 MIME 类型\nconst getVideoType = (url: string): string => {\n const ext = url.split('.').pop()?.toLowerCase().split('?')[0] || '';\n const typeMap: Record<string, string> = {\n mp4: 'video/mp4',\n webm: 'video/webm',\n ogg: 'video/ogg',\n ogv: 'video/ogg',\n mov: 'video/quicktime', // MOV 使用 QuickTime MIME 类型\n avi: 'video/x-msvideo',\n mkv: 'video/x-matroska',\n m4v: 'video/mp4',\n '3gp': 'video/3gpp',\n flv: 'video/x-flv',\n };\n return typeMap[ext] || 'video/mp4';\n};\n\nexport const VideoRenderer: React.FC<VideoRendererProps> = ({ url }) => {\n const t = useTranslator();\n const [error, setError] = useState<string | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n const videoRef = useRef<HTMLDivElement>(null);\n const playerRef = useRef<VideoJsPlayer | null>(null);\n\n useEffect(() => {\n // 确保 Video.js 播放器只初始化一次\n if (!playerRef.current && videoRef.current) {\n const videoElement = document.createElement('video-js');\n videoElement.classList.add('vjs-big-play-centered', 'vjs-theme-apple');\n videoRef.current.appendChild(videoElement);\n\n const videoType = getVideoType(url);\n\n // 为 MOV 格式提供多个 MIME 类型作为备用\n const sources = videoType === 'video/quicktime'\n ? [\n { src: url, type: 'video/quicktime' },\n { src: url, type: 'video/mp4' } // 备用方案\n ]\n : [{ src: url, type: videoType }];\n\n const player = videojs(videoElement, {\n controls: true,\n fill: true,\n preload: 'auto',\n controlBar: {\n children: [\n 'playToggle',\n 'volumePanel',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'remainingTimeDisplay',\n 'fullscreenToggle'\n ],\n volumePanel: {\n inline: false\n }\n },\n html5: {\n vhs: {\n overrideNative: true\n },\n nativeVideoTracks: false,\n nativeAudioTracks: false,\n nativeTextTracks: false\n },\n sources\n });\n\n // 确保视频保持比例\n const videoEl = player.el().querySelector('video');\n if (videoEl) {\n (videoEl as HTMLVideoElement).style.objectFit = 'contain';\n }\n\n // 监听加载完成\n player.on('loadeddata', () => {\n setIsLoading(false);\n });\n\n player.on('error', () => {\n const error = player.error();\n console.error('Video.js error:', error);\n setError(t('video.load_failed_with_error', { error: error?.message || t('common.unknown_error') }));\n setIsLoading(false);\n });\n\n playerRef.current = player;\n }\n }, [url]);\n\n // 清理函数\n useEffect(() => {\n const player = playerRef.current;\n\n return () => {\n if (player && !player.isDisposed()) {\n player.dispose();\n playerRef.current = null;\n }\n };\n }, []);\n\n if (error) {\n return (\n <div className=\"rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full\">\n <div className=\"rfp-text-center\">\n <div className=\"rfp-w-16 rfp-h-16 rfp-mx-auto rfp-mb-4 rfp-rounded-full rfp-bg-red-500/10 rfp-flex rfp-items-center rfp-justify-center\">\n <svg className=\"rfp-w-8 rfp-h-8 rfp-text-red-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\" />\n </svg>\n </div>\n <p className=\"rfp-text-lg rfp-font-medium rfp-text-fg-primary rfp-mb-2\">{t('video.load_failed')}</p>\n <p className=\"rfp-text-sm rfp-text-fg-tertiary\">{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"rfp-flex rfp-items-center rfp-justify-center rfp-w-full rfp-h-full\">\n <div className=\"rfp-w-full rfp-h-full rfp-relative\">\n {/* 加载状态 */}\n {isLoading && (\n <div className=\"rfp-absolute rfp-inset-0 rfp-flex rfp-items-center rfp-justify-center rfp-bg-surface-3 rfp-backdrop-blur-sm rfp-z-10\">\n <div className=\"rfp-text-center\">\n <div className=\"rfp-w-12 rfp-h-12 rfp-mx-auto rfp-mb-3 rfp-border-3 rfp-border-line-strong rfp-border-t-spinner-head rfp-rounded-full rfp-animate-spin\" />\n <p className=\"rfp-text-sm rfp-text-fg-secondary rfp-font-medium\">{t('video.loading')}</p>\n </div>\n </div>\n )}\n\n {/* 视频播放器容器 */}\n <div\n ref={videoRef}\n className=\"rfp-overflow-hidden rfp-w-full rfp-h-full [&_video]:rfp-object-contain\"\n style={{\n boxShadow: '0 20px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05)'\n }}\n />\n </div>\n </div>\n );\n};\n"],"names":["getVideoType","url","ext","_a","VideoRenderer","t","useTranslator","error","setError","useState","isLoading","setIsLoading","videoRef","useRef","playerRef","useEffect","videoElement","videoType","player","videojs","videoEl","jsxs","jsx"],"mappings":"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"}
|