@foxycape/core 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kernal/FileLoader.cjs +1 -1
- package/dist/kernal/FileLoader.mjs +1 -1
- package/dist/kernal/Reader.cjs +1 -1
- package/dist/kernal/Reader.mjs +1 -1
- package/dist/kernal/html/geometry.cjs +1 -1
- package/dist/kernal/html/geometry.d.ts +3 -3
- package/dist/kernal/html/geometry.mjs +22 -22
- package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.cjs +1 -1
- package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.mjs +9 -9
- package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
- package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +7 -7
- package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +22 -22
- package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
- package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +13 -13
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
- package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +39 -39
- package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
- package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +8 -8
- package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
- package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +8 -8
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +12 -12
- package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.mjs +10 -10
- package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.cjs +1 -1
- package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.mjs +14 -14
- package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
- package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.d.ts +0 -1
- package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +6 -7
- package/dist/mediaTypes/html/renderer/style/html-content.cjs +4 -0
- package/dist/mediaTypes/html/renderer/style/html-content.mjs +1 -1
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -7
- package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.d.ts +2 -0
- package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +11 -0
- package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +6 -6
- package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +1 -1
- package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +7 -7
- package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.d.ts +7 -1
- package/dist/mediaTypes/pdf/renderer/input/PdfKeyboardController.mjs +24 -24
- package/dist/mediaTypes/pdf/renderer/input/PdfZoomInputController.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/input/PdfZoomInputController.mjs +1 -5
- package/dist/mediaTypes/pdf/renderer/zoom/PdfScalable.cjs +1 -1
- package/dist/mediaTypes/pdf/renderer/zoom/PdfScalable.mjs +11 -5
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/EventNames.cjs"),t=require("../../../kernal/common/uuid.cjs"),n=require("../../../kernal/Options.cjs"),r=require("../../../kernal/Theme.cjs"),i=require("../../../kernal/html/events.cjs"),a=require("./PdfNavPointProvider.cjs"),o=require("./PdfNavPointNavigator.cjs"),s=require("./PdfCoreNavigator.cjs"),c=require("./PdfPagingNavigator.cjs"),l=require("./layout/PdfRendererLayout.cjs"),u=require("./style/PdfThemeApplier.cjs"),d=require("./progress/PdfProgressTracker.cjs"),f=require("./location/PdfDestinationBuilder.cjs"),p=require("./input/PdfDocumentEvents.cjs"),m=require("./input/PdfViewerEvents.cjs"),h=require("./input/PdfZoomInputController.cjs"),g=require("./input/PdfKeyboardController.cjs"),_=require("./documents/PdfDocumentsProvider.cjs"),v=require("./zoom/PdfScalable.cjs");require("../../../pdfjs/legacy/build/pdf.mjs");let y=require("perfect-debounce");var b=class extends _.PdfDocumentsProvider{constructor(t,r,_,b){super(t,r,_,b),this.isRendererReady=!1,this.onScaleChanging=async(e,t)=>{await this.delayApplyCssVariables()},this.delayApplyCssVariables=(0,y.debounce)(async()=>{this.rendererViewport.applyCssVariables()},200),this.onOptionsChange=async e=>{n.isOptionKey(e)&&this.rendererViewport.applyCssVariables()},this.pdfOptions=b,this.layout=new l.PdfRendererLayout(this.pdfViewer,this.owner.events),this.scalable=new v.PdfScalable(this.pdfViewer,this.options),this.themeApplier=new u.PdfThemeApplier(this.readerContainer),this.destinationBuilder=new f.PdfDestinationBuilder(this),this.progressTracker=new d.PdfProgressTracker(this,this.pdfViewer,this.destinationBuilder),this.documentEventBridge=new p.PdfDocumentEvents(this.pdfViewer,this),this.viewerEvents=new m.PdfViewerEvents(this.owner.events,this.eventBus,this,this.pdfViewer);let x=this.getRendererContainer();this.zoomInputController=new h.PdfZoomInputController(this.pdfViewer,x),this.keyboardController=new g.PdfKeyboardController(this.pdfViewer,x),this.keyboardController.setFindRequestHandler(()=>{this.owner.events.emit(e.EventNames.RequestOpenFind)}),this.navPointProvider=new a.PdfNavPointProvider(this),this.navigator=new s.PdfCoreNavigator(this),this.navPointNavigator=new o.PdfNavPointNavigator(this,this.navigator,this.navPointProvider),this.pagingNavigator=new c.PdfPagingNavigator(this.owner.locale,this.owner.notifier,this),this.bindEvents(),i.watchScroll(this.getScrollElement(),this.owner.options.calcScrollDirection,async(t,n)=>{this.owner.events.emit(e.EventNames.ReaderDebounceScroll,t,n)},t=>{this.owner.onProgressChangeGuard&&this.owner.context?.progress?.current&&(this.owner.onProgressChangeGuard(this.owner.context.progress.current)||t.preventDefault()),this.owner.events.emit(e.EventNames.ReaderOriginalScroll,t)})}get id(){return this.currentInstanceId||=t.getRandomId(!0),this.currentInstanceId}async load(e,t){if(!this.isRendererReady){if(await this.ensureRendererReady(),this.options.textLayerMode===2){let{PdfSvgBuilder:e}=await Promise.resolve().then(()=>require("./PdfSvgBuilder.cjs"));this.svgBuilder=new e(this,this.options),await this.svgBuilder.initialize()}this.isRendererReady=!0}await super.load(e,t)}async ensureRendererReady(){let e=await this.owner.services.get(`themeProvider`),t;e?(t=e.getCurrentTheme(),this.themeApplier.applyTheme(t)):t=new r.Theme,this.themeApplier.applyTheme(t),this.rendererViewport.applyCssVariables()}bindEvents(){this.owner.events.on(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.on(e.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.bind(),this.viewerEvents.bind(),this.zoomInputController.bind(),this.keyboardController.bind()}unbindEvents(){this.owner.events.off(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.off(e.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.unbind(),this.viewerEvents.unbind(),this.zoomInputController.unbind(),this.keyboardController.unbind()}buildDest(e,t){return this.destinationBuilder.buildDest(e,t)}async getProgress(e){return this.progressTracker.getProgress(e)}async applyTheme(e){this.themeApplier.applyTheme(e)}async dispose(){this.unbindEvents(),this.currentInstanceId=null,await this.svgBuilder?.dispose(),await this.progressTracker.dispose(),await this.pagingNavigator.dispose(),await this.navPointProvider?.dispose(),await super.dispose()}};exports.PdfRenderer=b;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/EventNames.cjs"),t=require("../../../kernal/common/uuid.cjs"),n=require("../../../kernal/Options.cjs"),r=require("../../../kernal/Theme.cjs"),i=require("../../../kernal/html/events.cjs"),a=require("./PdfNavPointProvider.cjs"),o=require("./PdfNavPointNavigator.cjs"),s=require("./PdfCoreNavigator.cjs"),c=require("./PdfPagingNavigator.cjs"),l=require("./layout/PdfRendererLayout.cjs"),u=require("./style/PdfThemeApplier.cjs"),d=require("./progress/PdfProgressTracker.cjs"),f=require("./location/PdfDestinationBuilder.cjs"),p=require("./input/PdfDocumentEvents.cjs"),m=require("./input/PdfViewerEvents.cjs"),h=require("./input/PdfZoomInputController.cjs"),g=require("./input/PdfKeyboardController.cjs"),_=require("./documents/PdfDocumentsProvider.cjs"),v=require("./zoom/PdfScalable.cjs");require("../../../pdfjs/legacy/build/pdf.mjs");let y=require("perfect-debounce");var b=class extends _.PdfDocumentsProvider{constructor(t,r,_,b){super(t,r,_,b),this.isRendererReady=!1,this.onScaleChanging=async(e,t)=>{await this.delayApplyCssVariables()},this.delayApplyCssVariables=(0,y.debounce)(async()=>{this.rendererViewport.applyCssVariables()},200),this.onOptionsChange=async e=>{n.isOptionKey(e)&&this.rendererViewport.applyCssVariables()},this.pdfOptions=b,this.layout=new l.PdfRendererLayout(this.pdfViewer,this.owner.events),this.scalable=new v.PdfScalable(this.pdfViewer,this.options),this.themeApplier=new u.PdfThemeApplier(this.readerContainer),this.destinationBuilder=new f.PdfDestinationBuilder(this),this.progressTracker=new d.PdfProgressTracker(this,this.pdfViewer,this.destinationBuilder),this.documentEventBridge=new p.PdfDocumentEvents(this.pdfViewer,this),this.viewerEvents=new m.PdfViewerEvents(this.owner.events,this.eventBus,this,this.pdfViewer);let x=this.getRendererContainer();this.zoomInputController=new h.PdfZoomInputController(this.pdfViewer,x),this.keyboardController=new g.PdfKeyboardController(this.pdfViewer,x,this.owner),this.keyboardController.setFindRequestHandler(()=>{this.owner.events.emit(e.EventNames.RequestOpenFind)}),this.navPointProvider=new a.PdfNavPointProvider(this),this.navigator=new s.PdfCoreNavigator(this),this.navPointNavigator=new o.PdfNavPointNavigator(this,this.navigator,this.navPointProvider),this.pagingNavigator=new c.PdfPagingNavigator(this.owner.locale,this.owner.notifier,this),this.bindEvents(),i.watchScroll(this.getScrollElement(),this.owner.options.calcScrollDirection,async(t,n)=>{this.owner.events.emit(e.EventNames.ReaderDebounceScroll,t,n)},t=>{this.owner.onProgressChangeGuard&&this.owner.context?.progress?.current&&(this.owner.onProgressChangeGuard(this.owner.context.progress.current)||t.preventDefault()),this.owner.events.emit(e.EventNames.ReaderOriginalScroll,t)})}get id(){return this.currentInstanceId||=t.getRandomId(!0),this.currentInstanceId}async load(e,t){if(!this.isRendererReady){if(await this.ensureRendererReady(),this.options.textLayerMode===2){let{PdfSvgBuilder:e}=await Promise.resolve().then(()=>require("./PdfSvgBuilder.cjs"));this.svgBuilder=new e(this,this.options),await this.svgBuilder.initialize()}this.isRendererReady=!0}await super.load(e,t)}async ensureRendererReady(){let e=await this.owner.services.get(`themeProvider`),t;e?(t=e.getCurrentTheme(),this.themeApplier.applyTheme(t)):t=new r.Theme,this.themeApplier.applyTheme(t),this.rendererViewport.applyCssVariables()}bindEvents(){this.owner.events.on(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.on(e.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.bind(),this.viewerEvents.bind(),this.zoomInputController.bind(),this.keyboardController.bind()}unbindEvents(){this.owner.events.off(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.off(e.EventNames.PdfScaleChanging,this.onScaleChanging),this.documentEventBridge.unbind(),this.viewerEvents.unbind(),this.zoomInputController.unbind(),this.keyboardController.unbind()}buildDest(e,t){return this.destinationBuilder.buildDest(e,t)}async getProgress(e){return this.progressTracker.getProgress(e)}async applyTheme(e){this.themeApplier.applyTheme(e)}async dispose(){this.unbindEvents(),this.currentInstanceId=null,await this.svgBuilder?.dispose(),await this.progressTracker.dispose(),await this.pagingNavigator.dispose(),await this.navPointProvider?.dispose(),await super.dispose()}};exports.PdfRenderer=b;
|
|
@@ -30,7 +30,7 @@ var b = class extends v {
|
|
|
30
30
|
n(e) && this.rendererViewport.applyCssVariables();
|
|
31
31
|
}, this.pdfOptions = b, this.layout = new u(this.pdfViewer, this.owner.events), this.scalable = new y(this.pdfViewer, this.options), this.themeApplier = new d(this.readerContainer), this.destinationBuilder = new p(this), this.progressTracker = new f(this, this.pdfViewer, this.destinationBuilder), this.documentEventBridge = new m(this.pdfViewer, this), this.viewerEvents = new h(this.owner.events, this.eventBus, this, this.pdfViewer);
|
|
32
32
|
let x = this.getRendererContainer();
|
|
33
|
-
this.zoomInputController = new g(this.pdfViewer, x), this.keyboardController = new _(this.pdfViewer, x), this.keyboardController.setFindRequestHandler(() => {
|
|
33
|
+
this.zoomInputController = new g(this.pdfViewer, x), this.keyboardController = new _(this.pdfViewer, x, this.owner), this.keyboardController.setFindRequestHandler(() => {
|
|
34
34
|
this.owner.events.emit(e.RequestOpenFind);
|
|
35
35
|
}), this.navPointProvider = new o(this), this.navigator = new c(this), this.navPointNavigator = new s(this, this.navigator, this.navPointProvider), this.pagingNavigator = new l(this.owner.locale, this.owner.notifier, this), this.bindEvents(), a(this.getScrollElement(), this.owner.options.calcScrollDirection, async (t, n) => {
|
|
36
36
|
this.owner.events.emit(e.ReaderDebounceScroll, t, n);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../../kernal/EventNames.cjs"),n=require("../../../../kernal/common/text.cjs"),r=require("../../../../kernal/html/finder.cjs"),i=require("../../../../kernal/html/injector.cjs"),a=require("../../../../kernal/Theme.cjs"),o=require("
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../../kernal/EventNames.cjs"),n=require("../../../../kernal/common/text.cjs"),r=require("../../../../kernal/html/finder.cjs"),i=require("../../../../kernal/html/injector.cjs"),a=require("../../../../kernal/Theme.cjs"),o=require("../../../base/renderer/BaseDocumentsProvider.cjs"),s=require("../../../../kernal/html/style.cjs"),c=require("../PdfViewerBuilder.cjs"),l=require("./resolvePdfLocationPageNumber.cjs"),u=require("../PdfDocument.cjs"),d=require("../layout/PdfRendererViewport.cjs");let f=require("../../../../pdfjs/legacy/build/pdf.mjs");f=e.__toESM(f,1);let p=require("../../../../pdfjs/legacy/web/pdf_viewer.mjs");p=e.__toESM(p,1),require("../../../../pdfjs/legacy/web/pdf_viewer.css");let m=require("perfect-debounce");var h=class extends o.BaseDocumentsProvider{constructor(e,i,a,o){super(e,i),this.readerContainer=a,this.options=o,this.isInit=!1,this.isFirstLoad=!0,this.pdfDocument=null,this.isEngineInitialized=!1,this.delayOnAutoScaleResize=(0,m.debounce)(async()=>{await this.onAutoScaleResize()},100),this.resize=async()=>{this.eventBus.dispatch(`resize`,{source:this.readerContainer.ownerDocument.defaultView})},this.fillDocuments=()=>{this.documentItems=[],this.pdfViewer._pages.forEach(e=>{let t=e.spineFile?.url,n=new u.PdfDocument(this.owner,this.pdfViewer,this.fileParser,e.div,t,e.id);this.documentItems.push(n)})},this.reload=async()=>{let e=this.owner.context.currentLocation;n.isNullOrWhiteSpace(e?.url)||await this.load(e,!0)},this.getSinglePdfPage=async(e,t)=>{let n=await this.fileParser.getPdfDocument(e);return{doc:n,page:await n.getPage(t)}},this.delayRedirect=async()=>{let e=this.owner.context.currentLocation;await this.redirect(e),this.isFirstLoad=!1,this.owner.events.off(t.EventNames.PdfPagesInit,this.delayRedirect)},this.redirect=async e=>{if(!e?.current)return;let t=e.current<1?Math.floor(e.current*this.numberOfPages):e.current;await this.gotoPageInternal(t,e.pdfDest,e.offsetTop,e?.ignoreOverlayHeader)},this.pageLoaded=(e,n)=>{let i=this.owner.context.currentLocation,a=r.getElementByNameAndIndex(e.getContentContainer(),i.tagName,i.tagIndex);this.gotoTargetElement(a,i),this.owner.events.off(t.EventNames.PdfPageTextRendered,this.pageLoaded),this.owner.events.emit(t.EventNames.PdfLoadFinished,{reader:this.owner})},this.gotoTargetElement=(e,t)=>{if(!e)return;s.scrollElementIntoView(e,void 0,void 0,this.owner.getRootContainer()?.ownerDocument);let n=0;if(t?.offsetTop&&(n+=t.offsetTop),n<=0)return;let r=this.getScrollElement();r.scrollHeight-r.scrollTop-r.clientHeight>0&&r.scrollTo(0,r.scrollTop-n)},this.setCurrentPageNumber=e=>{let t=this.pdfViewer,n=t.currentPageNumber;t.currentPageNumber=e;let r=t.currentScaleValue;this.options.resetScaleAfterPageChanged&&n!=e&&(r==`auto`||r==`page-fit`||r==`page-width`)&&(t.hasEqualPageSizes||t.rescrollIntoView(e))},this.logger=this.owner.loggerFactory.getLogger(this.constructor.name),this.rendererViewport=new d.PdfRendererViewport(e.getRootContainer(),a,this.options,()=>this.currentPage,()=>this.removePageBorders);let l=this.rendererViewport.getRendererContainer(),{pdfViewer:f,eventBus:p,linkService:h,findController:g,maxCanvasPixels:_,removePageBorders:v}=new c.PdfViewerBuilder(this.options).build(l);this.pdfViewer=f,this.eventBus=p,this.linkService=h,this.findController=g,this.maxCanvasPixels=_,this.removePageBorders=v}getViewerContainer(){return this.rendererViewport.getViewerContainer()}getEventBus(){return this.eventBus}getFindController(){return this.findController}getRendererContainer(){return this.rendererViewport.getRendererContainer()}getScrollElement(){return this.rendererViewport.getScrollElement()}hasPdfDocument(){return!!this.pdfDocument}async getProgress(e){}registerContainerResizeObserver(){this.containerResizeObserver||(this.containerResizeObserver&&=(this.containerResizeObserver.disconnect(),void 0),this.containerResizeObserver=new ResizeObserver(async e=>{if(this.owner.context){if(this.readerContainer.clientWidth==0||this.readerContainer.clientHeight==0){this.readerContainer.foxycape_document_hidden&&(this.readerContainer.foxycape_document_require_resize=`true`),this.readerContainer.foxycape_document_hidden=`true`;return}if(this.readerContainer.clientWidth>0&&this.readerContainer.clientHeight>0&&this.readerContainer.foxycape_document_hidden){if(this.readerContainer.foxycape_document_hidden=void 0,!this.readerContainer.foxycape_document_require_resize)return;this.readerContainer.foxycape_document_require_resize=void 0}this.owner.context.setUserChangedProgress(!1),(this.pdfViewer.currentScaleValue==`auto`||this.pdfViewer.currentScaleValue==`page-fit`||this.pdfViewer.currentScaleValue==`page-width`)&&!this.isFirstLoad&&await this.delayOnAutoScaleResize(),this.rendererViewport.applyCssVariables(),this.owner.context&&this.owner.events.emit(t.EventNames.RendererContainerSizeChange,this.getRendererContainer(),this.owner.context.userChangedProgress)}}),this.containerResizeObserver.observe(this.readerContainer))}async onAutoScaleResize(){let e=this.getRendererContainer();this.owner.resourceIsUnload||e.clientWidth==0||e.clientHeight==0||await this.resize()}async createDocument(e,t,n){let r=n+1;return new u.PdfDocument(this.owner,this.pdfViewer,this.fileParser,e,t.url,r)}async load(e,n){let r=this.owner.context;if(!r||this.owner.disposed)return;let i=!0;try{if(r.setUserChangedProgress(!n,e?.from),r.currentLocation=e,e?.storeCurrent&&await this.owner.onBeforeRedirect?.(this),!this.isInit){this.owner.events.on(t.EventNames.PdfPagesInit,this.delayRedirect),await this.loadEngine(async()=>{this.fillDocuments(),this.isInit=!0,this.registerContainerResizeObserver()}),this.getRendererContainer().focus();return}if(!this.owner.context||this.owner.disposed){i=!1;return}i=await this.navigateToLocation(e)}finally{i&&this.owner.context&&!this.owner.disposed&&this.owner.events.emit(t.EventNames.PdfLoadFinished,{reader:this.owner})}}async navigateToLocation(e){if(e?.url&&e.tagName&&e.tagIndex!=null){let n=this.getDocument(e.url),i=r.getElementByNameAndIndex(n.getContentContainer(),e.tagName,e.tagIndex);return i?(this.gotoTargetElement(i,e),!0):(this.owner.events.on(t.EventNames.PdfPageTextRendered,this.pageLoaded),!1)}let n=this.resolvePageNumber(e);return n==null||await this.gotoPageInternal(n,e?.pdfDest,e?.offsetTop,e?.ignoreOverlayHeader),!0}resolvePageNumber(e){return l.resolvePdfLocationPageNumber(e,this.numberOfPages,e=>{let t=this.getDocument(e);return t?this.getDocuments().indexOf(t)+1:null})}async initializeEngine(){if(this.isEngineInitialized)return;let e=`.pdfViewer .canvasWrapper{position:absolute;left:0;top:0}
|
|
2
2
|
.pdfViewer .page {background-color:var(${a.Theme.ContentBackground}) !important}`;i.injectCssContent(this.getRendererContainer().ownerDocument,e,!1,`custom-pdf-viewer-page-css`),this.eventBus.on(`pagesinit`,async()=>{!this.pdfViewer.currentScaleValue&&this.options.scaleValue&&(this.pdfViewer.currentScaleValue=this.options.scaleValue)}),this.isEngineInitialized=!0}async loadEngine(e){await this.closeEngine(),await this.initializeEngine();let n=await this.fileParser.getEntryFile(),r=await this.fileParser.getPdfDocument(n);if(this.pdfDocument=r,!this.fileParser.isMultiFiles){this.setPdfDocument(this.pdfDocument),await this.pdfDocument.getPage(1),this.pdfViewer.firstPagePromise&&await this.pdfViewer.firstPagePromise,e&&await e(),this.owner.events.emit(t.EventNames.PdfPagesInit,this);return}let i=await this.fileParser.getSpineFiles();if(this.setPdfDocument(this.pdfDocument,!1),this.pdfViewer.firstPagePromise){let e=await this.pdfViewer.firstPagePromise,t=this.pdfViewer._pages[0];if(t&&(t.spineFile=n),i.length>0){let t=e.getViewport({scale:this.pdfViewer.currentScale*f.PixelsPerInch.PDF_TO_CSS_UNITS}),n=this.createSpinePageViews(this.getViewerContainer(),i,t);await this.pdfViewer.setOtherPages(n,this.getSinglePdfPage)}}e&&await e(),this.owner.events.emit(t.EventNames.PdfPagesInit,this)}setPdfDocument(e,t=!0){this.pdfViewer.setDocument(e),t&&(e?(this.linkService.setDocument(e),this.findController.setDocument(e)):(this.linkService.setDocument(null,null),this.findController.setDocument(null)))}createSpinePageViews(e,t,n){let r=[];for(let i=2;i<t.length+1;i++){let a=new p.PDFPageView({container:e,eventBus:this.eventBus,id:i,scale:this.pdfViewer.currentScale,defaultViewport:n.clone(),renderingQueue:this.pdfViewer.renderingQueue,textLayerMode:+(this.options.textLayerMode==1),annotationMode:this.options.annotationMode,maxCanvasPixels:this.maxCanvasPixels});a.spineFile=t[i-1],r.push(a)}return r}async closeEngine(){this.pdfDocument&&(this.pdfDocument=null,this.setPdfDocument(null))}get numberOfPages(){return this.pdfViewer.pagesCount}get currentPage(){return this.pdfViewer?.currentPageNumber}set currentPage(e){this.setCurrentPageNumber(e)}setCurrentPage(e,t=!0){if(!t){this.pdfViewer._setCurrentPageNumber?.(e,!1);return}this.setCurrentPageNumber(e)}get isSpreadMode(){return this.pdfViewer?.spreadMode!==p.SpreadMode.NONE}async scrollToPage(e,t,n,r){if(t){let i=JSON.parse(t);if(this.pdfViewer.scrollPageIntoView({pageNumber:e,destArray:i,allowNegativeOffset:!0,ignoreDestinationZoom:!0}),this.getRendererContainer().scrollHeight>this.getRendererContainer().clientHeight+10){let e=0;if(r||(e+=this.owner.options.redirectPositionOffset),n&&(e+=n),e>0){let t=this.getScrollElement();t.scrollTo(0,t.scrollTop-e)}}}else this.setCurrentPageNumber(e)}async gotoPageInternal(e,t,n,r){let i=this.owner.locale;return e<=0?(this.owner.notifier.info(i.getText(`navigotor_alreadyisfirstpage`,`Already at the first page`)),!1):e>this.numberOfPages?(this.owner.notifier.info(i.getText(`navigotor_alreadyislastpage`,`You have reached the end of the book.`)),!1):(t?.indexOf(`Fit`)>=0?await this.scrollToPage(e,null,n,r):await this.scrollToPage(e,t,n,r),!0)}getLoadedDocuments(){let e=Array.from(this.pdfViewer.getCachedPageViews().values()).map(e=>e.id);return this.documentItems.filter(t=>e.includes(t.pageNumber))}getVisibleDocuments(){let e=this.pdfViewer._getVisiblePages(),t=Array.from(e.views.map(e=>e.id));return this.documentItems.filter(e=>t.includes(e.pageNumber))}getPageViews(){return this.pdfViewer._pages}getPageView(e){if(!(e<1))return this.pdfViewer.getPageView(e-1)}async getPdfPage(e){return!this.pdfDocument||e<1||e>this.numberOfPages?void 0:this.getPageView(e)?.pdfPage||this.pdfDocument.getPage(e)}async dispose(){this.owner.events.off(t.EventNames.PdfPagesInit,this.delayRedirect),this.owner.events.off(t.EventNames.PdfPageTextRendered,this.pageLoaded),this.containerResizeObserver?.disconnect(),this.containerResizeObserver=void 0,await this.closeEngine(),await this.pdfViewer.dispose(),await super.dispose()}};exports.PdfDocumentsProvider=h;
|
|
@@ -4,8 +4,8 @@ import { getElementByNameAndIndex as n } from "../../../../kernal/html/finder.mj
|
|
|
4
4
|
import { injectCssContent as r } from "../../../../kernal/html/injector.mjs";
|
|
5
5
|
import { Theme as i } from "../../../../kernal/Theme.mjs";
|
|
6
6
|
import { asyncDebounce as a } from "../../../../kernal/web/debounce.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { BaseDocumentsProvider as o } from "../../../base/renderer/BaseDocumentsProvider.mjs";
|
|
8
|
+
import { scrollElementIntoView as s } from "../../../../kernal/html/style.mjs";
|
|
9
9
|
import { PdfViewerBuilder as c } from "../PdfViewerBuilder.mjs";
|
|
10
10
|
import { resolvePdfLocationPageNumber as l } from "./resolvePdfLocationPageNumber.mjs";
|
|
11
11
|
import { PdfDocument as u } from "../PdfDocument.mjs";
|
|
@@ -14,9 +14,9 @@ import * as f from "../../../../pdfjs/legacy/build/pdf.mjs";
|
|
|
14
14
|
import * as p from "../../../../pdfjs/legacy/web/pdf_viewer.mjs";
|
|
15
15
|
import "../../../../pdfjs/legacy/web/pdf_viewer.css";
|
|
16
16
|
//#region mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.ts
|
|
17
|
-
var m = class extends
|
|
18
|
-
constructor(r, i,
|
|
19
|
-
super(r, i), this.readerContainer =
|
|
17
|
+
var m = class extends o {
|
|
18
|
+
constructor(r, i, o, l) {
|
|
19
|
+
super(r, i), this.readerContainer = o, this.options = l, this.isInit = !1, this.isFirstLoad = !0, this.pdfDocument = null, this.isEngineInitialized = !1, this.delayOnAutoScaleResize = a(async () => {
|
|
20
20
|
await this.onAutoScaleResize();
|
|
21
21
|
}, 100), this.resize = async () => {
|
|
22
22
|
this.eventBus.dispatch("resize", { source: this.readerContainer.ownerDocument.defaultView });
|
|
@@ -46,7 +46,7 @@ var m = class extends s {
|
|
|
46
46
|
this.gotoTargetElement(a, i), this.owner.events.off(e.PdfPageTextRendered, this.pageLoaded), this.owner.events.emit(e.PdfLoadFinished, { reader: this.owner });
|
|
47
47
|
}, this.gotoTargetElement = (e, t) => {
|
|
48
48
|
if (!e) return;
|
|
49
|
-
|
|
49
|
+
s(e, void 0, void 0, this.owner.getRootContainer()?.ownerDocument);
|
|
50
50
|
let n = 0;
|
|
51
51
|
if (t?.offsetTop && (n += t.offsetTop), n <= 0) return;
|
|
52
52
|
let r = this.getScrollElement();
|
|
@@ -56,7 +56,7 @@ var m = class extends s {
|
|
|
56
56
|
t.currentPageNumber = e;
|
|
57
57
|
let r = t.currentScaleValue;
|
|
58
58
|
this.options.resetScaleAfterPageChanged && n != e && (r == "auto" || r == "page-fit" || r == "page-width") && (t.hasEqualPageSizes || t.rescrollIntoView(e));
|
|
59
|
-
}, this.logger = this.owner.loggerFactory.getLogger(this.constructor.name), this.rendererViewport = new d(r.getRootContainer(),
|
|
59
|
+
}, this.logger = this.owner.loggerFactory.getLogger(this.constructor.name), this.rendererViewport = new d(r.getRootContainer(), o, this.options, () => this.currentPage, () => this.removePageBorders);
|
|
60
60
|
let f = this.rendererViewport.getRendererContainer(), { pdfViewer: p, eventBus: m, linkService: h, findController: g, maxCanvasPixels: _, removePageBorders: v } = new c(this.options).build(f);
|
|
61
61
|
this.pdfViewer = p, this.eventBus = m, this.linkService = h, this.findController = g, this.maxCanvasPixels = _, this.removePageBorders = v;
|
|
62
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../_virtual/_rolldown/runtime.cjs");let
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../../ReaderHub.cjs");let n=require("../../../../pdfjs/legacy/build/pdf.mjs");n=e.__toESM(n,1);var r=class{constructor(e,n,r){this.pdfViewer=e,this.container=n,this.reader=r,this.zoomWindow=null,this.webViewerClick=e=>{},this.webViewerKeyDown=e=>{let{pdfViewer:t}=this,n=t.isInPresentationMode,r=!1,i=!1,a=!!e.ctrlKey|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0),o=this.getActiveOrFocusedElement(),s=o?.tagName?.toUpperCase()??``;if(a===1||a===8||a===5||a===12)switch(e.keyCode){case 70:e.shiftKey||(r=!0,this.findRequestHandler?.());break;case 71:break;case 38:(n||t.currentPageNumber>1)&&(t.currentPageNumber=1,r=!0,i=!0);break;case 40:(n||t.currentPageNumber<t.pagesCount)&&(t.currentPageNumber=t.pagesCount,r=!0,i=!0)}let c=0,l=!1;if(a===0||a===4&&!n)switch(e.keyCode){case 38:case 33:t.isVerticalScrollbarEnabled?c=-1:(n||a===4&&t.currentScaleValue!==`page-fit`)&&(c=-1,l=a===0);break;case 37:t.isHorizontalScrollbarEnabled&&(c=-1);break;case 40:case 34:t.isVerticalScrollbarEnabled?c=1:(n||a===4&&t.currentScaleValue!==`page-fit`)&&(c=1,l=a===0);break;case 39:t.isHorizontalScrollbarEnabled&&(c=1);break;case 36:(n||t.currentPageNumber>1)&&(t.currentPageNumber=1,r=!0,i=!0);break;case 35:(n||t.currentPageNumber<t.pagesCount)&&(t.currentPageNumber=t.pagesCount,r=!0,i=!0);break;case 32:c=e.shiftKey?-1:1}if(a===4)switch(e.keyCode){case 13:case 32:if(!n&&t.currentScaleValue!==`page-fit`)break;t.previousPage(),r=!0}c!==0&&(!l||t.currentScaleValue===`page-fit`)&&(c>0?t.nextPage():t.previousPage(),r=!0),!r&&!n&&(e.keyCode>=33&&e.keyCode<=40||e.keyCode===32&&s!==`BUTTON`)&&(i=!0),i&&!t.containsElement(o)&&t.focus(),r&&e.preventDefault()},this.onZoomShortcut=e=>{let t=i(e);if(!t||this.pdfViewer.isInPresentationMode||!this.isFocusedReader()||!this.isViewerOnScreen())return;e.preventDefault(),e.stopPropagation();let n=this.pdfViewer.currentScale;t===`in`?this.pdfViewer.increaseScale({drawingDelay:400}):t===`out`?this.pdfViewer.decreaseScale({drawingDelay:400}):this.pdfViewer.currentScaleValue=`auto`,this.pdfViewer.adjustScrollForViewportCenter(n)},this.isFocusedReader=()=>(t.ReaderHub.getFocusReader()??t.ReaderHub.getActiveReader())?.id===this.reader.id,this.isViewerOnScreen=()=>{if(!this.container.isConnected)return!1;let e=this.container.getBoundingClientRect();return e.width>0&&e.height>0},this.getActiveOrFocusedElement=()=>{let e=this.container.ownerDocument,t=e.activeElement||e.querySelector(`:focus`);for(;t?.shadowRoot;)e=t.shadowRoot,t=e.activeElement||e.querySelector(`:focus`);return t}}bind(){this.container.addEventListener(`click`,this.webViewerClick),this.container.addEventListener(`keydown`,this.webViewerKeyDown);let e=this.container.ownerDocument.defaultView;e&&(this.zoomWindow=e,e.addEventListener(`keydown`,this.onZoomShortcut,!0))}unbind(){this.container.removeEventListener(`click`,this.webViewerClick),this.container.removeEventListener(`keydown`,this.webViewerKeyDown),this.zoomWindow?.removeEventListener(`keydown`,this.onZoomShortcut,!0),this.zoomWindow=null}setFindRequestHandler(e){this.findRequestHandler=e}get supportsIntegratedFind(){return n.shadow(this,`supportsIntegratedFind`,!0)}},i=e=>{if(e.altKey||!(e.ctrlKey||e.metaKey))return null;let t=e.key,n=e.code;return t===`+`||t===`=`||n===`Equal`||n===`NumpadAdd`||e.keyCode===61||e.keyCode===107||e.keyCode===187||e.keyCode===171?`in`:t===`-`||t===`_`||n===`Minus`||n===`NumpadSubtract`||e.keyCode===173||e.keyCode===109||e.keyCode===189?`out`:t===`0`||n===`Digit0`||n===`Numpad0`||e.keyCode===48||e.keyCode===96?`reset`:null};exports.PdfKeyboardController=r;
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
+
import { Reader } from '../../../../kernal/Reader';
|
|
1
2
|
import { MultiPDFViewer } from '../MultiPdfViewer';
|
|
2
3
|
|
|
3
4
|
export type PdfFindRequestHandler = () => void;
|
|
4
5
|
export declare class PdfKeyboardController {
|
|
5
6
|
private readonly pdfViewer;
|
|
6
7
|
private readonly container;
|
|
8
|
+
private readonly reader;
|
|
7
9
|
private findRequestHandler?;
|
|
8
|
-
|
|
10
|
+
private zoomWindow;
|
|
11
|
+
constructor(pdfViewer: MultiPDFViewer, container: HTMLDivElement, reader: Reader);
|
|
9
12
|
bind(): void;
|
|
10
13
|
unbind(): void;
|
|
11
14
|
setFindRequestHandler(handler?: PdfFindRequestHandler): void;
|
|
12
15
|
get supportsIntegratedFind(): any;
|
|
13
16
|
private webViewerClick;
|
|
14
17
|
private webViewerKeyDown;
|
|
18
|
+
private onZoomShortcut;
|
|
19
|
+
private isFocusedReader;
|
|
20
|
+
private isViewerOnScreen;
|
|
15
21
|
private getActiveOrFocusedElement;
|
|
16
22
|
}
|
|
@@ -1,31 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ReaderHub as e } from "../../../../ReaderHub.mjs";
|
|
2
|
+
import * as t from "../../../../pdfjs/legacy/build/pdf.mjs";
|
|
2
3
|
//#region mediaTypes/pdf/renderer/input/PdfKeyboardController.ts
|
|
3
|
-
var
|
|
4
|
-
constructor(
|
|
5
|
-
this.pdfViewer =
|
|
4
|
+
var n = class {
|
|
5
|
+
constructor(t, n, i) {
|
|
6
|
+
this.pdfViewer = t, this.container = n, this.reader = i, this.zoomWindow = null, this.webViewerClick = (e) => {}, this.webViewerKeyDown = (e) => {
|
|
6
7
|
let { pdfViewer: t } = this, n = t.isInPresentationMode, r = !1, i = !1, a = !!e.ctrlKey | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0), o = this.getActiveOrFocusedElement(), s = o?.tagName?.toUpperCase() ?? "";
|
|
7
8
|
if (a === 1 || a === 8 || a === 5 || a === 12) switch (e.keyCode) {
|
|
8
9
|
case 70:
|
|
9
10
|
e.shiftKey || (r = !0, this.findRequestHandler?.());
|
|
10
11
|
break;
|
|
11
12
|
case 71: break;
|
|
12
|
-
case 61:
|
|
13
|
-
case 107:
|
|
14
|
-
case 187:
|
|
15
|
-
case 171:
|
|
16
|
-
n || t.increaseScale({ drawingDelay: 400 }), r = !0;
|
|
17
|
-
break;
|
|
18
|
-
case 173:
|
|
19
|
-
case 109:
|
|
20
|
-
case 189:
|
|
21
|
-
n || t.decreaseScale({ drawingDelay: 400 }), r = !0;
|
|
22
|
-
break;
|
|
23
|
-
case 48:
|
|
24
|
-
case 96:
|
|
25
|
-
n || (setTimeout(() => {
|
|
26
|
-
t.currentScaleValue = "auto";
|
|
27
|
-
}), r = !1);
|
|
28
|
-
break;
|
|
29
13
|
case 38:
|
|
30
14
|
(n || t.currentPageNumber > 1) && (t.currentPageNumber = 1, r = !0, i = !0);
|
|
31
15
|
break;
|
|
@@ -62,6 +46,16 @@ var t = class {
|
|
|
62
46
|
t.previousPage(), r = !0;
|
|
63
47
|
}
|
|
64
48
|
c !== 0 && (!l || t.currentScaleValue === "page-fit") && (c > 0 ? t.nextPage() : t.previousPage(), r = !0), !r && !n && (e.keyCode >= 33 && e.keyCode <= 40 || e.keyCode === 32 && s !== "BUTTON") && (i = !0), i && !t.containsElement(o) && t.focus(), r && e.preventDefault();
|
|
49
|
+
}, this.onZoomShortcut = (e) => {
|
|
50
|
+
let t = r(e);
|
|
51
|
+
if (!t || this.pdfViewer.isInPresentationMode || !this.isFocusedReader() || !this.isViewerOnScreen()) return;
|
|
52
|
+
e.preventDefault(), e.stopPropagation();
|
|
53
|
+
let n = this.pdfViewer.currentScale;
|
|
54
|
+
t === "in" ? this.pdfViewer.increaseScale({ drawingDelay: 400 }) : t === "out" ? this.pdfViewer.decreaseScale({ drawingDelay: 400 }) : this.pdfViewer.currentScaleValue = "auto", this.pdfViewer.adjustScrollForViewportCenter(n);
|
|
55
|
+
}, this.isFocusedReader = () => (e.getFocusReader() ?? e.getActiveReader())?.id === this.reader.id, this.isViewerOnScreen = () => {
|
|
56
|
+
if (!this.container.isConnected) return !1;
|
|
57
|
+
let e = this.container.getBoundingClientRect();
|
|
58
|
+
return e.width > 0 && e.height > 0;
|
|
65
59
|
}, this.getActiveOrFocusedElement = () => {
|
|
66
60
|
let e = this.container.ownerDocument, t = e.activeElement || e.querySelector(":focus");
|
|
67
61
|
for (; t?.shadowRoot;) e = t.shadowRoot, t = e.activeElement || e.querySelector(":focus");
|
|
@@ -70,16 +64,22 @@ var t = class {
|
|
|
70
64
|
}
|
|
71
65
|
bind() {
|
|
72
66
|
this.container.addEventListener("click", this.webViewerClick), this.container.addEventListener("keydown", this.webViewerKeyDown);
|
|
67
|
+
let e = this.container.ownerDocument.defaultView;
|
|
68
|
+
e && (this.zoomWindow = e, e.addEventListener("keydown", this.onZoomShortcut, !0));
|
|
73
69
|
}
|
|
74
70
|
unbind() {
|
|
75
|
-
this.container.removeEventListener("click", this.webViewerClick), this.container.removeEventListener("keydown", this.webViewerKeyDown);
|
|
71
|
+
this.container.removeEventListener("click", this.webViewerClick), this.container.removeEventListener("keydown", this.webViewerKeyDown), this.zoomWindow?.removeEventListener("keydown", this.onZoomShortcut, !0), this.zoomWindow = null;
|
|
76
72
|
}
|
|
77
73
|
setFindRequestHandler(e) {
|
|
78
74
|
this.findRequestHandler = e;
|
|
79
75
|
}
|
|
80
76
|
get supportsIntegratedFind() {
|
|
81
|
-
return
|
|
77
|
+
return t.shadow(this, "supportsIntegratedFind", !0);
|
|
82
78
|
}
|
|
79
|
+
}, r = (e) => {
|
|
80
|
+
if (e.altKey || !(e.ctrlKey || e.metaKey)) return null;
|
|
81
|
+
let t = e.key, n = e.code;
|
|
82
|
+
return t === "+" || t === "=" || n === "Equal" || n === "NumpadAdd" || e.keyCode === 61 || e.keyCode === 107 || e.keyCode === 187 || e.keyCode === 171 ? "in" : t === "-" || t === "_" || n === "Minus" || n === "NumpadSubtract" || e.keyCode === 173 || e.keyCode === 109 || e.keyCode === 189 ? "out" : t === "0" || n === "Digit0" || n === "Numpad0" || e.keyCode === 48 || e.keyCode === 96 ? "reset" : null;
|
|
83
83
|
};
|
|
84
84
|
//#endregion
|
|
85
|
-
export {
|
|
85
|
+
export { n as PdfKeyboardController };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../_virtual/_rolldown/runtime.cjs");let t=require("../../../../pdfjs/legacy/build/pdf.mjs");t=e.__toESM(t,1);var n=class{constructor(e,n){this.pdfViewer=e,this.container=n,this.WHEEL_ZOOM_DISABLED_TIMEOUT=1e3,this.zoomDisabledTimeout=null,this.isCtrlKeyDown=!1,this._wheelUnusedTicks=0,this._wheelUnusedFactor=1,this._touchInfo=null,this._touchUnusedTicks=0,this._touchUnusedFactor=1,this.falsePassiveOpts={passive:!1},this.onKeyDown=e=>{e.key===`Control`&&(this.isCtrlKeyDown=!0)},this.onKeyUp=e=>{e.key===`Control`&&(this.isCtrlKeyDown=!1)},this.setZoomDisabledTimeout=()=>{this.zoomDisabledTimeout&&clearTimeout(this.zoomDisabledTimeout),this.zoomDisabledTimeout=setTimeout(()=>{this.zoomDisabledTimeout=null},this.WHEEL_ZOOM_DISABLED_TIMEOUT)},this.webViewerVisibilityChange=()=>{document.visibilityState===`visible`&&this.setZoomDisabledTimeout()},this.webViewerWheel=e=>{if(this.pdfViewer.isInPresentationMode)return;let n=e.deltaMode,r=Math.exp(-e.deltaY/100),i=t.FeatureTest.platform.isMac,a=e.ctrlKey&&!this.isCtrlKeyDown&&n===WheelEvent.DOM_DELTA_PIXEL&&e.deltaX===0&&(Math.abs(r-1)<.05||i)&&e.deltaZ===0;if(a||e.ctrlKey&&this.supportedMouseWheelZoomModifierKeys.ctrlKey||e.metaKey&&this.supportedMouseWheelZoomModifierKeys.metaKey){if(e.preventDefault(),this.zoomDisabledTimeout||document.visibilityState===`hidden`)return;let t=this.pdfViewer.currentScale;if(a&&this.supportsPinchToZoom){if(r=this._accumulateFactor(t,r,`_wheelUnusedFactor`),r<1)this.pdfViewer.decreaseScale({drawingDelay:400,scaleFactor:r});else if(r>1)this.pdfViewer.increaseScale({drawingDelay:400,scaleFactor:r});else return}else{let t=this.normalizeWheelEventDirection(e),r=0;if(r=n===WheelEvent.DOM_DELTA_LINE||n===WheelEvent.DOM_DELTA_PAGE?Math.abs(t)>=1?Math.sign(t):this._accumulateTicks(t,`_wheelUnusedTicks`):this._accumulateTicks(t/100,`_wheelUnusedTicks`),r<0)this.pdfViewer.decreaseScale({drawingDelay:400,steps:-r});else if(r>0)this.pdfViewer.increaseScale({drawingDelay:400,steps:r});else return}this._centerAtPos(t,e.clientX,e.clientY)}else this.setZoomDisabledTimeout()},this.webViewerTouchStart=e=>{if(this.pdfViewer.isInPresentationMode||e.touches.length<2)return;if(e.preventDefault(),e.touches.length!==2){this._touchInfo=null;return}let[t,n]=[e.touches[0],e.touches[1]];t.identifier>n.identifier&&([t,n]=[n,t]),this._touchInfo={touch0X:t.pageX,touch0Y:t.pageY,touch1X:n.pageX,touch1Y:n.pageY}},this.webViewerTouchMove=e=>{if(!this._touchInfo||e.touches.length!==2)return;let[t,n]=[e.touches[0],e.touches[1]];t.identifier>n.identifier&&([t,n]=[n,t]);let{pageX:r,pageY:i}=t,{pageX:a,pageY:o}=n,{touch0X:s,touch0Y:c,touch1X:l,touch1Y:u}=this._touchInfo;if(Math.abs(s-r)<=1&&Math.abs(c-i)<=1&&Math.abs(l-a)<=1&&Math.abs(u-o)<=1)return;if(this._touchInfo.touch0X=r,this._touchInfo.touch0Y=i,this._touchInfo.touch1X=a,this._touchInfo.touch1Y=o,s===r&&c===i){let e=l-r,t=u-i,n=a-r,s=o-i,c=e*s-t*n;if(Math.abs(c)>.02*Math.hypot(e,t)*Math.hypot(n,s))return}else if(l===a&&u===o){let e=s-a,t=c-o,n=r-a,l=i-o,u=e*l-t*n;if(Math.abs(u)>.02*Math.hypot(e,t)*Math.hypot(n,l))return}else{let e=r-s,t=a-l,n=i-c,d=o-u;if(e*t+n*d>=0)return}e.preventDefault();let d=Math.hypot(r-a,i-o)||1,f=Math.hypot(s-l,c-u)||1,p=this.pdfViewer.currentScale;if(this.supportsPinchToZoom){let e=this._accumulateFactor(p,d/f,`_touchUnusedFactor`);if(e<1)this.pdfViewer.decreaseScale({drawingDelay:400,scaleFactor:e});else if(e>1)this.pdfViewer.increaseScale({drawingDelay:400,scaleFactor:e});else return}else{let e=this._accumulateTicks((d-f)/30,`_touchUnusedTicks`);if(e<0)this.pdfViewer.decreaseScale({drawingDelay:400,steps:-e});else if(e>0)this.pdfViewer.increaseScale({drawingDelay:400,steps:e});else return}this._centerAtPos(p,(r+a)/2,(i+o)/2)},this.webViewerTouchEnd=e=>{this._touchInfo&&(e.preventDefault(),this._touchInfo=null,this._touchUnusedTicks=0,this._touchUnusedFactor=1)},this._accumulateTicks=(e,t)=>{(this[t]>0&&e<0||this[t]<0&&e>0)&&(this[t]=0),this[t]+=e;let n=Math.trunc(this[t]);return this[t]-=n,n},this._accumulateFactor=(e,t,n)=>{if(t===1)return 1;(this[n]>1&&t<1||this[n]<1&&t>1)&&(this[n]=1);let r=Math.floor(e*t*this[n]*100)/(100*e);return this[n]=t/r,r},this._centerAtPos=(e,t,n)=>{
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../_virtual/_rolldown/runtime.cjs");let t=require("../../../../pdfjs/legacy/build/pdf.mjs");t=e.__toESM(t,1);var n=class{constructor(e,n){this.pdfViewer=e,this.container=n,this.WHEEL_ZOOM_DISABLED_TIMEOUT=1e3,this.zoomDisabledTimeout=null,this.isCtrlKeyDown=!1,this._wheelUnusedTicks=0,this._wheelUnusedFactor=1,this._touchInfo=null,this._touchUnusedTicks=0,this._touchUnusedFactor=1,this.falsePassiveOpts={passive:!1},this.onKeyDown=e=>{e.key===`Control`&&(this.isCtrlKeyDown=!0)},this.onKeyUp=e=>{e.key===`Control`&&(this.isCtrlKeyDown=!1)},this.setZoomDisabledTimeout=()=>{this.zoomDisabledTimeout&&clearTimeout(this.zoomDisabledTimeout),this.zoomDisabledTimeout=setTimeout(()=>{this.zoomDisabledTimeout=null},this.WHEEL_ZOOM_DISABLED_TIMEOUT)},this.webViewerVisibilityChange=()=>{document.visibilityState===`visible`&&this.setZoomDisabledTimeout()},this.webViewerWheel=e=>{if(this.pdfViewer.isInPresentationMode)return;let n=e.deltaMode,r=Math.exp(-e.deltaY/100),i=t.FeatureTest.platform.isMac,a=e.ctrlKey&&!this.isCtrlKeyDown&&n===WheelEvent.DOM_DELTA_PIXEL&&e.deltaX===0&&(Math.abs(r-1)<.05||i)&&e.deltaZ===0;if(a||e.ctrlKey&&this.supportedMouseWheelZoomModifierKeys.ctrlKey||e.metaKey&&this.supportedMouseWheelZoomModifierKeys.metaKey){if(e.preventDefault(),this.zoomDisabledTimeout||document.visibilityState===`hidden`)return;let t=this.pdfViewer.currentScale;if(a&&this.supportsPinchToZoom){if(r=this._accumulateFactor(t,r,`_wheelUnusedFactor`),r<1)this.pdfViewer.decreaseScale({drawingDelay:400,scaleFactor:r});else if(r>1)this.pdfViewer.increaseScale({drawingDelay:400,scaleFactor:r});else return}else{let t=this.normalizeWheelEventDirection(e),r=0;if(r=n===WheelEvent.DOM_DELTA_LINE||n===WheelEvent.DOM_DELTA_PAGE?Math.abs(t)>=1?Math.sign(t):this._accumulateTicks(t,`_wheelUnusedTicks`):this._accumulateTicks(t/100,`_wheelUnusedTicks`),r<0)this.pdfViewer.decreaseScale({drawingDelay:400,steps:-r});else if(r>0)this.pdfViewer.increaseScale({drawingDelay:400,steps:r});else return}this._centerAtPos(t,e.clientX,e.clientY)}else this.setZoomDisabledTimeout()},this.webViewerTouchStart=e=>{if(this.pdfViewer.isInPresentationMode||e.touches.length<2)return;if(e.preventDefault(),e.touches.length!==2){this._touchInfo=null;return}let[t,n]=[e.touches[0],e.touches[1]];t.identifier>n.identifier&&([t,n]=[n,t]),this._touchInfo={touch0X:t.pageX,touch0Y:t.pageY,touch1X:n.pageX,touch1Y:n.pageY}},this.webViewerTouchMove=e=>{if(!this._touchInfo||e.touches.length!==2)return;let[t,n]=[e.touches[0],e.touches[1]];t.identifier>n.identifier&&([t,n]=[n,t]);let{pageX:r,pageY:i}=t,{pageX:a,pageY:o}=n,{touch0X:s,touch0Y:c,touch1X:l,touch1Y:u}=this._touchInfo;if(Math.abs(s-r)<=1&&Math.abs(c-i)<=1&&Math.abs(l-a)<=1&&Math.abs(u-o)<=1)return;if(this._touchInfo.touch0X=r,this._touchInfo.touch0Y=i,this._touchInfo.touch1X=a,this._touchInfo.touch1Y=o,s===r&&c===i){let e=l-r,t=u-i,n=a-r,s=o-i,c=e*s-t*n;if(Math.abs(c)>.02*Math.hypot(e,t)*Math.hypot(n,s))return}else if(l===a&&u===o){let e=s-a,t=c-o,n=r-a,l=i-o,u=e*l-t*n;if(Math.abs(u)>.02*Math.hypot(e,t)*Math.hypot(n,l))return}else{let e=r-s,t=a-l,n=i-c,d=o-u;if(e*t+n*d>=0)return}e.preventDefault();let d=Math.hypot(r-a,i-o)||1,f=Math.hypot(s-l,c-u)||1,p=this.pdfViewer.currentScale;if(this.supportsPinchToZoom){let e=this._accumulateFactor(p,d/f,`_touchUnusedFactor`);if(e<1)this.pdfViewer.decreaseScale({drawingDelay:400,scaleFactor:e});else if(e>1)this.pdfViewer.increaseScale({drawingDelay:400,scaleFactor:e});else return}else{let e=this._accumulateTicks((d-f)/30,`_touchUnusedTicks`);if(e<0)this.pdfViewer.decreaseScale({drawingDelay:400,steps:-e});else if(e>0)this.pdfViewer.increaseScale({drawingDelay:400,steps:e});else return}this._centerAtPos(p,(r+a)/2,(i+o)/2)},this.webViewerTouchEnd=e=>{this._touchInfo&&(e.preventDefault(),this._touchInfo=null,this._touchUnusedTicks=0,this._touchUnusedFactor=1)},this._accumulateTicks=(e,t)=>{(this[t]>0&&e<0||this[t]<0&&e>0)&&(this[t]=0),this[t]+=e;let n=Math.trunc(this[t]);return this[t]-=n,n},this._accumulateFactor=(e,t,n)=>{if(t===1)return 1;(this[n]>1&&t<1||this[n]<1&&t>1)&&(this[n]=1);let r=Math.floor(e*t*this[n]*100)/(100*e);return this[n]=t/r,r},this._centerAtPos=(e,t,n)=>{this.pdfViewer.adjustScrollForScaleOrigin(e,t,n)},this.normalizeWheelEventDirection=e=>{let t=Math.hypot(e.deltaX,e.deltaY),n=Math.atan2(e.deltaY,e.deltaX);return-.25*Math.PI<n&&n<.75*Math.PI&&(t=-t),t}}bind(){this.container.addEventListener(`visibilitychange`,this.webViewerVisibilityChange),this.container.addEventListener(`wheel`,this.webViewerWheel,this.falsePassiveOpts),this.container.addEventListener(`touchstart`,this.webViewerTouchStart,this.falsePassiveOpts),this.container.addEventListener(`touchmove`,this.webViewerTouchMove,this.falsePassiveOpts),this.container.addEventListener(`touchend`,this.webViewerTouchEnd,this.falsePassiveOpts),this.container.addEventListener(`keydown`,this.onKeyDown),this.container.addEventListener(`keyup`,this.onKeyUp)}unbind(){this.container.removeEventListener(`visibilitychange`,this.webViewerVisibilityChange),this.container.removeEventListener(`wheel`,this.webViewerWheel,this.falsePassiveOpts),this.container.removeEventListener(`touchstart`,this.webViewerTouchStart,this.falsePassiveOpts),this.container.removeEventListener(`touchmove`,this.webViewerTouchMove,this.falsePassiveOpts),this.container.removeEventListener(`touchend`,this.webViewerTouchEnd,this.falsePassiveOpts),this.container.removeEventListener(`keydown`,this.onKeyDown),this.container.removeEventListener(`keyup`,this.onKeyUp),this.zoomDisabledTimeout&&=(clearTimeout(this.zoomDisabledTimeout),null),this.isCtrlKeyDown=!1}get supportsPinchToZoom(){return t.shadow(this,`supportsPinchToZoom`,!0)}get supportedMouseWheelZoomModifierKeys(){return t.shadow(this,`supportedMouseWheelZoomModifierKeys`,{ctrlKey:!0,metaKey:!0})}};exports.PdfZoomInputController=n;
|
|
@@ -109,11 +109,7 @@ var t = class {
|
|
|
109
109
|
let r = Math.floor(e * t * this[n] * 100) / (100 * e);
|
|
110
110
|
return this[n] = t / r, r;
|
|
111
111
|
}, this._centerAtPos = (e, t, n) => {
|
|
112
|
-
|
|
113
|
-
if (r !== 0) {
|
|
114
|
-
let [e, i] = this.pdfViewer.containerTopLeft;
|
|
115
|
-
this.pdfViewer.container.scrollLeft += (t - i) * r, this.pdfViewer.container.scrollTop += (n - e) * r;
|
|
116
|
-
}
|
|
112
|
+
this.pdfViewer.adjustScrollForScaleOrigin(e, t, n);
|
|
117
113
|
}, this.normalizeWheelEventDirection = (e) => {
|
|
118
114
|
let t = Math.hypot(e.deltaX, e.deltaY), n = Math.atan2(e.deltaY, e.deltaX);
|
|
119
115
|
return -.25 * Math.PI < n && n < .75 * Math.PI && (t = -t), t;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{constructor(e,t){this.pdfViewer=e,this.options=t,this.DEFAULT_SCALE_VALUE=`auto`,this.PRESET_SCALE_VALUES=new Set([`auto`,`page-actual`,`page-fit`,`page-width`,`page-height`]),this.formatScaleValue=e=>{if(!e||this.PRESET_SCALE_VALUES.has(e)||e.endsWith(`%`))return e;let t=Number(e);return Number.isFinite(t)&&t>0?`${Math.round(t*100)}%`:e},this.persistScaleValue=async()=>{let e=this.currentScaleValue;e&&(this.options.scaleValue=e)}}get currentScaleValue(){return this.formatScaleValue(this.pdfViewer?.currentScaleValue)}get currentScale(){return this.pdfViewer.currentScale}async scaleTo(e){this.pdfViewer.currentScaleValue=e,await this.persistScaleValue()}async zoomIn(e,t){this.pdfViewer.isInPresentationMode
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{constructor(e,t){this.pdfViewer=e,this.options=t,this.DEFAULT_SCALE_VALUE=`auto`,this.PRESET_SCALE_VALUES=new Set([`auto`,`page-actual`,`page-fit`,`page-width`,`page-height`]),this.formatScaleValue=e=>{if(!e||this.PRESET_SCALE_VALUES.has(e)||e.endsWith(`%`))return e;let t=Number(e);return Number.isFinite(t)&&t>0?`${Math.round(t*100)}%`:e},this.persistScaleValue=async()=>{let e=this.currentScaleValue;e&&(this.options.scaleValue=e)}}get currentScaleValue(){return this.formatScaleValue(this.pdfViewer?.currentScaleValue)}get currentScale(){return this.pdfViewer.currentScale}async scaleTo(e){this.pdfViewer.currentScaleValue=e,await this.persistScaleValue()}async zoomIn(e,t){if(this.pdfViewer.isInPresentationMode)return;let n=this.pdfViewer.currentScale;this.pdfViewer.increaseScale({drawingDelay:400,steps:e,scaleFactor:t}),this.pdfViewer.adjustScrollForViewportCenter(n),await this.persistScaleValue()}async zoomOut(e,t){if(this.pdfViewer.isInPresentationMode)return;let n=this.pdfViewer.currentScale;this.pdfViewer.decreaseScale({drawingDelay:400,steps:e,scaleFactor:t}),this.pdfViewer.adjustScrollForViewportCenter(n),await this.persistScaleValue()}async zoomReset(){if(this.pdfViewer.isInPresentationMode)return;let e=this.pdfViewer.currentScale;await this.scaleTo(this.DEFAULT_SCALE_VALUE),this.pdfViewer.adjustScrollForViewportCenter(e)}};exports.PdfScalable=e;
|
|
@@ -26,21 +26,27 @@ var e = class {
|
|
|
26
26
|
this.pdfViewer.currentScaleValue = e, await this.persistScaleValue();
|
|
27
27
|
}
|
|
28
28
|
async zoomIn(e, t) {
|
|
29
|
-
this.pdfViewer.isInPresentationMode
|
|
29
|
+
if (this.pdfViewer.isInPresentationMode) return;
|
|
30
|
+
let n = this.pdfViewer.currentScale;
|
|
31
|
+
this.pdfViewer.increaseScale({
|
|
30
32
|
drawingDelay: 400,
|
|
31
33
|
steps: e,
|
|
32
34
|
scaleFactor: t
|
|
33
|
-
}), await this.persistScaleValue()
|
|
35
|
+
}), this.pdfViewer.adjustScrollForViewportCenter(n), await this.persistScaleValue();
|
|
34
36
|
}
|
|
35
37
|
async zoomOut(e, t) {
|
|
36
|
-
this.pdfViewer.isInPresentationMode
|
|
38
|
+
if (this.pdfViewer.isInPresentationMode) return;
|
|
39
|
+
let n = this.pdfViewer.currentScale;
|
|
40
|
+
this.pdfViewer.decreaseScale({
|
|
37
41
|
drawingDelay: 400,
|
|
38
42
|
steps: e,
|
|
39
43
|
scaleFactor: t
|
|
40
|
-
}), await this.persistScaleValue()
|
|
44
|
+
}), this.pdfViewer.adjustScrollForViewportCenter(n), await this.persistScaleValue();
|
|
41
45
|
}
|
|
42
46
|
async zoomReset() {
|
|
43
|
-
this.pdfViewer.isInPresentationMode
|
|
47
|
+
if (this.pdfViewer.isInPresentationMode) return;
|
|
48
|
+
let e = this.pdfViewer.currentScale;
|
|
49
|
+
await this.scaleTo(this.DEFAULT_SCALE_VALUE), this.pdfViewer.adjustScrollForViewportCenter(e);
|
|
44
50
|
}
|
|
45
51
|
};
|
|
46
52
|
//#endregion
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foxycape/core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"description": "Browser-side multi-format reader kernel with pluggable parsers, renderers, services, and plugins.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"homepage": "https://www.
|
|
7
|
+
"homepage": "https://www.keepcape.com",
|
|
8
8
|
"bugs": {
|
|
9
9
|
"url": "https://github.com/foxycape/core/issues"
|
|
10
10
|
},
|