React input mask (#14068)

* add react mask input

* tsx do not work

* regenerate with command line

* tsx in tsconfig

* maskChar accept null

* lint
This commit is contained in:
Alexandre Paré 2017-01-17 15:09:25 -05:00 committed by Mohamed Hegazy
parent cd116a2d29
commit c4e848741d
4 changed files with 74 additions and 0 deletions

42
react-input-mask/index.d.ts vendored Normal file
View File

@ -0,0 +1,42 @@
// Type definitions for react-input-mask 0.7
// Project: https://github.com/sanniassin/react-input-mask
// Definitions by: Alexandre Paré <https://github.com/apare>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import * as React from "react";
declare namespace reactInputMask {
export interface ReactInputMaskProps extends React.HTMLAttributes<HTMLInputElement> {
/**
* Mask string. Format characters are:
* * `9`: `0-9`
* * `a`: `A-Z, a-z`
* * `\*`: `A-Z, a-z, 0-9`
*
* Any character can be escaped with backslash, which usually will appear as double backslash in JS strings. For example, German phone mask with unremoveable prefix +49 will look like `mask="+4\\9 99 999 99"` or `mask={"+4\\\\9 99 999 99"}`
*/
mask: string;
/**
* Character to cover unfilled editable parts of mask. Default character is "_". If set to null, unfilled parts will be empty, like in ordinary input.
*/
maskChar?: string | null;
/**
* Defines format characters with characters as keys and corresponding RegExp string as values. Default ones:
* ```
* {
* "9": "[0-9]",
* "a": "[A-Za-z]",
* "*": "[A-Za-z0-9]"
* }```
*/
formatChars?: { [key: string]: string };
/**
* Show mask even in empty input without focus.
*/
alwaysShowMask?: boolean;
}
export class ReactInputMask extends React.Component<ReactInputMaskProps, {}> {
}
}
declare var ReactInputMask: typeof reactInputMask.ReactInputMask;
export = ReactInputMask;

View File

@ -0,0 +1,10 @@
import * as ReactInputMask from 'react-input-mask';
import * as React from 'react';
<div>
<ReactInputMask mask="+4\9 99 999 99" maskChar={null} />
<ReactInputMask mask="+7 (999) 999-99-99" />
<ReactInputMask mask="99-99-9999" defaultValue= "13-00-2017" />
<ReactInputMask mask="99/99/9999" placeholder= "Enter birthdate" />
<ReactInputMask mask="+7 (999) 999-99-99" />
</div>

View File

@ -0,0 +1,21 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"jsx": "react",
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"react-input-mask-tests.tsx"
]
}

View File

@ -0,0 +1 @@
{ "extends": "../tslint.json" }