From 7f4b74ebed645a40aba0bb79db3d42f083930a53 Mon Sep 17 00:00:00 2001 From: dmester Date: Sun, 10 Feb 2019 21:21:31 +0100 Subject: [PATCH] Bug fix: mask method did not accept NodeListOf and other array like objects. --- types/inputmask/index.d.ts | 6 +++--- types/inputmask/test/inputmask-global-tests.ts | 12 +++++++++--- types/inputmask/test/inputmask-module-tests.ts | 12 +++++++++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/types/inputmask/index.d.ts b/types/inputmask/index.d.ts index e93c1b07cd..69dac0e82f 100644 --- a/types/inputmask/index.d.ts +++ b/types/inputmask/index.d.ts @@ -543,7 +543,7 @@ declare namespace Inputmask { * * @param el Element selector, a single element or an array of elements. */ - mask(selectorOrElement: string | HTMLElement | ReadonlyArray): Instance; + mask(selectorOrElement: string | HTMLElement | ArrayLike): Instance; /** * Get an option on an existing inputmask. * @@ -687,7 +687,7 @@ declare namespace Inputmask { /** * Remove the inputmask. */ - remove(selectorOrElement: string | HTMLElement | ReadonlyArray): void; + remove(selectorOrElement: string | HTMLElement | ArrayLike): void; /** * The setvalue functionality is to set a value to the inputmask like you would do with jQuery.val, BUT it will * trigger the internal event used by the inputmask always, whatever the case. This is particular usefull when @@ -696,7 +696,7 @@ declare namespace Inputmask { * However when setting the value with jQuery.val there is none of the events triggered in that case. The * setvalue functionality does this for you. */ - setValue(selectorOrElement: string | HTMLElement | ReadonlyArray, value: string): void; + setValue(selectorOrElement: string | HTMLElement | ArrayLike, value: string): void; /** * Unmask a given value against the mask. * diff --git a/types/inputmask/test/inputmask-global-tests.ts b/types/inputmask/test/inputmask-global-tests.ts index 985c774e62..47cb434a5a 100644 --- a/types/inputmask/test/inputmask-global-tests.ts +++ b/types/inputmask/test/inputmask-global-tests.ts @@ -78,9 +78,15 @@ Inputmask("9", { repeat: 10 }).mask("selector"); Inputmask({ regex: "\\d*" }).mask("selector"); Inputmask({ regex: String.raw`\d*` }).mask("selector"); -let inputElement!: HTMLInputElement; -Inputmask().mask(inputElement); -Inputmask().mask([inputElement, inputElement]); +function testMask() { + const inputElement = document.querySelector("input"); + if (inputElement) { + Inputmask().mask(inputElement); + Inputmask().mask([inputElement, inputElement]); + Inputmask().mask(document.querySelectorAll("input")); + Inputmask().mask(document.getElementsByTagName("input")); + } +} Inputmask.extendDefaults({ autoUnmask: true diff --git a/types/inputmask/test/inputmask-module-tests.ts b/types/inputmask/test/inputmask-module-tests.ts index 31a969a21a..11ceaa1cbe 100644 --- a/types/inputmask/test/inputmask-module-tests.ts +++ b/types/inputmask/test/inputmask-module-tests.ts @@ -80,9 +80,15 @@ Inputmask("9", { repeat: 10 }).mask("selector"); Inputmask({ regex: "\\d*" }).mask("selector"); Inputmask({ regex: String.raw`\d*` }).mask("selector"); -let inputElement!: HTMLInputElement; -Inputmask().mask(inputElement); -Inputmask().mask([inputElement, inputElement]); +function testMask() { + const inputElement = document.querySelector("input"); + if (inputElement) { + Inputmask().mask(inputElement); + Inputmask().mask([inputElement, inputElement]); + Inputmask().mask(document.querySelectorAll("input")); + Inputmask().mask(document.getElementsByTagName("input")); + } +} Inputmask.extendDefaults({ autoUnmask: true