@d-i-t-a/reader 2.1.0-alpha.2 → 2.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +52 -3
  2. package/dist/esm/index.js +48628 -0
  3. package/dist/esm/index.js.map +7 -0
  4. package/dist/injectables/click/click.js +1774 -2
  5. package/dist/injectables/click/click.js.map +7 -1
  6. package/dist/injectables/mui/script.js +205 -0
  7. package/dist/injectables/mui/style.css +271 -0
  8. package/dist/injectables/style/linefocus.css +55 -0
  9. package/dist/injectables/style/popover.css +125 -0
  10. package/dist/injectables/style/popup.css +121 -0
  11. package/dist/injectables/style/style.css +255 -0
  12. package/dist/injectables/style/toast.css +76 -0
  13. package/dist/reader.css +178 -87
  14. package/dist/reader.js +128 -3
  15. package/dist/reader.js.map +7 -1
  16. package/dist/reader.map.css +21 -0
  17. package/dist/types/index.d.ts +7 -0
  18. package/dist/{model → types/model}/Link.d.ts +2 -1
  19. package/dist/{model → types/model}/Locator.d.ts +3 -18
  20. package/dist/types/model/Publication.d.ts +51 -0
  21. package/dist/{model → types/model}/user-settings/ReadiumCSS.d.ts +0 -0
  22. package/dist/{model → types/model}/user-settings/UserProperties.d.ts +10 -4
  23. package/dist/{model → types/model}/user-settings/UserSettings.d.ts +23 -23
  24. package/dist/{modules → types/modules}/AnnotationModule.d.ts +31 -19
  25. package/dist/types/modules/BookmarkModule.d.ts +57 -0
  26. package/dist/types/modules/ReaderModule.d.ts +2 -0
  27. package/dist/types/modules/TTS/TTSModule2.d.ts +74 -0
  28. package/dist/{modules → types/modules}/TTS/TTSSettings.d.ts +44 -20
  29. package/dist/types/modules/citation/CitationModule.d.ts +40 -0
  30. package/dist/{modules → types/modules}/highlight/HtmlElementSelector.d.ts +0 -0
  31. package/dist/types/modules/highlight/LayerSettings.d.ts +19 -0
  32. package/dist/{modules → types/modules}/highlight/TextHighlighter.d.ts +68 -61
  33. package/dist/{modules → types/modules}/highlight/common/document.d.ts +0 -0
  34. package/dist/{modules → types/modules}/highlight/common/events.d.ts +0 -0
  35. package/dist/types/modules/highlight/common/highlight.d.ts +71 -0
  36. package/dist/{modules → types/modules}/highlight/common/rect-utils.d.ts +2 -2
  37. package/dist/{modules → types/modules}/highlight/common/selection.d.ts +8 -3
  38. package/dist/{modules → types/modules}/highlight/renderer/common/cssselector.d.ts +0 -0
  39. package/dist/{modules → types/modules}/highlight/renderer/common/cssselector2.d.ts +0 -0
  40. package/dist/{modules → types/modules}/highlight/renderer/iframe/selection.d.ts +2 -2
  41. package/dist/{modules → types/modules}/highlight/renderer/iframe/state.d.ts +0 -3
  42. package/dist/types/modules/history/HistoryModule.d.ts +34 -0
  43. package/dist/types/modules/linefocus/LineFocusModule.d.ts +51 -0
  44. package/dist/{modules → types/modules}/mediaoverlays/MediaOverlayModule.d.ts +19 -14
  45. package/dist/{modules → types/modules}/mediaoverlays/MediaOverlaySettings.d.ts +21 -16
  46. package/dist/types/modules/pagebreak/PageBreakModule.d.ts +30 -0
  47. package/dist/{modules → types/modules}/positions/TimelineModule.d.ts +3 -3
  48. package/dist/{modules → types/modules}/protection/ContentProtectionModule.d.ts +14 -10
  49. package/dist/types/modules/sampleread/SampleReadEventHandler.d.ts +8 -0
  50. package/dist/types/modules/search/DefinitionsModule.d.ts +52 -0
  51. package/dist/types/modules/search/Popup.d.ts +10 -0
  52. package/dist/{modules → types/modules}/search/SearchModule.d.ts +22 -18
  53. package/dist/{modules → types/modules}/search/searchWithDomSeek.d.ts +1 -1
  54. package/dist/{navigator → types/navigator}/IFrameNavigator.d.ts +99 -74
  55. package/dist/{navigator → types/navigator}/Navigator.d.ts +0 -0
  56. package/dist/types/reader.d.ts +202 -0
  57. package/dist/types/store/Annotator.d.ts +25 -0
  58. package/dist/types/store/LocalAnnotator.d.ts +31 -0
  59. package/dist/{store → types/store}/LocalStorageStore.d.ts +3 -3
  60. package/dist/{store → types/store}/MemoryStore.d.ts +3 -3
  61. package/dist/types/store/Store.d.ts +6 -0
  62. package/dist/{utils → types/utils}/BrowserUtilities.d.ts +0 -0
  63. package/dist/types/utils/EventHandler.d.ts +23 -0
  64. package/dist/{utils → types/utils}/HTMLTemplates.d.ts +0 -0
  65. package/dist/{utils → types/utils}/HTMLUtilities.d.ts +3 -3
  66. package/dist/{utils → types/utils}/IconLib.d.ts +1 -0
  67. package/dist/{utils → types/utils}/JsonUtil.d.ts +0 -0
  68. package/dist/types/utils/KeyboardEventHandler.d.ts +10 -0
  69. package/dist/{utils → types/utils}/TouchEventHandler.d.ts +4 -1
  70. package/dist/types/utils/index.d.ts +6 -0
  71. package/dist/{views → types/views}/BookView.d.ts +10 -7
  72. package/dist/{views → types/views}/FixedBookView.d.ts +8 -4
  73. package/dist/{views → types/views}/ReflowableBookView.d.ts +7 -5
  74. package/package.json +54 -25
  75. package/NOTICE +0 -20
  76. package/dist/index.d.ts +0 -61
  77. package/dist/injectables/click/click.d.ts +0 -1
  78. package/dist/injectables/footnotes/footnotes.d.ts +0 -1
  79. package/dist/injectables/footnotes/footnotes.js +0 -2
  80. package/dist/injectables/footnotes/footnotes.js.map +0 -1
  81. package/dist/injectables/glossary/glossary.d.ts +0 -5
  82. package/dist/injectables/glossary/glossary.js +0 -3
  83. package/dist/injectables/glossary/glossary.js.LICENSE.txt +0 -6
  84. package/dist/injectables/glossary/glossary.js.map +0 -1
  85. package/dist/material.css +0 -4637
  86. package/dist/material.css.map +0 -30
  87. package/dist/model/MediaOverlayNode.d.ts +0 -3
  88. package/dist/model/Publication.d.ts +0 -26
  89. package/dist/modules/BookmarkModule.d.ts +0 -46
  90. package/dist/modules/ReaderModule.d.ts +0 -3
  91. package/dist/modules/TTS/TTSModule.d.ts +0 -58
  92. package/dist/modules/highlight/common/highlight.d.ts +0 -19
  93. package/dist/modules/highlight/common/styles.d.ts +0 -35
  94. package/dist/modules/syncnarration/SyncSettings.d.ts +0 -67
  95. package/dist/modules/syncnarration/SynchronizedNarrationModule.d.ts +0 -81
  96. package/dist/modules/syncnarration/renderer/media-overlays.d.ts +0 -0
  97. package/dist/reader.css.map +0 -21
  98. package/dist/reader.js.LICENSE.txt +0 -66
  99. package/dist/store/Annotator.d.ts +0 -25
  100. package/dist/store/LocalAnnotator.d.ts +0 -31
  101. package/dist/store/Store.d.ts +0 -6
  102. package/dist/utils/EventHandler.d.ts +0 -9
  103. package/dist/utils/KeyboardEventHandler.d.ts +0 -7
  104. package/dist/utils/decodeURI.d.ts +0 -1
