/** * @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;