diff options
-rw-r--r-- | ext/js/app/frontend.js | 1 | ||||
-rw-r--r-- | ext/js/background/backend.js | 4 | ||||
-rw-r--r-- | ext/js/core.js | 2 | ||||
-rw-r--r-- | ext/js/display/display.js | 2 | ||||
-rw-r--r-- | ext/js/dom/dom-text-scanner.js | 15 | ||||
-rw-r--r-- | ext/js/templates/sandbox/anki-template-renderer.js | 30 | ||||
-rw-r--r-- | types/ext/dictionary-importer.d.ts | 21 | ||||
-rw-r--r-- | types/ext/dom-text-scanner.d.ts | 22 | ||||
-rw-r--r-- | types/ext/log.d.ts | 9 | ||||
-rw-r--r-- | types/ext/text-scanner.d.ts | 12 |
10 files changed, 61 insertions, 57 deletions
diff --git a/ext/js/app/frontend.js b/ext/js/app/frontend.js index 9dafde7a..eb88beef 100644 --- a/ext/js/app/frontend.js +++ b/ext/js/app/frontend.js @@ -864,7 +864,6 @@ export class Frontend { case 'web': return preventMiddleMouseOptions.onWebPages; case 'popup': return preventMiddleMouseOptions.onPopupPages; case 'search': return preventMiddleMouseOptions.onSearchPages; - default: return false; } } diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index 481567b5..3f3c6063 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -2629,14 +2629,14 @@ export class Backend { } /** + * Only request this permission for Firefox versions >= 77. + * https://bugzilla.mozilla.org/show_bug.cgi?id=1630413 * @returns {Promise<void>} */ async _requestPersistentStorage() { try { if (await navigator.storage.persisted()) { return; } - // Only request this permission for Firefox versions >= 77. - // https://bugzilla.mozilla.org/show_bug.cgi?id=1630413 const {vendor, version} = await browser.runtime.getBrowserInfo(); if (vendor !== 'Mozilla') { return; } diff --git a/ext/js/core.js b/ext/js/core.js index 726b037c..854099e8 100644 --- a/ext/js/core.js +++ b/ext/js/core.js @@ -686,11 +686,11 @@ export class Logger extends EventDispatcher { /* eslint-disable no-console */ switch (level) { + case 'log': console.log(message); break; case 'info': console.info(message); break; case 'debug': console.debug(message); break; case 'warn': console.warn(message); break; case 'error': console.error(message); break; - default: console.log(message); break; } /* eslint-enable no-console */ diff --git a/ext/js/display/display.js b/ext/js/display/display.js index cae394f8..ff77d203 100644 --- a/ext/js/display/display.js +++ b/ext/js/display/display.js @@ -480,7 +480,7 @@ export class Display extends EventDispatcher { case 'overwrite': this._history.replaceState(state, content, url); break; - default: // 'new' + case 'new': this._updateHistoryState(); this._history.pushState(state, content, url); break; diff --git a/ext/js/dom/dom-text-scanner.js b/ext/js/dom/dom-text-scanner.js index 21770a70..e9105741 100644 --- a/ext/js/dom/dom-text-scanner.js +++ b/ext/js/dom/dom-text-scanner.js @@ -212,10 +212,8 @@ export class DOMTextScanner { /** * Gets information about how whitespace characters are treated. - * @param {Text} textNode The text node to check. - * @returns {{preserveNewlines: boolean, preserveWhitespace: boolean}} Information about the whitespace. - * The value of `preserveNewlines` indicates whether or not newline characters are treated as line breaks. - * The value of `preserveWhitespace` indicates whether or not sequences of whitespace characters are collapsed. + * @param {Text} textNode + * @returns {import('dom-text-scanner').WhitespaceSettings} */ _getWhitespaceSettings(textNode) { if (this._forcePreserveWhitespace) { @@ -412,13 +410,8 @@ export class DOMTextScanner { } /** - * Gets seek information about an element. - * @param {Element} element The element to check. - * @returns {{enterable: boolean, newlines: number}} The seek information. - * The `enterable` value indicates whether the content of this node should be entered. - * The `newlines` value corresponds to the number of newline characters that should be added. - * - 1 newline corresponds to a simple new line in the layout. - * - 2 newlines corresponds to a significant visual distinction since the previous content. + * @param {Element} element + * @returns {import('dom-text-scanner').ElementSeekInfo} */ static getElementSeekInfo(element) { let enterable = true; diff --git a/ext/js/templates/sandbox/anki-template-renderer.js b/ext/js/templates/sandbox/anki-template-renderer.js index 15810239..3311097f 100644 --- a/ext/js/templates/sandbox/anki-template-renderer.js +++ b/ext/js/templates/sandbox/anki-template-renderer.js @@ -235,14 +235,16 @@ export class AnkiTemplateRenderer { return this._stringToMultiLineHtml(this._computeValueString(options, context)); } - /** @type {import('template-renderer').HelperFunction<string>} */ + /** + * Usage: + * ```{{#regexReplace regex string [flags] [content]...}}content{{/regexReplace}}``` + * - regex: regular expression string + * - string: string to replace + * - flags: optional flags for regular expression. + * e.g. "i" for case-insensitive, "g" for replace all + * @type {import('template-renderer').HelperFunction<string>} + */ _regexReplace(args, context, options) { - // Usage: - // {{#regexReplace regex string [flags] [content]...}}content{{/regexReplace}} - // regex: regular expression string - // string: string to replace - // flags: optional flags for regular expression - // e.g. "i" for case-insensitive, "g" for replace all const argCount = args.length; let value = this._computeValueString(options, context); if (argCount > 3) { @@ -262,13 +264,15 @@ export class AnkiTemplateRenderer { return value; } - /** @type {import('template-renderer').HelperFunction<string>} */ + /** + * Usage: + * {{#regexMatch regex [flags] [content]...}}content{{/regexMatch}} + * - regex: regular expression string + * - flags: optional flags for regular expression + * e.g. "i" for case-insensitive, "g" for match all + * @type {import('template-renderer').HelperFunction<string>} + */ _regexMatch(args, context, options) { - // Usage: - // {{#regexMatch regex [flags] [content]...}}content{{/regexMatch}} - // regex: regular expression string - // flags: optional flags for regular expression - // e.g. "i" for case-insensitive, "g" for match all const argCount = args.length; let value = this._computeValueString(options, context); if (argCount > 2) { diff --git a/types/ext/dictionary-importer.d.ts b/types/ext/dictionary-importer.d.ts index cda1bd19..2d16dc5e 100644 --- a/types/ext/dictionary-importer.d.ts +++ b/types/ext/dictionary-importer.d.ts @@ -25,20 +25,13 @@ export type OnProgressCallback = (data: ProgressData) => void; /** * An enum representing the import step. - * - * `-2` `-1` Dictionary import is uninitialized. - * - * `0` Load dictionary archive and validate index step. - * - * `1` Load schemas and get archive files step. - * - * `2` Load and validate dictionary data step. - * - * `3` Format dictionary data and extended data support step. - * - * `4` Resolve async requirements and import media step. - * - * `5` Add dictionary descriptor and import data step. + * - `-2` `-1` - Dictionary import is uninitialized. + * - `0` - Load dictionary archive and validate index step. + * - `1` - Load schemas and get archive files step. + * - `2` - Load and validate dictionary data step. + * - `3` - Format dictionary data and extended data support step. + * - `4` - Resolve async requirements and import media step. + * - `5` - Add dictionary descriptor and import data step. */ export type ImportStep = -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5; diff --git a/types/ext/dom-text-scanner.d.ts b/types/ext/dom-text-scanner.d.ts index 33c01aa8..c3e26493 100644 --- a/types/ext/dom-text-scanner.d.ts +++ b/types/ext/dom-text-scanner.d.ts @@ -24,3 +24,25 @@ * - `3` - Character should be added to the content and is a newline. */ export type CharacterAttributes = 0 | 1 | 2 | 3; + +/** + * Seek information about an element. + * The `enterable` value indicates whether the content of this node should be entered. + * The `newlines` value corresponds to the number of newline characters that should be added. + * - 1 newline corresponds to a simple new line in the layout. + * - 2 newlines corresponds to a significant visual distinction since the previous content. + */ +export type ElementSeekInfo = { + enterable: boolean; + newlines: number; +}; + +/** + * Information about the whitespace. + * `preserveNewlines` indicates whether or not newline characters are treated as line breaks. + * `preserveWhitespace` indicates whether or not sequences of whitespace characters are collapsed. + */ +export type WhitespaceSettings = { + preserveNewlines: boolean; + preserveWhitespace: boolean; +}; diff --git a/types/ext/log.d.ts b/types/ext/log.d.ts index e8ca4c43..18616d58 100644 --- a/types/ext/log.d.ts +++ b/types/ext/log.d.ts @@ -25,12 +25,9 @@ export type LogContext = { /** * An enum representing the log error level. - * - * `0` _log_, _info_, _debug_ level. - * - * `1` _warn_ level. - * - * `2` _error_ level. + * - `0` - _log_, _info_, _debug_ level. + * - `1` - _warn_ level. + * - `2` - _error_ level. */ export type LogErrorLevelValue = 0 | 1 | 2; diff --git a/types/ext/text-scanner.d.ts b/types/ext/text-scanner.d.ts index e2779e4d..d4214a1d 100644 --- a/types/ext/text-scanner.d.ts +++ b/types/ext/text-scanner.d.ts @@ -197,14 +197,10 @@ export type PointerEventType = ( /** * An enum representing the pen pointer state. - * - * `0` Not active. - * - * `1` Hovering. - * - * `2` Touching. - * - * `3` Hovering after touching. + * - `0` - Not active. + * - `1` - Hovering. + * - `2` - Touching. + * - `3` - Hovering after touching. */ export type PenPointerState = 0 | 1 | 2 | 3; |