@@ -1,6 +1,6 @@
1
1
  import { Publication } from "../../model/Publication";
2
- import IFrameNavigator from "../../navigator/IFrameNavigator";
3
- import ReaderModule from "../ReaderModule";
2
+ import { IFrameNavigator } from "../../navigator/IFrameNavigator";
3
+ import { ReaderModule } from "../ReaderModule";
4
4
  import { Link } from "../../model/Link";
5
5
  import { MediaOverlayNode } from "r2-shared-js/dist/es6-es2015/src/models/media-overlay";
6
6
  import { MediaOverlaySettings } from "./MediaOverlaySettings";
@@ -17,46 +17,49 @@ export interface MediaOverlayModuleProperties {
17
17
  autoScroll?: boolean;
18
18
  autoTurn?: boolean;
19
19
  volume?: number;
20
+ rate?: number;
20
21
  wait?: number;
22
+ hideLayer?: boolean;
21
23
  }
22
24
  export interface MediaOverlayModuleConfig extends MediaOverlayModuleProperties {
23
25
  publication: Publication;
24
26
  delegate: IFrameNavigator;
25
- api: MediaOverlayModuleAPI;
26
27
  settings: MediaOverlaySettings;
28
+ api?: MediaOverlayModuleAPI;
27
29
  }
