From bc0ac158b0f6b32debf4420395ca26aba06a6e7b Mon Sep 17 00:00:00 2001 From: Sam Herrmann Date: Tue, 26 Nov 2019 17:41:04 -0500 Subject: [PATCH] [inputmask] Add definitions property to Options (#40573) --- types/inputmask/index.d.ts | 9 ++- .../inputmask/test/inputmask-global-tests.ts | 80 ++++++++++--------- .../inputmask/test/inputmask-jquery-tests.ts | 6 ++ .../inputmask/test/inputmask-module-tests.ts | 6 ++ 4 files changed, 63 insertions(+), 38 deletions(-) diff --git a/types/inputmask/index.d.ts b/types/inputmask/index.d.ts index 3f51fc2df4..96952342c0 100644 --- a/types/inputmask/index.d.ts +++ b/types/inputmask/index.d.ts @@ -513,6 +513,13 @@ declare namespace Inputmask { * Format of the unmasked value. This is only effective when used with the datetime alias. */ outputFormat?: string; + + /** + * Add new definitions to this inputmask. + */ + definitions?: { + [key: string]: Definition; + }; } interface Instance { @@ -658,7 +665,7 @@ declare namespace Inputmask { */ extendDefaults(opts: Options): void; /** - * Add new definitions to this inputmask. + * Extends the set of available definitions. */ extendDefinitions(definitions: { [key: string]: Definition, diff --git a/types/inputmask/test/inputmask-global-tests.ts b/types/inputmask/test/inputmask-global-tests.ts index 47cb434a5a..1f6ee19fcf 100644 --- a/types/inputmask/test/inputmask-global-tests.ts +++ b/types/inputmask/test/inputmask-global-tests.ts @@ -70,6 +70,12 @@ Inputmask({ unmaskAsNumber: false, inputType: "text", inputmode: "numeric", + definitions: { + X: { + validator: "[xX]", + casing: "upper" + } + } }).mask("selector"); Inputmask("9-a{1,3}9{1,3}").mask("selector"); @@ -89,50 +95,50 @@ function testMask() { } Inputmask.extendDefaults({ - autoUnmask: true + autoUnmask: true }); Inputmask.extendDefinitions({ - A: { - validator: "[A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]", - casing: "upper" - }, - '+': { - validator: "[0-9A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]", - casing: "upper" - } + A: { + validator: "[A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]", + casing: "upper" + }, + '+': { + validator: "[0-9A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]", + casing: "upper" + } }); Inputmask.extendAliases({ - numeric: { - mask: "r", - greedy: false - } + numeric: { + mask: "r", + greedy: false + } }); Inputmask.extendDefinitions({ - f: { - validator: "[0-9\(\)\.\+/ ]" - }, - j: { - validator: "(19|20)\\d{2}" - }, - x: { - validator: "[0-2]", - definitionSymbol: "i" - }, - y: { - validator: (chrs: string, buffer: string[], pos: number) => { - const valExp2 = new RegExp("2[0-5]|[01][0-9]"); - return valExp2.test(buffer[pos - 1] + chrs); - }, - definitionSymbol: "i" - }, - z: { - validator: (chrs: string, buffer: string[], pos: number) => { - const valExp3 = new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]"); - return valExp3.test(buffer[pos - 2] + buffer[pos - 1] + chrs); - }, - definitionSymbol: "i" - } + f: { + validator: "[0-9\(\)\.\+/ ]" + }, + j: { + validator: "(19|20)\\d{2}" + }, + x: { + validator: "[0-2]", + definitionSymbol: "i" + }, + y: { + validator: (chrs: string, buffer: string[], pos: number) => { + const valExp2 = new RegExp("2[0-5]|[01][0-9]"); + return valExp2.test(buffer[pos - 1] + chrs); + }, + definitionSymbol: "i" + }, + z: { + validator: (chrs: string, buffer: string[], pos: number) => { + const valExp3 = new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]"); + return valExp3.test(buffer[pos - 2] + buffer[pos - 1] + chrs); + }, + definitionSymbol: "i" + } }); function testElement(el: HTMLElement) { diff --git a/types/inputmask/test/inputmask-jquery-tests.ts b/types/inputmask/test/inputmask-jquery-tests.ts index 2ded13c9d5..0b1fd02a5d 100644 --- a/types/inputmask/test/inputmask-jquery-tests.ts +++ b/types/inputmask/test/inputmask-jquery-tests.ts @@ -78,4 +78,10 @@ $("#testmask").inputmask({ unmaskAsNumber: false, inputType: "text", inputmode: "numeric", + definitions: { + X: { + validator: "[xX]", + casing: "upper" + } + } }); diff --git a/types/inputmask/test/inputmask-module-tests.ts b/types/inputmask/test/inputmask-module-tests.ts index 11ceaa1cbe..5be64dba2b 100644 --- a/types/inputmask/test/inputmask-module-tests.ts +++ b/types/inputmask/test/inputmask-module-tests.ts @@ -72,6 +72,12 @@ Inputmask({ unmaskAsNumber: false, inputType: "text", inputmode: "numeric", + definitions: { + X: { + validator: "[xX]", + casing: "upper" + } + } }).mask("selector"); Inputmask("9-a{1,3}9{1,3}").mask("selector");