pdfjs-dist
Version:
Generic build of Mozilla's PDF.js library.
145 lines (112 loc) • 3.42 kB
JavaScript
/**
* @licstart The following is the entire license notice for the
* Javascript code in this page
*
* Copyright 2021 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @licend The above is the entire license notice for the
* Javascript code in this page
*/
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PDFSinglePageViewer = void 0;
var _base_viewer = require("./base_viewer.js");
var _pdf = require("../pdf");
class PDFSinglePageViewer extends _base_viewer.BaseViewer {
constructor(options) {
super(options);
this.eventBus._on("pagesinit", evt => {
this._ensurePageViewVisible();
});
}
get _viewerElement() {
return (0, _pdf.shadow)(this, "_viewerElement", this._shadowViewer);
}
get _pageWidthScaleFactor() {
return 1;
}
_resetView() {
super._resetView();
this._previousPageNumber = 1;
this._shadowViewer = document.createDocumentFragment();
this._updateScrollDown = null;
}
_ensurePageViewVisible() {
const pageView = this._pages[this._currentPageNumber - 1];
const previousPageView = this._pages[this._previousPageNumber - 1];
const viewerNodes = this.viewer.childNodes;
switch (viewerNodes.length) {
case 0:
this.viewer.appendChild(pageView.div);
break;
case 1:
if (viewerNodes[0] !== previousPageView.div) {
throw new Error("_ensurePageViewVisible: Unexpected previously visible page.");
}
if (pageView === previousPageView) {
break;
}
this._shadowViewer.appendChild(previousPageView.div);
this.viewer.appendChild(pageView.div);
this.container.scrollTop = 0;
break;
default:
throw new Error("_ensurePageViewVisible: Only one page should be visible at a time.");
}
this._previousPageNumber = this._currentPageNumber;
}
_scrollUpdate() {
if (this._updateScrollDown) {
this._updateScrollDown();
}
super._scrollUpdate();
}
_scrollIntoView({
pageDiv,
pageSpot = null,
pageNumber = null
}) {
if (pageNumber) {
this._setCurrentPageNumber(pageNumber);
}
const scrolledDown = this._currentPageNumber >= this._previousPageNumber;
this._ensurePageViewVisible();
this.update();
super._scrollIntoView({
pageDiv,
pageSpot,
pageNumber
});
this._updateScrollDown = () => {
this.scroll.down = scrolledDown;
this._updateScrollDown = null;
};
}
_getVisiblePages() {
return this._getCurrentVisiblePage();
}
_updateHelper(visiblePages) {}
get _isScrollModeHorizontal() {
return (0, _pdf.shadow)(this, "_isScrollModeHorizontal", false);
}
_updateScrollMode() {}
_updateSpreadMode() {}
_getPageAdvance() {
return 1;
}
}
exports.PDFSinglePageViewer = PDFSinglePageViewer;