From 2bea9db4daffc48920042ebf40a9c6cb006de2ee Mon Sep 17 00:00:00 2001 From: Francisco Hodge Date: Thu, 25 Jul 2024 09:52:25 -0400 Subject: [PATCH] Fix types --- src/lib/components/Keyboard.ts | 25 +++++++++++-------------- src/lib/interfaces.ts | 4 ++++ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/lib/components/Keyboard.ts b/src/lib/components/Keyboard.ts index 74d06c55..2ea50864 100644 --- a/src/lib/components/Keyboard.ts +++ b/src/lib/components/Keyboard.ts @@ -9,13 +9,10 @@ import { KeyboardButtonElements, KeyboardHandlerEvent, KeyboardElement, + SKWindow, } from "../interfaces"; import CandidateBox from "./CandidateBox"; -declare global { - interface Window { SimpleKeyboardInstances: any; } -} - /** * Root class for simple-keyboard. * This class: @@ -193,17 +190,17 @@ class SimpleKeyboard { * Simple-keyboard Instances * This enables multiple simple-keyboard support with easier management */ - if (!window["SimpleKeyboardInstances"]) - window["SimpleKeyboardInstances"] = {}; + if (!(window as SKWindow)["SimpleKeyboardInstances"]) + (window as SKWindow)["SimpleKeyboardInstances"] = {}; this.currentInstanceName = this.utilities.camelCase(this.keyboardDOMClass); - window["SimpleKeyboardInstances"][this.currentInstanceName] = this; + (window as SKWindow)["SimpleKeyboardInstances"][this.currentInstanceName] = this; /** * Instance vars */ - this.allKeyboardInstances = window["SimpleKeyboardInstances"]; - this.keyboardInstanceNames = Object.keys(window["SimpleKeyboardInstances"]); + this.allKeyboardInstances = (window as SKWindow)["SimpleKeyboardInstances"]; + this.keyboardInstanceNames = Object.keys((window as SKWindow)["SimpleKeyboardInstances"]); this.isFirstKeyboardInstance = this.keyboardInstanceNames[0] === this.currentInstanceName; @@ -954,15 +951,15 @@ class SimpleKeyboard { */ // eslint-disable-next-line no-unused-vars dispatch(callback: (instance: SimpleKeyboard, key?: string) => void): void { - if (!window["SimpleKeyboardInstances"]) { + if (!(window as SKWindow)["SimpleKeyboardInstances"]) { console.warn( `SimpleKeyboardInstances is not defined. Dispatch cannot be called.` ); throw new Error("INSTANCES_VAR_ERROR"); } - return Object.keys(window["SimpleKeyboardInstances"]).forEach((key) => { - callback(window["SimpleKeyboardInstances"][key], key); + return Object.keys((window as SKWindow)["SimpleKeyboardInstances"]).forEach((key) => { + callback((window as SKWindow)["SimpleKeyboardInstances"][key], key); }); } @@ -1395,8 +1392,8 @@ class SimpleKeyboard { /** * Remove instance */ - window["SimpleKeyboardInstances"][this.currentInstanceName] = null; - delete window["SimpleKeyboardInstances"][this.currentInstanceName]; + (window as SKWindow)["SimpleKeyboardInstances"][this.currentInstanceName] = null; + delete (window as SKWindow)["SimpleKeyboardInstances"][this.currentInstanceName]; /** * Reset initialized flag diff --git a/src/lib/interfaces.ts b/src/lib/interfaces.ts index a7b735d0..a778eef3 100644 --- a/src/lib/interfaces.ts +++ b/src/lib/interfaces.ts @@ -2,6 +2,10 @@ import SimpleKeyboard from "./components/Keyboard"; import Utilities from "./services/Utilities"; +export interface SKWindow extends Window { + SimpleKeyboardInstances?: any; +}; + export interface KeyboardLayoutObject { [key: string]: string[]; }