UNPKG

@vivliostyle/core

Version:

Vivliostyle Core library for HTML+CSS typesetting with EPUB/Web publications support

165 lines (164 loc) 5.28 kB
import * as Base from "./base"; import * as Constants from "./constants"; import * as Epub from "./epub"; import * as Exprs from "./exprs"; import * as Font from "./font"; import * as Task from "./task"; import * as Vgen from "./vgen"; import * as Vtree from "./vtree"; export declare type Action = (p1: Base.JSON) => Task.Result<boolean>; export declare type ViewportSize = { marginLeft: number; marginRight: number; marginTop: number; marginBottom: number; width: number; height: number; }; export declare const VIEWPORT_STATUS_ATTRIBUTE = "data-vivliostyle-viewer-status"; export declare const VIEWPORT_SPREAD_VIEW_ATTRIBUTE = "data-vivliostyle-spread-view"; /** * @enum {string} */ export declare enum PageViewMode { SINGLE_PAGE = "singlePage", SPREAD = "spread", AUTO_SPREAD = "autoSpread" } export declare type SingleDocumentParam = { url: string; startPage: number | null; skipPagesBefore: number | null; }; export declare class AdaptiveViewer { readonly window: Window; readonly viewportElement: HTMLElement; readonly instanceId: string; readonly callbackFn: (p1: Base.JSON) => void; fontMapper: Font.Mapper; kick: () => void; sendCommand: (p1: Base.JSON | string) => void; resizeListener: () => void; hyperlinkListener: Base.EventListener; pageRuleStyleElement: HTMLElement; pageSheetSizeAlreadySet: boolean; renderTask: Task.Task | null; actions: { [key: string]: Action; }; readyState: Constants.ReadyState; packageURL: string[]; opf: Epub.OPFDoc; haveZipMetadata: boolean; touchActive: boolean; touchX: number; touchY: number; needResize: boolean; needRefresh: boolean; viewportSize: ViewportSize | null; currentPage: Vtree.Page; currentSpread: Vtree.Spread | null; pagePosition: Epub.Position | null; fontSize: number; zoom: number; fitToScreen: boolean; pageViewMode: PageViewMode; waitForLoading: boolean; renderAllPages: boolean; pref: Exprs.Preferences; pageSizes: { width: number; height: number; }[]; viewport: Vgen.Viewport | null; opfView: Epub.OPFView; constructor(window: Window, viewportElement: HTMLElement, instanceId: string, callbackFn: (p1: Base.JSON) => void); private init; addLogListeners(): void; private callback; /** * Set readyState and notify to listeners */ setReadyState(readyState: Constants.ReadyState): void; loadPublication(command: Base.JSON): Task.Result<boolean>; loadXML(command: Base.JSON): Task.Result<boolean>; private render; private resolveLength; configure(command: Base.JSON): Task.Result<boolean>; configurePlugins(command: Base.JSON): void; /** * Refresh view when a currently displayed page is replaced (by re-layout * caused by cross reference resolutions) */ pageReplacedListener(evt: Base.Event): void; /** * Iterate through currently displayed pages and do something */ private forCurrentPages; private removePageListeners; /** * Hide current pages (this.currentPage, this.currentSpread) */ private hidePages; private showSinglePage; private showPage; private showSpread; private reportPosition; private createViewport; private resolveSpreadView; private updateSpreadView; private sizeIsGood; private setPageSize; private setPageSizePageRules; removePageSizePageRules(): void; private reset; /** * Show current page or spread depending on the setting * (this.pref.spreadView). * @param sync If true, get the necessary page synchronously (not waiting * another rendering task) */ private showCurrent; setPageZoom(page: Vtree.Page): void; setSpreadZoom(spread: Vtree.Spread): void; /** * @returns adjusted zoom factor */ getAdjustedZoomFactor(pageDimension: { width: number; height: number; }): number; /** * Returns width and height of the spread, including the margin between pages. */ getSpreadDimensions(spread: Vtree.Spread): { width: number; height: number; }; /** * Returns zoom factor corresponding to the specified zoom type. */ queryZoomFactor(type: ZoomType): number; /** * @returns zoom factor to fit inside viewport */ calculateZoomFactorToFitInsideViewPort(pageDimension: { width: number; height: number; }): number; private cancelRenderingTask; resize(): Task.Result<boolean>; private sendLocationNotification; getCurrentPageProgression(): Constants.PageProgression | null; moveTo(command: Base.JSON): Task.Result<boolean>; showTOC(command: Base.JSON): Task.Result<boolean>; runCommand(command: Base.JSON): Task.Result<boolean>; initEmbed(cmd: Base.JSON | string): void; } /** * @enum {string} */ export declare enum ZoomType { FIT_INSIDE_VIEWPORT = "fit inside viewport" } export declare function maybeParse(cmd: any): Base.JSON;