SYMBOL INDEX (295 symbols across 46 files) FILE: addon/bootstrap.js function install (line 12) | function install(data, reason) {} function startup (line 14) | async function startup({ id, version, resourceURI, rootURI }, reason) { function onMainWindowLoad (line 48) | async function onMainWindowLoad({ window }, reason) { function onMainWindowUnload (line 52) | async function onMainWindowUnload({ window }, reason) { function shutdown (line 56) | function shutdown({ id, version, resourceURI, rootURI }, reason) { function uninstall (line 80) | function uninstall(data, reason) {} FILE: src/addon.ts class Addon (line 10) | class Addon { method constructor (line 41) | constructor() { FILE: src/hooks.ts function onStartup (line 19) | async function onStartup() { function onMainWindowLoad (line 46) | async function onMainWindowLoad(win: Window): Promise { function onShutdown (line 61) | function onShutdown(): void { FILE: src/index.ts function defineGlobal (line 18) | function defineGlobal(name: string, getter?: () => any) { FILE: src/modules/attachments/index.ts function attachmentSearch (line 5) | async function attachmentSearch(task: AttachmentTask): Promise { function importAttachment (line 24) | async function importAttachment(task: AttachmentTask): Promise { function actionAfterImport (line 32) | async function actionAfterImport( FILE: src/modules/attachments/localMatch.ts function findAttachmentsInFolder (line 6) | async function findAttachmentsInFolder( class LocalAttachmentService (line 17) | class LocalAttachmentService implements AttachmentService { method searchAttachments (line 18) | async searchAttachments( method importAttachment (line 66) | async importAttachment(task: AttachmentTask): Promise { FILE: src/modules/menu.ts function registerMenu (line 93) | function registerMenu() { FILE: src/modules/notifier.ts function registerNotifier (line 12) | function registerNotifier( function unregisterNotifier (line 46) | function unregisterNotifier(notifierID: string) { function registerNotifiers (line 53) | function registerNotifiers() { function onAddItem (line 58) | async function onAddItem( function registerExtraColumnWithCustomCell (line 103) | async function registerExtraColumnWithCustomCell() { function registerTab (line 124) | function registerTab() { function tabRegisterCallback (line 140) | async function tabRegisterCallback(event: any) { FILE: src/modules/outline/bookmark.ts constant BOOKMARK_SCHEMA (line 6) | const BOOKMARK_SCHEMA = OUTLINE_SCHEMA; constant DEFAULT_BOOKMARK_FONT_SIZE (line 7) | const DEFAULT_BOOKMARK_FONT_SIZE = 13; constant DEFAULT_BOOKMARK_COLORS (line 10) | const DEFAULT_BOOKMARK_COLORS = [ function getRandomBookmarkColor (line 26) | function getRandomBookmarkColor(): string { function migrateBookmarkInfo (line 33) | function migrateBookmarkInfo( function getReaderPagePosition (line 54) | function getReaderPagePosition(): PdfPosition { function saveBookmarksToJSON (line 72) | async function saveBookmarksToJSON( function loadBookmarkInfoFromJSON (line 111) | async function loadBookmarkInfoFromJSON( function loadBookmarksFromJSON (line 150) | async function loadBookmarksFromJSON( function getBookmarksFromPage (line 157) | function getBookmarksFromPage(): BookmarkNode[] { function createBookmarkNodes (line 188) | function createBookmarkNodes( function generateSmartBookmarkTitle (line 254) | function generateSmartBookmarkTitle(pageNumber: number): string { function addNewBookmark (line 272) | function addNewBookmark(title?: string): BookmarkNode { function addBookmarkButton (line 288) | function addBookmarkButton(doc: Document) { function updateBookmarkFontSize (line 312) | function updateBookmarkFontSize(doc: Document, baseFontSize: number) { FILE: src/modules/outline/events.ts constant MAX_LEVEL (line 22) | const MAX_LEVEL = 7; function getReaderPagePosition (line 24) | function getReaderPagePosition(): PdfPosition { function initEventListener (line 52) | function initEventListener( function expandAll (line 234) | async function expandAll(ev: Event) { function collapseAll (line 249) | async function collapseAll(ev: Event) { function toggleNode (line 264) | function toggleNode(node: Element) { function selectNode (line 281) | function selectNode(node: Element) { function handleKeydownEvent (line 294) | async function handleKeydownEvent(ev: KeyboardEvent) { function handleDragStart (line 409) | function handleDragStart(e: DragEvent) { function handleDragOver (line 426) | function handleDragOver(e: DragEvent) { function updateDropIndicator (line 485) | function updateDropIndicator( function hideDropIndicator (line 517) | function hideDropIndicator(doc: Document) { function handleDragLeave (line 525) | function handleDragLeave(e: DragEvent) { function handleDrop (line 542) | async function handleDrop(e: DragEvent) { function handleDragEnd (line 631) | function handleDragEnd(e: DragEvent) { function isAncestor (line 649) | function isAncestor(ancestor: Element, descendant: Element) { function determineDropPosition (line 661) | function determineDropPosition(event: DragEvent, targetNode: Element) { function updateNodeLevels (line 679) | function updateNodeLevels(node: Element) { function makeNodeEditable (line 715) | function makeNodeEditable(titleElement: Element) { function deleteSelectedNode (line 786) | async function deleteSelectedNode(ev: Event) { function addNewNode (line 851) | async function addNewNode(ev: Event) { function clickToPosition (line 922) | function clickToPosition(targetElement: Element) { function addOutlineToPDFRunner (line 955) | async function addOutlineToPDFRunner(): Promise { function selectBookmarkNode (line 1009) | function selectBookmarkNode(node: Element) { function clickToBookmarkPosition (line 1021) | function clickToBookmarkPosition(targetElement: Element) { function makeBookmarkNodeEditable (line 1050) | function makeBookmarkNodeEditable(titleElement: Element) { function addNewBookmarkNode (line 1162) | async function addNewBookmarkNode(ev: Event) { function deleteSelectedBookmarkNode (line 1177) | async function deleteSelectedBookmarkNode(ev: Event) { function handleBookmarkDragStart (line 1208) | function handleBookmarkDragStart(e: DragEvent) { function handleBookmarkDragOver (line 1224) | function handleBookmarkDragOver(e: DragEvent) { function updateBookmarkDropIndicator (line 1270) | function updateBookmarkDropIndicator(targetNode: Element, position: stri... function hideBookmarkDropIndicator (line 1292) | function hideBookmarkDropIndicator(doc: Document) { function handleBookmarkDragLeave (line 1298) | function handleBookmarkDragLeave(e: DragEvent) { function handleBookmarkDrop (line 1314) | async function handleBookmarkDrop(e: DragEvent) { function handleBookmarkDragEnd (line 1367) | function handleBookmarkDragEnd(e: DragEvent) { constant MIN_FONT_SIZE (line 1385) | const MIN_FONT_SIZE = 8; constant MAX_FONT_SIZE (line 1386) | const MAX_FONT_SIZE = 20; function handleFontSizeIncrease (line 1389) | async function handleFontSizeIncrease(ev: Event) { function handleFontSizeDecrease (line 1429) | async function handleFontSizeDecrease(ev: Event) { FILE: src/modules/outline/index.ts function renderTree (line 25) | function renderTree( function renderBookmarkTree (line 142) | function renderBookmarkTree( function addOutlineToReader (line 214) | async function addOutlineToReader(reader: _ZoteroTypes.ReaderInstance) { function registerOutline (line 263) | async function registerOutline(tabID: string) { FILE: src/modules/outline/outline.ts constant OUTLINE_SCHEMA (line 7) | const OUTLINE_SCHEMA = 2; constant DEFAULT_BASE_FONT_SIZE (line 8) | const DEFAULT_BASE_FONT_SIZE = 12; function registerOutlineCSS (line 11) | function registerOutlineCSS(doc: Document) { function updateOutlineFontSize (line 27) | function updateOutlineFontSize(doc: Document, baseFontSize: number) { function registerThemeChange (line 56) | function registerThemeChange(win: Window) { function addButton (line 75) | function addButton(doc: Document) { function getOutlineFromPDF (line 145) | async function getOutlineFromPDF( function getOutlineFromPage (line 220) | function getOutlineFromPage(): OutlineNode[] { function saveOutlineToJSON (line 251) | async function saveOutlineToJSON( function migrateOutlineInfo (line 290) | function migrateOutlineInfo( function loadOutlineInfoFromJSON (line 308) | async function loadOutlineInfoFromJSON( function loadOutlineFromJSON (line 340) | async function loadOutlineFromJSON( function createTreeNodes (line 347) | function createTreeNodes( FILE: src/modules/outline/style.ts constant ICONS (line 1) | const ICONS = { FILE: src/modules/preferences/main.ts function registerPrefsPane (line 9) | function registerPrefsPane() { function onPrefsWindowLoad (line 23) | async function onPrefsWindowLoad(_window: Window) { function initPrefs (line 38) | async function initPrefs() { function migratePrefs (line 87) | function migratePrefs(prefix: string) { function updatePrefsUI (line 133) | async function updatePrefsUI(doc: Document) { function bindPrefEvents (line 147) | function bindPrefEvents(doc: Document) { FILE: src/modules/preferences/translators.ts function onWindowLoad (line 6) | async function onWindowLoad(_window: Window) { function updateRowData (line 63) | async function updateRowData() { function updateTableUI (line 78) | async function updateTableUI() { function bindEvents (line 86) | function bindEvents(doc: Document) { function onShowTable (line 132) | async function onShowTable() { FILE: src/modules/progress.ts class Progress (line 7) | class Progress { method constructor (line 11) | constructor() { method openProgressWindow (line 22) | public async openProgressWindow(): Promise { method createSearchResultProps (line 59) | private createSearchResultProps( method addTaskToProgressWindow (line 120) | public async addTaskToProgressWindow(task: Task): Promise { method linkifyMessage (line 187) | private linkifyMessage(doc: Document, message: string): DocumentFragme... method updateTaskStatus (line 233) | public updateTaskStatus(task: Task, status: string): void { method updateTaskSearchResult (line 313) | public updateTaskSearchResult( FILE: src/modules/services/cnki.ts function createSearchPostOptions (line 11) | function createSearchPostOptions(searchOption: SearchOption) { function getRefworksText (line 176) | async function getRefworksText( function getSnapshotItem (line 250) | async function getSnapshotItem( function updateItem (line 275) | async function updateItem( class CNKI (line 311) | class CNKI implements ScrapeService { method search (line 312) | async search( method translate (line 384) | async translate( method searchSnapshot (line 451) | async searchSnapshot( FILE: src/modules/services/index.ts function getSearchOption (line 15) | async function getSearchOption( function metaSearch (line 37) | async function metaSearch( function metaTranslate (line 121) | async function metaTranslate(task: ScraperTask): Promise { function globalItemFix (line 206) | async function globalItemFix( FILE: src/modules/services/pubscholar.ts constant BASE_URL (line 5) | const BASE_URL = "https://pubscholar.cn"; function parseSearchResults (line 10) | function parseSearchResults(doc: Document): ScrapeSearchResult[] { function createItemFromMetadata (line 37) | async function createItemFromMetadata( class PubScholar (line 53) | class PubScholar implements ScrapeService { method search (line 54) | async search( method translate (line 84) | async translate( FILE: src/modules/services/yiigle.ts class Yiigle (line 7) | class Yiigle implements ScrapeService { method search (line 8) | async search( method translate (line 76) | async translate( FILE: src/modules/styles.ts function injectToDocument (line 6) | function injectToDocument(doc: Document) { function injectStylesLink (line 82) | async function injectStylesLink() { FILE: src/modules/tools.ts function splitName (line 171) | async function splitName(item: Zotero.Item): Promise { function mergeName (line 207) | async function mergeName(item: Zotero.Item): Promise { function getCNKICite (line 236) | async function getCNKICite(item: Zotero.Item): Promise { function updateCNKICite (line 254) | async function updateCNKICite(items: Zotero.Item[]) { function renameAttachmentFromParent (line 294) | async function renameAttachmentFromParent(attachmentItem: Zotero.Item) { function importAttachmentsFromFolder (line 335) | async function importAttachmentsFromFolder(): Promise { function handleAttachmentMenu (line 388) | async function handleAttachmentMenu(menuType: "collection" | "item") { FILE: src/modules/translators.ts function bestSpeedBaseUrl (line 4) | async function bestSpeedBaseUrl() { function getLastUpdatedFromFile (line 42) | async function getLastUpdatedFromFile( function getLastUpdatedMap (line 70) | async function getLastUpdatedMap( function mendTranslators (line 97) | async function mendTranslators() { function updateTranslators (line 124) | async function updateTranslators(force = false): Promise { function _updateTranslators (line 139) | async function _updateTranslators(force = false): Promise { FILE: src/modules/workers/outline.ts function test (line 13) | function test(title: string) { function prepareData (line 27) | function prepareData( function createOutlineItem (line 42) | function createOutlineItem( function createOutlineDict (line 88) | function createOutlineDict( function addOutlineToPDF (line 104) | async function addOutlineToPDF( FILE: src/modules/wps.ts function unZip (line 1) | async function unZip(filename: string, outDir: string) { function downloadWpsPlugin (line 38) | async function downloadWpsPlugin() { function installWpsPlugin (line 55) | async function installWpsPlugin() { FILE: src/utils/cookiebox.ts class MyCookieSandbox (line 1) | class MyCookieSandbox { method constructor (line 15) | constructor() { method getCookieBoxFromUrl (line 19) | public async getCookieBoxFromUrl( method getCNKIHomeCookieBox (line 225) | public async getCNKIHomeCookieBox(): Promise { method passCaptchaToCookieBox (line 266) | async passCaptchaToCookieBox( FILE: src/utils/detect.ts constant CHINESE_FILENAME_REGEX (line 10) | const CHINESE_FILENAME_REGEX = function isChineseAttachmentFilename (line 12) | function isChineseAttachmentFilename(filename: string): boolean { function isChineseTopAttachment (line 19) | function isChineseTopAttachment(item: Zotero.Item): boolean { function isChineseTopItem (line 32) | function isChineseTopItem(item: Zotero.Item): boolean { function isChinsesSnapshot (line 46) | function isChinsesSnapshot(item: Zotero.Item): boolean { FILE: src/utils/http.ts function jsonToFormUrlEncoded (line 1) | function jsonToFormUrlEncoded(json: any) { function requestDocument (line 14) | async function requestDocument( function text2HTMLDoc (line 37) | function text2HTMLDoc(text: string, url?: string): Document { function isMainlandChina (line 47) | async function isMainlandChina(): Promise { class DocTools (line 95) | class DocTools { method constructor (line 97) | constructor(node: Document | Element) { method attr (line 100) | attr(selector: string, attr: string, index?: number): string { method text (line 104) | text(selector: string, index?: number): string { method innerText (line 108) | innerText(selector: string, index?: number): string { method choose (line 112) | choose(selector: string, index?: number): Element | null { FILE: src/utils/locale.ts function initLocale (line 8) | function initLocale() { function getString (line 48) | function getString(...inputs: any[]) { function _getString (line 62) | function _getString( function getLocaleID (line 86) | function getLocaleID(id: string) { FILE: src/utils/pattern.ts function getArgsFromPattern (line 1) | function getArgsFromPattern( FILE: src/utils/pdfParser.ts function getPDFTitle (line 1) | async function getPDFTitle(itemID: number): Promise { function isValidTitle (line 23) | function isValidTitle(line: PdfParagraph): boolean { function getThesisTitle (line 29) | function getThesisTitle(data: PdfData): string { function getArticleTitle (line 42) | function getArticleTitle(data: PdfData): string { function findParagraphInPages (line 54) | function findParagraphInPages( function findParagraphInPagesReversed (line 71) | function findParagraphInPagesReversed( function findParagraphAfter (line 88) | function findParagraphAfter(paragraphs: PdfParagraph[], patterns: RegExp... function findParagraphBefore (line 99) | function findParagraphBefore(paragraphs: PdfParagraph[], patterns: RegEx... function findMaxSizeParagraph (line 110) | function findMaxSizeParagraph(paragraphs: PdfParagraph[]) { function detectDocType (line 125) | function detectDocType(data: PdfData): DocType { function sortLines (line 162) | function sortLines(lines: PdfLine[]): PdfLine[] { function recognizerDataToPdfData (line 171) | function recognizerDataToPdfData(data: RecognizerData): PdfData { function recognizerPageToPdfPage (line 179) | function recognizerPageToPdfPage(page: RecognizerPage): PdfPage { function pdfLinesToPdfParagraphs (line 195) | function pdfLinesToPdfParagraphs(lines: PdfLine[]): PdfParagraph[] { function recognizerLineToPdfLine (line 273) | function recognizerLineToPdfLine(line: RecognizerLine): PdfLine { function pdfWordsToPdfLine (line 278) | function pdfWordsToPdfLine(words: PdfWord[]): PdfLine { function recognizerWordToPdfWord (line 298) | function recognizerWordToPdfWord(word: RecognizerWord): PdfWord { function average (line 317) | function average(arr: T[], callback: (arg: T) => number): number { function hasCJK (line 321) | function hasCJK(str: string) { function xnor (line 325) | function xnor(input1: boolean, input2: boolean) { function debugDoc (line 329) | function debugDoc(data: RecognizerData) { function patternsInType (line 396) | function patternsInType(type: DocType): RegExp[] { function normalizeText (line 489) | function normalizeText(str: string) { FILE: src/utils/prefs.ts type PluginPrefsMap (line 3) | type PluginPrefsMap = _ZoteroTypes.Prefs["PluginPrefsMap"]; constant PREFS_PREFIX (line 5) | const PREFS_PREFIX = config.prefsPrefix; function getPref (line 12) | function getPref(key: K) { function setPref (line 22) | function setPref( function clearPref (line 34) | function clearPref(key: string) { FILE: src/utils/task.ts function createDeferred (line 7) | function createDeferred(): DeferredResult { class ScraperTask (line 19) | class ScraperTask implements ScraperTask { method constructor (line 31) | constructor(item: Zotero.Item, type: ScraperTaskType, silent?: false) { method addMsg (line 40) | addMsg(message: string) { method status (line 49) | set status(newStatus: TaskStatus) { method status (line 61) | get status(): TaskStatus { method searchResults (line 65) | set searchResults(results: ScrapeSearchResult[]) { method searchResults (line 72) | get searchResults() { class AttachmentTask (line 77) | class AttachmentTask implements AttachmentTask { method constructor (line 89) | constructor(item: Zotero.Item, type: AttachmentTaskType, silent?: fals... method addMsg (line 98) | addMsg(message: string) { method status (line 107) | set status(newStatus: TaskStatus) { method status (line 119) | get status(): TaskStatus { method searchResults (line 123) | set searchResults(results: AttachmentSearchResult[]) { method searchResults (line 130) | get searchResults() { class TaskRunner (line 135) | class TaskRunner { method getTaskType (line 138) | getTaskType( method createTask (line 156) | createTask( method addTask (line 178) | async addTask( method createAndAddTask (line 199) | async createAndAddTask( method getTaskById (line 211) | getTaskById(id: string): Task | undefined { method runTask (line 215) | async runTask(task: AttachmentTask | ScraperTask): Promise { method runScrapeTask (line 225) | async runScrapeTask(task: ScraperTask): Promise { method runAttachmentTask (line 245) | async runAttachmentTask(task: AttachmentTask): Promise { method resumeTask (line 256) | resumeTask(taskID: string, resultIndex: number): void { FILE: src/utils/wait.ts function waitUntil (line 9) | function waitUntil( function waitUtilAsync (line 32) | function waitUtilAsync( FILE: src/utils/window.ts function isWindowAlive (line 9) | function isWindowAlive(win?: Window) { function waitNoMoreThan (line 20) | async function waitNoMoreThan( function findWindow (line 40) | function findWindow(type: string) { function observeWindowLoad (line 52) | function observeWindowLoad( function waitElmLoaded (line 89) | async function waitElmLoaded( FILE: src/utils/ztoolkit.ts function createZToolkit (line 6) | function createZToolkit() { function initZToolkit (line 17) | function initZToolkit(_ztoolkit: ReturnType) { class MyToolkit (line 35) | class MyToolkit extends BasicTool { method constructor (line 38) | constructor() { method unregisterAll (line 43) | unregisterAll() { FILE: test/CNKI_translator_test.js function getDoc (line 14) | async function getDoc(url) { function translate (line 25) | async function translate(doc) { function delay (line 38) | function delay(ms) { function test (line 42) | async function test(urls) { FILE: typings/attachment.d.ts type AttachmentService (line 1) | interface AttachmentService { type AttachmentSearchResult (line 8) | type AttachmentSearchResult = { type AttachmentTask (line 16) | interface AttachmentTask extends Task { FILE: typings/global.d.ts type ZToolkit (line 8) | type ZToolkit = ReturnType< FILE: typings/i10n.d.ts type FluentMessageId (line 5) | type FluentMessageId = FILE: typings/myzotero.d.ts type CookieData (line 5) | interface CookieData { type CookieStorage (line 18) | interface CookieStorage { type CookieDict (line 30) | interface CookieDict { class CookieSandbox (line 37) | class CookieSandbox { FILE: typings/outline.d.ts type OutlineNode (line 1) | type OutlineNode = { type OutlineInfo (line 12) | type OutlineInfo = { type PdfZoomMode (line 26) | type PdfZoomMode = { type PdfDest (line 31) | type PdfDest = { dest: [PDFRef, PdfZoomMode] }; type PdfPosition (line 32) | type PdfPosition = { type PdfOutlineNode (line 36) | type PdfOutlineNode = { type BookmarkNode (line 43) | type BookmarkNode = { type BookmarkInfo (line 54) | type BookmarkInfo = { FILE: typings/pdfParser.d.ts type RecognizerData (line 1) | type RecognizerData = { type PdfData (line 9) | type PdfData = { type RecognizerPage (line 17) | type RecognizerPage = { type PdfPage (line 25) | type PdfPage = { type PdfParagraph (line 33) | type PdfParagraph = { type RecognizerLine (line 40) | type RecognizerLine = [RecognizerWord[]]; type PdfLine (line 42) | type PdfLine = { type RecognizerWord (line 53) | type RecognizerWord = [ type PdfWord (line 84) | type PdfWord = { type DocType (line 101) | type DocType = "article" | "thesis" | "book"; FILE: typings/prefs.d.ts type Prefs (line 8) | interface Prefs { FILE: typings/scrape.d.ts type ScrapeService (line 1) | interface ScrapeService { type SearchOption (line 12) | type SearchOption = { type ScrapeSearchResult (line 17) | type ScrapeSearchResult = { type TaskStatus (line 24) | type TaskStatus = type ScraperTaskType (line 30) | type ScraperTaskType = "attachment" | "snapshot"; type AttachmentTaskType (line 31) | type AttachmentTaskType = "local" | "remote"; type Task (line 32) | interface Task { type ScrapeTask (line 45) | interface ScrapeTask extends Task { type DeferredResult (line 51) | type DeferredResult = { FILE: typings/translators.d.ts type LastUpdatedMap (line 1) | type LastUpdatedMap = { type TableRow (line 5) | type TableRow = {