mirror of
https://github.com/futurepress/epub.js.git
synced 2025-10-02 14:49:16 +02:00
46 lines
990 B
TypeScript
46 lines
990 B
TypeScript
export interface NavItem {
|
|
id: string,
|
|
href: string,
|
|
label: string,
|
|
subitems?: Array<NavItem>,
|
|
parent?: string
|
|
}
|
|
|
|
export interface LandmarkItem {
|
|
href?: string,
|
|
label?: string,
|
|
type?: string
|
|
}
|
|
|
|
export default class Navigation {
|
|
constructor(xml: XMLDocument);
|
|
|
|
toc: Array<NavItem>;
|
|
landmarks: Array<LandmarkItem>;
|
|
|
|
parse(xml: XMLDocument): void;
|
|
|
|
get(target: string) : NavItem;
|
|
|
|
landmark(type: string) : LandmarkItem;
|
|
|
|
load(json: string): Array<NavItem>;
|
|
|
|
forEach(fn: (item: NavItem) => {}): any;
|
|
|
|
private unpack(toc: Array<NavItem>): void;
|
|
|
|
private parseNav(navHtml: XMLDocument): Array<NavItem>;
|
|
|
|
private navItem(item: Element): NavItem;
|
|
|
|
private parseLandmarks(navHtml: XMLDocument): Array<LandmarkItem>;
|
|
|
|
private landmarkItem(item: Element): LandmarkItem;
|
|
|
|
private parseNcx(navHtml: XMLDocument): Array<NavItem>;
|
|
|
|
private ncxItem(item: Element): NavItem;
|
|
|
|
private getByIndex(target: string, index: number, navItems: NavItem[]): NavItem;
|
|
}
|