# igxMask
The **igxMask** directive is intended to provide means for controlling user input and formatting the visible value based on a configurable mask rules.
The following built-in mask rules should be supported:
0: requires a digit (0-9).
9: requires a digit (0-9) or a space.
#: requires a digit (0-9), plus (+), or minus (-) sign.
L: requires a letter (a-Z).
?: Requires a letter (a-Z) or a space.
A: requires an alphanumeric (0-9, a-Z).
a: requires an alphanumeric (0-9, a-Z) or a space.
&: any keyboard character (excluding space).
C: any keyboard character.
Static symbols (literals) in the mask pattern are also supported.
# Usage
```typescript
import { IgxMaskModule } from "igniteui-angular";
```
Use the `igxMask` input property on an input element to apply a mask. The **igxMask** directive is fully supported only on an input element of type **text**.
```html
```
Use the `includeLiterals` input property to include/exclude the mask literals from the raw value.
```typescript
public myValue = "1234567890";
public myMask = "(000) 0000-000";
public includeLiterals = true;
```
```html
```
Attach to the `valueChanged` event to implement custom logic when the value changes. Both, raw and formatted value, are accessible through the event payload.
```typescript
let raw: string;
let formatted: string;
handleValueChanged(event) {
this.raw = event.rawValue;
this.formatted = event.formattedValue;
}
```
```html
```
Use the `placeholder` input property to specify the placeholder attribute of the host input element that the `igxMask` is applied on.
```typescript
placeholder = 'hello';
```
```html
```
Use the `focusedValuePipe` and `displayValuePipe` input properties to additionally transform the value on focus and blur.
```typescript
@Pipe({ name: "displayFormat" })
export class DisplayFormatPipe implements PipeTransform {
transform(value: any): string {
return value.toLowerCase();
}
}
displayFormat = new DisplayFormatPipe();
```
```html
```
### API
### Inputs
| Name | Type | Description |
|:----------:|:-------------|:------|
| `mask`| `String` | Represents the current mask. |
| `promptChar`| `String` | Character representing a fillable spot in the mask. |
| `includeLiterals`| `Boolean` | Include or exclude literals in the raw value. |
| `placeholder`| `string` | Specifies a short hint that describes the expected value. |
| `displayValuePipe`| `PipeTransform` | A pipe to transform the input value on blur. |
| `focusedValuePipe`| `PipeTransform` | A pipe to transform the input value on focus. |
### Outputs
| Name | Return Type | Description |
|:--:|:---|:---|
| `valueChanged` | `void` | Fires each time the value changes. |