@file-viewer/core 3.1.2 → 3.2.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/README.en.md +3 -121
- package/README.md +3 -126
- package/dist/assets.d.ts +2 -2
- package/dist/assets.js +1 -5
- package/dist/browser/controller.d.ts +1 -2
- package/dist/browser/controller.js +2 -34
- package/dist/browser.d.ts +2 -2
- package/dist/browser.js +2 -2
- package/dist/config/options.d.ts +1 -1
- package/dist/contracts/types.d.ts +26 -423
- package/dist/contracts/xml.d.ts +0 -11
- package/dist/export.d.ts +3 -10
- package/dist/export.js +2 -9
- package/dist/exportDocument.d.ts +1 -12
- package/dist/exportDocument.js +7 -31
- package/dist/features/document/dom/anchors.d.ts +1 -1
- package/dist/features/document/dom/index.d.ts +5 -5
- package/dist/features/document/dom/index.js +3 -3
- package/dist/features/document/dom/providers.d.ts +1 -1
- package/dist/features/document/events.d.ts +2 -2
- package/dist/features/document/events.js +3 -3
- package/dist/features/document/fit.d.ts +1 -1
- package/dist/features/document/fit.js +1 -1
- package/dist/features/document/model.d.ts +1 -1
- package/dist/features/document/search.d.ts +1 -1
- package/dist/features/document/search.js +2 -2
- package/dist/features/document/viewState.d.ts +1 -1
- package/dist/features/document/viewState.js +2 -2
- package/dist/features/document/zoom.d.ts +3 -2
- package/dist/features/document/zoom.js +19 -3
- package/dist/features/document/zoomGestures.d.ts +11 -0
- package/dist/features/document/zoomGestures.js +111 -0
- package/dist/features/printMask.d.ts +1 -1
- package/dist/features/printMaskDesigner.d.ts +2 -6
- package/dist/features/printMaskDesigner.js +2 -11
- package/dist/features/printMaskLoader.d.ts +1 -7
- package/dist/features/printMaskLoader.js +1 -7
- package/dist/features/watermark.d.ts +1 -1
- package/dist/headless.d.ts +29 -29
- package/dist/headless.js +16 -21
- package/dist/i18n/messages.d.ts +1 -1
- package/dist/i18n/messages.de.d.ts +1 -5
- package/dist/i18n/messages.de.js +0 -4
- package/dist/i18n/messages.ja.d.ts +1 -6
- package/dist/i18n/messages.ja.js +0 -5
- package/dist/i18n/messages.js +2 -2
- package/dist/index.d.ts +74 -74
- package/dist/index.js +37 -37
- package/dist/lifecycle/facade.d.ts +4 -4
- package/dist/lifecycle/facade.js +2 -2
- package/dist/lifecycle/operations.d.ts +4 -4
- package/dist/lifecycle/operations.js +4 -9
- package/dist/output/canvasImage.d.ts +1 -2
- package/dist/output/canvasImage.js +1 -4
- package/dist/output/export.d.ts +2 -4
- package/dist/output/export.js +133 -81
- package/dist/output/printLayout.d.ts +2 -5
- package/dist/output/printLayout.js +37 -9
- package/dist/output/snapshotDownload.d.ts +1 -2
- package/dist/output/snapshotDownload.js +2 -3
- package/dist/platform/assets.d.ts +9 -16
- package/dist/platform/assets.js +60 -17
- package/dist/platform/copiedAssets.d.ts +0 -1
- package/dist/platform/copiedAssets.js +1 -2
- package/dist/presentation/state.d.ts +1 -1
- package/dist/presentation/state.js +3 -3
- package/dist/print-mask.d.ts +2 -2
- package/dist/print-mask.js +1 -1
- package/dist/registry/capabilities.d.ts +3 -16
- package/dist/registry/capabilities.js +2 -15
- package/dist/registry/formats.d.ts +5 -5
- package/dist/registry/formats.generated.d.ts +7 -8
- package/dist/registry/formats.generated.js +7 -4
- package/dist/registry/formats.js +2 -2
- package/dist/registry/registry.d.ts +6 -15
- package/dist/registry/registry.js +24 -10
- package/dist/renderers/image.d.ts +1 -1
- package/dist/renderers/image.js +26 -5
- package/dist/renderers/index.d.ts +11 -11
- package/dist/renderers/index.js +5 -11
- package/dist/rendering/dispatcher.d.ts +1 -6
- package/dist/rendering/dispatcher.js +3 -3
- package/dist/rendering/handler.d.ts +10 -15
- package/dist/rendering/handler.js +20 -27
- package/dist/security/svgResources.d.ts +0 -10
- package/dist/security/svgResources.js +2 -11
- package/dist/source/index.d.ts +3 -3
- package/dist/source/index.js +1 -1
- package/dist/source/loading.d.ts +56 -15
- package/dist/source/loading.js +177 -87
- package/dist/source/precheck.d.ts +1 -13
- package/dist/source/precheck.js +2 -9
- package/dist/source/textEncoding.d.ts +6 -3
- package/dist/source/textEncoding.js +58 -8
- package/dist/viewer/createViewer.d.ts +1 -1
- package/dist/viewer/createViewer.js +103 -33
- package/dist/viewer/loading.d.ts +2 -6
- package/dist/viewer/loading.js +1 -9
- package/dist/viewer/operations.d.ts +3 -3
- package/dist/viewer/operations.js +6 -14
- package/dist/viewer/state.d.ts +2 -6
- package/dist/viewer/state.js +3 -8
- package/package.json +127 -19
|
@@ -610,14 +610,14 @@ export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
|
610
610
|
readonly id: "code";
|
|
611
611
|
readonly label: "Code and Text";
|
|
612
612
|
readonly category: "code";
|
|
613
|
-
readonly extensions: readonly ["txt", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "patch", "bundle", "bdl", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt"];
|
|
613
|
+
readonly extensions: readonly ["txt", "lrc", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "patch", "bundle", "bdl", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt"];
|
|
614
614
|
readonly async: true;
|
|
615
615
|
readonly supportLevel: "structured";
|
|
616
616
|
readonly status: "stable";
|
|
617
617
|
readonly packageName: "@file-viewer/renderer-text";
|
|
618
618
|
readonly presets: readonly ["lite", "standard", "all"];
|
|
619
|
-
readonly containerVersions: readonly ["Plain text", "source code", "Git bundle"];
|
|
620
|
-
readonly knownLimits: readonly [];
|
|
619
|
+
readonly containerVersions: readonly ["Plain text", "source code", "Git bundle", "LRC lyrics"];
|
|
620
|
+
readonly knownLimits: readonly ["LRC is a static annotated/lyrics/source preview, not synchronized audio playback"];
|
|
621
621
|
readonly capabilities: {
|
|
622
622
|
readonly download: true;
|
|
623
623
|
readonly print: true;
|
|
@@ -715,7 +715,7 @@ export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
|
715
715
|
readonly status: "experimental";
|
|
716
716
|
readonly packageName: "@file-viewer/renderer-design";
|
|
717
717
|
readonly presets: readonly [];
|
|
718
|
-
readonly containerVersions: readonly ["IDML package", "@paged-media/introspect-wasm 0.
|
|
718
|
+
readonly containerVersions: readonly ["IDML package", "@paged-media/introspect-wasm 0.70.2"];
|
|
719
719
|
readonly knownLimits: readonly ["Pages are rendered locally by the CPU WASM engine in a module Worker; the browser never uploads the IDML package", "ZIP64, encrypted, multi-disk, overlapping, unsafe-path, unsupported-compression, and configured expansion-limit packages are rejected before the WASM engine opens them", "The current engine page tree lists TextFrame and Rectangle objects only even though other supported objects may still appear in rendered page pixels", "Each page render rebuilds the upstream document internally; interactive requests are latest-wins, preview is lazy, and print-all is bounded by the configured total RGBA working-set limit"];
|
|
720
720
|
readonly capabilities: {
|
|
721
721
|
readonly download: true;
|
|
@@ -898,7 +898,6 @@ export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
|
898
898
|
readonly search: false;
|
|
899
899
|
};
|
|
900
900
|
}];
|
|
901
|
-
export declare const DEFAULT_REGISTERED_EXTENSIONS: readonly ("markdown" | "webp" | "jpeg" | "png" | "pdf" | "xyz" | "wasm" | "chm" | "typst" | "xd" | "fla" | "js" | "html" | "svg" | "rb" | "docx" | "docm" | "dotx" | "dotm" | "doc" | "dot" | "ppt" | "pot" | "pptx" | "pptm" | "potx" | "potm" | "ppsx" | "ppsm" | "rtf" | "odt" | "odp" | "xlsx" | "xltx" | "xlsm" | "xlsb" | "xls" | "xlt" | "xla" | "xlam" | "xltm" | "csv" | "tsv" | "ods" | "fods" | "pages" | "numbers" | "key" | "wpd" | "wp" | "wp5" | "wp6" | "dbf" | "ofd" | "hwp" | "hwpx" | "typ" | "zip" | "zipx" | "7z" | "rar" | "tar" | "gz" | "gzip" | "tgz" | "bz2" | "bzip2" | "tbz" | "tbz2" | "xz" | "txz" | "lzma" | "zst" | "tzst" | "cab" | "ar" | "cpio" | "iso" | "xar" | "lha" | "lzh" | "jar" | "war" | "ear" | "apk" | "cbz" | "cbr" | "eml" | "msg" | "mbox" | "olb" | "dra" | "gds" | "oas" | "oasis" | "dxf" | "dwg" | "dwf" | "dwfx" | "xps" | "glb" | "gltf" | "obj" | "stl" | "ply" | "fbx" | "dae" | "3ds" | "3mf" | "amf" | "usd" | "usda" | "usdc" | "usdz" | "kmz" | "step" | "stp" | "iges" | "igs" | "ifc" | "3dm" | "brep" | "pcd" | "wrl" | "vrml" | "vtk" | "vtp" | "geojson" | "kml" | "gpx" | "shp" | "excalidraw" | "drawio" | "dio" | "mermaid" | "mmd" | "plantuml" | "puml" | "bpmn" | "xmind" | "epub" | "fb2" | "umd" | "gif" | "jpg" | "bmp" | "tiff" | "tif" | "avif" | "ico" | "heic" | "heif" | "jxl" | "dicom" | "dcm" | "p7m" | "p7s" | "p7c" | "p7b" | "pkcs7" | "cms" | "cmsc" | "tsd" | "tst" | "tsq" | "tsr" | "asics" | "scs" | "asice" | "sce" | "ers" | "asc" | "sig" | "pgp" | "gpg" | "jws" | "md" | "txt" | "json" | "mjs" | "cjs" | "css" | "java" | "py" | "htm" | "jsx" | "ts" | "tsx" | "xml" | "log" | "vue" | "yaml" | "yml" | "ini" | "sh" | "bash" | "sql" | "go" | "rs" | "php" | "c" | "cpp" | "cc" | "h" | "hpp" | "cs" | "diff" | "patch" | "bundle" | "bdl" | "jsonc" | "json5" | "ipynb" | "toml" | "proto" | "hcl" | "tex" | "gv" | "http" | "react" | "swift" | "kt" | "mp4" | "webm" | "m3u8" | "mp3" | "mpeg" | "wav" | "ogg" | "oga" | "opus" | "m4a" | "aac" | "flac" | "weba" | "midi" | "mid" | "psb" | "pdd" | "psdt" | "psd" | "ait" | "ai" | "idml" | "icml" | "idms" | "inx" | "xfl" | "indd" | "indt" | "ps" | "eps" | "ase" | "aco" | "abr" | "csh" | "pat" | "grd" | "asl" | "ttf" | "otf" | "woff" | "woff2" | "sqlite" | "parquet" | "avro" | "webarchive" | "bin" | "hex" | "elf" | "exe" | "dll" | "class" | "macho")[];
|
|
902
|
-
export declare const DEFAULT_STABLE_SUPPORTED_EXTENSIONS: readonly ("markdown" | "webp" | "jpeg" | "png" | "pdf" | "xyz" | "wasm" | "chm" | "typst" | "js" | "html" | "svg" | "rb" | "docx" | "docm" | "dotx" | "dotm" | "doc" | "dot" | "ppt" | "pot" | "pptx" | "pptm" | "potx" | "potm" | "ppsx" | "ppsm" | "rtf" | "odt" | "odp" | "xlsx" | "xltx" | "xlsm" | "xlsb" | "xls" | "xlt" | "xla" | "xlam" | "xltm" | "csv" | "tsv" | "ods" | "fods" | "pages" | "numbers" | "key" | "wpd" | "wp" | "wp5" | "wp6" | "dbf" | "ofd" | "hwp" | "hwpx" | "typ" | "zip" | "zipx" | "7z" | "rar" | "tar" | "gz" | "gzip" | "tgz" | "bz2" | "bzip2" | "tbz" | "tbz2" | "xz" | "txz" | "lzma" | "zst" | "tzst" | "cab" | "ar" | "cpio" | "iso" | "xar" | "lha" | "lzh" | "jar" | "war" | "ear" | "apk" | "cbz" | "cbr" | "eml" | "msg" | "mbox" | "olb" | "dra" | "gds" | "oas" | "oasis" | "dxf" | "dwg" | "dwf" | "dwfx" | "xps" | "glb" | "gltf" | "obj" | "stl" | "ply" | "fbx" | "dae" | "3ds" | "3mf" | "amf" | "usd" | "usda" | "usdc" | "usdz" | "kmz" | "step" | "stp" | "iges" | "igs" | "ifc" | "3dm" | "brep" | "pcd" | "wrl" | "vrml" | "vtk" | "vtp" | "geojson" | "kml" | "gpx" | "shp" | "excalidraw" | "drawio" | "dio" | "mermaid" | "mmd" | "plantuml" | "puml" | "xmind" | "epub" | "fb2" | "umd" | "gif" | "jpg" | "bmp" | "tiff" | "tif" | "avif" | "ico" | "heic" | "heif" | "jxl" | "md" | "txt" | "json" | "mjs" | "cjs" | "css" | "java" | "py" | "htm" | "jsx" | "ts" | "tsx" | "xml" | "log" | "vue" | "yaml" | "yml" | "ini" | "sh" | "bash" | "sql" | "go" | "rs" | "php" | "c" | "cpp" | "cc" | "h" | "hpp" | "cs" | "diff" | "patch" | "bundle" | "bdl" | "jsonc" | "json5" | "ipynb" | "toml" | "proto" | "hcl" | "tex" | "gv" | "http" | "react" | "swift" | "kt" | "mp4" | "webm" | "m3u8" | "mp3" | "mpeg" | "wav" | "ogg" | "oga" | "opus" | "m4a" | "aac" | "flac" | "weba" | "midi" | "mid" | "psd" | "ai" | "eps" | "ase" | "aco" | "ttf" | "otf" | "woff" | "woff2" | "sqlite" | "parquet" | "avro" | "webarchive")[];
|
|
903
|
-
|
|
904
|
-
export declare const DEFAULT_SUPPORTED_EXTENSIONS: readonly ("markdown" | "webp" | "jpeg" | "png" | "pdf" | "xyz" | "wasm" | "chm" | "typst" | "xd" | "fla" | "js" | "html" | "svg" | "rb" | "docx" | "docm" | "dotx" | "dotm" | "doc" | "dot" | "ppt" | "pot" | "pptx" | "pptm" | "potx" | "potm" | "ppsx" | "ppsm" | "rtf" | "odt" | "odp" | "xlsx" | "xltx" | "xlsm" | "xlsb" | "xls" | "xlt" | "xla" | "xlam" | "xltm" | "csv" | "tsv" | "ods" | "fods" | "pages" | "numbers" | "key" | "wpd" | "wp" | "wp5" | "wp6" | "dbf" | "ofd" | "hwp" | "hwpx" | "typ" | "zip" | "zipx" | "7z" | "rar" | "tar" | "gz" | "gzip" | "tgz" | "bz2" | "bzip2" | "tbz" | "tbz2" | "xz" | "txz" | "lzma" | "zst" | "tzst" | "cab" | "ar" | "cpio" | "iso" | "xar" | "lha" | "lzh" | "jar" | "war" | "ear" | "apk" | "cbz" | "cbr" | "eml" | "msg" | "mbox" | "olb" | "dra" | "gds" | "oas" | "oasis" | "dxf" | "dwg" | "dwf" | "dwfx" | "xps" | "glb" | "gltf" | "obj" | "stl" | "ply" | "fbx" | "dae" | "3ds" | "3mf" | "amf" | "usd" | "usda" | "usdc" | "usdz" | "kmz" | "step" | "stp" | "iges" | "igs" | "ifc" | "3dm" | "brep" | "pcd" | "wrl" | "vrml" | "vtk" | "vtp" | "geojson" | "kml" | "gpx" | "shp" | "excalidraw" | "drawio" | "dio" | "mermaid" | "mmd" | "plantuml" | "puml" | "bpmn" | "xmind" | "epub" | "fb2" | "umd" | "gif" | "jpg" | "bmp" | "tiff" | "tif" | "avif" | "ico" | "heic" | "heif" | "jxl" | "dicom" | "dcm" | "p7m" | "p7s" | "p7c" | "p7b" | "pkcs7" | "cms" | "cmsc" | "tsd" | "tst" | "tsq" | "tsr" | "asics" | "scs" | "asice" | "sce" | "ers" | "asc" | "sig" | "pgp" | "gpg" | "jws" | "md" | "txt" | "json" | "mjs" | "cjs" | "css" | "java" | "py" | "htm" | "jsx" | "ts" | "tsx" | "xml" | "log" | "vue" | "yaml" | "yml" | "ini" | "sh" | "bash" | "sql" | "go" | "rs" | "php" | "c" | "cpp" | "cc" | "h" | "hpp" | "cs" | "diff" | "patch" | "bundle" | "bdl" | "jsonc" | "json5" | "ipynb" | "toml" | "proto" | "hcl" | "tex" | "gv" | "http" | "react" | "swift" | "kt" | "mp4" | "webm" | "m3u8" | "mp3" | "mpeg" | "wav" | "ogg" | "oga" | "opus" | "m4a" | "aac" | "flac" | "weba" | "midi" | "mid" | "psb" | "pdd" | "psdt" | "psd" | "ait" | "ai" | "idml" | "icml" | "idms" | "inx" | "xfl" | "indd" | "indt" | "ps" | "eps" | "ase" | "aco" | "abr" | "csh" | "pat" | "grd" | "asl" | "ttf" | "otf" | "woff" | "woff2" | "sqlite" | "parquet" | "avro" | "webarchive" | "bin" | "hex" | "elf" | "exe" | "dll" | "class" | "macho")[];
|
|
901
|
+
export declare const DEFAULT_REGISTERED_EXTENSIONS: readonly ("markdown" | "webp" | "jpeg" | "png" | "pdf" | "xyz" | "wasm" | "chm" | "typst" | "xd" | "fla" | "js" | "html" | "svg" | "rb" | "docx" | "docm" | "dotx" | "dotm" | "doc" | "dot" | "ppt" | "pot" | "pptx" | "pptm" | "potx" | "potm" | "ppsx" | "ppsm" | "rtf" | "odt" | "odp" | "xlsx" | "xltx" | "xlsm" | "xlsb" | "xls" | "xlt" | "xla" | "xlam" | "xltm" | "csv" | "tsv" | "ods" | "fods" | "pages" | "numbers" | "key" | "wpd" | "wp" | "wp5" | "wp6" | "dbf" | "ofd" | "hwp" | "hwpx" | "typ" | "zip" | "zipx" | "7z" | "rar" | "tar" | "gz" | "gzip" | "tgz" | "bz2" | "bzip2" | "tbz" | "tbz2" | "xz" | "txz" | "lzma" | "zst" | "tzst" | "cab" | "ar" | "cpio" | "iso" | "xar" | "lha" | "lzh" | "jar" | "war" | "ear" | "apk" | "cbz" | "cbr" | "eml" | "msg" | "mbox" | "olb" | "dra" | "gds" | "oas" | "oasis" | "dxf" | "dwg" | "dwf" | "dwfx" | "xps" | "glb" | "gltf" | "obj" | "stl" | "ply" | "fbx" | "dae" | "3ds" | "3mf" | "amf" | "usd" | "usda" | "usdc" | "usdz" | "kmz" | "step" | "stp" | "iges" | "igs" | "ifc" | "3dm" | "brep" | "pcd" | "wrl" | "vrml" | "vtk" | "vtp" | "geojson" | "kml" | "gpx" | "shp" | "excalidraw" | "drawio" | "dio" | "mermaid" | "mmd" | "plantuml" | "puml" | "bpmn" | "xmind" | "epub" | "fb2" | "umd" | "gif" | "jpg" | "bmp" | "tiff" | "tif" | "avif" | "ico" | "heic" | "heif" | "jxl" | "dicom" | "dcm" | "p7m" | "p7s" | "p7c" | "p7b" | "pkcs7" | "cms" | "cmsc" | "tsd" | "tst" | "tsq" | "tsr" | "asics" | "scs" | "asice" | "sce" | "ers" | "asc" | "sig" | "pgp" | "gpg" | "jws" | "md" | "txt" | "lrc" | "json" | "mjs" | "cjs" | "css" | "java" | "py" | "htm" | "jsx" | "ts" | "tsx" | "xml" | "log" | "vue" | "yaml" | "yml" | "ini" | "sh" | "bash" | "sql" | "go" | "rs" | "php" | "c" | "cpp" | "cc" | "h" | "hpp" | "cs" | "diff" | "patch" | "bundle" | "bdl" | "jsonc" | "json5" | "ipynb" | "toml" | "proto" | "hcl" | "tex" | "gv" | "http" | "react" | "swift" | "kt" | "mp4" | "webm" | "m3u8" | "mp3" | "mpeg" | "wav" | "ogg" | "oga" | "opus" | "m4a" | "aac" | "flac" | "weba" | "midi" | "mid" | "psb" | "pdd" | "psdt" | "psd" | "ait" | "ai" | "idml" | "icml" | "idms" | "inx" | "xfl" | "indd" | "indt" | "ps" | "eps" | "ase" | "aco" | "abr" | "csh" | "pat" | "grd" | "asl" | "ttf" | "otf" | "woff" | "woff2" | "sqlite" | "parquet" | "avro" | "webarchive" | "bin" | "hex" | "elf" | "exe" | "dll" | "class" | "macho")[];
|
|
902
|
+
export declare const DEFAULT_STABLE_SUPPORTED_EXTENSIONS: readonly ("markdown" | "webp" | "jpeg" | "png" | "pdf" | "xyz" | "wasm" | "chm" | "typst" | "js" | "html" | "svg" | "rb" | "docx" | "docm" | "dotx" | "dotm" | "doc" | "dot" | "ppt" | "pot" | "pptx" | "pptm" | "potx" | "potm" | "ppsx" | "ppsm" | "rtf" | "odt" | "odp" | "xlsx" | "xltx" | "xlsm" | "xlsb" | "xls" | "xlt" | "xla" | "xlam" | "xltm" | "csv" | "tsv" | "ods" | "fods" | "pages" | "numbers" | "key" | "wpd" | "wp" | "wp5" | "wp6" | "dbf" | "ofd" | "hwp" | "hwpx" | "typ" | "zip" | "zipx" | "7z" | "rar" | "tar" | "gz" | "gzip" | "tgz" | "bz2" | "bzip2" | "tbz" | "tbz2" | "xz" | "txz" | "lzma" | "zst" | "tzst" | "cab" | "ar" | "cpio" | "iso" | "xar" | "lha" | "lzh" | "jar" | "war" | "ear" | "apk" | "cbz" | "cbr" | "eml" | "msg" | "mbox" | "olb" | "dra" | "gds" | "oas" | "oasis" | "dxf" | "dwg" | "dwf" | "dwfx" | "xps" | "glb" | "gltf" | "obj" | "stl" | "ply" | "fbx" | "dae" | "3ds" | "3mf" | "amf" | "usd" | "usda" | "usdc" | "usdz" | "kmz" | "step" | "stp" | "iges" | "igs" | "ifc" | "3dm" | "brep" | "pcd" | "wrl" | "vrml" | "vtk" | "vtp" | "geojson" | "kml" | "gpx" | "shp" | "excalidraw" | "drawio" | "dio" | "mermaid" | "mmd" | "plantuml" | "puml" | "xmind" | "epub" | "fb2" | "umd" | "gif" | "jpg" | "bmp" | "tiff" | "tif" | "avif" | "ico" | "heic" | "heif" | "jxl" | "md" | "txt" | "lrc" | "json" | "mjs" | "cjs" | "css" | "java" | "py" | "htm" | "jsx" | "ts" | "tsx" | "xml" | "log" | "vue" | "yaml" | "yml" | "ini" | "sh" | "bash" | "sql" | "go" | "rs" | "php" | "c" | "cpp" | "cc" | "h" | "hpp" | "cs" | "diff" | "patch" | "bundle" | "bdl" | "jsonc" | "json5" | "ipynb" | "toml" | "proto" | "hcl" | "tex" | "gv" | "http" | "react" | "swift" | "kt" | "mp4" | "webm" | "m3u8" | "mp3" | "mpeg" | "wav" | "ogg" | "oga" | "opus" | "m4a" | "aac" | "flac" | "weba" | "midi" | "mid" | "psd" | "ai" | "eps" | "ase" | "aco" | "ttf" | "otf" | "woff" | "woff2" | "sqlite" | "parquet" | "avro" | "webarchive")[];
|
|
903
|
+
export declare const DEFAULT_SUPPORTED_EXTENSIONS: readonly ("markdown" | "webp" | "jpeg" | "png" | "pdf" | "xyz" | "wasm" | "chm" | "typst" | "xd" | "fla" | "js" | "html" | "svg" | "rb" | "docx" | "docm" | "dotx" | "dotm" | "doc" | "dot" | "ppt" | "pot" | "pptx" | "pptm" | "potx" | "potm" | "ppsx" | "ppsm" | "rtf" | "odt" | "odp" | "xlsx" | "xltx" | "xlsm" | "xlsb" | "xls" | "xlt" | "xla" | "xlam" | "xltm" | "csv" | "tsv" | "ods" | "fods" | "pages" | "numbers" | "key" | "wpd" | "wp" | "wp5" | "wp6" | "dbf" | "ofd" | "hwp" | "hwpx" | "typ" | "zip" | "zipx" | "7z" | "rar" | "tar" | "gz" | "gzip" | "tgz" | "bz2" | "bzip2" | "tbz" | "tbz2" | "xz" | "txz" | "lzma" | "zst" | "tzst" | "cab" | "ar" | "cpio" | "iso" | "xar" | "lha" | "lzh" | "jar" | "war" | "ear" | "apk" | "cbz" | "cbr" | "eml" | "msg" | "mbox" | "olb" | "dra" | "gds" | "oas" | "oasis" | "dxf" | "dwg" | "dwf" | "dwfx" | "xps" | "glb" | "gltf" | "obj" | "stl" | "ply" | "fbx" | "dae" | "3ds" | "3mf" | "amf" | "usd" | "usda" | "usdc" | "usdz" | "kmz" | "step" | "stp" | "iges" | "igs" | "ifc" | "3dm" | "brep" | "pcd" | "wrl" | "vrml" | "vtk" | "vtp" | "geojson" | "kml" | "gpx" | "shp" | "excalidraw" | "drawio" | "dio" | "mermaid" | "mmd" | "plantuml" | "puml" | "bpmn" | "xmind" | "epub" | "fb2" | "umd" | "gif" | "jpg" | "bmp" | "tiff" | "tif" | "avif" | "ico" | "heic" | "heif" | "jxl" | "dicom" | "dcm" | "p7m" | "p7s" | "p7c" | "p7b" | "pkcs7" | "cms" | "cmsc" | "tsd" | "tst" | "tsq" | "tsr" | "asics" | "scs" | "asice" | "sce" | "ers" | "asc" | "sig" | "pgp" | "gpg" | "jws" | "md" | "txt" | "lrc" | "json" | "mjs" | "cjs" | "css" | "java" | "py" | "htm" | "jsx" | "ts" | "tsx" | "xml" | "log" | "vue" | "yaml" | "yml" | "ini" | "sh" | "bash" | "sql" | "go" | "rs" | "php" | "c" | "cpp" | "cc" | "h" | "hpp" | "cs" | "diff" | "patch" | "bundle" | "bdl" | "jsonc" | "json5" | "ipynb" | "toml" | "proto" | "hcl" | "tex" | "gv" | "http" | "react" | "swift" | "kt" | "mp4" | "webm" | "m3u8" | "mp3" | "mpeg" | "wav" | "ogg" | "oga" | "opus" | "m4a" | "aac" | "flac" | "weba" | "midi" | "mid" | "psb" | "pdd" | "psdt" | "psd" | "ait" | "ai" | "idml" | "icml" | "idms" | "inx" | "xfl" | "indd" | "indt" | "ps" | "eps" | "ase" | "aco" | "abr" | "csh" | "pat" | "grd" | "asl" | "ttf" | "otf" | "woff" | "woff2" | "sqlite" | "parquet" | "avro" | "webarchive" | "bin" | "hex" | "elf" | "exe" | "dll" | "class" | "macho")[];
|
|
@@ -1089,6 +1089,7 @@ export const DEFAULT_RENDERER_DEFINITIONS = [
|
|
|
1089
1089
|
"category": "code",
|
|
1090
1090
|
"extensions": [
|
|
1091
1091
|
"txt",
|
|
1092
|
+
"lrc",
|
|
1092
1093
|
"json",
|
|
1093
1094
|
"js",
|
|
1094
1095
|
"mjs",
|
|
@@ -1149,9 +1150,12 @@ export const DEFAULT_RENDERER_DEFINITIONS = [
|
|
|
1149
1150
|
"containerVersions": [
|
|
1150
1151
|
"Plain text",
|
|
1151
1152
|
"source code",
|
|
1152
|
-
"Git bundle"
|
|
1153
|
+
"Git bundle",
|
|
1154
|
+
"LRC lyrics"
|
|
1155
|
+
],
|
|
1156
|
+
"knownLimits": [
|
|
1157
|
+
"LRC is a static annotated/lyrics/source preview, not synchronized audio playback"
|
|
1153
1158
|
],
|
|
1154
|
-
"knownLimits": [],
|
|
1155
1159
|
"capabilities": {
|
|
1156
1160
|
"download": true,
|
|
1157
1161
|
"print": true,
|
|
@@ -1323,7 +1327,7 @@ export const DEFAULT_RENDERER_DEFINITIONS = [
|
|
|
1323
1327
|
"presets": [],
|
|
1324
1328
|
"containerVersions": [
|
|
1325
1329
|
"IDML package",
|
|
1326
|
-
"@paged-media/introspect-wasm 0.
|
|
1330
|
+
"@paged-media/introspect-wasm 0.70.2"
|
|
1327
1331
|
],
|
|
1328
1332
|
"knownLimits": [
|
|
1329
1333
|
"Pages are rendered locally by the CPU WASM engine in a module Worker; the browser never uploads the IDML package",
|
|
@@ -1652,5 +1656,4 @@ export const DEFAULT_REGISTERED_EXTENSIONS = Object.freeze(Array.from(new Set(DE
|
|
|
1652
1656
|
export const DEFAULT_STABLE_SUPPORTED_EXTENSIONS = Object.freeze(Array.from(new Set(DEFAULT_RENDERER_DEFINITIONS
|
|
1653
1657
|
.filter(definition => definition.status === 'stable')
|
|
1654
1658
|
.flatMap(definition => definition.extensions))).sort());
|
|
1655
|
-
/** @deprecated Use DEFAULT_REGISTERED_EXTENSIONS when the experimental/stable distinction matters. */
|
|
1656
1659
|
export const DEFAULT_SUPPORTED_EXTENSIONS = DEFAULT_REGISTERED_EXTENSIONS;
|
package/dist/registry/formats.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { DEFAULT_REGISTERED_EXTENSIONS, DEFAULT_RENDERER_DEFINITIONS, DEFAULT_STABLE_SUPPORTED_EXTENSIONS, DEFAULT_SUPPORTED_EXTENSIONS, } from
|
|
2
|
-
import { DEFAULT_RENDERER_DEFINITIONS } from
|
|
1
|
+
export { DEFAULT_REGISTERED_EXTENSIONS, DEFAULT_RENDERER_DEFINITIONS, DEFAULT_STABLE_SUPPORTED_EXTENSIONS, DEFAULT_SUPPORTED_EXTENSIONS, } from "./formats.generated.js";
|
|
2
|
+
import { DEFAULT_RENDERER_DEFINITIONS } from "./formats.generated.js";
|
|
3
3
|
const extensionsFor = (rendererId) => {
|
|
4
4
|
var _a, _b;
|
|
5
5
|
return Object.freeze([...((_b = (_a = DEFAULT_RENDERER_DEFINITIONS.find(definition => definition.id === rendererId)) === null || _a === void 0 ? void 0 : _a.extensions) !== null && _b !== void 0 ? _b : [])]);
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import type { FileViewerRendererHandlerRegistration, FileViewerRendererPluginInput, FileViewerRendererPlugin, FileViewerRendererPresetInput, FileViewerRendererPresetName, RendererDefinition, RendererRegistry } from
|
|
1
|
+
import type { FileViewerRendererHandlerRegistration, FileViewerRendererPluginInput, FileViewerRendererPlugin, FileViewerRendererPresetInput, FileViewerRendererPresetName, RendererDefinition, RendererRegistry } from "../contracts/types.js";
|
|
2
2
|
export interface RegisterFileViewerAutoRendererPresetOptions {
|
|
3
|
-
/**
|
|
4
|
-
* Stable key used to replace an existing auto preset registration.
|
|
5
|
-
*/
|
|
6
3
|
id?: string;
|
|
7
|
-
/**
|
|
8
|
-
* Package name is useful for diagnostics and gives generated integrations a
|
|
9
|
-
* deterministic id even when the preset input is an array.
|
|
10
|
-
*/
|
|
11
4
|
packageName?: string;
|
|
12
5
|
}
|
|
13
6
|
export interface FileViewerAutoRendererPresetEntry<Handler = unknown> {
|
|
@@ -16,6 +9,11 @@ export interface FileViewerAutoRendererPresetEntry<Handler = unknown> {
|
|
|
16
9
|
input: FileViewerRendererPluginInput<Handler>;
|
|
17
10
|
}
|
|
18
11
|
export declare const createRendererRegistry: (initialDefinitions?: readonly RendererDefinition[]) => RendererRegistry;
|
|
12
|
+
export declare const matchesFileViewerRendererFilename: (definition: Pick<RendererDefinition, "filenamePatterns">, filename: string) => boolean;
|
|
13
|
+
export declare const resolveFileViewerRendererDefinition: (registry: Pick<RendererRegistry, "getByExtension" | "list">, input: {
|
|
14
|
+
filename?: string;
|
|
15
|
+
extension?: string;
|
|
16
|
+
}) => RendererDefinition | undefined;
|
|
19
17
|
export interface InstallFileViewerRendererPluginsOptions<Handler = unknown> {
|
|
20
18
|
registry: RendererRegistry;
|
|
21
19
|
plugins: Iterable<FileViewerRendererPlugin<Handler>>;
|
|
@@ -34,12 +32,5 @@ export declare const listFileViewerAutoRendererPresetEntries: <Handler = unknown
|
|
|
34
32
|
export declare const findFileViewerAutoRendererPreset: <Handler = unknown>(id: FileViewerRendererPresetName | string) => FileViewerRendererPluginInput<Handler> | undefined;
|
|
35
33
|
export declare const getFileViewerAutoRendererPresetVersion: () => number;
|
|
36
34
|
export declare const hasFileViewerRendererPresetName: (input?: FileViewerRendererPresetInput | null) => boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Normalizes `options.preset` / `options.presets` into renderer plugin inputs.
|
|
39
|
-
*
|
|
40
|
-
* Passing a preset object is the most portable integration style because it
|
|
41
|
-
* works in any bundler. String selectors intentionally only resolve presets
|
|
42
|
-
* that are already registered by a side-effect import or by build tooling.
|
|
43
|
-
*/
|
|
44
35
|
export declare const resolveFileViewerRendererPresetInputs: <Handler = unknown>(input?: FileViewerRendererPresetInput<Handler> | null) => FileViewerRendererPluginInput<Handler>[];
|
|
45
36
|
export declare const installFileViewerRendererPlugins: <Handler = unknown>({ registry, plugins, registerHandler, }: InstallFileViewerRendererPluginsOptions<Handler>) => Promise<RendererRegistry>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DEFAULT_RENDERER_DEFINITIONS } from
|
|
2
|
-
import { normalizeFileExtension } from
|
|
1
|
+
import { DEFAULT_RENDERER_DEFINITIONS } from "./formats.js";
|
|
2
|
+
import { getExtension, normalizeFileExtension, normalizeFilename } from "../source/index.js";
|
|
3
3
|
const autoRendererBucketKey = '__flyfish_file_viewer_auto_renderer_presets__';
|
|
4
4
|
const getAutoRendererBucket = () => {
|
|
5
5
|
const host = globalThis;
|
|
@@ -76,6 +76,28 @@ export const createRendererRegistry = (initialDefinitions = DEFAULT_RENDERER_DEF
|
|
|
76
76
|
},
|
|
77
77
|
};
|
|
78
78
|
};
|
|
79
|
+
export const matchesFileViewerRendererFilename = (definition, filename) => {
|
|
80
|
+
const normalizedFilename = normalizeFilename(filename, '').toLowerCase();
|
|
81
|
+
if (!normalizedFilename)
|
|
82
|
+
return false;
|
|
83
|
+
return (definition.filenamePatterns || []).some(pattern => {
|
|
84
|
+
const normalizedPattern = pattern.trim().toLowerCase();
|
|
85
|
+
if (!normalizedPattern)
|
|
86
|
+
return false;
|
|
87
|
+
if (normalizedPattern.startsWith('*.'))
|
|
88
|
+
return normalizedFilename.endsWith(normalizedPattern.slice(1));
|
|
89
|
+
return normalizedFilename === normalizedPattern;
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
export const resolveFileViewerRendererDefinition = (registry, input) => {
|
|
93
|
+
const filenameMatch = input.filename
|
|
94
|
+
? registry.list().find(definition => matchesFileViewerRendererFilename(definition, input.filename || ''))
|
|
95
|
+
: undefined;
|
|
96
|
+
if (filenameMatch)
|
|
97
|
+
return filenameMatch;
|
|
98
|
+
const extension = normalizeFileExtension(input.extension || getExtension(input.filename || ''));
|
|
99
|
+
return extension ? registry.getByExtension(extension) : undefined;
|
|
100
|
+
};
|
|
79
101
|
const collectRendererEnhancementClaims = (registry, definitions) => {
|
|
80
102
|
var _a, _b;
|
|
81
103
|
const normalizedDefinitions = definitions.map(normalizeDefinition);
|
|
@@ -195,7 +217,6 @@ const createRendererDefinitionInstallPlan = (registry, definitions) => {
|
|
|
195
217
|
...regularDefinitions,
|
|
196
218
|
...enhancerDefinitions,
|
|
197
219
|
];
|
|
198
|
-
// Validate the complete ownership transition before mutating the caller's registry.
|
|
199
220
|
const validationRegistry = createRendererRegistry(registry.list());
|
|
200
221
|
plannedDefinitions.forEach(definition => validationRegistry.register(definition));
|
|
201
222
|
return { definitions: plannedDefinitions };
|
|
@@ -306,13 +327,6 @@ export const hasFileViewerRendererPresetName = (input) => {
|
|
|
306
327
|
}
|
|
307
328
|
return false;
|
|
308
329
|
};
|
|
309
|
-
/**
|
|
310
|
-
* Normalizes `options.preset` / `options.presets` into renderer plugin inputs.
|
|
311
|
-
*
|
|
312
|
-
* Passing a preset object is the most portable integration style because it
|
|
313
|
-
* works in any bundler. String selectors intentionally only resolve presets
|
|
314
|
-
* that are already registered by a side-effect import or by build tooling.
|
|
315
|
-
*/
|
|
316
330
|
export const resolveFileViewerRendererPresetInputs = (input) => {
|
|
317
331
|
if (!input) {
|
|
318
332
|
return [];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from "../contracts/types.js";
|
|
2
2
|
export default function renderImage(buffer: ArrayBuffer, target: HTMLDivElement, type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/image.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from
|
|
2
|
-
import { resolveFileViewerFitScale, } from
|
|
3
|
-
import { createFileViewerTranslator } from
|
|
4
|
-
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from
|
|
1
|
+
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from "../features/document/dom/index.js";
|
|
2
|
+
import { resolveFileViewerFitScale, } from "../features/document/fit.js";
|
|
3
|
+
import { createFileViewerTranslator } from "../i18n/messages.js";
|
|
4
|
+
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from "../features/document/zoom.js";
|
|
5
5
|
const imageMimeMap = {
|
|
6
6
|
avif: 'image/avif',
|
|
7
7
|
bmp: 'image/bmp',
|
|
@@ -130,6 +130,7 @@ export default async function renderImage(buffer, target, type, context) {
|
|
|
130
130
|
var _a, _b;
|
|
131
131
|
const t = createFileViewerTranslator(context === null || context === void 0 ? void 0 : context.options);
|
|
132
132
|
const documentRef = target.ownerDocument || document;
|
|
133
|
+
const targetWindow = documentRef.defaultView;
|
|
133
134
|
const src = await resolveImageUrl(buffer, type);
|
|
134
135
|
(_a = context === null || context === void 0 ? void 0 : context.registerThumbnailAdapter) === null || _a === void 0 ? void 0 : _a.call(context, {
|
|
135
136
|
capture: () => new Blob([buffer], { type: getImageBlobType(type) }),
|
|
@@ -138,6 +139,8 @@ export default async function renderImage(buffer, target, type, context) {
|
|
|
138
139
|
let fitScale = 1;
|
|
139
140
|
let currentScale = 1;
|
|
140
141
|
let viewportHeight = 0;
|
|
142
|
+
let viewportResizeFrame = null;
|
|
143
|
+
let destroyed = false;
|
|
141
144
|
const zoomEmitter = createZoomChangeEmitter();
|
|
142
145
|
const root = documentRef.createElement('div');
|
|
143
146
|
root.className = 'image-viewer';
|
|
@@ -195,7 +198,20 @@ export default async function renderImage(buffer, target, type, context) {
|
|
|
195
198
|
applyImageZoom();
|
|
196
199
|
zoomEmitter.emit();
|
|
197
200
|
};
|
|
198
|
-
const
|
|
201
|
+
const scheduleViewportUpdate = () => {
|
|
202
|
+
if (destroyed || viewportResizeFrame !== null)
|
|
203
|
+
return;
|
|
204
|
+
if (!(targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.requestAnimationFrame)) {
|
|
205
|
+
updateViewportSize();
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
viewportResizeFrame = targetWindow.requestAnimationFrame(() => {
|
|
209
|
+
viewportResizeFrame = null;
|
|
210
|
+
if (!destroyed)
|
|
211
|
+
updateViewportSize();
|
|
212
|
+
});
|
|
213
|
+
};
|
|
214
|
+
const resizeObserver = new ResizeObserver(scheduleViewportUpdate);
|
|
199
215
|
resizeObserver.observe(root);
|
|
200
216
|
image.addEventListener('load', updateViewportSize);
|
|
201
217
|
const getZoomState = () => ({
|
|
@@ -280,6 +296,11 @@ export default async function renderImage(buffer, target, type, context) {
|
|
|
280
296
|
$el: target,
|
|
281
297
|
unmount() {
|
|
282
298
|
var _a;
|
|
299
|
+
destroyed = true;
|
|
300
|
+
if (viewportResizeFrame !== null) {
|
|
301
|
+
targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.cancelAnimationFrame(viewportResizeFrame);
|
|
302
|
+
viewportResizeFrame = null;
|
|
303
|
+
}
|
|
283
304
|
(_a = context === null || context === void 0 ? void 0 : context.registerThumbnailAdapter) === null || _a === void 0 ? void 0 : _a.call(context, null);
|
|
284
305
|
unregisterFileViewerZoomProvider(root);
|
|
285
306
|
resizeObserver.disconnect();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileViewerBuiltinRendererPreset, FileRenderHandler, FileViewerRenderedInstance } from
|
|
1
|
+
import type { FileViewerBuiltinRendererPreset, FileRenderHandler, FileViewerRenderedInstance } from "../contracts/types.js";
|
|
2
2
|
type CoreBrowserRendererHandler = FileRenderHandler<FileViewerRenderedInstance, HTMLDivElement>;
|
|
3
3
|
interface CoreBrowserRendererHandlerEntry {
|
|
4
4
|
rendererId: string;
|
|
@@ -619,14 +619,14 @@ export declare const coreLiteRendererDefinitions: ({
|
|
|
619
619
|
readonly id: "code";
|
|
620
620
|
readonly label: "Code and Text";
|
|
621
621
|
readonly category: "code";
|
|
622
|
-
readonly extensions: readonly ["txt", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "patch", "bundle", "bdl", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt"];
|
|
622
|
+
readonly extensions: readonly ["txt", "lrc", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "patch", "bundle", "bdl", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt"];
|
|
623
623
|
readonly async: true;
|
|
624
624
|
readonly supportLevel: "structured";
|
|
625
625
|
readonly status: "stable";
|
|
626
626
|
readonly packageName: "@file-viewer/renderer-text";
|
|
627
627
|
readonly presets: readonly ["lite", "standard", "all"];
|
|
628
|
-
readonly containerVersions: readonly ["Plain text", "source code", "Git bundle"];
|
|
629
|
-
readonly knownLimits: readonly [];
|
|
628
|
+
readonly containerVersions: readonly ["Plain text", "source code", "Git bundle", "LRC lyrics"];
|
|
629
|
+
readonly knownLimits: readonly ["LRC is a static annotated/lyrics/source preview, not synchronized audio playback"];
|
|
630
630
|
readonly capabilities: {
|
|
631
631
|
readonly download: true;
|
|
632
632
|
readonly print: true;
|
|
@@ -724,7 +724,7 @@ export declare const coreLiteRendererDefinitions: ({
|
|
|
724
724
|
readonly status: "experimental";
|
|
725
725
|
readonly packageName: "@file-viewer/renderer-design";
|
|
726
726
|
readonly presets: readonly [];
|
|
727
|
-
readonly containerVersions: readonly ["IDML package", "@paged-media/introspect-wasm 0.
|
|
727
|
+
readonly containerVersions: readonly ["IDML package", "@paged-media/introspect-wasm 0.70.2"];
|
|
728
728
|
readonly knownLimits: readonly ["Pages are rendered locally by the CPU WASM engine in a module Worker; the browser never uploads the IDML package", "ZIP64, encrypted, multi-disk, overlapping, unsafe-path, unsupported-compression, and configured expansion-limit packages are rejected before the WASM engine opens them", "The current engine page tree lists TextFrame and Rectangle objects only even though other supported objects may still appear in rendered page pixels", "Each page render rebuilds the upstream document internally; interactive requests are latest-wins, preview is lazy, and print-all is bounded by the configured total RGBA working-set limit"];
|
|
729
729
|
readonly capabilities: {
|
|
730
730
|
readonly download: true;
|
|
@@ -911,16 +911,16 @@ export interface CreateFileViewerCoreRendererRegistryOptions {
|
|
|
911
911
|
builtinRenderers?: FileViewerBuiltinRendererPreset;
|
|
912
912
|
}
|
|
913
913
|
export declare const createFileViewerCoreRendererRegistry: (options?: CreateFileViewerCoreRendererRegistryOptions) => {
|
|
914
|
-
dispatcher: import("
|
|
915
|
-
registry: import("
|
|
914
|
+
dispatcher: import("../index.js").FileViewerRendererDispatcher<CoreBrowserRendererHandler>;
|
|
915
|
+
registry: import("../index.js").RendererRegistry;
|
|
916
916
|
missingRendererIds: string[];
|
|
917
917
|
};
|
|
918
918
|
export declare const fileViewerCoreRendererRegistryBridge: {
|
|
919
|
-
dispatcher: import("
|
|
920
|
-
registry: import("
|
|
919
|
+
dispatcher: import("../index.js").FileViewerRendererDispatcher<CoreBrowserRendererHandler>;
|
|
920
|
+
registry: import("../index.js").RendererRegistry;
|
|
921
921
|
missingRendererIds: string[];
|
|
922
922
|
};
|
|
923
|
-
export declare const fileViewerCoreRendererRegistry: import("
|
|
924
|
-
export declare const fileViewerCoreRendererDispatcher: import("
|
|
923
|
+
export declare const fileViewerCoreRendererRegistry: import("../index.js").RendererRegistry;
|
|
924
|
+
export declare const fileViewerCoreRendererDispatcher: import("../index.js").FileViewerRendererDispatcher<CoreBrowserRendererHandler>;
|
|
925
925
|
export declare const missingFileViewerCoreRendererHandlers: string[];
|
|
926
926
|
export {};
|
package/dist/renderers/index.js
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// core shell and framework wrappers stay fast on first load.
|
|
6
|
-
import { DEFAULT_RENDERER_DEFINITIONS } from '../registry/formats.js';
|
|
7
|
-
import { createFileRenderHandlerRegistry } from '../rendering/handler.js';
|
|
8
|
-
import { createFileViewerRendererDispatcher } from '../rendering/dispatcher.js';
|
|
9
|
-
import { createFileViewerUnsupportedState } from '../viewer/state.js';
|
|
1
|
+
import { DEFAULT_RENDERER_DEFINITIONS } from "../registry/formats.js";
|
|
2
|
+
import { createFileRenderHandlerRegistry } from "../rendering/handler.js";
|
|
3
|
+
import { createFileViewerRendererDispatcher } from "../rendering/dispatcher.js";
|
|
4
|
+
import { createFileViewerUnsupportedState } from "../viewer/state.js";
|
|
10
5
|
const createWrapper = (el) => ({
|
|
11
6
|
$el: el,
|
|
12
7
|
unmount() {
|
|
13
|
-
// DOM renderers clean themselves up through their own returned instance.
|
|
14
8
|
},
|
|
15
9
|
});
|
|
16
10
|
export const coreBrowserRendererHandlers = [
|
|
17
11
|
{
|
|
18
12
|
rendererId: 'image',
|
|
19
13
|
handler: async (buffer, target, type, context) => {
|
|
20
|
-
const { default: renderImage } = await import(
|
|
14
|
+
const { default: renderImage } = await import("./image.js");
|
|
21
15
|
return renderImage(buffer, target, type, context);
|
|
22
16
|
},
|
|
23
17
|
},
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import type { RendererRegistry } from
|
|
1
|
+
import type { RendererRegistry } from "../contracts/types.js";
|
|
2
2
|
export interface FileViewerRendererHandlerEntry<Handler> {
|
|
3
3
|
rendererId: string;
|
|
4
4
|
handler: Handler;
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
* Content-signature aware renderers can throw this shape when the filename
|
|
8
|
-
* extension points at the wrong container. The orchestration layer follows the
|
|
9
|
-
* redirect once, using the handler registered for the detected renderer id.
|
|
10
|
-
*/
|
|
11
6
|
export interface FileViewerRendererRedirectError extends Error {
|
|
12
7
|
actualRendererId: string;
|
|
13
8
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DEFAULT_RENDERER_DEFINITIONS } from
|
|
2
|
-
import { createRendererRegistry } from
|
|
3
|
-
import { normalizeFileExtension } from
|
|
1
|
+
import { DEFAULT_RENDERER_DEFINITIONS } from "../registry/formats.js";
|
|
2
|
+
import { createRendererRegistry } from "../registry/registry.js";
|
|
3
|
+
import { normalizeFileExtension } from "../source/index.js";
|
|
4
4
|
export const resolveFileViewerRendererRedirectId = (error) => {
|
|
5
5
|
if (!error || typeof error !== 'object' || !('actualRendererId' in error)) {
|
|
6
6
|
return undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { FileViewerRendererDispatcher } from
|
|
2
|
-
import { type FileViewerMutableAccessor, type MutableFileViewerRenderReadinessState } from
|
|
3
|
-
import type { FileRenderExportAdapter, FileRenderThumbnailAdapter, FileRenderContext, FileRenderHandler, FileViewerLifecycleContext, FileViewerOptions, FileViewerStyleIsolation, RenderSurface, RendererDefinition, RendererLoadContext, RendererLoader, RendererRegistry, RendererSession } from
|
|
1
|
+
import type { FileViewerRendererDispatcher } from "./dispatcher.js";
|
|
2
|
+
import { type FileViewerMutableAccessor, type MutableFileViewerRenderReadinessState } from "../source/loading.js";
|
|
3
|
+
import type { FileRenderExportAdapter, FileRenderThumbnailAdapter, FileRenderContext, FileRenderHandler, FileViewerLifecycleContext, FileViewerOptions, FileViewerStyleIsolation, RenderSurface, RendererDefinition, RendererLoadContext, RendererLoader, RendererRegistry, RendererSession } from "../contracts/types.js";
|
|
4
4
|
export declare const FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE = "\u9884\u89C8\u5185\u5BB9\u5378\u8F7D\u5931\u8D25";
|
|
5
5
|
export interface ResolveFileViewerRenderSessionDisposeErrorMessageInput {
|
|
6
6
|
message?: string;
|
|
@@ -21,6 +21,7 @@ export interface RenderFileViewerHandlerInput<Rendered = unknown, Target extends
|
|
|
21
21
|
export interface CreateFileRenderHandlerLoaderOptions<Rendered = unknown, Target extends HTMLElement = HTMLElement> {
|
|
22
22
|
handler: FileRenderHandler<Rendered, Target>;
|
|
23
23
|
rendererId?: string;
|
|
24
|
+
allowUrlSource?: boolean;
|
|
24
25
|
getTarget?: (context: RendererLoadContext) => Target;
|
|
25
26
|
createContext?: (context: RendererLoadContext) => FileRenderContext;
|
|
26
27
|
destroy?: (rendered: Rendered, context: RendererLoadContext) => void | Promise<void>;
|
|
@@ -59,10 +60,6 @@ export interface FileViewerStyleHandle {
|
|
|
59
60
|
remove(): void;
|
|
60
61
|
}
|
|
61
62
|
export interface AppendFileViewerStyleOptions {
|
|
62
|
-
/**
|
|
63
|
-
* Constructable stylesheets are useful for long-lived ShadowRoots. Keep this
|
|
64
|
-
* opt-in so renderer styles still clean up naturally with their target node.
|
|
65
|
-
*/
|
|
66
63
|
adoptedStyleSheet?: boolean;
|
|
67
64
|
}
|
|
68
65
|
export interface ResetFileViewerRenderSurfaceInput<Session extends RendererSession = RendererSession> {
|
|
@@ -80,6 +77,7 @@ export interface FileViewerRenderSurfaceMountContext<Session extends RendererSes
|
|
|
80
77
|
filename: string;
|
|
81
78
|
sourceUrl?: string;
|
|
82
79
|
streamUrl?: string;
|
|
80
|
+
signal?: AbortSignal;
|
|
83
81
|
onProgressiveRender: () => void;
|
|
84
82
|
registerExportAdapter: (adapter: FileRenderExportAdapter | null) => void;
|
|
85
83
|
surfaceState: MutableFileViewerRenderSurfaceState<Session>;
|
|
@@ -91,6 +89,8 @@ export interface RunFileViewerRenderSurfaceMountInput<Session extends RendererSe
|
|
|
91
89
|
version: number;
|
|
92
90
|
sourceUrl?: string;
|
|
93
91
|
streamUrl?: string;
|
|
92
|
+
signal?: AbortSignal;
|
|
93
|
+
typeOverride?: string;
|
|
94
94
|
getContainer: () => HTMLElement | null | undefined;
|
|
95
95
|
surfaceState: MutableFileViewerRenderSurfaceState<Session>;
|
|
96
96
|
readinessState: MutableFileViewerRenderReadinessState;
|
|
@@ -133,7 +133,7 @@ export interface FileViewerRenderSurfaceActionHandlers<Session extends RendererS
|
|
|
133
133
|
destroyRenderSession: (session?: Session | null) => void;
|
|
134
134
|
setActiveRenderSession: (session: Session | null) => MutableFileViewerRenderSurfaceState<Session>;
|
|
135
135
|
clearRenderedContent: (reason?: FileViewerLifecycleContext['reason']) => FileViewerRenderSurfaceClearState<Session, UnloadContext>;
|
|
136
|
-
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string) => Promise<Session | undefined>;
|
|
136
|
+
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string, signal?: AbortSignal, typeOverride?: string) => Promise<Session | undefined>;
|
|
137
137
|
}
|
|
138
138
|
export interface CreateFileViewerRenderSurfaceActionHandlersInput<Session extends RendererSession = RendererSession, UnloadContext = FileViewerLifecycleContext | null> {
|
|
139
139
|
getContainer: () => HTMLElement | null | undefined;
|
|
@@ -164,11 +164,6 @@ export interface CreateFileViewerRenderSurfaceActionHandlersInput<Session extend
|
|
|
164
164
|
export declare const DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS = "file-render";
|
|
165
165
|
export declare const FILE_VIEWER_RENDER_SURFACE_BACKGROUND_PROPERTY = "--file-viewer-render-surface-background";
|
|
166
166
|
export declare const normalizeFileViewerRenderSurfaceBackground: (value: unknown) => string | null;
|
|
167
|
-
/**
|
|
168
|
-
* Keeps the public UI option and the renderer-facing CSS custom property in
|
|
169
|
-
* sync. Custom properties inherit through Shadow DOM, so setting this on the
|
|
170
|
-
* render host covers both scoped and shadow-isolated renderer targets.
|
|
171
|
-
*/
|
|
172
167
|
export declare const syncFileViewerRenderSurfaceBackground: (target: HTMLElement | null | undefined, options?: Pick<FileViewerOptions, "ui"> | null) => string | null;
|
|
173
168
|
export declare const isFileViewerShadowRoot: (value: unknown) => value is ShadowRoot;
|
|
174
169
|
export declare const getFileViewerShadowRootForNode: (node: Node | null | undefined) => ShadowRoot | null;
|
|
@@ -204,9 +199,9 @@ export declare const disposeFileViewerRendererSession: (session?: RendererSessio
|
|
|
204
199
|
export declare const disposeActiveFileViewerRendererSession: <Session extends RendererSession, Target extends MutableFileViewerRenderSurfaceState<Session>>(target: Target, options?: DisposeFileViewerRendererSessionOptions) => Session | null;
|
|
205
200
|
export declare const resetFileViewerRenderSurface: <Session extends RendererSession>({ surfaceState, readinessState, container, disposeOptions, }: ResetFileViewerRenderSurfaceInput<Session>) => Session | null;
|
|
206
201
|
export declare const runFileViewerRenderSurfaceClear: <Session extends RendererSession, UnloadContext = FileViewerLifecycleContext | null>({ reason, surfaceState, readinessState, container, disposeOptions, onUnloadStart, onUnloadComplete, onClearActiveDocumentContext, onClearDocumentState, onStopZoomObserver, onClearZoomProvider, onStopFitObserver, onStopViewStateObserver, onClearViewStateProvider, }: RunFileViewerRenderSurfaceClearInput<Session, UnloadContext>) => FileViewerRenderSurfaceClearState<Session, UnloadContext>;
|
|
207
|
-
export declare const runFileViewerRenderSurfaceMount: <Session extends RendererSession>({ buffer, file, version, sourceUrl, streamUrl, getContainer, surfaceState, readinessState, isCurrent, clearRenderedContent, render, waitForContainer, waitForPaint, disposeSession, onStartZoomObserver, onStartFitObserver, onStartViewStateObserver, onApplyInitialFit, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }: RunFileViewerRenderSurfaceMountInput<Session>) => Promise<Session | undefined>;
|
|
202
|
+
export declare const runFileViewerRenderSurfaceMount: <Session extends RendererSession>({ buffer, file, version, sourceUrl, streamUrl, signal, typeOverride, getContainer, surfaceState, readinessState, isCurrent, clearRenderedContent, render, waitForContainer, waitForPaint, disposeSession, onStartZoomObserver, onStartFitObserver, onStartViewStateObserver, onApplyInitialFit, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }: RunFileViewerRenderSurfaceMountInput<Session>) => Promise<Session | undefined>;
|
|
208
203
|
export declare const createFileViewerRenderSurfaceActionHandlers: <Session extends RendererSession, UnloadContext = FileViewerLifecycleContext | null>({ getContainer, surfaceState, readinessState, isCurrent, render, waitForContainer, waitForPaint, disposeOptions, onUnloadStart, onUnloadComplete, onClearActiveDocumentContext, onClearDocumentState, onStartZoomObserver, onStopZoomObserver, onClearZoomProvider, onStartFitObserver, onStopFitObserver, onStartViewStateObserver, onStopViewStateObserver, onClearViewStateProvider, onApplyInitialFit, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }: CreateFileViewerRenderSurfaceActionHandlersInput<Session, UnloadContext>) => FileViewerRenderSurfaceActionHandlers<Session, UnloadContext>;
|
|
209
204
|
export declare const buildFileRenderContextFromLoadContext: ({ source, surface, options, signal, registerExportAdapter, registerThumbnailAdapter, renderContext, }: RendererLoadContext) => FileRenderContext;
|
|
210
205
|
export declare const renderFileViewerHandler: <Rendered = unknown, Target extends HTMLElement = HTMLElement>({ dispatcher, buffer, target, type, context, throwOnMissingHandler, }: RenderFileViewerHandlerInput<Rendered, Target>) => Promise<Rendered | undefined>;
|
|
211
|
-
export declare const createFileRenderHandlerLoader: <Rendered = unknown, Target extends HTMLElement = HTMLElement>({ handler, rendererId, getTarget, createContext, destroy, }: CreateFileRenderHandlerLoaderOptions<Rendered, Target>) => RendererLoader;
|
|
206
|
+
export declare const createFileRenderHandlerLoader: <Rendered = unknown, Target extends HTMLElement = HTMLElement>({ handler, rendererId, allowUrlSource, getTarget, createContext, destroy, }: CreateFileRenderHandlerLoaderOptions<Rendered, Target>) => RendererLoader;
|
|
212
207
|
export declare const createFileRenderHandlerRegistry: <Rendered = unknown, Target extends HTMLElement = HTMLElement>({ definitions, handlers, getTarget, createContext, destroy, }: CreateFileRenderHandlerRegistryOptions<Rendered, Target>) => FileRenderHandlerRegistryResult<Rendered, Target>;
|