28
- export default class MediaOverlayModule implements ReaderModule {
30
+ export declare class MediaOverlayModule implements ReaderModule {
29
31
  private publication;
30
32
  private delegate;
31
33
  private audioElement;
32
- private settings;
34
+ settings: MediaOverlaySettings;
35
+ private properties;
33
36
  private play;
34
37
  private pause;
35
38
  private currentAudioBegin;
36
39
  private currentAudioEnd;
37
40
  private currentLinks;
38
41
  private currentLinkIndex;
39
- private mediaOverlaysPlaybackRate;
40
42
  private currentAudioUrl;
41
43
  private previousAudioUrl;
42
44
  private previousAudioEnd;
43
45
  private mediaOverlayRoot;
44
46
  private mediaOverlayTextAudioPair;
45
47
  private pid;
46
- static create(config: MediaOverlayModuleConfig): Promise<MediaOverlayModule>;
48
+ private __ontimeupdate;
49
+ static create(config: MediaOverlayModuleConfig): MediaOverlayModule;
47
50
  private constructor();
48
- stop(): Promise<void>;
49
- protected start(): Promise<void>;
51
+ stop(): void;
52
+ protected start(): void;
50
53
  initialize(): Promise<void>;
51
- initializeResource(links: Array<Link>): Promise<void>;
54
+ initializeResource(links: Array<Link | undefined>): Promise<void>;
52
55
  private playLink;
53
56
  startReadAloud(): Promise<void>;
54
- stopReadAloud(): void;
57
+ stopReadAloud(): Promise<void>;
55
58
  pauseReadAloud(): void;
56
59
  resumeReadAloud(): Promise<void>;
57
60
  findDepthFirstTextAudioPair(textHref: string, mo: MediaOverlayNode, textFragmentIDChain: Array<string | null> | undefined): MediaOverlayNode | undefined | null;
58
- ontimeupdate: (ev: Event) => Promise<void>;
59
- ensureOnTimeUpdate: (remove: boolean) => void;
61
+ myReq: any;
62
+ trackCurrentTime(): void;
60
63
  mediaOverlaysNext(escape?: boolean): void;
61
64
  mediaOverlaysStop(): void;
62
65
  mediaOverlaysPause(): void;
@@ -65,5 +68,7 @@ export default class MediaOverlayModule implements ReaderModule {
65
68
  }, escape: boolean): MediaOverlayNode | undefined | null;
66
69
  playMediaOverlaysAudio(moTextAudioPair: MediaOverlayNode, begin: number | undefined, end: number | undefined): Promise<void>;
67
70
  playMediaOverlays(textHref: string, rootMo: MediaOverlayNode, textFragmentIDChain: Array<string | null> | undefined): Promise<void>;
68
- mediaOverlayHighlight(href: string | undefined, id: string | undefined): void;
71
+ ontimeupdate: (_v: Event) => Promise<void>;
72
+ ensureOnTimeUpdate: (remove: boolean, replace: boolean) => void;
73
+ mediaOverlayHighlight(id: string | undefined): void;
69
74
  }
