summaryrefslogtreecommitdiff
path: root/lib/epub.js/types/navigation.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/epub.js/types/navigation.d.ts')
-rw-r--r--lib/epub.js/types/navigation.d.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/epub.js/types/navigation.d.ts b/lib/epub.js/types/navigation.d.ts
new file mode 100644
index 0000000..8b4f8a0
--- /dev/null
+++ b/lib/epub.js/types/navigation.d.ts
@@ -0,0 +1,46 @@
+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;
+}