UNPKG

@vivliostyle/core

Version:

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

128 lines (127 loc) 4.93 kB
import * as Base from "./base"; import * as CssCascade from "./css-cascade"; import * as Exprs from "./exprs"; import * as Vgen from "./vgen"; import * as Vtree from "./vtree"; import { Layout } from "./types"; /** * Class representing a reference by target-counter(s). * @param targetId ID of the referenced element (transformed by * DocumentURLTransformer to handle a reference across multiple source * documents) * @param resolved If the reference is already resolved or not */ export declare class TargetCounterReference { readonly targetId: string; resolved: boolean; pageCounters: CssCascade.CounterValues; spineIndex: number; pageIndex: number; constructor(targetId: string, resolved: boolean); equals(other: TargetCounterReference): boolean; /** * Returns if the reference is resolved or not. */ isResolved(): boolean; /** * Marks that this reference is resolved. */ resolve(): void; /** * Marks that this reference is unresolved. */ unresolve(): void; } export declare class CounterStore { readonly documentURLTransformer: Base.DocumentURLTransformer; countersById: { [key: string]: CssCascade.CounterValues; }; pageCountersById: { [key: string]: CssCascade.CounterValues; }; currentPageCounters: CssCascade.CounterValues; previousPageCounters: CssCascade.CounterValues; currentPageCountersStack: CssCascade.CounterValues[]; pageIndicesById: { [key: string]: { spineIndex: number; pageIndex: number; }; }; currentPage: Vtree.Page; newReferencesOfCurrentPage: TargetCounterReference[]; referencesToSolve: TargetCounterReference[]; referencesToSolveStack: TargetCounterReference[][]; unresolvedReferences: { [key: string]: TargetCounterReference[]; }; resolvedReferences: { [key: string]: TargetCounterReference[]; }; private pagesCounterExprs; constructor(documentURLTransformer: Base.DocumentURLTransformer); createCounterListener(baseURL: string): CssCascade.CounterListener; createCounterResolver(baseURL: string, rootScope: Exprs.LexicalScope, pageScope: Exprs.LexicalScope): CssCascade.CounterResolver; setCurrentPage(page: Vtree.Page): void; private definePageCounter; /** * Forcefully set the `page` page-based counter to the specified value. */ forceSetPageCounter(pageNumber: number): void; /** * Update the page-based counters with 'counter-reset' and 'counter-increment' * properties within the page context. Call before starting layout of the * page. */ updatePageCounters(cascadedPageStyle: CssCascade.ElementStyle, context: Exprs.Context): void; /** * Save current page-based counters values and set them to the values passed * in. The saved counter values can be restored by popPageCounters method. */ pushPageCounters(counters: CssCascade.CounterValues): void; /** * Restore previously saved page-based counter values. */ popPageCounters(): void; /** * Resolve a reference with the specified ID. */ resolveReference(id: string): void; /** * Save a reference appeared in the current page. * @param resolved If the reference is already resolved or not. */ saveReferenceOfCurrentPage(id: string, resolved: boolean): void; /** * Finish the current page; elements with ID are collected and saved with * current page-based counter values internally. * @param spineIndex Index of the currently laid out spine item * @param pageIndex Index of the currently laid out page in its spine item */ finishPage(spineIndex: number, pageIndex: number): void; /** * Returns unresolved references pointing to the specified page. */ getUnresolvedRefsToPage(page: Vtree.Page): { spineIndex: number; pageIndex: number; pageCounters: CssCascade.CounterValues; refs: TargetCounterReference[]; }[]; /** * Save current references to solve and set them to the values passed in. * The saved references can be restored by popReferencesToSolve method. */ pushReferencesToSolve(refs: TargetCounterReference[]): void; /** * Restore previously saved references to solve. */ popReferencesToSolve(): void; registerPageCounterExpr(name: string, format: (p1: number[]) => string, expr: Exprs.Val): void; getExprContentListener(): Vtree.ExprContentListener; private exprContentListener; finishLastPage(viewport: Vgen.Viewport): void; createLayoutConstraint(pageIndex: number): Layout.LayoutConstraint; } export declare const PAGES_COUNTER_ATTR = "data-vivliostyle-pages-counter";