@@ -7,25 +7,29 @@ export declare class MEDIAOVERLAYREFS {
7
7
  static readonly AUTO_SCROLL_REF = "autoscroll";
8
8
  static readonly AUTO_TURN_REF = "autoturn";
9
9
  static readonly VOLUME_REF = "volume";
10
+ static readonly RATE_REF = "rate";
10
11
  static readonly COLOR_KEY: string;
11
12
  static readonly AUTO_SCROLL_KEY: string;
12
13
  static readonly AUTO_TURN_KEY: string;
13
14
  static readonly VOLUME_KEY: string;
15
+ static readonly RATE_KEY: string;
14
16
  }
15
17
  export interface MediaOverlayConfig {
16
18
  store: Store;
17
- initialMediaOverlaySettings: MediaOverlayModuleProperties;
18
- headerMenu: HTMLElement;
19
- api: MediaOverlayModuleAPI;
19
+ initialMediaOverlaySettings?: MediaOverlayModuleProperties;
20
+ headerMenu?: HTMLElement | null;
21
+ api?: MediaOverlayModuleAPI;
20
22
  }
21
23
  export interface IMediaOverlayUserSettings {
22
24
  color?: string;
23
25
  autoScroll?: boolean;
24
26
  autoTurn?: boolean;
25
27
  volume?: number;
28
+ rate?: number;
26
29
  playing?: boolean;
27
30
  wait?: number;
28
31
  }
