ngx-mask 14.2.3 → 14.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -23
- package/esm2020/index.mjs +6 -8
- package/esm2020/lib/custom-keyboard-event.mjs +2 -1
- package/esm2020/lib/ngx-mask-applier.service.mjs +643 -0
- package/esm2020/lib/ngx-mask-expression.enum.mjs +2 -0
- package/esm2020/lib/ngx-mask.config.mjs +90 -0
- package/esm2020/lib/ngx-mask.directive.mjs +909 -0
- package/esm2020/lib/ngx-mask.pipe.mjs +104 -0
- package/esm2020/lib/ngx-mask.providers.mjs +34 -0
- package/esm2020/lib/ngx-mask.service.mjs +570 -0
- package/fesm2015/ngx-mask.mjs +1205 -559
- package/fesm2015/ngx-mask.mjs.map +1 -1
- package/fesm2020/ngx-mask.mjs +1204 -547
- package/fesm2020/ngx-mask.mjs.map +1 -1
- package/index.d.ts +5 -7
- package/lib/custom-keyboard-event.d.ts +1 -1
- package/lib/{mask-applier.service.d.ts → ngx-mask-applier.service.d.ts} +21 -14
- package/lib/ngx-mask-expression.enum.d.ts +42 -0
- package/lib/{config.d.ts → ngx-mask.config.d.ts} +16 -5
- package/lib/ngx-mask.directive.d.ts +71 -0
- package/lib/ngx-mask.pipe.d.ts +13 -0
- package/lib/ngx-mask.providers.d.ts +4 -0
- package/lib/{mask.service.d.ts → ngx-mask.service.d.ts} +21 -17
- package/package.json +4 -4
- package/esm2020/lib/config.mjs +0 -81
- package/esm2020/lib/mask-applier.service.mjs +0 -519
- package/esm2020/lib/mask.directive.mjs +0 -599
- package/esm2020/lib/mask.pipe.mjs +0 -30
- package/esm2020/lib/mask.service.mjs +0 -400
- package/esm2020/lib/ngx-mask.module.mjs +0 -53
- package/lib/mask.directive.d.ts +0 -69
- package/lib/mask.pipe.d.ts +0 -11
- package/lib/ngx-mask.module.d.ts +0 -16
package/README.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
<a href="
|
|
2
|
-
<h1 align="center">
|
|
1
|
+
<a href="http://jsdaddy.io/img/logo.png">
|
|
2
|
+
<h1 align="center">NGX MASK</h1>
|
|
3
3
|
</a>
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
NGX MASK is the best directive to solve masking input with needed pattern
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
[](https://github.com/JsDaddy/ngx-mask/actions/workflows/main.yml)
|
|
6
10
|
[](https://www.npmjs.com/package/ngx-mask)
|
|
7
11
|
[](https://npmjs.org/ngx-mask)
|
|
8
12
|
|
|
@@ -12,10 +16,11 @@
|
|
|
12
16
|
|
|
13
17
|
[](https://github.com/JSDaddy/ngx-mask)
|
|
14
18
|
|
|
15
|
-
You can also try our
|
|
16
|
-
You can also try our
|
|
19
|
+
You can also try our NGX LOADER INDICATOR [check](https://www.npmjs.com/package/ngx-loader-indicator).
|
|
20
|
+
You can also try our NGX COPYPASTE [check](https://www.npmjs.com/package/ngx-copypaste).
|
|
21
|
+
|
|
22
|
+
### You can try live [documentation](https://jsdaddy.github.io/ngx-mask/) with examples
|
|
17
23
|
|
|
18
|
-
### You can see the full [documentation](https://jsdaddy.github.io/ngx-mask-page/) with examples
|
|
19
24
|
|
|
20
25
|
## Installing
|
|
21
26
|
|
|
@@ -23,8 +28,92 @@ You can also try our [NGX COPYPASTE](https://www.npmjs.com/package/ngx-copypaste
|
|
|
23
28
|
$ npm install --save ngx-mask
|
|
24
29
|
```
|
|
25
30
|
|
|
26
|
-
## Quickstart
|
|
31
|
+
## Quickstart if ngx-mask version >= 15.0.0
|
|
32
|
+
|
|
33
|
+
Import **ngx-mask** directive, pipe and provide NgxMask providers with `provideNgxMask` function.
|
|
34
|
+
|
|
35
|
+
### With default config options application level
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
bootstrapApplication(AppComponent, {
|
|
39
|
+
providers: [
|
|
40
|
+
(...)
|
|
41
|
+
provideEnvironmentNgxMask(),
|
|
42
|
+
(...)
|
|
43
|
+
],
|
|
44
|
+
}).catch((err) => console.error(err));
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Passing your own mask config options
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
import { IConfig } from 'ngx-mask'
|
|
51
|
+
|
|
52
|
+
const maskConfig: Partial<IConfig> = {
|
|
53
|
+
validation: false,
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
bootstrapApplication(AppComponent, {
|
|
57
|
+
providers: [
|
|
58
|
+
(...)
|
|
59
|
+
provideEnvironmentNgxMask(maskConfig),
|
|
60
|
+
(...)
|
|
61
|
+
],
|
|
62
|
+
}).catch((err) => console.error(err));
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Using a function to configure:
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
const maskConfigFunction: () => Partial<IConfig> = () => {
|
|
69
|
+
return {
|
|
70
|
+
validation: false,
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
bootstrapApplication(AppComponent, {
|
|
75
|
+
providers: [
|
|
76
|
+
(...)
|
|
77
|
+
provideEnvironmentNgxMask(maskConfigFunction),
|
|
78
|
+
(...)
|
|
79
|
+
],
|
|
80
|
+
}).catch((err) => console.error(err));
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### With config options feature level
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
@Component({
|
|
87
|
+
selector: 'my-feature',
|
|
88
|
+
templateUrl: './my-feature.component.html',
|
|
89
|
+
styleUrls: ['./my-feature.component.css'],
|
|
90
|
+
standalone: true,
|
|
91
|
+
imports: [NgxMaskDirective, (...)],
|
|
92
|
+
providers: [
|
|
93
|
+
(...)
|
|
94
|
+
provideNgxMask(),
|
|
95
|
+
(...)
|
|
96
|
+
],
|
|
97
|
+
})
|
|
98
|
+
export class MyFeatureComponent {}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Then, import directive, pipe to needed standalone component and just define masks in inputs.
|
|
102
|
+
|
|
103
|
+
### With Angular modules
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
@NgModule({
|
|
107
|
+
imports: [
|
|
108
|
+
NgxMaskDirective, NgxMaskPipe
|
|
109
|
+
],
|
|
110
|
+
providers: [provideNgxMask()]
|
|
111
|
+
})
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Quickstart if ngx-mask version < 15.0.0
|
|
27
115
|
|
|
116
|
+
For version ngx-mask < 15.0.0
|
|
28
117
|
Import **ngx-mask** module in Angular app.
|
|
29
118
|
|
|
30
119
|
### With default mask config options
|
|
@@ -75,7 +164,7 @@ const maskConfigFunction: () => Partial<IConfig> = () => {
|
|
|
75
164
|
|
|
76
165
|
Then, just define masks in inputs.
|
|
77
166
|
|
|
78
|
-
|
|
167
|
+
## Usage
|
|
79
168
|
|
|
80
169
|
```html
|
|
81
170
|
<input type="text" mask="<here goes your mask>" />
|
|
@@ -89,21 +178,17 @@ or
|
|
|
89
178
|
|
|
90
179
|
Also, you can use mask pipe.
|
|
91
180
|
|
|
92
|
-
### Usage
|
|
93
|
-
|
|
94
181
|
```html
|
|
95
182
|
<span>{{phone | mask: '(000) 000-0000'}}</span>
|
|
96
183
|
```
|
|
97
184
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
### Usage
|
|
185
|
+
You could path any valid config options, for example thousandSeparator and suffix
|
|
101
186
|
|
|
102
187
|
```html
|
|
103
|
-
<span>{{value | mask: 'separator':','}}</span>
|
|
188
|
+
<span>{{value | mask: 'separator': {thousandSeparator: ',', suffix: ' sm'}}</span>
|
|
104
189
|
```
|
|
105
190
|
|
|
106
|
-
|
|
191
|
+
### Examples
|
|
107
192
|
|
|
108
193
|
| mask | example |
|
|
109
194
|
| -------------- | -------------- |
|
|
@@ -193,10 +278,10 @@ You can define custom pattern and specify symbol to be rendered in input field.
|
|
|
193
278
|
|
|
194
279
|
```typescript
|
|
195
280
|
pattern = {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
281
|
+
B: {
|
|
282
|
+
pattern: new RegExp('\\d'),
|
|
283
|
+
symbol: 'X',
|
|
284
|
+
},
|
|
200
285
|
};
|
|
201
286
|
```
|
|
202
287
|
|
|
@@ -294,9 +379,9 @@ and in your component
|
|
|
294
379
|
customMask: [string, pattern];
|
|
295
380
|
|
|
296
381
|
pattern = {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
382
|
+
P: {
|
|
383
|
+
pattern: new RegExp('\\d'),
|
|
384
|
+
},
|
|
300
385
|
};
|
|
301
386
|
|
|
302
387
|
this.customMask = ['PPP-PPP', this.pattern];
|
|
@@ -367,6 +452,18 @@ Masked value: 1.234
|
|
|
367
452
|
Input value: 1234.56
|
|
368
453
|
Masked value: 1,234
|
|
369
454
|
```
|
|
455
|
+
```html
|
|
456
|
+
<input type="text" mask="separator.2" [leadZero]="true" />
|
|
457
|
+
```
|
|
458
|
+
To add zeros to the model at the end
|
|
459
|
+
|
|
460
|
+
```text
|
|
461
|
+
Input value: 12
|
|
462
|
+
Masked value: 12.00
|
|
463
|
+
|
|
464
|
+
Input value: 12.1
|
|
465
|
+
Masked value: 12.10
|
|
466
|
+
```
|
|
370
467
|
|
|
371
468
|
```html
|
|
372
469
|
<input type="text" mask="separator.2" separatorLimit="1000" />
|
|
@@ -469,7 +566,7 @@ You can hide symbols in input field and get the actual value in `formcontrol`.
|
|
|
469
566
|
<input mask="CPF_CNPJ" />
|
|
470
567
|
```
|
|
471
568
|
|
|
472
|
-
###
|
|
569
|
+
### Allow few mask in one expression
|
|
473
570
|
|
|
474
571
|
#### Usage
|
|
475
572
|
|
|
@@ -483,6 +580,10 @@ You can pass into mask pattern with `||`.
|
|
|
483
580
|
<input mask="(00) 0000-0000||(00) 0 0000-0000" />
|
|
484
581
|
```
|
|
485
582
|
|
|
583
|
+
```html
|
|
584
|
+
<input mask="00||SS" />
|
|
585
|
+
```
|
|
586
|
+
|
|
486
587
|
### Function maskFilled
|
|
487
588
|
|
|
488
589
|
#### Usage
|
package/esm2020/index.mjs
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
export * from './lib/ngx-mask.
|
|
2
|
-
export * from './lib/mask.directive';
|
|
3
|
-
export * from './lib/mask.pipe';
|
|
4
|
-
export * from './lib/mask.service';
|
|
5
|
-
export * from './lib/mask
|
|
6
|
-
|
|
7
|
-
export * from './lib/custom-keyboard-event';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWFzay1saWIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LW1hc2subW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hc2suZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hc2sucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXNrLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFzay1hcHBsaWVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2N1c3RvbS1rZXlib2FyZC1ldmVudCc7XG4iXX0=
|
|
1
|
+
export * from './lib/ngx-mask.providers';
|
|
2
|
+
export * from './lib/ngx-mask.directive';
|
|
3
|
+
export * from './lib/ngx-mask.pipe';
|
|
4
|
+
export * from './lib/ngx-mask.service';
|
|
5
|
+
export * from './lib/ngx-mask.config';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWFzay1saWIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL25neC1tYXNrLnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtbWFzay5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LW1hc2sucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtbWFzay5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1tYXNrLmNvbmZpZyc7XG4iXX0=
|
|
@@ -9,8 +9,9 @@ const commonjsGlobal = typeof globalThis !== 'undefined'
|
|
|
9
9
|
: {};
|
|
10
10
|
(function () {
|
|
11
11
|
if (!commonjsGlobal.KeyboardEvent) {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
12
13
|
commonjsGlobal.KeyboardEvent = function (_eventType, _init) { };
|
|
13
14
|
}
|
|
14
15
|
})();
|
|
15
16
|
export {};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWtleWJvYXJkLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hc2stbGliL3NyYy9saWIvY3VzdG9tLWtleWJvYXJkLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sY0FBYyxHQUNoQixPQUFPLFVBQVUsS0FBSyxXQUFXO0lBQzdCLENBQUMsQ0FBQyxVQUFVO0lBQ1osQ0FBQyxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVc7UUFDL0IsQ0FBQyxDQUFDLE1BQU07UUFDUixDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVztZQUMvQixDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxPQUFPLElBQUksS0FBSyxXQUFXO2dCQUM3QixDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsRUFBRSxDQUFDO0FBRWIsQ0FBQztJQUNHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFO1FBQy9CLGdFQUFnRTtRQUNoRSxjQUFjLENBQUMsYUFBYSxHQUFHLFVBQVUsVUFBZSxFQUFFLEtBQVUsSUFBRyxDQUFDLENBQUM7S0FDNUU7QUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuZGVjbGFyZSBsZXQgZ2xvYmFsOiBhbnk7XG5cbmNvbnN0IGNvbW1vbmpzR2xvYmFsID1cbiAgICB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyBnbG9iYWxUaGlzXG4gICAgICAgIDogdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyB3aW5kb3dcbiAgICAgICAgOiB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IGdsb2JhbFxuICAgICAgICA6IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IHNlbGZcbiAgICAgICAgOiB7fTtcblxuKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWNvbW1vbmpzR2xvYmFsLktleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgICAgICBjb21tb25qc0dsb2JhbC5LZXlib2FyZEV2ZW50ID0gZnVuY3Rpb24gKF9ldmVudFR5cGU6IGFueSwgX2luaXQ6IGFueSkge307XG4gICAgfVxufSkoKTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tS2V5Ym9hcmRFdmVudCA9IEtleWJvYXJkRXZlbnQ7XG4iXX0=
|