@file-viewer/vue3 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +160 -0
- package/README.en.md +160 -0
- package/README.md +162 -0
- package/dist/file-viewer3.css +7 -0
- package/dist/index.mjs +1 -0
- package/dist/src/package/browser/assets.d.ts +5 -0
- package/dist/src/package/browser/documentProviders.d.ts +13 -0
- package/dist/src/package/browser/printLayout.d.ts +19 -0
- package/dist/src/package/common/type.d.ts +207 -0
- package/dist/src/package/components/FileViewer/FileViewer.vue.d.ts +26 -0
- package/dist/src/package/components/FileViewer/exportDocumentTemplate.d.ts +2 -0
- package/dist/src/package/components/FileViewer/hooks/useLoading.d.ts +33 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerDocumentFeatures.d.ts +29 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerExport.d.ts +17 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerLifecycle.d.ts +25 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerPresentation.d.ts +28 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerPreviewLifecycle.d.ts +17 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerPublicApi.d.ts +13 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerRenderSurface.d.ts +33 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerSourceLoading.d.ts +57 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerToolbar.d.ts +33 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerWatermark.d.ts +6 -0
- package/dist/src/package/components/FileViewer/hooks/useViewerZoom.d.ts +34 -0
- package/dist/src/package/components/FileViewer/index.d.ts +2 -0
- package/dist/src/package/components/FileViewer/rendererBridge.d.ts +9 -0
- package/dist/src/package/controller.d.ts +121 -0
- package/dist/src/package/index.d.ts +30 -0
- package/dist/src/package/native.d.ts +18 -0
- package/dist/src/package/vendors/nestedRender.d.ts +8 -0
- package/dist/src/package/vendors/renders.d.ts +8 -0
- package/dist/style.css +1 -0
- package/dist/vue3.css +2 -0
- package/dist/wasm/cad/dwfv-render.wasm +0 -0
- package/dist/wasm/cad/dwg-worker.js +24 -0
- package/dist/wasm/cad/libredwg-web.js +15 -0
- package/dist/wasm/cad/libredwg-web.wasm +0 -0
- package/package.json +74 -0
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var cu=a1;(function(b3,b4){var cs=a1,b5=b3();while(!![]){try{var b6=-parseInt(cs(0xcb))/0x1*(-parseInt(cs(0xe6))/0x2)+-parseInt(cs(0xc9))/0x3*(-parseInt(cs(0xd0))/0x4)+parseInt(cs(0xda))/0x5*(parseInt(cs(0xc8))/0x6)+parseInt(cs(0xf7))/0x7*(-parseInt(cs(0xce))/0x8)+-parseInt(cs(0xf3))/0x9*(-parseInt(cs(0xfb))/0xa)+-parseInt(cs(0xd2))/0xb+-parseInt(cs(0xf0))/0xc;if(b6===b4)break;else b5['push'](b5['shift']());}catch(b7){b5['push'](b5['shift']());}}}(a0,0x9655c));import{computed as a2,createCommentVNode as a3,createElementBlock as a4,createElementVNode as a5,createVNode as a6,defineComponent as a7,h as a8,inject as a9,nextTick as aa,normalizeClass as ab,normalizeStyle as ac,onBeforeUnmount as ad,openBlock as af,reactive as ag,ref as ah,shallowRef as ai,toDisplayString as aj,toValue as ak,unref as al,watch as am}from'vue';import{DEFAULT_FILE_VIEWER_SOURCE_FILENAME as an,DEFAULT_RENDERER_DEFINITIONS as ao,coreBrowserRendererHandlers as ap,createEmptyFileViewerSearchState as aq,createFileRenderHandlerRegistry as ar,createFileRenderHandlerRendererSession as as,createFileViewerDocumentFeatureControllerActionHandlers as au,createFileViewerErrorState as av,createFileViewerLifecycleFacade as aw,createFileViewerLoadingController as ax,createFileViewerLoadingControllerActionHandlers as ay,createFileViewerPreviewStateTarget as az,createFileViewerPublicApi as aA,createFileViewerPublicOperationActionHandlers as aB,createFileViewerRenderReadinessTarget as aC,createFileViewerRenderSurfaceActionHandlers as aD,createFileViewerRenderSurfaceStateTarget as aE,createFileViewerRendererDispatcher as aF,createFileViewerRequestScope as aG,createFileViewerSourceLoadingActionHandlers as aH,createFileViewerToolbarControllerActionHandlers as aI,createFileViewerUnsupportedState as aJ,createFileViewerZoomController as aK,createFileViewerZoomControllerActionHandlers as aL,createFileViewerZoomState as aM,createViewer as aN,fileViewerCoreRendererDispatcher as aO,formatFileViewerErrorMessage as aP,getExtension as aQ,normalizeFilename as aR,normalizeSource as aS,readFileViewerBuffer as aT,renderFileViewerHandler as aU,reportFileViewerLifecycleHookError as aV,reportFileViewerOperationError as aW,resolveFileViewerPresentationState as aX,resolveFileViewerSourceFilename as aY,resolveFileViewerWatermarkPresentationState as aZ,runFileViewerPreviewComponentUnmount as b0,runFileViewerPreviewSourceChange as b1,wrapFileViewerFileRef as b2}from'@file-viewer/core';var N=''+'data:text/css;base64,LmZpbGUtdmlld2VyW2RhdGEtdi1lMDc0OGQ2OF17LS1saWdodG5pbmdjc3MtbGlnaHQ6aW5pdGlhbDstLWxpZ2h0bmluZ2Nzcy1kYXJrOiA7Y29sb3Itc2NoZW1lOmxpZ2h0O2JhY2tncm91bmQ6I2ZmZjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPWRhcmtdW2RhdGEtdi1lMDc0OGQ2OF17LS1saWdodG5pbmdjc3MtbGlnaHQ6IDstLWxpZ2h0bmluZ2Nzcy1kYXJrOmluaXRpYWw7Y29sb3Itc2NoZW1lOmRhcms7YmFja2dyb3VuZDojMGYxNzFkfS52aWV3ZXItc3RhZ2VbZGF0YS12LWUwNzQ4ZDY4XXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxO21pbi1oZWlnaHQ6MDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS52aWV3ZXItYWN0aW9uc1tkYXRhLXYtZTA3NDhkNjhde2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOTIpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjAsMzUsNTMsLjA2KTtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttaW4taGVpZ2h0OjQ1cHg7cGFkZGluZzo2cHggMTBweDtkaXNwbGF5OmlubGluZS1mbGV4fS52aWV3ZXItYWN0aW9ucy0tZmxvYXRpbmdbZGF0YS12LWUwNzQ4ZDY4XXt6LWluZGV4OjMwO3JpZ2h0OmNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQsMHB4KSk7Ym90dG9tOmNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLDBweCkpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45NCk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIwLDM1LDUzLC4xKTtib3JkZXItcmFkaXVzOjk5OXB4O21pbi1oZWlnaHQ6NDJweDtwYWRkaW5nOjZweDtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2hhZG93OjAgMThweCA0NHB4IHJnYmEoMTUsMjMsNDIsLjE2KX0udmlld2VyLWFjdGlvbnMtZ3JvdXBbZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOnJnYmEoMjAsMzUsNTMsLjAzNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIwLDM1LDUzLC4wOCk7Ym9yZGVyLXJhZGl1czo5OTlweDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtwYWRkaW5nOjJweDtkaXNwbGF5OmlubGluZS1mbGV4fS52aWV3ZXItYWN0aW9ucyBidXR0b25bZGF0YS12LWUwNzQ4ZDY4XXtjb2xvcjojNDA1NDZhO21pbi13aWR0aDo0MnB4O2hlaWdodDozMHB4O2ZvbnQ6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjAgMTBweDtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo4MDB9LnZpZXdlci1hY3Rpb25zIC52aWV3ZXItaWNvbi1idXR0b25bZGF0YS12LWUwNzQ4ZDY4XXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDozMHB4O21pbi13aWR0aDozMHB4O3BhZGRpbmc6MDtkaXNwbGF5OmlubGluZS1mbGV4fS52aWV3ZXItYWN0aW9ucyAudmlld2VyLXpvb20tbWV0ZXJbZGF0YS12LWUwNzQ4ZDY4XXtjb2xvcjojMjM0NjVlO21pbi13aWR0aDo0OHB4O3BhZGRpbmc6MCA4cHh9LnZpZXdlci1hY3Rpb25zLS1mbG9hdGluZyBidXR0b25bZGF0YS12LWUwNzQ4ZDY4XXtib3JkZXItcmFkaXVzOjk5OXB4O21pbi13aWR0aDo0OHB4O2hlaWdodDozMnB4fS52aWV3ZXItYWN0aW9ucy0tZmxvYXRpbmcgLnZpZXdlci1pY29uLWJ1dHRvbltkYXRhLXYtZTA3NDhkNjhde3dpZHRoOjMycHg7bWluLXdpZHRoOjMycHh9LnZpZXdlci1hY3Rpb25zLS1mbG9hdGluZyAudmlld2VyLXpvb20tbWV0ZXJbZGF0YS12LWUwNzQ4ZDY4XXttaW4td2lkdGg6NTRweH0udmlld2VyLWFjdGlvbnMgYnV0dG9uW2RhdGEtdi1lMDc0OGQ2OF06aG92ZXI6bm90KDpkaXNhYmxlZCl7Y29sb3I6IzE2Nzc0YztiYWNrZ3JvdW5kOnJnYmEoMzMsMTYzLDEwMiwuMSl9LnZpZXdlci1hY3Rpb25zIGJ1dHRvbltkYXRhLXYtZTA3NDhkNjhdOmRpc2FibGVke2NvbG9yOiNhYWI1YzA7Y3Vyc29yOm5vdC1hbGxvd2VkfS52aWV3ZXItY29udGVudC1zaGVsbFtkYXRhLXYtZTA3NDhkNjhde2ZsZXg6MTttaW4taGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5jb250ZW50W2RhdGEtdi1lMDc0OGQ2OF17YmFja2dyb3VuZDojZjJmMmYyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpibG9jaztvdmVyZmxvdzphdXRvfS5jb250ZW50LmhpZGRlbltkYXRhLXYtZTA3NDhkNjhde3Zpc2liaWxpdHk6aGlkZGVufS5mbHlmaXNoLXNlYXJjaC1tYXRjaHtjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6cmdiYSgyNTUsMjE0LDEwMiwuNzIpO2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmc6MCAycHg7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgxODUsMTI4LDAsLjE0KX0uZmx5ZmlzaC1zZWFyY2gtbWF0Y2gtLWFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoNDcsMTkxLDEyMiwuODIpO2JveC1zaGFkb3c6MCAwIDAgMnB4IHJnYmEoMzAsMTMyLDgzLC4yNCl9LnZpZXdlci13YXRlcm1hcmtbZGF0YS12LWUwNzQ4ZDY4XXt6LWluZGV4OjIwO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowfS5zdGF0ZS1wYW5lbFtkYXRhLXYtZTA3NDhkNjhde3otaW5kZXg6NDA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwuOTIpLHJnYmEoMjQ2LDI0OCwyNDksLjk4KSk7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoyNHB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0ubG9hZGluZy1jYXJkW2RhdGEtdi1lMDc0OGQ2OF0sLmVycm9yLWNhcmRbZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkyKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTksMzYsNTUsLjA2KTtib3JkZXItcmFkaXVzOjI0cHg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxOHB4O3dpZHRoOm1pbigxMDAlLDQ2MHB4KTtwYWRkaW5nOjIycHg7ZGlzcGxheTpmbGV4O2JveC1zaGFkb3c6MCAxOHB4IDQycHggcmdiYSgxNSwzMSw0NywuMTIpfS5sb2FkaW5nLWljb25bZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXZpZXdlci1hY2NlbnQpIDAlLCB2YXIoLS12aWV3ZXItYWNjZW50KSAxMDAlKTtjb2xvcjojZmZmO2xldHRlci1zcGFjaW5nOi4wNGVtO2JvcmRlci1yYWRpdXM6MjBweDtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi13aWR0aDo3MHB4O2hlaWdodDo3MHB4O3BhZGRpbmc6MCAxMnB4O2ZvbnQtc2l6ZToyMnB4O2ZvbnQtd2VpZ2h0OjgwMDtkaXNwbGF5OmlubGluZS1mbGV4O2JveC1zaGFkb3c6MCAxNHB4IDMwcHggcmdiYSgxNywyOCw0MCwuMTQpfS5sb2FkaW5nLWNvcHlbZGF0YS12LWUwNzQ4ZDY4XXtmbGV4OjE7bWluLXdpZHRoOjB9LmxvYWRpbmcta2lja2VyW2RhdGEtdi1lMDc0OGQ2OF17Y29sb3I6dmFyKC0tdmlld2VyLWFjY2VudCk7bGV0dGVyLXNwYWNpbmc6LjA4ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtkaXNwbGF5OmJsb2NrfS5sb2FkaW5nLWNvcHkgc3Ryb25nW2RhdGEtdi1lMDc0OGQ2OF0sLmVycm9yLWNhcmQgc3Ryb25nW2RhdGEtdi1lMDc0OGQ2OF17Y29sb3I6IzE2MjgzYjttYXJnaW4tdG9wOjRweDtmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDoxLjI7ZGlzcGxheTpibG9ja30ubG9hZGluZy1jb3B5IHBbZGF0YS12LWUwNzQ4ZDY4XSwuZXJyb3ItY2FyZCBwW2RhdGEtdi1lMDc0OGQ2OF17Y29sb3I6IzZhN2Q5MDttYXJnaW46OHB4IDAgMDtsaW5lLWhlaWdodDoxLjZ9LmxvYWRpbmctcmluZ1tkYXRhLXYtZTA3NDhkNjhde2JvcmRlcjozcHggc29saWQgdmFyKC0tdmlld2VyLXNvZnQpO2JvcmRlci10b3AtY29sb3I6dmFyKC0tdmlld2VyLWFjY2VudCk7Ym9yZGVyLXJhZGl1czo5OTlweDtmbGV4LXNocmluazowO3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7YW5pbWF0aW9uOi45cyBsaW5lYXIgaW5maW5pdGUgdmlld2VyLXNwaW4tZTA3NDhkNjh9LmVycm9yLWNhcmRbZGF0YS12LWUwNzQ4ZDY4XXt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrfS5lcnJvci1jYXJkIHN0cm9uZ1tkYXRhLXYtZTA3NDhkNjhde2NvbG9yOiNiNDIzMTh9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPWRhcmtdIC52aWV3ZXItYWN0aW9ucy0tZmxvYXRpbmdbZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOnJnYmEoMTQsMjIsMjgsLjk0KTtib3JkZXItY29sb3I6cmdiYSgxNjcsMTg1LDE5OCwuMTYpO2JveC1zaGFkb3c6MCAyMHB4IDUycHggcmdiYSgwLDAsMCwuMzQpfS5maWxlLXZpZXdlcltkYXRhLXZpZXdlci10aGVtZT1kYXJrXSAudmlld2VyLWFjdGlvbnNbZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOnJnYmEoMTQsMjIsMjgsLjk0KTtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMTY3LDE4NSwxOTgsLjEyKX0uZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9ZGFya10gLnZpZXdlci1hY3Rpb25zIGJ1dHRvbltkYXRhLXYtZTA3NDhkNjhde2NvbG9yOiNiOGM3ZDV9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPWRhcmtdIC52aWV3ZXItYWN0aW9ucy1ncm91cFtkYXRhLXYtZTA3NDhkNjhde2JhY2tncm91bmQ6cmdiYSgxNjcsMTg1LDE5OCwuMDgpO2JvcmRlci1jb2xvcjpyZ2JhKDE2NywxODUsMTk4LC4xMyl9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPWRhcmtdIC52aWV3ZXItYWN0aW9ucyBidXR0b25bZGF0YS12LWUwNzQ4ZDY4XTpob3Zlcjpub3QoOmRpc2FibGVkKXtjb2xvcjojNWVlMGFlO2JhY2tncm91bmQ6cmdiYSg0NSwyMTIsMTU0LC4xNCl9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPWRhcmtdIC52aWV3ZXItYWN0aW9ucyBidXR0b25bZGF0YS12LWUwNzQ4ZDY4XTpkaXNhYmxlZHtjb2xvcjojNjY3ODg4fS5maWxlLXZpZXdlcltkYXRhLXZpZXdlci10aGVtZT1kYXJrXSAuY29udGVudFtkYXRhLXYtZTA3NDhkNjhde2JhY2tncm91bmQ6IzE0MWMyM30uZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9ZGFya10gLnN0YXRlLXBhbmVsW2RhdGEtdi1lMDc0OGQ2OF17YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgxNSwyMywzMCwuOTIpLHJnYmEoMTEsMTcsMjIsLjk4KSl9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPWRhcmtdIC5sb2FkaW5nLWNhcmRbZGF0YS12LWUwNzQ4ZDY4XSwuZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9ZGFya10gLmVycm9yLWNhcmRbZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOnJnYmEoMTksMjksMzcsLjk0KTtib3JkZXItY29sb3I6cmdiYSgxMzksMTYxLDE3NywuMTYpO2JveC1zaGFkb3c6MCAyMnB4IDUycHggcmdiYSgwLDAsMCwuMzQpfS5maWxlLXZpZXdlcltkYXRhLXZpZXdlci10aGVtZT1kYXJrXSAubG9hZGluZy1jb3B5IHN0cm9uZ1tkYXRhLXYtZTA3NDhkNjhdLC5maWxlLXZpZXdlcltkYXRhLXZpZXdlci10aGVtZT1kYXJrXSAuZXJyb3ItY2FyZCBzdHJvbmdbZGF0YS12LWUwNzQ4ZDY4XXtjb2xvcjojZWZmN2ZifS5maWxlLXZpZXdlcltkYXRhLXZpZXdlci10aGVtZT1kYXJrXSAubG9hZGluZy1jb3B5IHBbZGF0YS12LWUwNzQ4ZDY4XSwuZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9ZGFya10gLmVycm9yLWNhcmQgcFtkYXRhLXYtZTA3NDhkNjhde2NvbG9yOiM5ZWIwYmZ9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPWRhcmtdIC5lcnJvci1jYXJkIHN0cm9uZ1tkYXRhLXYtZTA3NDhkNjhde2NvbG9yOiNmZjljOTF9QGtleWZyYW1lcyB2aWV3ZXItc3Bpbi1lMDc0OGQ2OHswJXt0cmFuc2Zvcm06cm90YXRlKDApfXRve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsuZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9c3lzdGVtXVtkYXRhLXYtZTA3NDhkNjhdey0tbGlnaHRuaW5nY3NzLWxpZ2h0OiA7LS1saWdodG5pbmdjc3MtZGFyazppbml0aWFsO2NvbG9yLXNjaGVtZTpkYXJrO2JhY2tncm91bmQ6IzBmMTcxZH0uZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9c3lzdGVtXSAudmlld2VyLWFjdGlvbnMtLWZsb2F0aW5nW2RhdGEtdi1lMDc0OGQ2OF17YmFja2dyb3VuZDpyZ2JhKDE0LDIyLDI4LC45NCk7Ym9yZGVyLWNvbG9yOnJnYmEoMTY3LDE4NSwxOTgsLjE2KTtib3gtc2hhZG93OjAgMjBweCA1MnB4IHJnYmEoMCwwLDAsLjM0KX0uZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9c3lzdGVtXSAudmlld2VyLWFjdGlvbnNbZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOnJnYmEoMTQsMjIsMjgsLjk0KTtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMTY3LDE4NSwxOTgsLjEyKX0uZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9c3lzdGVtXSAudmlld2VyLWFjdGlvbnMgYnV0dG9uW2RhdGEtdi1lMDc0OGQ2OF17Y29sb3I6I2I4YzdkNX0uZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9c3lzdGVtXSAudmlld2VyLWFjdGlvbnMtZ3JvdXBbZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOnJnYmEoMTY3LDE4NSwxOTgsLjA4KTtib3JkZXItY29sb3I6cmdiYSgxNjcsMTg1LDE5OCwuMTMpfS5maWxlLXZpZXdlcltkYXRhLXZpZXdlci10aGVtZT1zeXN0ZW1dIC52aWV3ZXItYWN0aW9ucyBidXR0b25bZGF0YS12LWUwNzQ4ZDY4XTpob3Zlcjpub3QoOmRpc2FibGVkKXtjb2xvcjojNWVlMGFlO2JhY2tncm91bmQ6cmdiYSg0NSwyMTIsMTU0LC4xNCl9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPXN5c3RlbV0gLnZpZXdlci1hY3Rpb25zIGJ1dHRvbltkYXRhLXYtZTA3NDhkNjhdOmRpc2FibGVke2NvbG9yOiM2Njc4ODh9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPXN5c3RlbV0gLmNvbnRlbnRbZGF0YS12LWUwNzQ4ZDY4XXtiYWNrZ3JvdW5kOiMxNDFjMjN9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPXN5c3RlbV0gLnN0YXRlLXBhbmVsW2RhdGEtdi1lMDc0OGQ2OF17YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgxNSwyMywzMCwuOTIpLHJnYmEoMTEsMTcsMjIsLjk4KSl9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPXN5c3RlbV0gLmxvYWRpbmctY2FyZFtkYXRhLXYtZTA3NDhkNjhdLC5maWxlLXZpZXdlcltkYXRhLXZpZXdlci10aGVtZT1zeXN0ZW1dIC5lcnJvci1jYXJkW2RhdGEtdi1lMDc0OGQ2OF17YmFja2dyb3VuZDpyZ2JhKDE5LDI5LDM3LC45NCk7Ym9yZGVyLWNvbG9yOnJnYmEoMTM5LDE2MSwxNzcsLjE2KTtib3gtc2hhZG93OjAgMjJweCA1MnB4IHJnYmEoMCwwLDAsLjM0KX0uZmlsZS12aWV3ZXJbZGF0YS12aWV3ZXItdGhlbWU9c3lzdGVtXSAubG9hZGluZy1jb3B5IHN0cm9uZ1tkYXRhLXYtZTA3NDhkNjhdLC5maWxlLXZpZXdlcltkYXRhLXZpZXdlci10aGVtZT1zeXN0ZW1dIC5lcnJvci1jYXJkIHN0cm9uZ1tkYXRhLXYtZTA3NDhkNjhde2NvbG9yOiNlZmY3ZmJ9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPXN5c3RlbV0gLmxvYWRpbmctY29weSBwW2RhdGEtdi1lMDc0OGQ2OF0sLmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPXN5c3RlbV0gLmVycm9yLWNhcmQgcFtkYXRhLXYtZTA3NDhkNjhde2NvbG9yOiM5ZWIwYmZ9LmZpbGUtdmlld2VyW2RhdGEtdmlld2VyLXRoZW1lPXN5c3RlbV0gLmVycm9yLWNhcmQgc3Ryb25nW2RhdGEtdi1lMDc0OGQ2OF17Y29sb3I6I2ZmOWM5MX19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey52aWV3ZXItYWN0aW9ucy0tZmxvYXRpbmdbZGF0YS12LWUwNzQ4ZDY4XXtyaWdodDpjYWxjKDEwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0LDBweCkpO2JvdHRvbTpjYWxjKDEwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwwcHgpKTtnYXA6NHB4O21heC13aWR0aDpjYWxjKDEwMCUgLSAyMHB4KTtwYWRkaW5nOjVweDtvdmVyZmxvdy14OmF1dG99LnZpZXdlci1hY3Rpb25zLS1mbG9hdGluZyBidXR0b25bZGF0YS12LWUwNzQ4ZDY4XXttaW4td2lkdGg6NDBweDtoZWlnaHQ6MzBweDtwYWRkaW5nOjAgOXB4fX0uZmlsZS1yZW5kZXJ7d2lkdGg6MTAwJTttaW4td2lkdGg6MDtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjB9Ci8qJHZpdGUkOjEqLw==',P=b3=>b3==='',Oe=(...b3)=>b3['filter']((b4,b5,b6)=>!!b4&&b4['trim']()!==''&&b6['indexOf'](b4)===b5)['join']('\x20')['trim'](),F=b3=>b3['replace'](/([a-z0-9])([A-Z])/g,'$1-$2')['toLowerCase'](),ke=b3=>b3['replace'](/^([A-Z])|[\s-_]+(\w)/g,(b4,b5,b6)=>b6?b6['toUpperCase']():b5['toLowerCase']()),Ae=b3=>{let b4=ke(b3);return b4['charAt'](0x0)['toUpperCase']()+b4['slice'](0x1);},I={'xmlns':'http://www.w3.org/2000/svg','width':0x18,'height':0x18,'viewBox':'0\x200\x2024\x2024','fill':'none','stroke':'currentColor','stroke-width':0x2,'stroke-linecap':cu(0xd7),'stroke-linejoin':'round'},je=Symbol('lucide-icons');function Me(){return a9(je,{});}function Ne(b3,b4){var cv=cu;if(b3==null)return{};var b5={};for(var b6 in b3)if({}['hasOwnProperty']['call'](b3,b6)){if(b4[cv(0xc0)](b6))continue;b5[b6]=b3[b6];}return b5;}function Pe(b3,b4){var cw=cu;if(b3==null)return{};var b5,b6,b7=Ne(b3,b4);if(Object['getOwnPropertySymbols']){var b8=Object['getOwnPropertySymbols'](b3);for(b6=0x0;b6<b8[cw(0xe5)];b6++)b5=b8[b6],b4['includes'](b5)||{}['propertyIsEnumerable']['call'](b3,b5)&&(b7[b5]=b3[b5]);}return b7;}function L(b3){'@babel/helpers - typeof';return L=typeof Symbol=='function'&&typeof Symbol['iterator']=='symbol'?function(b4){return typeof b4;}:function(b4){return b4&&typeof Symbol=='function'&&b4['constructor']===Symbol&&b4!==Symbol['prototype']?'symbol':typeof b4;},L(b3);}function a1(a,b){a=a-0xa6;var c=a0();var d=c[a];return d;}function a0(){var d5=['__vccOpts','484722JIizGP','line','stroke-width','onStateChange','4425010TPSpzS','1vmskp','zoomOut','badge','textAlign','1357e3','style','fileViewerStyle','forEach','1xhq8a','disabled','loading-copy','13gj7c','syncZoomChange','createElement','toolbarDisabled','next','还原比例','color','放大预览','default','operation-before','FileViewer','button','load','unload-start','isZoomButtonDisabled','displayFilename','get','viewer-icon-button','marginTop','hint','includes','watermark','url','state-panel\x20loading-panel','getState','push','resolve','loading','222VkMMcV','653925IXOgmA','previousSearchResult','472151BIouel','viewer-watermark','description','104LgUrfa','location','4RYrtXC','type','8759619DtWayV','options','clearSearch','href','apply','round','size','M3\x203v5h5','159430ZRyGoC','fetchFile','rotate-ccw','location-change','canZoomIn','label','nextSearchResult','onEvent','circle','map','file','length','4gsYVfP','下载原始文件','missingRendererIds','search','abort','matches','div','getOwnPropertyDescriptor','payload','replaceChildren','10977144AACALx','name','bottom-right','18Fnzpea','value','exportHtml'];a0=function(){return d5;};return a0();}function R(b3,b4){if(L(b3)!='object'||!b3)return b3;var b5=b3[Symbol['toPrimitive']];if(b5!==void 0x0){var b6=b5['call'](b3,b4||'default');if(L(b6)!='object')return b6;throw TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return(b4==='string'?String:Number)(b3);}function z(b3){var b4=R(b3,'string');return L(b4)=='symbol'?b4:b4+'';}function B(b3,b4,b5){return(b4=z(b4))in b3?Object['defineProperty'](b3,b4,{'value':b5,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}):b3[b4]=b5,b3;}function V(b3,b4){var cx=cu,b5=Object['keys'](b3);if(Object['getOwnPropertySymbols']){var b6=Object['getOwnPropertySymbols'](b3);b4&&(b6=b6['filter'](function(b7){return Object['getOwnPropertyDescriptor'](b3,b7)['enumerable'];})),b5[cx(0xc5)]['apply'](b5,b6);}return b5;}function H(b3){var cy=cu;for(var b4=0x1;b4<arguments['length'];b4++){var b5=arguments[b4]==null?{}:arguments[b4];b4%0x2?V(Object(b5),!0x0)[cy(0xa8)](function(b6){B(b3,b6,b5[b6]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](b3,Object['getOwnPropertyDescriptors'](b5)):V(Object(b5))['forEach'](function(b6){var cz=cy;Object['defineProperty'](b3,b6,Object[cz(0xed)](b5,b6));});}return b3;}var U=['name','iconNode','absoluteStrokeWidth','absolute-stroke-width','strokeWidth',cu(0xf9),'size',cu(0xb2)],Fe=(b3,{slots:b4})=>{var cA=cu,b5,b6,b7;let {name:b8,iconNode:b9,absoluteStrokeWidth:ba,'absolute-stroke-width':bb,strokeWidth:bc,'stroke-width':bd,size:bf,color:bg}=b3,bh=Pe(b3,U),{size:bi,color:bj,strokeWidth:bk=0x2,absoluteStrokeWidth:bl=!0x1,class:bm=''}=Me(),bn=a2(()=>{let bo=P(ba)||P(bb)||ba===!0x0||bb===!0x0||bl===!0x0,bp=bc||bd||bk||I['stroke-width'];if(bo){var bq;return Number(bp)*0x18/Number((bq=bf==null?bi:bf)==null?I['width']:bq);}return bp;});return a8('svg',H(H(H({},I),bh),{},{'width':(b5=bf==null?bi:bf)==null?I['width']:b5,'height':(b6=bf==null?bi:bf)==null?I['height']:b6,'stroke':(b7=bg==null?bj:bg)==null?I['stroke']:b7,'stroke-width':bn[cA(0xf4)],'class':Oe('lucide',bm,...b8?['lucide-'+F(Ae(b8))+'-icon','lucide-'+F(b8)]:['lucide-icon'])}),[...b9[cA(0xe3)](bo=>a8(...bo)),...b4['default']?[b4['default']()]:[]]);},W=(b3,b4)=>(b5,{slots:b6,attrs:b7})=>a8(Fe,H(H(H({},b7),b5),{},{'iconNode':b4,'name':b3}),b6['default']?{'default':b6[cu(0xb4)]}:void 0x0),Ie=W(cu(0xdc),[['path',{'d':'M3\x2012a9\x209\x200\x201\x200\x209-9\x209.75\x209.75\x200\x200\x200-6.74\x202.74L3\x208','key':cu(0x100)}],['path',{'d':cu(0xd9),'key':cu(0xa9)}]]),Le=W('zoom-in',[['circle',{'cx':'11','cy':'11','r':'8','key':'4ej97u'}],[cu(0xf8),{'x1':'21','x2':'16.65','y1':'21','y2':'16.65','key':'13gj7c'}],['line',{'x1':'11','x2':'11','y1':'8','y2':'14','key':cu(0xfc)}],[cu(0xf8),{'x1':'8','x2':'14','y1':'11','y2':'11','key':'durymu'}]]),Re=W('zoom-out',[[cu(0xe2),{'cx':'11','cy':'11','r':'8','key':'4ej97u'}],['line',{'x1':'21','x2':'16.65','y1':'21','y2':'16.65','key':cu(0xac)}],[cu(0xf8),{'x1':'8','x2':'14','y1':'11','y2':'11','key':'durymu'}]]),ze=b3=>{var cB=cu;let b4=ax(ak(b3)),b5=ag(b4[cB(0xc4)]()),b6=ay(b5,b4);return am(()=>ak(b3),b7=>{b6['setExtension'](b7);}),{'loading':a2(()=>b5['loading']),'error':a2(()=>b5['error']),'message':a2(()=>b5['message']),'theme':a2(()=>b5['theme']),'styleVars':a2(()=>b5['styleVars']),'startLoading':b6['startLoading'],'setLoadingMessage':b6['setLoadingMessage'],'stopLoading':b6['stopLoading'],'showError':b6['showError'],'clearError':b6['clearError'],'resetLoading':b6['resetLoading'],'syncLoadingState':b6['syncLoadingState']};},Be=({output:b3,getOptions:b4,emitSearchChange:b5,emitLocationChange:b6})=>{var cC=cu;let b7=au({'root':()=>b3[cC(0xf4)],'searchTarget':{'anchors':ai([]),'state':ag(aq())},'searchOptions':()=>{var cD=cC,b8;return(b8=b4())==null?void 0x0:b8[cD(0xe9)];},'waitForDomUpdate':()=>aa(),'getAiOptions':()=>{var b8;return(b8=b4())==null?void 0x0:b8['ai'];},'onSearchChange':b5,'onLocationChange':b6});return ad(()=>{b7['destroyDocumentFeatures']();}),{'refreshDocumentIndex':b7['refreshDocumentIndex'],'clearDocumentState':b7['clearDocumentState'],'getScrollContainer':b7['getScrollContainer'],'searchDocument':b7['searchDocument'],'clearDocumentSearch':b7['clearDocumentSearch'],'nextSearchResult':b7[cC(0xe0)],'previousSearchResult':b7[cC(0xca)],'getSearchState':b7['getSearchState'],'collectDocumentAnchors':b7['collectDocumentAnchors'],'scrollToAnchor':b7['scrollToAnchor'],'scrollToLine':b7['scrollToLine'],'getDocumentTextChunks':b7['getDocumentTextChunks']};},Ve=({activeExportAdapter:b3,currentBuffer:b4,currentFile:b5,currentSourceUrl:b6,displayFilename:b7,formatErrorMessage:b8,operationAvailability:b9,output:ba,runBeforeOperation:bb,showError:bc,watermarkInlineStyle:bd})=>aB({'getBuffer':()=>b4['value'],'getFile':()=>b5['value'],'getUrl':()=>b6['value'],'getFilename':()=>b7['value'],'getMimeType':()=>{var bf;return(bf=b5['value'])==null?void 0x0:bf['type'];},'getRenderedSource':()=>ba['value'],'getAdapter':()=>b3['value'],'getWatermarkInlineStyle':()=>bd['value'],'getPrintAvailable':()=>b9['value']['print'],'beforeOperation':bb,'formatErrorMessage':b8,'onErrorMessage':bc}),He=({getOptions:b3,getFilename:b4,getBufferSize:b5,getCurrentFile:b6,getCurrentVersion:b7,getFallbackFile:b8,getFallbackUrl:b9,emitLifecycle:ba,emitOperationBefore:bb,emitOperationCancel:bc,formatErrorMessage:bd,handleLifecycleError:bf,handleOperationError:bg,onOperationErrorMessage:bh})=>aw({'getOptions':b3,'getFilename':b4,'getBufferSize':b5,'getCurrentFile':b6,'getCurrentVersion':b7,'getFallbackFile':b8,'getFallbackUrl':b9,'emitLifecycle':ba,'emitOperationBefore':bb,'emitOperationCancel':bc,'formatErrorMessage':bd,'handleLifecycleError':bf,'handleOperationError':bg,'onOperationErrorMessage':bh}),Ue=({filename:b3,getFile:b4,getUrl:b5,getOptions:b6})=>{var cE=cu;let b7=a2(()=>aX({'filename':b3[cE(0xf4)],'file':b4(),'url':b5(),'options':b6()}));return{'displayFilename':a2(()=>b7['value'][cE(0xbb)]),'currentExtend':a2(()=>b7[cE(0xf4)]['extension']),'normalizedToolbar':a2(()=>b7['value']['toolbar']),'viewerTheme':a2(()=>b7['value']['theme']),'formatErrorMessage':aP};},We=({currentExtend:b3,error:b4,loadingTheme:b5})=>a2(()=>av(b3['value'],b4[cu(0xf4)],b5['value'])),Ge=({getFile:b3,getUrl:b4,refreshPreview:b5,cancelPreview:b6,resetLoading:b7,stopZoomObserver:b8})=>{am([b3,b4],()=>{b1({'onRefreshPreview':b5});},{'immediate':!0x0}),ad(()=>{b0({'onCancelPreview':b6,'onResetLoading':b7,'onStopZoomObserver':b8});});},Ke=['operationAvailability'],qe=b3=>{let {operationAvailability:b4}=b3;return aA(H(H({},Pe(b3,Ke)),{},{'getOperationAvailability':()=>b4['value']}));};function Je(b3,b4,b5,b6,b7,b8,b9){var cF=cu;try{var ba=b3[b8](b9),bb=ba['value'];}catch(bc){b5(bc);return;}ba['done']?b4(bb):Promise[cF(0xc6)](bb)['then'](b6,b7);}function G(b3){return function(){var b4=this,b5=arguments;return new Promise(function(b6,b7){var b8=b3['apply'](b4,b5);function b9(bb){var cG=a1;Je(b8,b6,b7,b9,ba,cG(0xb0),bb);}function ba(bb){Je(b8,b6,b7,b9,ba,'throw',bb);}b9(void 0x0);});};}var K=b3=>({'$el':b3,'unmount'(){}}),Ye=[...ap],Xe=(function(){var b3=G(function*(b4,b5,b6){var cH=a1;let b7=aJ(b6),b8=document['createElement']('div');b8[cH(0xa6)][cH(0xff)]='center',b8[cH(0xa6)][cH(0xbe)]='80px';let b9=document['createElement']('div');if(b9['textContent']=b7['message'],b8['appendChild'](b9),b7[cH(0xcd)]){let ba=document['createElement'](cH(0xec));ba['textContent']=b7['description'],b8['appendChild'](ba);}return b5[cH(0xef)](b8),K(b5);});return function(b4,b5,b6){return b3['apply'](this,arguments);};}()),q=ar({'definitions':ao,'handlers':Ye}),J=q['registry'],Ze=aF({'registry':J,'handlers':Ye,'fallbackHandler':Xe});q[cu(0xe8)],Ze['handlersByExtension'];function Qe(b3,b4,b5,b6){return Y['apply'](this,arguments);}function Y(){return Y=G(function*(b3,b4,b5,b6){let b7=J['getByExtension'](b4);return b7!=null&&b7['load']?yield b7['load']({'source':aS({'buffer':b3,'filename':(b6==null?void 0x0:b6['filename'])||'preview.'+b4,'type':b4,'url':b6==null?void 0x0:b6['url']}),'surface':{'container':b5},'options':(b6==null?void 0x0:b6['options'])||{},'registerExportAdapter':b6==null?void 0x0:b6['registerExportAdapter'],'renderContext':b6}):as(yield aU({'dispatcher':Ze,'buffer':b3,'target':b5,'type':b4,'context':b6}));}),Y['apply'](this,arguments);}var X=b3=>({'$el':b3,'unmount'(){}}),Z=(function(){var b3=G(function*(b4,b5){return b4['innerHTML']='<div\x20style=\x22text-align:center;margin-top:80px\x22>不支持.'+b5+'格式的在线预览,请下载后预览或转换为支持的格式</div>\x0a<div\x20style=\x22text-align:center\x22>压缩包和邮件附件会复用主预览器的格式能力,当前附件类型暂未命中可预览链路。</div>',X(b4);});return function(b4,b5){return b3['apply'](this,arguments);};}()),$e=(function(){var b3=G(function*(b4,b5,b6,b7){var cI=a1;let b8=b5['toLowerCase'](),b9=aO[cI(0xbc)](b8);return b9?b9(b4,b6,b8,H(H({},b7),{},{'renderNestedBuffer':(b7==null?void 0x0:b7['renderNestedBuffer'])||$e})):Z(b6,b8);});return function(b4,b5,b6,b7){return b3['apply'](this,arguments);};}()),et=({output:b3,getOptions:b4,isCurrentRequest:b5,notifyActiveUnloadStart:b6,notifyActiveUnloadComplete:b7,clearActiveDocumentContext:b8,clearDocumentState:b9,refreshDocumentIndex:ba,startZoomObserver:bb,stopZoomObserver:bc,clearZoomProvider:bd,refreshZoomProvider:bf})=>{var cJ=cu;let bg=ai(null),bh=ah(!0x1),bi=ah(!0x1),bj=aC({'renderedReady':{'get':()=>bh['value'],'set':bm=>{bh['value']=bm;}},'progressiveReady':{'get':()=>bi['value'],'set':bm=>{bi['value']=bm;}}}),bk=null,bl=aD({'getContainer':()=>b3[cJ(0xf4)],'surfaceState':aE({'session':{'get':()=>bk,'set':bm=>{bk=bm;}},'exportAdapter':{'get':()=>bg[cJ(0xf4)],'set':bm=>{bg['value']=bm;}}}),'readinessState':bj,'isCurrent':b5,'waitForContainer':aa,'onUnloadStart':b6,'onUnloadComplete':(bm,bn)=>{b7(bm==null?null:bm,bn);},'onClearActiveDocumentContext':b8,'onClearDocumentState':b9,'onStartZoomObserver':bb,'onStopZoomObserver':bc,'onClearZoomProvider':bd,'onRefreshDocumentIndex':ba,'onRefreshZoomProvider':bf,'render':(function(){var bm=G(function*({buffer:bn,type:bo,target:bp,filename:bq,sourceUrl:br,streamUrl:bs,registerExportAdapter:bu,onProgressiveRender:bv}){return yield Qe(bn,bo,bp,{'filename':bq,'url':br,'streamUrl':bs,'options':b4(),'registerExportAdapter':bu,'onProgressiveRender':bv,'renderNestedBuffer':(function(){var bw=G(function*(bx,by,bz,bA){return yield $e(bx,by,bz,H(H({},bA),{},{'options':(bA==null?void 0x0:bA['options'])||b4()}));});return function(bx,by,bz,bA){return bw['apply'](this,arguments);};}())});});return function(bn){return bm['apply'](this,arguments);};}())});return H({'activeExportAdapter':bg,'renderedReady':bh,'progressiveReady':bi},bl);},tt=({getFile:b3,getUrl:b4,getOptions:b5,filename:b6,currentFile:b7,currentBuffer:b8,currentSourceUrl:b9,renderedReady:ba,progressiveReady:bb,requestController:bc,clearRenderedContent:bd,mountRenderedContent:bf,destroyRenderSession:bg,setActiveRenderSession:bh,buildLoadStartState:bi,buildRenderCompleteState:bj,notifyLifecycle:bk,setActiveDocumentContext:bl,markLoadStarted:bm,clearLoadStarted:bn,startLoading:bo,setLoadingMessage:bp,stopLoading:bq,showError:br,clearError:bs,resetLoading:bu,formatErrorMessage:bv})=>{var cK=cu;let bw=aH({'getFile':b3,'getUrl':b4,'getCurrentFilename':()=>b6['value'],'getPdfStreaming':()=>{var bx;return(bx=b5())==null||(bx=bx['pdf'])==null?void 0x0:bx['streaming'];},'getPageHref':()=>window[cK(0xcf)]['href'],'previewTarget':az({'filename':{'get':()=>b6['value'],'set':bx=>{var cL=cK;b6[cL(0xf4)]=bx;}},'file':{'get':()=>b7['value'],'set':bx=>{b7['value']=bx;}},'buffer':{'get':()=>b8['value'],'set':bx=>{b8['value']=bx;}},'sourceUrl':{'get':()=>b9['value'],'set':bx=>{b9['value']=bx;}},'renderedReady':{'get':()=>ba['value'],'set':bx=>{var cM=cK;ba[cM(0xf4)]=bx;}},'progressiveReady':{'get':()=>bb['value'],'set':bx=>{bb['value']=bx;}}}),'requestController':bc,'downloadFile':(function(){var bx=G(function*({url:by,signal:bz}){let bA=yield fetch(by,{'signal':bz});if(!bA['ok'])throw Error('文件下载失败:\x20HTTP\x20'+bA['status']);return bA['blob']();});return function(by){return bx['apply'](this,arguments);};}()),'mountRenderedContent':bf,'destroyRenderSession':bg,'buildLoadStartState':bi,'buildRenderCompleteState':bj,'onMarkLoadStarted':bm,'onClearLoadStarted':bn,'onStartLoading':bo,'onSetLoadingMessage':bp,'onStopLoading':bq,'onShowError':br,'onClearError':bs,'onResetLoading':bu,'onClearRenderedContent':bd,'onSession':bh,'onActiveDocumentContext':bl,'onLifecycle':bk,'formatErrorMessage':bv});return H(H({},bw),{},{'cancelPreview':(bx='component-unmount')=>{bw['cancelPreview'](bx);},'refreshPreview':(function(){var bx=G(function*(){yield bw['refreshPreview']();});return function(){return bx['apply'](this,arguments);};}()),'resetViewer':bx=>{bw['resetViewer'](bx);}});},nt=({activeExportAdapter:b3,currentBuffer:b4,currentExtend:b5,currentFile:b6,currentSourceUrl:b7,error:b8,getOptions:b9,getZoomState:ba,loading:bb,normalizedToolbar:bc,renderedReady:bd,zoomState:bf,emitOperationAvailabilityChange:bg,emitZoomChange:bh})=>{var cN=cu;let bi=aI({'getAdapter':()=>b3[cN(0xf4)],'getBuffer':()=>b4['value'],'getExtension':()=>b5['value'],'getFile':()=>b6['value'],'getHasError':()=>!!b8['value'],'getLoading':()=>bb['value'],'getOptions':b9,'getSourceUrl':()=>b7['value'],'getToolbar':()=>bc['value'],'getRenderedReady':()=>bd['value'],'getZoomState':ba,'zoomSyncState':bf,'onOperationAvailabilityChange':bg,'onZoomChange':bh}),bj=a2(()=>bi['resolveToolbarState']()),bk=a2(()=>bj['value']['operationAvailability']),bl=a2(()=>bj['value']['visibleToolbar']),bm=a2(()=>bj[cN(0xf4)]['showToolbar']),bn=a2(()=>bj['value']['toolbarPosition']),bo=a2(()=>bj['value'][cN(0xaf)]);return am(bk,bp=>{bi['syncOperationAvailability'](bp);},{'immediate':!0x0}),am(()=>bi['createZoomSyncSnapshot'](),()=>{var cO=cN;bi[cO(0xad)]();},{'immediate':!0x0}),{'operationAvailability':bk,'visibleToolbar':bl,'showToolbar':bm,'toolbarPosition':bn,'toolbarDisabled':bo,'zoomButtonDisabled':bp=>bi[cN(0xba)](bp)};},rt=b3=>{var cP=cu;let b4=a2(()=>aZ(b3()));return{'normalizedWatermark':a2(()=>b4['value']['normalizedWatermark']),'watermarkStyle':a2(()=>b4[cP(0xf4)]['watermarkStyle']),'watermarkInlineStyle':a2(()=>b4['value']['watermarkInlineStyle'])};},it=({output:b3,enabled:b4,runBeforeOperation:b5})=>{let b6=ag(aM()),b7=aL(b6,aK({'root':()=>b3['value'],'enabled':b4,'beforeZoom':b8=>b5(b8)}));return H({'zoomState':b6},b7);},at=['data-viewer-theme'],ot={'class':'viewer-stage'},st=['data-toolbar-position'],ct={'key':0x0,'class':'viewer-actions-group\x20viewer-zoom-actions','aria-label':'缩放控制'},lt=['disabled'],ut=[cu(0xaa)],dt=['disabled'],ft=['disabled'],pt=['disabled'],mt=['disabled'],ht=['disabled'],gt={'class':'viewer-content-shell'},_t={'key':0x1,'class':cu(0xc3)},vt={'class':'loading-card'},yt={'class':'loading-icon'},bt={'class':cu(0xab)},xt={'class':'loading-kicker'},St={'key':0x2,'class':'state-panel\x20error-panel'},Ct={'class':'error-card'},wt=((b3,b4)=>{var cQ=cu;let b5=b3[cQ(0xf6)]||b3;for(let [b6,b7]of b4)b5[b6]=b7;return b5;})(a7({'__name':cu(0xb6),'props':{'file':{},'url':{},'options':{}},'emits':['load-start','load-complete','unload-start','unload-complete','operation-before','operation-cancel','operation-availability-change','search-change',cu(0xdd),'zoom-change'],'setup'(b3,{expose:b4,emit:b5}){var cS=cu;let b6=b3,b7=b5,b8=ah(''),b9=ah(null),ba=ah(null),bb=ah(null),bc=ah(null),{refreshDocumentIndex:bd,clearDocumentState:bf,getScrollContainer:bg,searchDocument:bh,clearDocumentSearch:bi,nextSearchResult:bj,previousSearchResult:bk,getSearchState:bl,collectDocumentAnchors:bm,scrollToAnchor:bn,scrollToLine:bo,getDocumentTextChunks:bp}=Be({'output':b9,'getOptions':()=>b6['options'],'emitSearchChange':cp=>b7('search-change',cp),'emitLocationChange':cp=>b7('location-change',cp)}),{displayFilename:bq,currentExtend:br,normalizedToolbar:bs,viewerTheme:bu,formatErrorMessage:bv}=Ue({'filename':b8,'getFile':()=>b6['file'],'getUrl':()=>b6['url'],'getOptions':()=>b6['options']}),{watermarkStyle:bw,watermarkInlineStyle:bx}=rt(()=>{var cR=a1,cp;return(cp=b6['options'])==null?void 0x0:cp[cR(0xc1)];}),{loading:by,error:bz,message:bA,theme:bB,styleVars:bC,startLoading:bD,setLoadingMessage:bE,stopLoading:bF,showError:bG,clearError:bH,resetLoading:bI}=ze(br),bJ=We({'currentExtend':br,'error':bz,'loadingTheme':bB}),{requestController:bK,getCurrentVersion:bL,isCurrentRequest:bM}=aG(),{markLoadStarted:bN,clearLoadStarted:bO,notifyLifecycle:bP,notifyActiveUnloadStart:bQ,notifyActiveUnloadComplete:bR,setActiveDocumentContext:bS,clearActiveDocumentContext:bT,buildLoadStartState:bU,buildRenderCompleteState:bV,runBeforeOperation:bW}=He({'getOptions':()=>b6[cS(0xd3)],'getFilename':()=>b8['value'],'getBufferSize':()=>{var cT=cS,cp;return(cp=bb[cT(0xf4)])==null?void 0x0:cp['byteLength'];},'getCurrentFile':()=>ba['value'],'getCurrentVersion':bL,'getFallbackFile':()=>b6[cS(0xe4)],'getFallbackUrl':()=>b6['url'],'emitLifecycle':b7,'emitOperationBefore':cp=>b7(cS(0xb5),cp),'emitOperationCancel':cp=>b7('operation-cancel',cp),'formatErrorMessage':bv,'handleLifecycleError':(cp,cq)=>{aV({'error':cp,'context':cq});},'handleOperationError':(cp,cq)=>{aW({'error':cp,'context':cq});},'onOperationErrorMessage':bG}),{zoomState:bX,refreshZoomProvider:bY,startZoomObserver:bZ,stopZoomObserver:c0,clearZoomProvider:c1,zoomIn:c2,zoomOut:c3,resetZoom:c4,getZoomState:c5}=it({'output':b9,'enabled':()=>!0x0,'runBeforeOperation':bW}),{activeExportAdapter:c6,renderedReady:c7,progressiveReady:c8,clearRenderedContent:c9,destroyRenderSession:ca,mountRenderedContent:cb,setActiveRenderSession:cc}=et({'output':b9,'getOptions':()=>b6['options'],'isCurrentRequest':bM,'notifyActiveUnloadStart':bQ,'notifyActiveUnloadComplete':bR,'clearActiveDocumentContext':bT,'clearDocumentState':bf,'refreshDocumentIndex':bd,'startZoomObserver':bZ,'stopZoomObserver':c0,'clearZoomProvider':c1,'refreshZoomProvider':bY}),{operationAvailability:cd,visibleToolbar:cf,showToolbar:cg,toolbarPosition:ch,toolbarDisabled:ci,zoomButtonDisabled:cj}=nt({'activeExportAdapter':c6,'currentBuffer':bb,'currentExtend':br,'currentFile':ba,'currentSourceUrl':bc,'error':bz,'getOptions':()=>b6['options'],'getZoomState':c5,'loading':by,'normalizedToolbar':bs,'renderedReady':c7,'zoomState':bX,'emitOperationAvailabilityChange':cp=>b7('operation-availability-change',cp),'emitZoomChange':cp=>b7('zoom-change',cp)}),{cancelPreview:ck,refreshPreview:cl}=tt({'getFile':()=>b6['file'],'getUrl':()=>b6[cS(0xc2)],'getOptions':()=>b6['options'],'filename':b8,'currentFile':ba,'currentBuffer':bb,'currentSourceUrl':bc,'renderedReady':c7,'progressiveReady':c8,'requestController':bK,'clearRenderedContent':c9,'mountRenderedContent':cb,'destroyRenderSession':ca,'setActiveRenderSession':cc,'buildLoadStartState':bU,'buildRenderCompleteState':bV,'notifyLifecycle':bP,'setActiveDocumentContext':bS,'markLoadStarted':bN,'clearLoadStarted':bO,'startLoading':bD,'setLoadingMessage':bE,'stopLoading':bF,'showError':bG,'clearError':bH,'resetLoading':bI,'formatErrorMessage':bv}),{downloadOriginalFile:cm,exportRenderedHtml:cn,printRenderedHtml:co}=Ve({'activeExportAdapter':c6,'currentBuffer':bb,'currentFile':ba,'currentSourceUrl':bc,'displayFilename':bq,'formatErrorMessage':bv,'operationAvailability':cd,'output':b9,'runBeforeOperation':bW,'showError':bG,'watermarkInlineStyle':bx});return b4(qe({'downloadOriginalFile':cm,'printRenderedHtml':co,'exportRenderedHtml':cn,'zoomIn':c2,'zoomOut':c3,'resetZoom':c4,'getZoomState':c5,'operationAvailability':cd,'getScrollContainer':bg,'searchDocument':bh,'clearDocumentSearch':bi,'nextSearchResult':bj,'previousSearchResult':bk,'getSearchState':bl,'collectDocumentAnchors':bm,'scrollToAnchor':bn,'scrollToLine':bo,'getDocumentTextChunks':bp})),Ge({'getFile':()=>b6['file'],'getUrl':()=>b6['url'],'refreshPreview':cl,'cancelPreview':ck,'resetLoading':bI,'stopZoomObserver':c0}),(cp,cq)=>(af(),a4('div',{'class':'file-viewer','data-viewer-theme':al(bu),'style':ac(al(bC))},[a5(cS(0xec),ot,[al(cg)?(af(),a4('div',{'key':0x0,'class':ab(['viewer-actions',{'viewer-actions--floating':al(ch)===cS(0xf2)}]),'data-toolbar-position':al(ch)},[al(cf)['zoom']?(af(),a4('div',ct,[a5('button',{'type':'button','class':cS(0xbd),'disabled':al(cj)('canZoomOut'),'title':'缩小预览','aria-label':'缩小预览','onClick':cq[0x0]||(cq[0x0]=(...cr)=>al(c3)&&al(c3)(...cr))},[a6(al(Re),{'size':0xf,'stroke-width':2.4})],0x8,lt),a5('button',{'type':'button','class':'viewer-zoom-meter','disabled':al(cj)('canReset'),'title':'还原比例','onClick':cq[0x1]||(cq[0x1]=(...cr)=>al(c4)&&al(c4)(...cr))},aj(al(bX)[cS(0xdf)]),0x9,ut),a5(cS(0xb7),{'type':'button','class':'viewer-icon-button','disabled':al(cj)(cS(0xde)),'title':'放大预览','aria-label':cS(0xb3),'onClick':cq[0x2]||(cq[0x2]=(...cr)=>al(c2)&&al(c2)(...cr))},[a6(al(Le),{'size':0xf,'stroke-width':2.4})],0x8,dt),a5('button',{'type':'button','class':'viewer-icon-button','disabled':al(cj)('canReset'),'title':'还原比例','aria-label':cS(0xb1),'onClick':cq[0x3]||(cq[0x3]=(...cr)=>al(c4)&&al(c4)(...cr))},[a6(al(Ie),{'size':0xe,'stroke-width':2.4})],0x8,ft)])):a3('',!0x0),al(cf)['download']?(af(),a4('button',{'key':0x1,'type':'button','disabled':al(ci),'title':cS(0xe7),'onClick':cq[0x4]||(cq[0x4]=(...cr)=>al(cm)&&al(cm)(...cr))},'\x20下载\x20',0x8,pt)):a3('',!0x0),al(cf)['print']?(af(),a4('button',{'key':0x2,'type':'button','disabled':al(ci),'title':'打印完整渲染内容','onClick':cq[0x5]||(cq[0x5]=(...cr)=>al(co)&&al(co)(...cr))},'\x20打印\x20',0x8,mt)):a3('',!0x0),al(cf)[cS(0xf5)]?(af(),a4('button',{'key':0x3,'type':'button','disabled':al(ci),'title':'导出当前渲染后的\x20HTML','onClick':cq[0x6]||(cq[0x6]=(...cr)=>al(cn)&&al(cn)(...cr))},'\x20HTML\x20',0x8,ht)):a3('',!0x0)],0xa,st)):a3('',!0x0),a5('div',gt,[a5('div',{'ref_key':'output','ref':b9,'class':ab(['content',{'hidden':al(by)&&!al(c8)||!!al(bz)}]),'data-viewer-scroll-root':'true'},null,0x2),al(bw)?(af(),a4('div',{'key':0x0,'class':cS(0xcc),'style':ac(al(bw))},null,0x4)):a3('',!0x0),al(by)&&!al(c8)?(af(),a4('div',_t,[a5('div',vt,[a5('div',yt,aj(al(bB)[cS(0xfe)]),0x1),a5('div',bt,[a5('span',xt,aj(al(bB)['label']),0x1),a5('strong',null,aj(al(bA)),0x1),a5('p',null,aj(al(bB)[cS(0xbf)]),0x1)]),cq[0x7]||(cq[0x7]=a5('span',{'class':'loading-ring'},null,-0x1))])])):al(bz)?(af(),a4('div',St,[a5('div',Ct,[a5('strong',null,aj(al(bJ)['title']),0x1),a5('p',null,aj(al(bJ)['message']),0x1)])])):a3('',!0x0)])])],0xc,at));}}),[['__scopeId','data-v-e0748d68']]),Tt=()=>typeof window<'u'&&typeof document<'u',Et=(b3={})=>!!(b3['url']||b3['file']||b3['buffer']),Q=(b3={})=>({'url':b3['url'],'file':b3['file'],'buffer':b3['buffer'],'filename':b3['filename']||b3['name'],'name':b3['name'],'type':b3['type'],'size':b3['size']}),Dt=()=>typeof fetch=='function',Ot=(function(){var b3=G(function*({url:b4,signal:b5}){if(!Dt())throw Error('fetch\x20is\x20not\x20available\x20in\x20the\x20current\x20environment.');let b6=yield fetch(b4,{'signal':b5});if(!b6['ok'])throw Error('Failed\x20to\x20fetch\x20file:\x20'+b6['status']+'\x20'+b6['statusText']);return b6['blob']();});return function(b4){return b3['apply'](this,arguments);};}()),kt=b3=>aR(b3['filename']||b3[cu(0xf1)]||aY({'file':b3[cu(0xe4)],'url':b3['url'],'fallback':an}),b3['type']?'preview.'+b3['type']:an),At=(function(){var b3=G(function*(b4,b5={}){var cU=a1;let b6=kt(b4),b7=b4['type']||aQ(b6);if(b4['buffer']){var b8;return{'buffer':b4['buffer'],'filename':b6,'type':b7,'size':(b8=b4['size'])==null?b4['buffer']['byteLength']:b8,'url':b4['url']};}if(b4['file']){var b9;let bb=b2(b4['file'],b6);return{'file':bb,'buffer':yield aT(bb),'filename':bb['name']||b6,'type':b7||aQ(bb['name']),'size':(b9=b4[cU(0xd8)])==null?bb[cU(0xd8)]:b9,'url':b4['url']};}if(b4['url']){var ba;let bc=yield(b5[cU(0xdb)]||Ot)({'url':b4['url'],'signal':b5['signal'],'source':b4});if(!bc)throw Error('Downloaded\x20file\x20is\x20empty.');let bd=b2(bc,b6);return{'file':bd,'buffer':yield aT(bd),'filename':bd[cU(0xf1)]||b6,'type':b7||aQ(bd['name']),'size':(ba=b4['size'])==null?bd['size']:ba,'url':b4['url']};}return{'filename':b6,'type':b7};});return function(b4){return b3['apply'](this,arguments);};}()),$=(function(){var b3=G(function*(b4,b5,b6){return b4?b5(b4):b6;});return function(b4,b5,b6){return b3['apply'](this,arguments);};}()),jt=b3=>!!(b3&&typeof b3=='object'&&b3['name']==='AbortError'),Mt=(b3,b4={},b5={})=>{var cV=cu;if(!Tt())throw Error('Flyfish\x20File\x20Viewer\x20can\x20only\x20be\x20mounted\x20in\x20a\x20browser\x20DOM\x20environment.');let b6=!0x1,b7=b4,b8=Et(b7)?Q(b7):null,b9=null,ba=new Set(),bb={'loading':!0x1,'ready':!0x1,'error':null,'lastEvent':null,'lifecycle':null,'availability':null,'search':null,'zoom':null,'location':null},bc=()=>H(H({},bb),{},{'search':bb[cV(0xe9)]?H(H({},bb['search']),{},{'matches':[...bb['search'][cV(0xeb)]]}):null}),bd=bi=>{var cW=cV,bj;let bk=bc();(bj=b7[cW(0xfa)])==null||bj['call'](b7,bk,bi),ba['forEach'](bl=>bl(bk,bi));},bf=aN(b3,{'registry':b5['registry'],'options':b7[cV(0xd3)],'onEvent':bi=>{var cX=cV,bj;bb['lastEvent']=bi,bi['type']==='load-start'?(bb['loading']=!0x0,bb['ready']=!0x1,bb['error']=null,bb['lifecycle']=bi[cX(0xee)]):bi['type']==='load-complete'?(bb['loading']=!0x1,bb['ready']=!0x0,bb['lifecycle']=bi[cX(0xee)]):bi['type']===cX(0xb9)?(bb['loading']=!0x0,bb['ready']=!0x1,bb['lifecycle']=bi['payload']):bi[cX(0xd1)]==='unload-complete'?(bb[cX(0xc7)]=!0x1,bb['ready']=!0x1,bb['lifecycle']=bi['payload']):bi['type']==='operation-availability-change'?bb['availability']=bi['payload']:bi['type']==='search-change'?bb['search']=bi['payload']:bi['type']==='location-change'?bb[cX(0xcf)]=bi['payload']:bi['type']==='zoom-change'&&(bb['zoom']=bi['payload']),(bj=b7[cX(0xe1)])==null||bj['call'](b7,bi),bd(bi);}}),bg=()=>{var cY=cV;b9==null||b9[cY(0xea)](),b9=null;},bh=(function(){var bi=G(function*(bj){bg(),b8=bj,b9=typeof AbortController<'u'?new AbortController():null;let bk=b9;try{bb['loading']=!0x0,bb['error']=null,bd();let bm=yield At(bj,{'fetchFile':b5['fetchFile'],'signal':bk==null?void 0x0:bk['signal']});return yield bf['load'](bm);}catch(bn){var bl;if(jt(bn)&&bk!=null&&bk['signal']['aborted'])return null;throw bb['loading']=!0x1,bb['ready']=!0x1,bb['error']=bn,bd(),(bl=b5['onError'])==null||bl['call'](b5,bn,bj),bn;}finally{b9===bk&&(b9=null);}});return function(bj){return bi['apply'](this,arguments);};}());return b8&&bh(b8),{'container':b3,'load'(bi){return G(function*(){b6||(b7=bi,bf['updateOptions'](b7['options']||{}),Et(b7)&&(yield bh(Q(b7))));})();},'update'(){var d0=cV;return G(function*(bi={}){var cZ=a1,bj;b6||(b7=H(H(H({},b7),bi),{},{'options':(bj=bi['options'])==null?b7['options']:bj}),bf['updateOptions'](b7['options']||{}),Et(b7)?yield bh(Q(b7)):(b8=null,yield bf[cZ(0xb8)]({'filename':an})));})[d0(0xd6)](this,arguments);},'reload'(){return G(function*(){b6||b8&&(yield bh(b8));})();},'destroy'(){b6||(b6=!0x0,bg(),bf['destroy']('component-unmount'),b3['innerHTML']='');},'getApi'(){return bf;},'downloadOriginalFile'(){return $(bf,bi=>bi['download'](),void 0x0);},'printRenderedHtml'(){return $(bf,bi=>bi['print'](),void 0x0);},'exportRenderedHtml'(){return $(bf,bi=>bi['exportHtml']({'download':!0x0})['then'](()=>void 0x0),void 0x0);},'zoomIn'(){return $(bf,bi=>bi['zoomIn'](),null);},'zoomOut'(){var d1=cV;return $(bf,bi=>bi[d1(0xfd)](),null);},'resetZoom'(){return $(bf,bi=>bi['resetZoom'](),null);},'searchDocument'(bi){return $(bf,bj=>bj['search'](bi),null);},'clearDocumentSearch'(){var d2=cV;return $(bf,bi=>bi[d2(0xd4)](),null);},'nextSearchResult'(){return $(bf,bi=>bi['nextSearchResult'](),null);},'previousSearchResult'(){return $(bf,bi=>bi['previousSearchResult'](),null);},'collectDocumentAnchors'(){return $(bf,bi=>bi['collectDocumentAnchors'](),[]);},'scrollToAnchor'(bi){return $(bf,bj=>bj['scrollToDocumentAnchor'](bi),!0x1);},'scrollToLine'(bi){return $(bf,bj=>bj['scrollToLine'](bi),!0x1);},'getDocumentTextChunks'(){return bf['getDocumentTextChunks']();},'getOperationAvailability'(){return bf['getCapabilities']();},'getZoomState'(){return bf['getZoomState']();},'getSearchState'(){return bf['getSearchState']();},'getState'(){return bc();},'subscribe'(bi){return ba['add'](bi),bi(bc()),()=>{ba['delete'](bi);};}};},Nt=()=>{var d3=cu;if(typeof document>'u'||document['querySelector']('link[data-file-viewer-style=\x22true\x22]'))return;let b3=document['createElement']('link');b3['rel']='stylesheet',b3[d3(0xd5)]=N,b3['dataset'][d3(0xa7)]='true',document['head']['appendChild'](b3);},Pt=(b3,b4={})=>{var b5;Nt();let b6=b4['source']||b4;return Mt(b3,H(H({},b4['autoLoad']===!0x1?{}:{'url':b6['url'],'file':b6['file'],'buffer':b6['buffer'],'name':b6['name']||b4['name'],'filename':b6['filename']||b4['filename'],'type':b6['type']||b4['type'],'size':(b5=b6['size'])==null?b4['size']:b5}),{},{'options':b4['options'],'onEvent':b4['onEvent']}),{'registry':J,'fetchFile':b4['fetchFile'],'onError':b4['onError']});},Ft=Pt,It=[['file-viewer',wt]],Lt=class{constructor(){B(this,'installed',!0x1);}['install'](b3,b4={}){this['installed']||(It['forEach'](([b5,b6])=>b3['component'](b4['componentName']||b5,b6)),this['installed']=!0x0);}};function Rt(){var d4=cu;if(typeof document>'u'||document['querySelector']('link[data-file-viewer-style=\x22true\x22]'))return;let b3=document[d4(0xae)]('link');b3['rel']='stylesheet',b3['href']=N,b3['dataset']['fileViewerStyle']='true',document['head']['appendChild'](b3);}Rt();var zt=new Lt();export{wt as FileViewer,Pt as createFlyfishFileViewer,zt as default,Ft as mountFlyfishFileViewer};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FileViewerArchiveOptions, ResolveFileViewerAssetUrlOptions } from '@file-viewer/core';
|
|
2
|
+
export declare const getBrowserFileViewerDocumentBaseUrl: () => string;
|
|
3
|
+
export declare const resolveBrowserFileViewerAssetUrl: (value: string | URL | undefined, fallback: string, options?: ResolveFileViewerAssetUrlOptions) => string;
|
|
4
|
+
export declare const resolveBrowserFileViewerArchiveWorkerUrl: (options?: Pick<FileViewerArchiveOptions, "workerUrl"> | null, baseUrl?: string) => string;
|
|
5
|
+
export declare const resolveBrowserFileViewerArchiveWasmUrl: (options?: Pick<FileViewerArchiveOptions, "wasmUrl"> | null, fallback?: string) => string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FileViewerSearchProvider, FileViewerZoomProvider } from '@file-viewer/core';
|
|
2
|
+
export interface FileViewerSearchProviderHost extends HTMLElement {
|
|
3
|
+
__flyfishViewerSearchProvider?: FileViewerSearchProvider;
|
|
4
|
+
}
|
|
5
|
+
export interface FileViewerZoomProviderHost extends HTMLElement {
|
|
6
|
+
__flyfishViewerZoomProvider?: FileViewerZoomProvider;
|
|
7
|
+
}
|
|
8
|
+
export declare const registerFileViewerSearchProvider: (host: HTMLElement, provider: FileViewerSearchProvider) => void;
|
|
9
|
+
export declare const unregisterFileViewerSearchProvider: (host: HTMLElement | null | undefined) => void;
|
|
10
|
+
export declare const findFileViewerSearchProvider: (root: HTMLElement | null | undefined) => FileViewerSearchProvider | null;
|
|
11
|
+
export declare const registerFileViewerZoomProvider: (host: HTMLElement, provider: FileViewerZoomProvider) => void;
|
|
12
|
+
export declare const unregisterFileViewerZoomProvider: (host: HTMLElement | null | undefined) => void;
|
|
13
|
+
export declare const findFileViewerZoomProvider: (root: HTMLElement | null | undefined) => FileViewerZoomProvider | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface PrintPageSize {
|
|
2
|
+
width: number;
|
|
3
|
+
height: number;
|
|
4
|
+
}
|
|
5
|
+
export interface ApplyPrintPageSizeOptions {
|
|
6
|
+
heightMode?: 'fixed' | 'min';
|
|
7
|
+
}
|
|
8
|
+
export interface BuildPrintPageStyleOptions extends PrintPageSize {
|
|
9
|
+
selector: string;
|
|
10
|
+
heightMode?: 'fixed' | 'min';
|
|
11
|
+
}
|
|
12
|
+
export declare const formatCssPixels: (value: number) => string;
|
|
13
|
+
/**
|
|
14
|
+
* Browser print helper. Core defines print contracts; DOM
|
|
15
|
+
* measurement belongs here because it depends on CSS layout and HTMLElement.
|
|
16
|
+
*/
|
|
17
|
+
export declare const getElementPrintPageSize: (element: HTMLElement, fallback?: Partial<PrintPageSize>) => PrintPageSize;
|
|
18
|
+
export declare const applyPrintPageSize: (element: HTMLElement, size: PrintPageSize, options?: ApplyPrintPageSizeOptions) => void;
|
|
19
|
+
export declare const buildPrintPageStyle: ({ selector, width, height, heightMode, }: BuildPrintPageStyleOptions) => string;
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { FileViewerAiOptions as CoreFileViewerAiOptions, FileViewerArchiveOptions as CoreFileViewerArchiveOptions, FileViewerBeforeOperation as CoreFileViewerBeforeOperation, FileViewerCadDwfLineWeightMode as CoreFileViewerCadDwfLineWeightMode, FileViewerCadOptions as CoreFileViewerCadOptions, FileViewerCadRenderer as CoreFileViewerCadRenderer, FileViewerComponentEmits as CoreFileViewerComponentEmits, FileViewerComponentEventMap as CoreFileViewerComponentEventMap, FileViewerComponentProps as CoreFileViewerComponentProps, FileViewerDocxOptions as CoreFileViewerDocxOptions, FileViewerDocumentAnchor as CoreFileViewerDocumentAnchor, FileViewerDocumentChunk as CoreFileViewerDocumentChunk, FileViewerFileRef, FileViewerLifecycleContext as CoreFileViewerLifecycleContext, FileViewerLifecycleHooks as CoreFileViewerLifecycleHooks, FileViewerLifecyclePhase as CoreFileViewerLifecyclePhase, FileViewerOperationAvailability as CoreFileViewerOperationAvailability, FileViewerOperationContext as CoreFileViewerOperationContext, FileViewerOperationType as CoreFileViewerOperationType, FileViewerOptions as CoreFileViewerOptions, FileViewerPdfOptions as CoreFileViewerPdfOptions, FileViewerSpreadsheetOptions as CoreFileViewerSpreadsheetOptions, FileViewerPublicApi as CoreFileViewerPublicApi, FileViewerRenderedInstance as CoreFileViewerRenderedInstance, FileRenderContext as CoreFileRenderContext, FileRenderExportAdapter as CoreFileRenderExportAdapter, FileRenderExportMode as CoreFileRenderExportMode, FileRenderExportOptions as CoreFileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerSearchMatch as CoreFileViewerSearchMatch, FileViewerSearchOptions as CoreFileViewerSearchOptions, FileViewerSearchProvider as CoreFileViewerSearchProvider, FileViewerSearchState as CoreFileViewerSearchState, FileViewerSourceKind as CoreFileViewerSourceKind, FileViewerThemeMode as CoreFileViewerThemeMode, FileViewerToolbarOptions as CoreFileViewerToolbarOptions, FileViewerToolbarPosition as CoreFileViewerToolbarPosition, FileViewerTypstOptions as CoreFileViewerTypstOptions, FileViewerWatermarkOptions as CoreFileViewerWatermarkOptions, FileViewerZoomProvider as CoreFileViewerZoomProvider, FileViewerZoomState as CoreFileViewerZoomState } from '@file-viewer/core';
|
|
2
|
+
/**
|
|
3
|
+
* 渲染器返回的可卸载包装实例。
|
|
4
|
+
*
|
|
5
|
+
* 旧版 Vue3 渲染器通常返回 Vue `App` 或只暴露 `$el` 与 `unmount()`
|
|
6
|
+
* 的轻量对象。现在统一复用 core 的 framework-neutral 销毁契约。
|
|
7
|
+
*/
|
|
8
|
+
export type AppWrapper = CoreFileViewerRenderedInstance;
|
|
9
|
+
/**
|
|
10
|
+
* 任意渲染器挂载完成后返回的可卸载实例。
|
|
11
|
+
*/
|
|
12
|
+
export type Rendered = CoreFileViewerRenderedInstance;
|
|
13
|
+
/**
|
|
14
|
+
* 组件可接受的本地二进制来源。
|
|
15
|
+
*
|
|
16
|
+
* 对外接入时最推荐传入带正确文件名的 `File`。如果业务侧拿到的是
|
|
17
|
+
* `Blob` 或 `ArrayBuffer`,请先包装成 `new File([...], 'demo.pdf')`,
|
|
18
|
+
* 这样渲染器才能通过扩展名选择正确的预览链路。
|
|
19
|
+
*/
|
|
20
|
+
export type FileRef = FileViewerFileRef;
|
|
21
|
+
/**
|
|
22
|
+
* 水印配置。
|
|
23
|
+
*
|
|
24
|
+
* `text` 与 `image` 至少设置一个;同时传入时优先使用图片水印。
|
|
25
|
+
* 图片水印可以是 http(s) URL、相对路径或 data URL。
|
|
26
|
+
*/
|
|
27
|
+
export type FileViewerWatermarkOptions = CoreFileViewerWatermarkOptions;
|
|
28
|
+
/**
|
|
29
|
+
* 预览器内置操作栏位置。
|
|
30
|
+
*
|
|
31
|
+
* `auto` 是默认策略: PDF 这类有独立阅读工具栏的格式会自动悬浮到右下角,
|
|
32
|
+
* 其他格式继续使用顶部操作栏;也可以显式传 `top` 或 `bottom-right`。
|
|
33
|
+
*/
|
|
34
|
+
export type FileViewerToolbarPosition = CoreFileViewerToolbarPosition;
|
|
35
|
+
/**
|
|
36
|
+
* 预览器内置操作栏配置。
|
|
37
|
+
*/
|
|
38
|
+
export type FileViewerToolbarOptions = CoreFileViewerToolbarOptions;
|
|
39
|
+
/**
|
|
40
|
+
* 压缩包预览配置。
|
|
41
|
+
*/
|
|
42
|
+
export type FileViewerArchiveOptions = CoreFileViewerArchiveOptions;
|
|
43
|
+
/**
|
|
44
|
+
* PDF 预览配置。
|
|
45
|
+
*/
|
|
46
|
+
export type FileViewerPdfOptions = CoreFileViewerPdfOptions;
|
|
47
|
+
/**
|
|
48
|
+
* 表格预览配置。
|
|
49
|
+
*/
|
|
50
|
+
export type FileViewerSpreadsheetOptions = CoreFileViewerSpreadsheetOptions;
|
|
51
|
+
/**
|
|
52
|
+
* Typst 预览配置。
|
|
53
|
+
*/
|
|
54
|
+
export type FileViewerTypstOptions = CoreFileViewerTypstOptions;
|
|
55
|
+
export type FileViewerCadRenderer = CoreFileViewerCadRenderer;
|
|
56
|
+
export type FileViewerCadDwfLineWeightMode = CoreFileViewerCadDwfLineWeightMode;
|
|
57
|
+
/**
|
|
58
|
+
* CAD 预览配置。
|
|
59
|
+
*
|
|
60
|
+
* core 默认使用 @flyfish-dev/cad-viewer,并从静态资源目录下的
|
|
61
|
+
* `wasm/cad/` 按需加载 LibreDWG WASM、DWF raster WASM 与 DWG Worker。
|
|
62
|
+
* 私有化部署或 CDN 路径不同的场景,可以显式覆盖对应 URL。
|
|
63
|
+
*/
|
|
64
|
+
export type FileViewerCadOptions = CoreFileViewerCadOptions;
|
|
65
|
+
/**
|
|
66
|
+
* 文档定位锚点。
|
|
67
|
+
*
|
|
68
|
+
* 预览器会尽量把当前渲染结果中的页面、段落、表格行、代码块等内容
|
|
69
|
+
* 抽象成稳定锚点。不同格式的“行”粒度不完全相同:文本类文档通常可到
|
|
70
|
+
* 段落/行块,PDF 这类画布型文档会优先回退到页与可用文本层。
|
|
71
|
+
*/
|
|
72
|
+
export type FileViewerDocumentAnchor = CoreFileViewerDocumentAnchor;
|
|
73
|
+
/**
|
|
74
|
+
* AI / 搜索可复用的文档文本切片。
|
|
75
|
+
*
|
|
76
|
+
* 这里不直接绑定任何云端能力,只提供溯源、向量化和高亮所需的稳定结构。
|
|
77
|
+
*/
|
|
78
|
+
export type FileViewerDocumentChunk = CoreFileViewerDocumentChunk;
|
|
79
|
+
/**
|
|
80
|
+
* 文档搜索配置。
|
|
81
|
+
*/
|
|
82
|
+
export type FileViewerSearchOptions = CoreFileViewerSearchOptions;
|
|
83
|
+
/**
|
|
84
|
+
* 单条搜索命中。
|
|
85
|
+
*/
|
|
86
|
+
export type FileViewerSearchMatch = CoreFileViewerSearchMatch;
|
|
87
|
+
/**
|
|
88
|
+
* 当前搜索状态。
|
|
89
|
+
*/
|
|
90
|
+
export type FileViewerSearchState = CoreFileViewerSearchState;
|
|
91
|
+
/**
|
|
92
|
+
* 渲染器自定义搜索提供器。
|
|
93
|
+
*
|
|
94
|
+
* PDF.js、EPUB 阅读器、虚拟表格等格式拥有自己的文本层或虚拟滚动结构,
|
|
95
|
+
* 不能总是由通用 DOM 高亮直接改写内部节点。渲染器可以在根节点上注册
|
|
96
|
+
* 该提供器,让 FileViewer 的搜索 API 继续保持统一入口。
|
|
97
|
+
*/
|
|
98
|
+
export type FileViewerSearchProvider = CoreFileViewerSearchProvider;
|
|
99
|
+
/**
|
|
100
|
+
* 当前预览内容的缩放状态。
|
|
101
|
+
*
|
|
102
|
+
* `scale` 使用 1 = 100% 的语义。部分格式会先按容器宽度自动适配,再在此
|
|
103
|
+
* 基础上放大缩小;对外仍返回最终有效比例,便于业务工具栏同步显示。
|
|
104
|
+
*/
|
|
105
|
+
export type FileViewerZoomState = CoreFileViewerZoomState;
|
|
106
|
+
/**
|
|
107
|
+
* 渲染器自定义缩放提供器。
|
|
108
|
+
*
|
|
109
|
+
* PDF、CAD、图片、Office 文档等格式拥有不同的内部缩放/重排逻辑;
|
|
110
|
+
* 统一工具栏只调用该协议,不对外层 DOM 做粗暴 CSS transform,避免表格、
|
|
111
|
+
* canvas、CAD 交互出现坐标偏移。
|
|
112
|
+
*/
|
|
113
|
+
export type FileViewerZoomProvider = CoreFileViewerZoomProvider;
|
|
114
|
+
/**
|
|
115
|
+
* AI 友好能力配置。
|
|
116
|
+
*
|
|
117
|
+
* 预览器本身不内置云端模型调用;这里提供可选文本切片结构,业务侧可以
|
|
118
|
+
* 基于 `getDocumentTextChunks()` 做向量化、溯源、AI 摘要和命中高亮。
|
|
119
|
+
*/
|
|
120
|
+
export type FileViewerAiOptions = CoreFileViewerAiOptions;
|
|
121
|
+
/**
|
|
122
|
+
* 预览器主题模式。
|
|
123
|
+
*
|
|
124
|
+
* `system` 是默认值,会继续跟随浏览器 `prefers-color-scheme`;
|
|
125
|
+
* 浅色业务系统即使运行在深色操作系统中,也可以显式传 `light`
|
|
126
|
+
* 锁定预览区、工具栏和支持主题切换的渲染器为浅色。
|
|
127
|
+
*/
|
|
128
|
+
export type FileViewerThemeMode = CoreFileViewerThemeMode;
|
|
129
|
+
export type FileViewerSourceType = CoreFileViewerSourceKind;
|
|
130
|
+
export type FileViewerLifecyclePhase = CoreFileViewerLifecyclePhase;
|
|
131
|
+
export type FileViewerLifecycleContext = CoreFileViewerLifecycleContext;
|
|
132
|
+
export type FileViewerLifecycleHooks = CoreFileViewerLifecycleHooks;
|
|
133
|
+
export type FileViewerOperationType = CoreFileViewerOperationType;
|
|
134
|
+
/**
|
|
135
|
+
* 当前文档对内置操作的真实可用性。
|
|
136
|
+
*
|
|
137
|
+
* `toolbar` 只表达宿主想不想展示某个按钮;这里表达当前文件类型和渲染器
|
|
138
|
+
* 是否真的能稳定完成该操作。尤其是打印,虚拟表格、播放器、3D 画布、
|
|
139
|
+
* EPUB 阅读器等链路无法保证完整分页输出时会主动关闭。
|
|
140
|
+
*/
|
|
141
|
+
export type FileViewerOperationAvailability = CoreFileViewerOperationAvailability;
|
|
142
|
+
export type FileViewerOperationContext = CoreFileViewerOperationContext;
|
|
143
|
+
export type FileViewerBeforeOperation = CoreFileViewerBeforeOperation;
|
|
144
|
+
export type FileViewerProps = CoreFileViewerComponentProps;
|
|
145
|
+
export type FileViewerEventMap = CoreFileViewerComponentEventMap;
|
|
146
|
+
/**
|
|
147
|
+
* `<file-viewer>` 组件的标准事件契约。
|
|
148
|
+
*/
|
|
149
|
+
export type FileViewerEmits = CoreFileViewerComponentEmits;
|
|
150
|
+
/**
|
|
151
|
+
* `<file-viewer>` 组件实例对外暴露的统一方法集。
|
|
152
|
+
*
|
|
153
|
+
* Vue 模板 ref、文档比对页面、纯 JS 和后续 React / Svelte standard component package
|
|
154
|
+
* 都应围绕这组能力保持同名同语义,避免不同生态出现 API 漂移。
|
|
155
|
+
*/
|
|
156
|
+
export type FileViewerExpose = CoreFileViewerPublicApi;
|
|
157
|
+
/**
|
|
158
|
+
* 预览器通用配置。
|
|
159
|
+
*/
|
|
160
|
+
export type FileViewerOptions = CoreFileViewerOptions;
|
|
161
|
+
/**
|
|
162
|
+
* DOCX 渲染配置。
|
|
163
|
+
*
|
|
164
|
+
* 继承 core 的 DOCX 配置:优先尝试静态 Worker 承载 `docx-preview`
|
|
165
|
+
* 的 ZIP/XML 解析和 HTML 构建,Worker 不可用时回退同一套主线程渲染。
|
|
166
|
+
* 主线程负责挂载、缩放、打印和导出适配,以保持真实渲染结果。
|
|
167
|
+
*/
|
|
168
|
+
export type FileViewerDocxOptions = CoreFileViewerDocxOptions;
|
|
169
|
+
/**
|
|
170
|
+
* 导出/打印模式。
|
|
171
|
+
*/
|
|
172
|
+
export type FileRenderExportMode = CoreFileRenderExportMode;
|
|
173
|
+
/**
|
|
174
|
+
* 渲染器自定义导出上下文。
|
|
175
|
+
*
|
|
176
|
+
* 大多数格式可以直接克隆当前 DOM;PDF 这类虚拟滚动或按需渲染格式
|
|
177
|
+
* 需要在打印前重新生成完整页面,因此允许渲染器注册专属适配器。
|
|
178
|
+
*/
|
|
179
|
+
export type FileRenderExportOptions = CoreFileRenderExportOptions;
|
|
180
|
+
/**
|
|
181
|
+
* 渲染器专属导出适配器。
|
|
182
|
+
*/
|
|
183
|
+
export type FileRenderExportAdapter = CoreFileRenderExportAdapter;
|
|
184
|
+
/**
|
|
185
|
+
* 渲染器可选上下文。
|
|
186
|
+
*
|
|
187
|
+
* 部分格式需要知道原始 URL 的目录,例如 glTF / DAE / FBX 会继续加载
|
|
188
|
+
* 同目录的贴图、bin 或材质文件。没有这些上下文时,渲染器仍应尽力预览
|
|
189
|
+
* 单文件内容,并在资源缺失时给出明确错误。
|
|
190
|
+
*/
|
|
191
|
+
export type FileRenderContext = CoreFileRenderContext;
|
|
192
|
+
/**
|
|
193
|
+
* 文件处理逻辑,用于声明具体格式的异步渲染器。
|
|
194
|
+
*
|
|
195
|
+
* 渲染器只在命中文件扩展名时被按需加载,避免 PDF、OFD、Typst、压缩包、
|
|
196
|
+
* 邮件、CAD、3D、Office 等重型依赖进入无关格式的首屏路径。
|
|
197
|
+
*
|
|
198
|
+
* @param buffer 二进制缓存
|
|
199
|
+
* @param target 目标dom
|
|
200
|
+
* @param type 目标扩展名。部分渲染器会用它选择语言、容错策略或格式提示。
|
|
201
|
+
* @param context 原始文件名、远端 URL 等补充上下文。
|
|
202
|
+
*/
|
|
203
|
+
export type FileHandler = FileRenderHandler<Rendered, HTMLDivElement>;
|
|
204
|
+
/**
|
|
205
|
+
* 文件处理器组合。
|
|
206
|
+
*/
|
|
207
|
+
export type FileHandlerComposite = FileRenderHandlerComposite<Rendered, HTMLDivElement>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FileViewerComponentProps as FileViewerProps } from '@file-viewer/core';
|
|
2
|
+
declare const __VLS_export: import('vue').DefineComponent<FileViewerProps, import('@file-viewer/core').FileViewerPublicApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
3
|
+
"load-start": (context: import('@file-viewer/core').FileViewerLifecycleContext) => any;
|
|
4
|
+
"load-complete": (context: import('@file-viewer/core').FileViewerLifecycleContext) => any;
|
|
5
|
+
"unload-start": (context: import('@file-viewer/core').FileViewerLifecycleContext) => any;
|
|
6
|
+
"unload-complete": (context: import('@file-viewer/core').FileViewerLifecycleContext) => any;
|
|
7
|
+
"search-change": (state: import('@file-viewer/core').FileViewerSearchState) => any;
|
|
8
|
+
"operation-before": (context: import('@file-viewer/core').FileViewerOperationContext) => any;
|
|
9
|
+
"operation-cancel": (context: import('@file-viewer/core').FileViewerOperationContext) => any;
|
|
10
|
+
"operation-availability-change": (availability: import('@file-viewer/core').FileViewerOperationAvailability) => any;
|
|
11
|
+
"location-change": (anchor: import('@file-viewer/core').FileViewerDocumentAnchor | null) => any;
|
|
12
|
+
"zoom-change": (state: import('@file-viewer/core').FileViewerZoomState) => any;
|
|
13
|
+
}, string, import('vue').PublicProps, Readonly<FileViewerProps> & Readonly<{
|
|
14
|
+
"onLoad-start"?: ((context: import('@file-viewer/core').FileViewerLifecycleContext) => any) | undefined;
|
|
15
|
+
"onLoad-complete"?: ((context: import('@file-viewer/core').FileViewerLifecycleContext) => any) | undefined;
|
|
16
|
+
"onUnload-start"?: ((context: import('@file-viewer/core').FileViewerLifecycleContext) => any) | undefined;
|
|
17
|
+
"onUnload-complete"?: ((context: import('@file-viewer/core').FileViewerLifecycleContext) => any) | undefined;
|
|
18
|
+
"onSearch-change"?: ((state: import('@file-viewer/core').FileViewerSearchState) => any) | undefined;
|
|
19
|
+
"onOperation-before"?: ((context: import('@file-viewer/core').FileViewerOperationContext) => any) | undefined;
|
|
20
|
+
"onOperation-cancel"?: ((context: import('@file-viewer/core').FileViewerOperationContext) => any) | undefined;
|
|
21
|
+
"onOperation-availability-change"?: ((availability: import('@file-viewer/core').FileViewerOperationAvailability) => any) | undefined;
|
|
22
|
+
"onLocation-change"?: ((anchor: import('@file-viewer/core').FileViewerDocumentAnchor | null) => any) | undefined;
|
|
23
|
+
"onZoom-change"?: ((state: import('@file-viewer/core').FileViewerZoomState) => any) | undefined;
|
|
24
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
declare const _default: typeof __VLS_export;
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { FileViewerLoadingState, FileViewerStateTheme } from '@file-viewer/core';
|
|
3
|
+
export type LoadingTheme = FileViewerStateTheme;
|
|
4
|
+
export declare const resolveLoadingTheme: (extend?: string) => import('@file-viewer/core').FileViewerLoadingTheme;
|
|
5
|
+
/**
|
|
6
|
+
* FileViewer loading 响应式门面。
|
|
7
|
+
*
|
|
8
|
+
* 真实 loading 状态机和主题矩阵在 `@file-viewer/core` 中维护,
|
|
9
|
+
* 这里仅把纯 TS controller 的快照同步成组件需要的 Vue ref/computed 形态。
|
|
10
|
+
*/
|
|
11
|
+
export declare const useLoading: (extendSource: MaybeRefOrGetter<string>) => {
|
|
12
|
+
loading: import('vue').ComputedRef<boolean>;
|
|
13
|
+
error: import('vue').ComputedRef<string>;
|
|
14
|
+
message: import('vue').ComputedRef<string>;
|
|
15
|
+
theme: import('vue').ComputedRef<{
|
|
16
|
+
accent: string;
|
|
17
|
+
badge: string;
|
|
18
|
+
hint: string;
|
|
19
|
+
label: string;
|
|
20
|
+
soft: string;
|
|
21
|
+
}>;
|
|
22
|
+
styleVars: import('vue').ComputedRef<{
|
|
23
|
+
"--viewer-accent": string;
|
|
24
|
+
"--viewer-soft": string;
|
|
25
|
+
}>;
|
|
26
|
+
startLoading: (nextMessage: string) => FileViewerLoadingState;
|
|
27
|
+
setLoadingMessage: (nextMessage: string) => FileViewerLoadingState;
|
|
28
|
+
stopLoading: () => FileViewerLoadingState;
|
|
29
|
+
showError: (nextMessage: string) => FileViewerLoadingState;
|
|
30
|
+
clearError: () => FileViewerLoadingState;
|
|
31
|
+
resetLoading: () => FileViewerLoadingState;
|
|
32
|
+
syncLoadingState: () => FileViewerLoadingState;
|
|
33
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { FileViewerDocumentAnchor, FileViewerOptions, FileViewerSearchState } from '@file-viewer/core';
|
|
3
|
+
interface UseViewerDocumentFeaturesOptions {
|
|
4
|
+
output: Ref<HTMLDivElement | null>;
|
|
5
|
+
getOptions: () => FileViewerOptions | undefined;
|
|
6
|
+
emitSearchChange: (state: FileViewerSearchState) => void;
|
|
7
|
+
emitLocationChange: (anchor: FileViewerDocumentAnchor | null) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* FileViewer 的文档交互门面。
|
|
11
|
+
*
|
|
12
|
+
* 底层锚点、滚动和文本切片由 core 负责,Vue 侧只保留搜索响应式 hook;
|
|
13
|
+
* 这里负责把这些能力组合成组件对外暴露的 API,并同步搜索/定位状态。
|
|
14
|
+
*/
|
|
15
|
+
export declare const useViewerDocumentFeatures: ({ output, getOptions, emitSearchChange, emitLocationChange }: UseViewerDocumentFeaturesOptions) => {
|
|
16
|
+
refreshDocumentIndex: (options?: import('@file-viewer/core').FileViewerDocumentFeatureActionOptions) => Promise<FileViewerDocumentAnchor[]>;
|
|
17
|
+
clearDocumentState: () => Promise<FileViewerSearchState>;
|
|
18
|
+
getScrollContainer: () => HTMLElement | null;
|
|
19
|
+
searchDocument: (query: string) => Promise<FileViewerSearchState>;
|
|
20
|
+
clearDocumentSearch: () => Promise<FileViewerSearchState>;
|
|
21
|
+
nextSearchResult: () => Promise<FileViewerSearchState>;
|
|
22
|
+
previousSearchResult: () => Promise<FileViewerSearchState>;
|
|
23
|
+
getSearchState: () => FileViewerSearchState;
|
|
24
|
+
collectDocumentAnchors: (options?: import('@file-viewer/core').FileViewerDocumentFeatureActionOptions) => Promise<FileViewerDocumentAnchor[]>;
|
|
25
|
+
scrollToAnchor: (anchor: FileViewerDocumentAnchor | string | number | null | undefined, options?: import('@file-viewer/core').FileViewerDocumentFeatureActionOptions) => Promise<boolean>;
|
|
26
|
+
scrollToLine: (line: number, options?: import('@file-viewer/core').FileViewerDocumentFeatureActionOptions) => Promise<boolean>;
|
|
27
|
+
getDocumentTextChunks: (options?: boolean | import('@file-viewer/core').FileViewerAiOptions) => import('@file-viewer/core').FileViewerDocumentChunk[];
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ComputedRef, Ref, ShallowRef } from 'vue';
|
|
2
|
+
import { FileRenderExportAdapter, FileViewerOperationAvailability, FileViewerOperationType } from '@file-viewer/core';
|
|
3
|
+
interface UseViewerExportOptions {
|
|
4
|
+
activeExportAdapter: ShallowRef<FileRenderExportAdapter | null>;
|
|
5
|
+
currentBuffer: Ref<ArrayBuffer | null>;
|
|
6
|
+
currentFile: Ref<File | null>;
|
|
7
|
+
currentSourceUrl: Ref<string | null>;
|
|
8
|
+
displayFilename: ComputedRef<string>;
|
|
9
|
+
formatErrorMessage: (prefix: string, nextError: unknown) => string;
|
|
10
|
+
operationAvailability: ComputedRef<FileViewerOperationAvailability>;
|
|
11
|
+
output: Ref<HTMLDivElement | null>;
|
|
12
|
+
runBeforeOperation: (operation: FileViewerOperationType) => Promise<boolean>;
|
|
13
|
+
showError: (message: string) => void;
|
|
14
|
+
watermarkInlineStyle: ComputedRef<string>;
|
|
15
|
+
}
|
|
16
|
+
export declare const useViewerExport: ({ activeExportAdapter, currentBuffer, currentFile, currentSourceUrl, displayFilename, formatErrorMessage, operationAvailability, output, runBeforeOperation, showError, watermarkInlineStyle }: UseViewerExportOptions) => import('@file-viewer/core').FileViewerPublicOperationActionHandlers;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FileViewerErrorMessageFormatter, FileViewerFileRef, FileViewerLifecycleComponentEmit, FileViewerLifecycleContext, FileViewerOperationContext, FileViewerOptions } from '@file-viewer/core';
|
|
2
|
+
interface UseViewerLifecycleOptions {
|
|
3
|
+
getOptions: () => FileViewerOptions | undefined;
|
|
4
|
+
getFilename: () => string;
|
|
5
|
+
getBufferSize: () => number | undefined;
|
|
6
|
+
getCurrentFile: () => File | null;
|
|
7
|
+
getCurrentVersion: () => number;
|
|
8
|
+
getFallbackFile: () => FileViewerFileRef | undefined;
|
|
9
|
+
getFallbackUrl: () => string | undefined;
|
|
10
|
+
emitLifecycle: FileViewerLifecycleComponentEmit;
|
|
11
|
+
emitOperationBefore: (context: FileViewerOperationContext) => void;
|
|
12
|
+
emitOperationCancel: (context: FileViewerOperationContext) => void;
|
|
13
|
+
formatErrorMessage: FileViewerErrorMessageFormatter;
|
|
14
|
+
handleLifecycleError: (error: unknown, context: FileViewerLifecycleContext) => void;
|
|
15
|
+
handleOperationError?: (error: unknown, context: FileViewerOperationContext) => void;
|
|
16
|
+
onOperationErrorMessage?: (message: string, context: FileViewerOperationContext) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* FileViewer 组件层的生命周期与操作门面。
|
|
20
|
+
*
|
|
21
|
+
* 纯 TS 协议已经由 `@file-viewer/core` 提供;这里仅把 Vue emit 和组件
|
|
22
|
+
* 当前状态组合起来,保持入口组件更薄。
|
|
23
|
+
*/
|
|
24
|
+
export declare const useViewerLifecycle: ({ getOptions, getFilename, getBufferSize, getCurrentFile, getCurrentVersion, getFallbackFile, getFallbackUrl, emitLifecycle, emitOperationBefore, emitOperationCancel, formatErrorMessage, handleLifecycleError, handleOperationError, onOperationErrorMessage }: UseViewerLifecycleOptions) => import('@file-viewer/core').FileViewerLifecycleFacade;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import { FileViewerStateTheme, FileViewerFileRef as FileRef, FileViewerOptions } from '@file-viewer/core';
|
|
3
|
+
interface UseViewerPresentationOptions {
|
|
4
|
+
filename: Ref<string>;
|
|
5
|
+
getFile: () => FileRef | undefined;
|
|
6
|
+
getUrl: () => string | undefined;
|
|
7
|
+
getOptions: () => FileViewerOptions | undefined;
|
|
8
|
+
}
|
|
9
|
+
interface UseViewerErrorStateOptions {
|
|
10
|
+
currentExtend: ComputedRef<string>;
|
|
11
|
+
error: ComputedRef<string>;
|
|
12
|
+
loadingTheme: ComputedRef<FileViewerStateTheme>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* FileViewer 组件层的展示派生状态门面。
|
|
16
|
+
*
|
|
17
|
+
* 文件名、扩展名、主题和工具栏默认值仍由 core 规则决定;
|
|
18
|
+
* 这里仅把 Vue props/ref 组合成模板和其他 hooks 需要的响应式状态。
|
|
19
|
+
*/
|
|
20
|
+
export declare const useViewerPresentation: ({ filename, getFile, getUrl, getOptions }: UseViewerPresentationOptions) => {
|
|
21
|
+
displayFilename: ComputedRef<string>;
|
|
22
|
+
currentExtend: ComputedRef<string>;
|
|
23
|
+
normalizedToolbar: ComputedRef<import('@file-viewer/core').FileViewerToolbarOptions>;
|
|
24
|
+
viewerTheme: ComputedRef<import('@file-viewer/core').FileViewerThemeMode>;
|
|
25
|
+
formatErrorMessage: import('@file-viewer/core').FileViewerErrorMessageFormatter;
|
|
26
|
+
};
|
|
27
|
+
export declare const useViewerErrorState: ({ currentExtend, error, loadingTheme }: UseViewerErrorStateOptions) => ComputedRef<import('@file-viewer/core').FileViewerStateDescriptor>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FileViewerLifecycleContext } from '@file-viewer/core';
|
|
2
|
+
interface UseViewerPreviewLifecycleOptions {
|
|
3
|
+
getFile: () => unknown;
|
|
4
|
+
getUrl: () => unknown;
|
|
5
|
+
refreshPreview: () => Promise<void> | void;
|
|
6
|
+
cancelPreview: (reason: FileViewerLifecycleContext['reason']) => void;
|
|
7
|
+
resetLoading: () => void;
|
|
8
|
+
stopZoomObserver: () => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* FileViewer 入口组件的预览生命周期绑定。
|
|
12
|
+
*
|
|
13
|
+
* 组件只负责传入当前 source getter 和清理动作;实际加载、取消和缩放状态
|
|
14
|
+
* 仍由各自 hooks/core controller 负责,避免入口继续散落 watch/unmount 细节。
|
|
15
|
+
*/
|
|
16
|
+
export declare const useViewerPreviewLifecycle: ({ getFile, getUrl, refreshPreview, cancelPreview, resetLoading, stopZoomObserver }: UseViewerPreviewLifecycleOptions) => void;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComputedRef } from 'vue';
|
|
2
|
+
import { FileViewerPublicApi as FileViewerExpose, FileViewerOperationAvailability } from '@file-viewer/core';
|
|
3
|
+
interface UseViewerPublicApiOptions extends Omit<FileViewerExpose, 'getOperationAvailability'> {
|
|
4
|
+
operationAvailability: ComputedRef<FileViewerOperationAvailability>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* FileViewer 组件对外实例方法的统一门面。
|
|
8
|
+
*
|
|
9
|
+
* 主组件只负责 `defineExpose`,这里集中维护 ref API 的方法清单和快照语义,
|
|
10
|
+
* 便于后续 React / Svelte / pure JS component package 对齐同一套外部能力。
|
|
11
|
+
*/
|
|
12
|
+
export declare const useViewerPublicApi: ({ operationAvailability, ...api }: UseViewerPublicApiOptions) => FileViewerExpose;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { FileRenderExportAdapter, FileViewerLifecycleContext, FileViewerOptions } from '@file-viewer/core';
|
|
3
|
+
import { FileViewerVueRenderSession } from '../rendererBridge';
|
|
4
|
+
interface UseViewerRenderSurfaceOptions {
|
|
5
|
+
output: Ref<HTMLDivElement | null>;
|
|
6
|
+
getOptions: () => FileViewerOptions | undefined;
|
|
7
|
+
isCurrentRequest: (version: number) => boolean;
|
|
8
|
+
notifyActiveUnloadStart: (reason?: FileViewerLifecycleContext['reason']) => FileViewerLifecycleContext | null;
|
|
9
|
+
notifyActiveUnloadComplete: (context: FileViewerLifecycleContext | null, reason?: FileViewerLifecycleContext['reason']) => void;
|
|
10
|
+
clearActiveDocumentContext: () => void;
|
|
11
|
+
clearDocumentState: () => void;
|
|
12
|
+
refreshDocumentIndex: () => Promise<unknown> | unknown;
|
|
13
|
+
startZoomObserver: () => void;
|
|
14
|
+
stopZoomObserver: () => void;
|
|
15
|
+
clearZoomProvider: () => void;
|
|
16
|
+
refreshZoomProvider: () => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* FileViewer 组件层的渲染面板门面。
|
|
20
|
+
*
|
|
21
|
+
* 它只管理 Vue component package 的 DOM surface、渲染 session 和 export adapter;
|
|
22
|
+
* 具体格式派发仍由 core registry + Vue renderer bridge 完成。
|
|
23
|
+
*/
|
|
24
|
+
export declare const useViewerRenderSurface: ({ output, getOptions, isCurrentRequest, notifyActiveUnloadStart, notifyActiveUnloadComplete, clearActiveDocumentContext, clearDocumentState, refreshDocumentIndex, startZoomObserver, stopZoomObserver, clearZoomProvider, refreshZoomProvider }: UseViewerRenderSurfaceOptions) => {
|
|
25
|
+
destroyRenderSession: (session?: FileViewerVueRenderSession | null | undefined) => void;
|
|
26
|
+
setActiveRenderSession: (session: FileViewerVueRenderSession | null) => import('@file-viewer/core').MutableFileViewerRenderSurfaceState<FileViewerVueRenderSession>;
|
|
27
|
+
clearRenderedContent: (reason?: FileViewerLifecycleContext["reason"]) => import('@file-viewer/core').FileViewerRenderSurfaceClearState<FileViewerVueRenderSession, FileViewerLifecycleContext | null>;
|
|
28
|
+
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string) => Promise<FileViewerVueRenderSession | undefined>;
|
|
29
|
+
activeExportAdapter: import('vue').ShallowRef<FileRenderExportAdapter | null, FileRenderExportAdapter | null>;
|
|
30
|
+
renderedReady: Ref<boolean, boolean>;
|
|
31
|
+
progressiveReady: Ref<boolean, boolean>;
|
|
32
|
+
};
|
|
33
|
+
export {};
|