32
+ export declare type MediaOverlayIncrementable = "mo_volume" | "mo_rate";
29
33
  export declare class MediaOverlaySettings implements IMediaOverlayUserSettings {
30
34
  private readonly store;
31
35
  private readonly MEDIAOVERLAYSETTINGS;
@@ -33,35 +37,36 @@ export declare class MediaOverlaySettings implements IMediaOverlayUserSettings {
33
37
  autoScroll: boolean;
34
38
  autoTurn: boolean;
35
39
  volume: number;
40
+ rate: number;
36
41
  playing: boolean;
42
+ resourceReady: boolean;
37
43
  wait: number;
38
44
  userProperties: UserProperties;
39
45
  private settingsChangeCallback;
40
46
  private settingsView;
41
- private readonly headerMenu;
42
- private volumeButtons;
47
+ private readonly headerMenu?;
43
48
  private speechAutoScroll;
44
49
  private speechAutoTurn;
45
50
  private speechVolume;
46
- private readonly api;
47
- static create(config: MediaOverlayConfig): Promise<any>;
48
- protected constructor(store: Store, headerMenu: HTMLElement, api: MediaOverlayModuleAPI);
49
- stop(): Promise<void>;
51
+ private speechRate;
52
+ private readonly api?;
53
+ static create(config: MediaOverlayConfig): any;
54
+ protected constructor(store: Store, api?: MediaOverlayModuleAPI, headerMenu?: HTMLElement | null);
55
+ stop(): void;
50
56
  private initialise;
51
57
  private reset;
52
58
  private initializeSelections;
53
59
  setControls(): void;
54
60
  private renderControls;
55
61
  onSettingsChange(callback: () => void): void;
56
- private setupEvents;
57
62
  private storeProperty;
58
63
  private updateUserSettings;
59
64
  private getMediaOverlaySettings;
60
65
  private saveProperty;
61
- getProperty(name: string): Promise<UserProperty>;
62
- resetMediaOverlaySettings(): Promise<void>;
63
- applyMediaOverlaySettings(mediaOverlaySettings: IMediaOverlayUserSettings): Promise<void>;
64
- applyMediaOverlaySetting(key: any, value: any): Promise<void>;
65
- increase(incremental: string): Promise<void>;
66
- decrease(incremental: string): Promise<void>;
66
+ getProperty(name: string): UserProperty | null;
67
+ resetMediaOverlaySettings(): void;
68
+ applyMediaOverlaySettings(mediaOverlaySettings: IMediaOverlayUserSettings): void;
69
+ applyMediaOverlaySetting(key: any, value: any): void;
70
+ increase(incremental: MediaOverlayIncrementable): void;
71
+ decrease(incremental: MediaOverlayIncrementable): void;
67
72
  }
@@ -0,0 +1,30 @@
1
+ import { IFrameNavigator } from "../../navigator/IFrameNavigator";
2
+ import { ReaderModule } from "../ReaderModule";
3
+ import { IHighlight } from "../highlight/common/highlight";
4
+ import { ISelectionInfo } from "../highlight/common/selection";
5
+ import { Publication } from "../../model/Publication";
6
+ export interface PageBreakModuleProperties {
7
+ hideLayer?: boolean;
8
+ }
9
+ export interface PageBreakModuleConfig extends PageBreakModuleProperties {
10
+ delegate: IFrameNavigator;
11
+ headerMenu?: HTMLElement | null;
12
+ publication: Publication;
13
+ }
14
+ export declare class PageBreakModule implements ReaderModule {
15
+ private delegate;
16
+ private readonly headerMenu?;
17
+ private publication;
18
+ private properties;
19
+ private goToPageView;
20
+ private goToPageNumberInput;
21
+ private goToPageNumberButton;
22
+ static create(config: PageBreakModuleConfig): Promise<PageBreakModule>;
23
+ private constructor();
24
+ stop(): Promise<void>;
25
+ protected start(): Promise<void>;
26
+ private goToPageNumber;
27
+ handleResize(): Promise<void>;
28
+ drawPageBreaks(): Promise<void>;
29
+ createPageBreakHighlight(selectionInfo: ISelectionInfo, title: string): IHighlight;
30
+ }
@@ -1,11 +1,11 @@
1
1
  import { Publication } from "../../model/Publication";
2
- import IFrameNavigator from "../../navigator/IFrameNavigator";
3
- import ReaderModule from "../ReaderModule";
2
+ import { IFrameNavigator } from "../../navigator/IFrameNavigator";
3
+ import { ReaderModule } from "../ReaderModule";
4
4
  export interface TimelineModuleConfig {
5
5
  publication: Publication;
6
6
  delegate: IFrameNavigator;
7
7
  }
8
- export default class TimelineModule implements ReaderModule {
8
+ export declare class TimelineModule implements ReaderModule {
9
9
  private publication;
10
10
  private delegate;
11
11
  private timelineContainer;
@@ -1,5 +1,5 @@
1
- import ReaderModule from "../ReaderModule";
2
- import IFrameNavigator from "../../navigator/IFrameNavigator";
1
+ import { ReaderModule } from "../ReaderModule";
2
+ import { IFrameNavigator } from "../../navigator/IFrameNavigator";
3
3
  export interface ContentProtectionModuleProperties {
4
4
  enforceSupportedBrowsers: boolean;
5
5
  enableEncryption: boolean;
@@ -8,18 +8,19 @@ export interface ContentProtectionModuleProperties {
8
8
  disableCopy: boolean;
9
9
  detectInspect: boolean;
10
10
  clearOnInspect: boolean;
11
+ detectInspectInitDelay: number;
11
12
  disableKeys: boolean;
12
13
  disableContextMenu: boolean;
13
14
  hideTargetUrl: boolean;
14
15
  disableDrag: boolean;
15
16
  supportedBrowsers: [];
16
17
  }
17
- export interface ContentProtectionModuleConfig extends ContentProtectionModuleProperties {
18
+ export interface ContentProtectionModuleConfig extends Partial<ContentProtectionModuleProperties> {
18
19
  delegate: IFrameNavigator;
19
- api: ContentProtectionModuleAPI;
20
+ api?: ContentProtectionModuleAPI;
20
21
  }
21
22
  export interface ContentProtectionModuleAPI {
22
- inspectDetected: any;
23
+ inspectDetected: () => void;
23
24
  }
24
25
  interface ContentProtectionRect {
25
26
  node: Element;
@@ -31,17 +32,20 @@ interface ContentProtectionRect {
31
32
  scrambledTextContent: string;
32
33
  isObfuscated: boolean;
33
34
  }
34
- export default class ContentProtectionModule implements ReaderModule {
35
+ export declare class ContentProtectionModule implements ReaderModule {
35
36
  private rects;
36
37
  private delegate;
37
- private properties;
38
- private api;
38
+ private properties?;
39
39
  private hasEventListener;
40
40
  private isHacked;
41
41
  private securityContainer;
42
42
  private mutationObserver;
43
+ private wrapper;
44
+ static setupPreloadProtection(config: ContentProtectionModuleConfig): Promise<void>;
43
45
  static create(config: ContentProtectionModuleConfig): Promise<ContentProtectionModule>;
44
- constructor(delegate: IFrameNavigator, properties?: ContentProtectionModuleProperties | null, api?: ContentProtectionModuleAPI | null);
46
+ constructor(delegate: IFrameNavigator, properties?: ContentProtectionModuleProperties);
47
+ private static startInspectorProtection;
48
+ private static isCurrentBrowserSupported;
45
49
  protected start(): Promise<void>;
46
50
  stop(): Promise<void>;
47
51
  observe(): any;
@@ -81,7 +85,7 @@ export default class ContentProtectionModule implements ReaderModule {
81
85
  }): boolean;
82
86
  hideTargetUrls(activate: any): void;
83
87
  preventDrag(activate: any): void;
84
- recalculate(delay?: number): void;
88
+ recalculate(delay?: number): Promise<boolean>;
85
89
  calcRects(rects: Array<ContentProtectionRect>): void;
86
90
  deactivateRect(rect: ContentProtectionRect, securityContainer: HTMLElement, isHacked: boolean): void;
87
91
  toggleRect(rect: ContentProtectionRect, securityContainer: HTMLElement, isHacked: boolean): void;
@@ -0,0 +1,8 @@
1
+ import { IFrameNavigator } from "../../navigator/IFrameNavigator";
2
+ export default class SampleReadEventHandler {
3
+ delegate: IFrameNavigator;
4
+ constructor(delegate: IFrameNavigator);
5
+ enforceSampleRead: ((position: any) => void) & {
6
+ clear(): void;
7
+ };
8
+ }
@@ -0,0 +1,52 @@
1
+ import { IFrameNavigator } from "../../navigator/IFrameNavigator";
2
+ import { ReaderModule } from "../ReaderModule";
3
+ import { TextHighlighter } from "../highlight/TextHighlighter";
4
+ import { IHighlight } from "../highlight/common/highlight";
5
+ import { ISelectionInfo } from "../highlight/common/selection";
6
+ import { Publication } from "../../model/Publication";
7
+ export interface DefinitionsModuleAPI {
8
+ success: any;
9
+ click: any;
10
+ visible: any;
11
+ }
12
+ export interface Definition {
13
+ order: number;
14
+ terms: [string];
15
+ result?: number;
16
+ definition?: string;
17
+ }
18
+ export interface DefinitionsModuleProperties {
19
+ definitions?: Definition[];
20
+ color?: string;
21
+ fullWordSearch?: boolean;
22
+ hideLayer?: boolean;
23
+ }
24
+ export interface DefinitionsModuleConfig extends DefinitionsModuleProperties {
25
+ api?: DefinitionsModuleAPI;
26
+ publication: Publication;
27
+ delegate: IFrameNavigator;
28
+ highlighter: TextHighlighter;
29
+ }
30
+ export declare class DefinitionsModule implements ReaderModule {
31
+ properties: DefinitionsModuleProperties;
32
+ api?: DefinitionsModuleAPI;
33
+ private publication;
34
+ private delegate;
35
+ private currentChapterPopupResult;
36
+ private currentPopupHighlights;
37
+ private highlighter;
38
+ static create(config: DefinitionsModuleConfig): Promise<DefinitionsModule>;
39
+ private constructor();
40
+ stop(): Promise<void>;
41
+ protected start(): Promise<void>;
42
+ searchAndPaint(item: Definition, callback: (result: any) => any): Promise<void>;
43
+ definitions: (() => Promise<void>) & {
44
+ clear(): void;
45
+ };
46
+ define(item: Definition): Promise<void>;
47
+ drawDefinitions(): Promise<void>;
48
+ handleResize(): Promise<void>;
49
+ createDefinitionHighlight(selectionInfo: ISelectionInfo, item: Definition): IHighlight;
50
+ addDefinition(definition: any): Promise<void>;
51
+ clearDefinitions(): Promise<void>;
52
+ }
@@ -0,0 +1,10 @@
1
+ import { IFrameNavigator } from "../../navigator/IFrameNavigator";
2
+ export declare class Popup {
3
+ navigator: IFrameNavigator;
4
+ constructor(navigator: IFrameNavigator);
5
+ handleFootnote(link: HTMLLIElement, event: MouseEvent | TouchEvent): Promise<void>;
6
+ hidePopover(): Promise<void>;
7
+ showPopover(link: HTMLElement, event: MouseEvent | TouchEvent): Promise<void>;
8
+ showPopup(element: any, event: MouseEvent | TouchEvent): void;
9
+ private getScrollingElement;
10
+ }
@@ -1,43 +1,47 @@
1
1
  import { Publication } from "../../model/Publication";
2
- import IFrameNavigator from "../../navigator/IFrameNavigator";
3
- import ReaderModule from "../ReaderModule";
4
- import TextHighlighter from "../highlight/TextHighlighter";
2
+ import { IFrameNavigator } from "../../navigator/IFrameNavigator";
3
+ import { ReaderModule } from "../ReaderModule";
4
+ import { IHighlight } from "../highlight/common/highlight";
5
+ import { ISelectionInfo } from "../highlight/common/selection";
6
+ import { TextHighlighter } from "../highlight/TextHighlighter";
5
7
  export interface SearchModuleAPI {
6
8
  }
7
9
  export interface SearchModuleProperties {
8
- color: string;
9
- current: string;
10
+ color?: string;
11
+ current?: string;
12
+ hideLayer?: boolean;
10
13
  }
11
14
  export interface SearchModuleConfig extends SearchModuleProperties {
12
- api: SearchModuleAPI;
15
+ api?: SearchModuleAPI;
13
16
  publication: Publication;
14
- headerMenu: HTMLElement;
17
+ headerMenu?: HTMLElement | null;
15
18
  delegate: IFrameNavigator;
16
19
  highlighter: TextHighlighter;
17
20
  }
18
- export default class SearchModule implements ReaderModule {
21
+ export declare class SearchModule implements ReaderModule {
19
22
  private properties;
20
- private api;
23
+ private api?;
21
24
  private publication;
22
- private readonly headerMenu;
25
+ private readonly headerMenu?;
23
26
  private delegate;
24
27
  private searchInput;
25
28
  private searchGo;
26
29
  private currentChapterSearchResult;
27
30
  private bookSearchResult;
28
- private currentHighlights;
29
- private highlighter;
31
+ private currentSearchHighlights;
32
+ private highlighter?;
30
33
  static create(config: SearchModuleConfig): Promise<SearchModule>;
31
34
  private constructor();
32
35
  stop(): Promise<void>;
33
36
  protected start(): Promise<void>;
34
37
  private handleSearch;
35
38
  handleSearchChapter(index?: number): Promise<void>;
36
- searchAndPaintChapter(term: string, index: number, callback: (result: any) => any): Promise<void>;
39
+ searchAndPaintChapter(term: string, index: number | undefined, callback: (result: any) => any): Promise<void>;
40
+ createSearchHighlight(selectionInfo: ISelectionInfo, color: string): IHighlight;
37
41
  clearSearch(): void;
38
- search(term: any, current: boolean): Promise<any>;
39
- goToSearchID(href: any, index: number, current: boolean): Promise<void>;
40
- goToSearchIndex(href: any, index: number, current: boolean): Promise<void>;
42
+ search(term: string, current: boolean): Promise<any>;
43
+ goToSearchID(href: string, index: number, current: boolean): Promise<void>;
44
+ goToSearchIndex(href: string, index: number, current: boolean): Promise<void>;
41
45
  private handleSearchBook;
42
46
  searchBook(term: string): Promise<any>;
43
47
  searchChapter(term: string): Promise<any>;
@@ -47,8 +51,8 @@ export default class SearchModule implements ReaderModule {
47
51
  paginate(items: Array<any>, page: number, per_page: number): {
48
52
  page: number;
49
53
  per_page: number;
50
- pre_page: number;
51
- next_page: number;
54
+ pre_page: number | undefined;
55
+ next_page: number | undefined;
52
56
  total: number;
53
57
  total_pages: number;
54
58
  data: any[];
@@ -11,4 +11,4 @@ export interface ISearchResult {
11
11
  }
12
12
  export declare function escapeRegExp(str: string): string;
13
13
  export declare const reset: () => void;
14
- export declare function searchDocDomSeek(searchInput: string, doc: Document, href: string, title: string): Promise<ISearchResult[]>;
14
+ export declare function searchDocDomSeek(searchInput: string, doc: Document | null, href: string, title: string, fullWordSearch?: boolean): Promise<ISearchResult[]>;