UNPKG

@vivliostyle/core

Version:

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

86 lines (85 loc) 2.99 kB
/** * Copyright 2013 Google, Inc. * Copyright 2015 Trim-marks Inc. * Copyright 2019 Vivliostyle Foundation * * Vivliostyle.js is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Vivliostyle.js is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Vivliostyle.js. If not, see <http://www.gnu.org/licenses/>. * * @fileoverview Cfi - Support for EPUB Canonical Fragment Identifiers. */ import * as Base from "./base"; export declare type Position = { node: Node; offset: number; after: boolean; sideBias: string | null; ref: Fragment; }; export declare function getId(node: Node): string | null; export declare function escapeChar(ch: string): string; export declare function escape(str: string): string; export declare function unescapeChar(str: string): string; export declare function unescape(str: string): string; export declare function parseExtVal(extstr: string): string | string[]; export declare function parseExt(extstr: string): { [key: string]: string | string[]; }; export interface Step { appendTo(sb: Base.StringBuffer): void; applyTo(pos: Position): boolean; } export declare class RefStep implements Step { appendTo(sb: Base.StringBuffer): void; /** * @override */ applyTo(pos: Position): boolean; } export declare class ChildStep implements Step { readonly index: number; readonly id: string | null; readonly sideBias: string | null; constructor(index: number, id: string | null, sideBias: string | null); /** * @override */ appendTo(sb: Base.StringBuffer): void; /** * @override */ applyTo(pos: Position): boolean; } export declare class OffsetStep implements Step { readonly offset: number; readonly textBefore: string | null; readonly textAfter: string | null; readonly sideBias: string | null; constructor(offset: number, textBefore: string | null, textAfter: string | null, sideBias: string | null); applyTo(pos: Position): boolean; /** * @override */ appendTo(sb: Base.StringBuffer): void; } export declare class Fragment { steps: Step[]; fromString(fragstr: string): void; navigate(doc: Document): Position; trim(text: string, after: boolean): string; /** * Initialize from a node and an offset. */ prependPathFromNode(node: Node, offset: number, after: boolean, sideBias: string | null): void; toString(): string; }