diff --git a/app/renderer/js/spellchecker.ts b/app/renderer/js/spellchecker.ts index b9dbe3a0..fdcb1471 100644 --- a/app/renderer/js/spellchecker.ts +++ b/app/renderer/js/spellchecker.ts @@ -1,18 +1,26 @@ 'use strict'; +import type { Subject } from 'rxjs'; import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; import ConfigUtil = require('./utils/config-util'); import Logger = require('./utils/logger-util'); +declare module 'electron-spellchecker' { + interface SpellCheckHandler { + currentSpellcheckerChanged: Subject; + currentSpellcheckerLanguage: string; + } +} + const logger = new Logger({ file: 'errors.log', timestamp: true }); class SetupSpellChecker { - SpellCheckHandler: typeof SpellCheckHandler; - contextMenuListener: typeof ContextMenuListener; + SpellCheckHandler: SpellCheckHandler; + contextMenuListener: ContextMenuListener; init(serverLanguage: string): void { if (ConfigUtil.getConfigItem('enableSpellchecker')) { this.enableSpellChecker(); @@ -38,7 +46,7 @@ class SetupSpellChecker { } const contextMenuBuilder = new ContextMenuBuilder(this.SpellCheckHandler); - this.contextMenuListener = new ContextMenuListener((info: object) => { + this.contextMenuListener = new ContextMenuListener(info => { contextMenuBuilder.showPopupMenu(info); }); } diff --git a/package-lock.json b/package-lock.json index 2af15754..4e6ec43f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -537,6 +537,27 @@ "@types/node": "*" } }, + "@types/auto-launch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/auto-launch/-/auto-launch-5.0.1.tgz", + "integrity": "sha512-+KQ+/koZ7sJXnf5cnCANofY6yXAdYJNEoVZEuWcwJfuWbUp9u6l09I7KhwD+ivU+cdz7JId4V5ukxscWtHdSuw==", + "dev": true + }, + "@types/backoff": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/backoff/-/backoff-2.5.1.tgz", + "integrity": "sha512-eUNAT0dGCma0K35XcScxCP5usgCyxFypkVUN1TiHLhqGzbLnb/fVhz5yoXzj/SYLuXxE9SK6k4m+FQZQqQ4QaQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/caseless": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", + "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==", + "dev": true + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -549,6 +570,21 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", "dev": true }, + "@types/electron-spellchecker": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/electron-spellchecker/-/electron-spellchecker-1.1.2.tgz", + "integrity": "sha512-rVPuBtBf6C5Sh8ixkx3MfpvNiI+/sBtrin79+dGhG1kCUxvajX+5L9gWePGhqO6AuHLyRQ06et6WVWtgtWoY4g==", + "dev": true, + "requires": { + "electron": ">=1.6.10" + } + }, + "@types/escape-html": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/escape-html/-/escape-html-0.0.20.tgz", + "integrity": "sha512-6dhZJLbA7aOwkYB2GDGdIqJ20wmHnkDzaxV9PJXe7O02I2dSFTERzRB6JrX6cWKaS+VqhhY7cQUMCbO5kloFUw==", + "dev": true + }, "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -561,6 +597,15 @@ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, + "@types/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", @@ -572,6 +617,12 @@ "@types/node": "*" } }, + "@types/i18n": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.8.6.tgz", + "integrity": "sha512-LUJ+htzQKV6HnUIfLpDVtoEq14xEqD+WjgU4yx9Wzo3rhgvCQcDFafhsYcjTb6XyYd9xDEYKNZjR0LPe+fNMyw==", + "dev": true + }, "@types/json-schema": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", @@ -607,6 +658,18 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, + "@types/request": { + "version": "2.48.4", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz", + "integrity": "sha512-W1t1MTKYR8PxICH+A4HgEIPuAC3sbljoEVfyZbeFJJDbr30guDspJri2XOaM2E+Un7ZjrihaDi7cf6fPa2tbgw==", + "dev": true, + "requires": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, "@types/semver": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.1.0.tgz", @@ -615,6 +678,12 @@ "@types/node": "*" } }, + "@types/tough-cookie": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.6.tgz", + "integrity": "sha512-wHNBMnkoEBiRAd3s8KTKwIuO9biFtTf0LehITzBhSco+HQI0xkXZbLOD55SW3Aqw3oUkHstkm5SPv58yaAdFPQ==", + "dev": true + }, "@types/unist": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", diff --git a/package.json b/package.json index cc855186..3791a1fd 100644 --- a/package.json +++ b/package.json @@ -176,6 +176,13 @@ }, "devDependencies": { "@types/adm-zip": "^0.4.32", + "@types/auto-launch": "^5.0.1", + "@types/backoff": "^2.5.1", + "@types/electron-spellchecker": "^1.1.2", + "@types/escape-html": "0.0.20", + "@types/fs-extra": "^8.1.0", + "@types/i18n": "^0.8.6", + "@types/request": "^2.48.4", "@typescript-eslint/eslint-plugin": "^2.22.0", "@typescript-eslint/parser": "^2.22.0", "@vitalets/google-translate-api": "^3.0.0", diff --git a/typings.d.ts b/typings.d.ts index f3a3df3f..61953957 100644 --- a/typings.d.ts +++ b/typings.d.ts @@ -1,19 +1,6 @@ -declare module 'adm-zip'; -declare module 'auto-launch'; -declare module 'is-online'; -declare module 'request'; -declare module 'semver'; declare module '@electron-elements/send-feedback'; declare module 'node-mac-notifier'; -declare module 'electron-connect'; -declare module 'electron-is-dev'; -declare module 'electron-spellchecker'; -declare module 'escape-html'; -declare module 'fs-extra'; declare module 'wurl'; -declare module 'i18n'; -declare module 'backoff'; -declare module 'crypto-random-string'; interface PageParamsObject { realm_uri: string;