ngx-rut-v2 1.6.3 → 1.8.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 +17 -13
- package/fesm2022/ngx-rut-v2.mjs +12 -12
- package/fesm2022/ngx-rut-v2.mjs.map +1 -1
- package/index.d.ts +60 -3
- package/package.json +8 -4
- package/lib/directives/rut-validator.directive.d.ts +0 -8
- package/lib/directives/rut-value-accessor.directive.d.ts +0 -18
- package/lib/directives/rut.directive.d.ts +0 -7
- package/lib/helpers/rut-helpers.d.ts +0 -20
- package/lib/pipes/rut.pipe.d.ts +0 -7
- package/public-api.d.ts +0 -5
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ngx-rut-v2
|
|
2
2
|
|
|
3
|
-
Basado en [ngx-rut](https://github.com/danieldiazastudillo/ngx-rut) pero usando Angular con
|
|
3
|
+
Basado en [ngx-rut](https://github.com/danieldiazastudillo/ngx-rut) pero usando Angular con componentes, directivas y validaciones _standalone_. Para uso en Angular con módulos se recomienda esa versión.
|
|
4
4
|
|
|
5
5
|
Valida y formatea [RUT Chilenos](https://en.wikipedia.org/wiki/National_identification_number#Chile)
|
|
6
6
|
|
|
@@ -10,6 +10,8 @@ Valida y formatea [RUT Chilenos](https://en.wikipedia.org/wiki/National_identifi
|
|
|
10
10
|
|--------------------|-----------------|
|
|
11
11
|
| 1.5.0 | 18 |
|
|
12
12
|
| 1.6.0 | 19 |
|
|
13
|
+
| 1.7.0 | 19 |
|
|
14
|
+
| 1.8.0 | 20 |
|
|
13
15
|
|
|
14
16
|
## Installation
|
|
15
17
|
|
|
@@ -24,16 +26,17 @@ Se deben importar las funciones, directivas & pipes directamente (standalones)
|
|
|
24
26
|
|
|
25
27
|
```typescript
|
|
26
28
|
...
|
|
27
|
-
import {
|
|
29
|
+
import { rutValidator, RutValidator, RutDirective, RutPipe, RutValueAccessor } from 'ngx-rut-v2';
|
|
28
30
|
...
|
|
29
31
|
|
|
30
32
|
@Component({
|
|
31
33
|
selector: 'app-some-component',
|
|
32
34
|
standalone: true, //IMPORTANTE!
|
|
33
35
|
imports: [
|
|
34
|
-
|
|
36
|
+
RutValidator,
|
|
35
37
|
RutDirective,
|
|
36
|
-
RutPipe
|
|
38
|
+
RutPipe,
|
|
39
|
+
RutValueAccessor
|
|
37
40
|
]
|
|
38
41
|
})
|
|
39
42
|
class SomeComponent { }
|
|
@@ -43,10 +46,11 @@ class SomeComponent { }
|
|
|
43
46
|
## Uso
|
|
44
47
|
|
|
45
48
|
El paquete expone diversas funciones de validación de RUTs. Sin embargo se recomienda usar:
|
|
46
|
-
- `
|
|
49
|
+
- `rutValidator`: Función validadora para formularios reactivos.
|
|
47
50
|
- `RutValidator`: Expone la directiva `validateRut` (para `NgModel` o `inputs` en _Template-Driven Forms_)
|
|
48
51
|
- `RutPipe`: Expone el _pipe_ para formatear texto como RUT
|
|
49
52
|
- `RutDirective`: Expone la directiva `formatRut` para formateo de `inputs`
|
|
53
|
+
- `RutValueAccessor`: ControlValueAccessor para formularios reactivos con formateo automático
|
|
50
54
|
|
|
51
55
|
|
|
52
56
|
### Reactive Forms
|
|
@@ -54,11 +58,11 @@ El paquete expone diversas funciones de validación de RUTs. Sin embargo se reco
|
|
|
54
58
|
#### Componente
|
|
55
59
|
```typescript
|
|
56
60
|
import { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';
|
|
57
|
-
import {
|
|
61
|
+
import { rutValidator } from 'ngx-rut-v2';
|
|
58
62
|
export class DemoAppComponent {
|
|
59
|
-
constructor () {
|
|
63
|
+
constructor (private fb: FormBuilder) {
|
|
60
64
|
this.reactiveForm = fb.group({
|
|
61
|
-
rut: ['30972198', [Validators.required,
|
|
65
|
+
rut: ['30972198', [Validators.required, rutValidator]]
|
|
62
66
|
});
|
|
63
67
|
}
|
|
64
68
|
}
|
|
@@ -75,14 +79,14 @@ export class DemoAppComponent {
|
|
|
75
79
|
<!-- 3.097.219-8 -->
|
|
76
80
|
```
|
|
77
81
|
|
|
78
|
-
##### formatRut (Directiva para inputs)
|
|
82
|
+
##### formatRut (Directiva para inputs con ControlValueAccessor)
|
|
79
83
|
```html
|
|
80
|
-
<input
|
|
84
|
+
<input formControlName="rut" formatRut />
|
|
81
85
|
<!--
|
|
82
86
|
(on blur)
|
|
83
87
|
3.097.219-8
|
|
84
88
|
|
|
85
|
-
(on focus)
|
|
89
|
+
(on focus/input)
|
|
86
90
|
30972198
|
|
87
91
|
-->
|
|
88
92
|
```
|
|
@@ -94,7 +98,7 @@ export class DemoAppComponent {
|
|
|
94
98
|
<mat-form-field>
|
|
95
99
|
<mat-label>RUT</mat-label>
|
|
96
100
|
<input matInput formControlName="rut" formatRut />
|
|
97
|
-
@if (
|
|
101
|
+
@if (reactiveForm.get('rut')?.hasError('invalidRut')) {
|
|
98
102
|
<mat-error>El RUT ingresado es <strong>inválido</strong></mat-error>
|
|
99
103
|
}
|
|
100
104
|
</mat-form-field>
|
|
@@ -102,7 +106,7 @@ export class DemoAppComponent {
|
|
|
102
106
|
|
|
103
107
|
##### Template-Driven Forms
|
|
104
108
|
```html
|
|
105
|
-
<input [(ngModel)]="user.rut" name="rut" validateRut required>
|
|
109
|
+
<input [(ngModel)]="user.rut" name="rut" validateRut formatRut required>
|
|
106
110
|
```
|
|
107
111
|
|
|
108
112
|
|
package/fesm2022/ngx-rut-v2.mjs
CHANGED
|
@@ -81,12 +81,12 @@ class RutValidator {
|
|
|
81
81
|
validate(control) {
|
|
82
82
|
return rutValidator(control);
|
|
83
83
|
}
|
|
84
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
85
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
84
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RutValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
85
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: RutValidator, isStandalone: true, selector: "[validateRut][ngModel],[validateRut][formControl]", providers: [
|
|
86
86
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => RutValidator), multi: true },
|
|
87
87
|
], ngImport: i0 });
|
|
88
88
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RutValidator, decorators: [{
|
|
90
90
|
type: Directive,
|
|
91
91
|
args: [{
|
|
92
92
|
selector: '[validateRut][ngModel],[validateRut][formControl]',
|
|
@@ -133,10 +133,10 @@ class RutValueAccessor {
|
|
|
133
133
|
setDisabledState(isDisabled) {
|
|
134
134
|
this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);
|
|
135
135
|
}
|
|
136
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
137
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
136
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RutValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
137
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: RutValueAccessor, isStandalone: true, selector: "input[formatRut]", host: { listeners: { "input": "onInput($event.target.value)", "blur": "onBlur()" } }, providers: [RUT_VALUE_ACCESSOR], ngImport: i0 });
|
|
138
138
|
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RutValueAccessor, decorators: [{
|
|
140
140
|
type: Directive,
|
|
141
141
|
args: [{
|
|
142
142
|
selector: 'input[formatRut]',
|
|
@@ -158,10 +158,10 @@ class RutDirective {
|
|
|
158
158
|
onBlur(input) {
|
|
159
159
|
input.value = rutFormat(input.value) || '';
|
|
160
160
|
}
|
|
161
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
162
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
161
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
162
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: RutDirective, isStandalone: true, selector: "[formatRut]", host: { listeners: { "focus": "onFocus($event.target)", "blur": "onBlur($event.target)" } }, ngImport: i0 });
|
|
163
163
|
}
|
|
164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RutDirective, decorators: [{
|
|
165
165
|
type: Directive,
|
|
166
166
|
args: [{
|
|
167
167
|
selector: '[formatRut]',
|
|
@@ -179,10 +179,10 @@ class RutPipe {
|
|
|
179
179
|
transform(value) {
|
|
180
180
|
return rutFormat(value);
|
|
181
181
|
}
|
|
182
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
183
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
182
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RutPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
183
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: RutPipe, isStandalone: true, name: "rut" });
|
|
184
184
|
}
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RutPipe, decorators: [{
|
|
186
186
|
type: Pipe,
|
|
187
187
|
args: [{
|
|
188
188
|
name: 'rut',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rut-v2.mjs","sources":["../../../projects/ngx-rut-v2/src/lib/helpers/rut-helpers.ts","../../../projects/ngx-rut-v2/src/lib/directives/rut-validator.directive.ts","../../../projects/ngx-rut-v2/src/lib/directives/rut-value-accessor.directive.ts","../../../projects/ngx-rut-v2/src/lib/directives/rut.directive.ts","../../../projects/ngx-rut-v2/src/lib/pipes/rut.pipe.ts","../../../projects/ngx-rut-v2/src/public-api.ts","../../../projects/ngx-rut-v2/src/ngx-rut-v2.ts"],"sourcesContent":["/**\r\n *\r\n * @param value The RUT string to clean.\r\n * @description Cleans a RUT (Rol Único Tributario) string by removing non-numeric characters and leading zeros.\r\n * Converts the RUT to uppercase and returns it.\r\n * @returns The cleaned RUT string.\r\n */\r\nexport function rutClean(value: string): string {\r\n if (typeof value === 'string') {\r\n return value\r\n .replace(/[^0-9kK]+/g, '')\r\n .replace(/^0+/, '')\r\n .toUpperCase();\r\n }\r\n return '';\r\n}\r\n\r\n/**\r\n * @param value The RUT string to validate.\r\n * @description Validates a RUT (Rol Único Tributario) string.\r\n * @returns True if the RUT is valid, false otherwise.\r\n */\r\nexport function rutValidate(value: string): boolean {\r\n if (typeof value !== 'string') {\r\n return false;\r\n }\r\n\r\n const rut: string = rutClean(value);\r\n if (rut.length < 2) {\r\n return false;\r\n }\r\n\r\n const body: string = rut.slice(0, -1);\r\n const dv: string = rut.slice(-1).toUpperCase();\r\n\r\n let sum = 0;\r\n let multiplier = 2;\r\n\r\n for (let i = body.length - 1; i >= 0; i--) {\r\n sum += parseInt(body.charAt(i), 10) * multiplier;\r\n multiplier = multiplier === 7 ? 2 : multiplier + 1;\r\n }\r\n\r\n const expectedDv = 11 - (sum % 11);\r\n let expectedDvStr = '';\r\n\r\n if (expectedDv === 11) {\r\n expectedDvStr = '0';\r\n } else if (expectedDv === 10) {\r\n expectedDvStr = 'K';\r\n } else {\r\n expectedDvStr = expectedDv.toString();\r\n }\r\n\r\n return dv === expectedDvStr;\r\n}\r\n\r\n/**\r\n * Formats a RUT (Rol Único Tributario) string.\r\n * @param value The RUT string to format.\r\n * @returns The formatted RUT string.\r\n */\r\nexport function rutFormat(value: string): string {\r\n const rut: string = rutClean(value);\r\n\r\n if (rut.length <= 1) {\r\n return rut;\r\n }\r\n\r\n let result: string = `${rut.slice(-4, -1)}-${rut.slice(-1)}`;\r\n for (let i: number = 4; i < rut.length; i += 3) {\r\n result = `${rut.slice(-3 - i, -i)}.${result}`;\r\n }\r\n\r\n return result;\r\n}\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { rutValidate } from '../helpers/rut-helpers';\r\n\r\n// Single reusable ValidatorFn\r\nexport const rutValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n if (!value) {\r\n return null;\r\n }\r\n return rutValidate(value) ? null : { invalidRut: true };\r\n};\r\n\r\n@Directive({\r\n selector: '[validateRut][ngModel],[validateRut][formControl]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => RutValidator), multi: true },\r\n ],\r\n standalone: true\r\n})\r\nexport class RutValidator implements Validator {\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return rutValidator(control);\r\n }\r\n}\r\n","\r\nimport { Directive, forwardRef, ElementRef, Renderer2, HostListener } from '@angular/core';\r\nimport { rutFormat, rutClean } from '../helpers/rut-helpers';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nconst RUT_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RutValueAccessor),\r\n multi: true,\r\n};\r\n\r\n@Directive({\r\n selector: 'input[formatRut]',\r\n standalone: true,\r\n providers: [RUT_VALUE_ACCESSOR],\r\n})\r\nexport class RutValueAccessor implements ControlValueAccessor {\r\n private onChange: (value: any) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n constructor(\r\n private readonly renderer: Renderer2,\r\n private readonly elementRef: ElementRef,\r\n ) {}\r\n\r\n @HostListener('input', ['$event.target.value'])\r\n onInput(value: string) {\r\n this.onChange(rutClean(value));\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur() {\r\n const value = this.elementRef.nativeElement.value;\r\n const formatted = rutFormat(value);\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatted);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: any): void {\r\n const formatted = rutFormat(value) || '';\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatted);\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { rutClean, rutFormat } from '../helpers/rut-helpers';\r\n\r\n@Directive({\r\n selector: '[formatRut]',\r\n standalone: true\r\n})\r\nexport class RutDirective {\r\n @HostListener('focus', ['$event.target'])\r\n onFocus(input: HTMLInputElement) {\r\n input.value = rutClean(input.value);\r\n }\r\n\r\n @HostListener('blur', ['$event.target'])\r\n onBlur(input: HTMLInputElement) {\r\n input.value = rutFormat(input.value) || '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { rutFormat } from '../helpers/rut-helpers';\r\n\r\n@Pipe({\r\n name: 'rut',\r\n standalone: true\r\n})\r\nexport class RutPipe implements PipeTransform {\r\n public transform(value: string): string {\r\n return rutFormat(value);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-rut-v2\r\n */\r\n\r\nexport * from './lib/helpers/rut-helpers';\r\nexport * from './lib/directives/rut-validator.directive';\r\nexport * from './lib/directives/rut-value-accessor.directive';\r\nexport * from './lib/directives/rut.directive';\r\nexport * from './lib/pipes/rut.pipe';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-rut-v2.mjs","sources":["../../../projects/ngx-rut-v2/src/lib/helpers/rut-helpers.ts","../../../projects/ngx-rut-v2/src/lib/directives/rut-validator.directive.ts","../../../projects/ngx-rut-v2/src/lib/directives/rut-value-accessor.directive.ts","../../../projects/ngx-rut-v2/src/lib/directives/rut.directive.ts","../../../projects/ngx-rut-v2/src/lib/pipes/rut.pipe.ts","../../../projects/ngx-rut-v2/src/public-api.ts","../../../projects/ngx-rut-v2/src/ngx-rut-v2.ts"],"sourcesContent":["/**\r\n *\r\n * @param value The RUT string to clean.\r\n * @description Cleans a RUT (Rol Único Tributario) string by removing non-numeric characters and leading zeros.\r\n * Converts the RUT to uppercase and returns it.\r\n * @returns The cleaned RUT string.\r\n */\r\nexport function rutClean(value: string): string {\r\n if (typeof value === 'string') {\r\n return value\r\n .replace(/[^0-9kK]+/g, '')\r\n .replace(/^0+/, '')\r\n .toUpperCase();\r\n }\r\n return '';\r\n}\r\n\r\n/**\r\n * @param value The RUT string to validate.\r\n * @description Validates a RUT (Rol Único Tributario) string.\r\n * @returns True if the RUT is valid, false otherwise.\r\n */\r\nexport function rutValidate(value: string): boolean {\r\n if (typeof value !== 'string') {\r\n return false;\r\n }\r\n\r\n const rut: string = rutClean(value);\r\n if (rut.length < 2) {\r\n return false;\r\n }\r\n\r\n const body: string = rut.slice(0, -1);\r\n const dv: string = rut.slice(-1).toUpperCase();\r\n\r\n let sum = 0;\r\n let multiplier = 2;\r\n\r\n for (let i = body.length - 1; i >= 0; i--) {\r\n sum += parseInt(body.charAt(i), 10) * multiplier;\r\n multiplier = multiplier === 7 ? 2 : multiplier + 1;\r\n }\r\n\r\n const expectedDv = 11 - (sum % 11);\r\n let expectedDvStr = '';\r\n\r\n if (expectedDv === 11) {\r\n expectedDvStr = '0';\r\n } else if (expectedDv === 10) {\r\n expectedDvStr = 'K';\r\n } else {\r\n expectedDvStr = expectedDv.toString();\r\n }\r\n\r\n return dv === expectedDvStr;\r\n}\r\n\r\n/**\r\n * Formats a RUT (Rol Único Tributario) string.\r\n * @param value The RUT string to format.\r\n * @returns The formatted RUT string.\r\n */\r\nexport function rutFormat(value: string): string {\r\n const rut: string = rutClean(value);\r\n\r\n if (rut.length <= 1) {\r\n return rut;\r\n }\r\n\r\n let result: string = `${rut.slice(-4, -1)}-${rut.slice(-1)}`;\r\n for (let i: number = 4; i < rut.length; i += 3) {\r\n result = `${rut.slice(-3 - i, -i)}.${result}`;\r\n }\r\n\r\n return result;\r\n}\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { rutValidate } from '../helpers/rut-helpers';\r\n\r\n// Single reusable ValidatorFn\r\nexport const rutValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n if (!value) {\r\n return null;\r\n }\r\n return rutValidate(value) ? null : { invalidRut: true };\r\n};\r\n\r\n@Directive({\r\n selector: '[validateRut][ngModel],[validateRut][formControl]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => RutValidator), multi: true },\r\n ],\r\n standalone: true\r\n})\r\nexport class RutValidator implements Validator {\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return rutValidator(control);\r\n }\r\n}\r\n","\r\nimport { Directive, forwardRef, ElementRef, Renderer2, HostListener } from '@angular/core';\r\nimport { rutFormat, rutClean } from '../helpers/rut-helpers';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nconst RUT_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RutValueAccessor),\r\n multi: true,\r\n};\r\n\r\n@Directive({\r\n selector: 'input[formatRut]',\r\n standalone: true,\r\n providers: [RUT_VALUE_ACCESSOR],\r\n})\r\nexport class RutValueAccessor implements ControlValueAccessor {\r\n private onChange: (value: any) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n constructor(\r\n private readonly renderer: Renderer2,\r\n private readonly elementRef: ElementRef,\r\n ) {}\r\n\r\n @HostListener('input', ['$event.target.value'])\r\n onInput(value: string) {\r\n this.onChange(rutClean(value));\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur() {\r\n const value = this.elementRef.nativeElement.value;\r\n const formatted = rutFormat(value);\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatted);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: any): void {\r\n const formatted = rutFormat(value) || '';\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatted);\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { rutClean, rutFormat } from '../helpers/rut-helpers';\r\n\r\n@Directive({\r\n selector: '[formatRut]',\r\n standalone: true\r\n})\r\nexport class RutDirective {\r\n @HostListener('focus', ['$event.target'])\r\n onFocus(input: HTMLInputElement) {\r\n input.value = rutClean(input.value);\r\n }\r\n\r\n @HostListener('blur', ['$event.target'])\r\n onBlur(input: HTMLInputElement) {\r\n input.value = rutFormat(input.value) || '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { rutFormat } from '../helpers/rut-helpers';\r\n\r\n@Pipe({\r\n name: 'rut',\r\n standalone: true\r\n})\r\nexport class RutPipe implements PipeTransform {\r\n public transform(value: string): string {\r\n return rutFormat(value);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-rut-v2\r\n */\r\n\r\nexport * from './lib/helpers/rut-helpers';\r\nexport * from './lib/directives/rut-validator.directive';\r\nexport * from './lib/directives/rut-value-accessor.directive';\r\nexport * from './lib/directives/rut.directive';\r\nexport * from './lib/pipes/rut.pipe';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
|
+
import { ValidatorFn, Validator, AbstractControl, ValidationErrors, ControlValueAccessor } from '@angular/forms';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Renderer2, ElementRef, PipeTransform } from '@angular/core';
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
6
|
+
*
|
|
7
|
+
* @param value The RUT string to clean.
|
|
8
|
+
* @description Cleans a RUT (Rol Único Tributario) string by removing non-numeric characters and leading zeros.
|
|
9
|
+
* Converts the RUT to uppercase and returns it.
|
|
10
|
+
* @returns The cleaned RUT string.
|
|
3
11
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
12
|
+
declare function rutClean(value: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* @param value The RUT string to validate.
|
|
15
|
+
* @description Validates a RUT (Rol Único Tributario) string.
|
|
16
|
+
* @returns True if the RUT is valid, false otherwise.
|
|
17
|
+
*/
|
|
18
|
+
declare function rutValidate(value: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Formats a RUT (Rol Único Tributario) string.
|
|
21
|
+
* @param value The RUT string to format.
|
|
22
|
+
* @returns The formatted RUT string.
|
|
23
|
+
*/
|
|
24
|
+
declare function rutFormat(value: string): string;
|
|
25
|
+
|
|
26
|
+
declare const rutValidator: ValidatorFn;
|
|
27
|
+
declare class RutValidator implements Validator {
|
|
28
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RutValidator, never>;
|
|
30
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RutValidator, "[validateRut][ngModel],[validateRut][formControl]", never, {}, {}, never, never, true, never>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
declare class RutValueAccessor implements ControlValueAccessor {
|
|
34
|
+
private readonly renderer;
|
|
35
|
+
private readonly elementRef;
|
|
36
|
+
private onChange;
|
|
37
|
+
private onTouched;
|
|
38
|
+
constructor(renderer: Renderer2, elementRef: ElementRef);
|
|
39
|
+
onInput(value: string): void;
|
|
40
|
+
onBlur(): void;
|
|
41
|
+
writeValue(value: any): void;
|
|
42
|
+
registerOnChange(fn: (_: any) => void): void;
|
|
43
|
+
registerOnTouched(fn: () => void): void;
|
|
44
|
+
setDisabledState(isDisabled: boolean): void;
|
|
45
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RutValueAccessor, never>;
|
|
46
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RutValueAccessor, "input[formatRut]", never, {}, {}, never, never, true, never>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
declare class RutDirective {
|
|
50
|
+
onFocus(input: HTMLInputElement): void;
|
|
51
|
+
onBlur(input: HTMLInputElement): void;
|
|
52
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RutDirective, never>;
|
|
53
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RutDirective, "[formatRut]", never, {}, {}, never, never, true, never>;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
declare class RutPipe implements PipeTransform {
|
|
57
|
+
transform(value: string): string;
|
|
58
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RutPipe, never>;
|
|
59
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<RutPipe, "rut", true>;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export { RutDirective, RutPipe, RutValidator, RutValueAccessor, rutClean, rutFormat, rutValidate, rutValidator };
|
package/package.json
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-rut-v2",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"private": false,
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Daniel Díaz Astudillo"
|
|
7
|
+
},
|
|
8
|
+
"description": "Angular library to format and validate RUT (Rol Único Tributario) from Chile",
|
|
5
9
|
"repository": {
|
|
6
10
|
"type": "git",
|
|
7
|
-
"url": "https://github.com/danieldiazastudillo/ngx-rut-v2"
|
|
11
|
+
"url": "git+https://github.com/danieldiazastudillo/ngx-rut-v2.git"
|
|
8
12
|
},
|
|
9
13
|
"peerDependencies": {
|
|
10
|
-
"@angular/common": "^
|
|
11
|
-
"@angular/core": "^
|
|
14
|
+
"@angular/common": "^20.0.0",
|
|
15
|
+
"@angular/core": "^20.0.0"
|
|
12
16
|
},
|
|
13
17
|
"dependencies": {
|
|
14
18
|
"tslib": "^2.8.1"
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { AbstractControl, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare const rutValidator: ValidatorFn;
|
|
4
|
-
export declare class RutValidator implements Validator {
|
|
5
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
6
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RutValidator, never>;
|
|
7
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RutValidator, "[validateRut][ngModel],[validateRut][formControl]", never, {}, {}, never, never, true, never>;
|
|
8
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ElementRef, Renderer2 } from '@angular/core';
|
|
2
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class RutValueAccessor implements ControlValueAccessor {
|
|
5
|
-
private readonly renderer;
|
|
6
|
-
private readonly elementRef;
|
|
7
|
-
private onChange;
|
|
8
|
-
private onTouched;
|
|
9
|
-
constructor(renderer: Renderer2, elementRef: ElementRef);
|
|
10
|
-
onInput(value: string): void;
|
|
11
|
-
onBlur(): void;
|
|
12
|
-
writeValue(value: any): void;
|
|
13
|
-
registerOnChange(fn: (_: any) => void): void;
|
|
14
|
-
registerOnTouched(fn: () => void): void;
|
|
15
|
-
setDisabledState(isDisabled: boolean): void;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RutValueAccessor, never>;
|
|
17
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RutValueAccessor, "input[formatRut]", never, {}, {}, never, never, true, never>;
|
|
18
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class RutDirective {
|
|
3
|
-
onFocus(input: HTMLInputElement): void;
|
|
4
|
-
onBlur(input: HTMLInputElement): void;
|
|
5
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RutDirective, never>;
|
|
6
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RutDirective, "[formatRut]", never, {}, {}, never, never, true, never>;
|
|
7
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param value The RUT string to clean.
|
|
4
|
-
* @description Cleans a RUT (Rol Único Tributario) string by removing non-numeric characters and leading zeros.
|
|
5
|
-
* Converts the RUT to uppercase and returns it.
|
|
6
|
-
* @returns The cleaned RUT string.
|
|
7
|
-
*/
|
|
8
|
-
export declare function rutClean(value: string): string;
|
|
9
|
-
/**
|
|
10
|
-
* @param value The RUT string to validate.
|
|
11
|
-
* @description Validates a RUT (Rol Único Tributario) string.
|
|
12
|
-
* @returns True if the RUT is valid, false otherwise.
|
|
13
|
-
*/
|
|
14
|
-
export declare function rutValidate(value: string): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Formats a RUT (Rol Único Tributario) string.
|
|
17
|
-
* @param value The RUT string to format.
|
|
18
|
-
* @returns The formatted RUT string.
|
|
19
|
-
*/
|
|
20
|
-
export declare function rutFormat(value: string): string;
|
package/lib/pipes/rut.pipe.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { PipeTransform } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class RutPipe implements PipeTransform {
|
|
4
|
-
transform(value: string): string;
|
|
5
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RutPipe, never>;
|
|
6
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<RutPipe, "rut", true>;
|
|
7
|
-
}
|
package/public-api.d.ts
DELETED