ngx-rut-v2 1.5.0 → 1.6.2

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 CHANGED
@@ -4,6 +4,13 @@ Basado en [ngx-rut](https://github.com/danieldiazastudillo/ngx-rut) pero usando
4
4
 
5
5
  Valida y formatea [RUT Chilenos](https://en.wikipedia.org/wiki/National_identification_number#Chile)
6
6
 
7
+ ## Compatibilidad
8
+
9
+ | Versión ngx-rut-v2 | Versión Angular |
10
+ |--------------------|-----------------|
11
+ | 1.5.0 | 18 |
12
+ | 1.6.0 | 19 |
13
+
7
14
  ## Installation
8
15
 
9
16
  ```bash
@@ -62,12 +62,12 @@ class RutValidator {
62
62
  validate(c) {
63
63
  return this.validator(c);
64
64
  }
65
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
66
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.3", type: RutValidator, isStandalone: true, selector: "[validateRut][ngModel],[validateRut][formControl]", providers: [
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RutValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
66
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: RutValidator, isStandalone: true, selector: "[validateRut][ngModel],[validateRut][formControl]", providers: [
67
67
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => RutValidator), multi: true },
68
68
  ], ngImport: i0 });
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutValidator, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RutValidator, decorators: [{
71
71
  type: Directive,
72
72
  args: [{
73
73
  selector: '[validateRut][ngModel],[validateRut][formControl]',
@@ -98,10 +98,10 @@ class RutValueAccessor {
98
98
  }
99
99
  registerOnChange(fn) { this.onChange = fn; }
100
100
  registerOnTouched(fn) { this.onTouched = fn; }
101
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
102
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.3", type: RutValueAccessor, isStandalone: true, selector: "input[formatRut]", host: { listeners: { "rutChange": "onChange($event)", "blur": "onTouched($event)" } }, providers: [RUT_VALUE_ACCESSOR], ngImport: i0 });
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RutValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
102
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: RutValueAccessor, isStandalone: true, selector: "input[formatRut]", host: { listeners: { "rutChange": "onChange($event)", "blur": "onTouched($event)" } }, providers: [RUT_VALUE_ACCESSOR], ngImport: i0 });
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutValueAccessor, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RutValueAccessor, decorators: [{
105
105
  type: Directive,
106
106
  args: [{
107
107
  selector: 'input[formatRut]',
@@ -131,10 +131,10 @@ class RutDirective {
131
131
  let htmlInputElement = ev.target;
132
132
  this.rutChange.emit(rutClean(htmlInputElement.value));
133
133
  }
134
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
135
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.3", type: RutDirective, isStandalone: true, selector: "[formatRut]", outputs: { rutChange: "rutChange" }, host: { listeners: { "blur": "onBlur($event)", "focus": "onFocus($event)", "input": "onChange($event)" } }, ngImport: i0 });
134
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
135
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: RutDirective, isStandalone: true, selector: "[formatRut]", outputs: { rutChange: "rutChange" }, host: { listeners: { "blur": "onBlur($event)", "focus": "onFocus($event)", "input": "onChange($event)" } }, ngImport: i0 });
136
136
  }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutDirective, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RutDirective, decorators: [{
138
138
  type: Directive,
139
139
  args: [{
140
140
  selector: '[formatRut]',
@@ -153,10 +153,10 @@ class RutPipe {
153
153
  transform(value) {
154
154
  return rutFormat(value);
155
155
  }
156
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
157
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.3", ngImport: i0, type: RutPipe, isStandalone: true, name: "rut" });
156
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RutPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
157
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: RutPipe, isStandalone: true, name: "rut" });
158
158
  }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutPipe, decorators: [{
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RutPipe, decorators: [{
160
160
  type: Pipe,
161
161
  args: [{
162
162
  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":["export function rutClean(value: 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\nexport function rutValidate(value: string) {\r\n if (typeof value !== 'string') {\r\n return false;\r\n }\r\n\r\n const rut: string = rutClean(value);\r\n let rutDigits: number = parseInt(rut.slice(0, -1), 10);\r\n let m: number = 0;\r\n let s: number = 1;\r\n\r\n while (rutDigits > 0) {\r\n s = (s + rutDigits % 10 * (9 - m++ % 6)) % 11;\r\n rutDigits = Math.floor(rutDigits / 10);\r\n }\r\n const checkDigit: string = (s > 0) ? String((s - 1)) : 'K';\r\n\r\n return (checkDigit === rut.slice(-1));\r\n}\r\n\r\nexport function rutFormat(value: 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.substr(rut.length - 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, UntypedFormControl, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { rutValidate } from '../helpers/rut-helpers';\r\n\r\n\r\nexport function validateRutFactory(rutValidate: Function) {\r\n return (c: UntypedFormControl) => {\r\n if (!c.value) {\r\n return null;\r\n }\r\n return rutValidate(c.value) ? null : { invalidRut: true };\r\n };\r\n}\r\n\r\nexport function RutValidatorReactive(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n\r\n if(!control.value) {\r\n return null;\r\n }\r\n return rutValidate(control.value) ? null : { invalidRut: true };\r\n };\r\n}\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\r\n private validator: Function;\r\n\r\n constructor() {\r\n this.validator = validateRutFactory(rutValidate);\r\n }\r\n\r\n public validate(c: UntypedFormControl) {\r\n return this.validator(c);\r\n }\r\n\r\n}\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { rutFormat } from '../helpers/rut-helpers';\r\n\r\nimport { ElementRef, Renderer2 } from '@angular/core';\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 host: {\r\n '(rutChange)': 'onChange($event)',\r\n '(blur)': 'onTouched($event)',\r\n },\r\n standalone: true,\r\n providers: [RUT_VALUE_ACCESSOR],\r\n})\r\nexport class RutValueAccessor implements ControlValueAccessor {\r\n constructor(\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n ) { }\r\n\r\n public onChange: any = (_: any) => { /*Empty*/ };\r\n public onTouched: any = () => { /*Empty*/ };\r\n\r\n public writeValue(value: any): void {\r\n let normalizedValue: string = rutFormat(value) || '';\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);\r\n }\r\n\r\n public registerOnChange(fn: (_: any) => void): void { this.onChange = fn; }\r\n public registerOnTouched(fn: () => void): void { this.onTouched = fn; }\r\n}\r\n","import {Directive, EventEmitter, Output} from '@angular/core';\r\nimport * as rutHelpers from '../helpers/rut-helpers';\r\n\r\n@Directive({\r\n selector: '[formatRut]',\r\n host: {\r\n '(blur)': 'onBlur($event)',\r\n '(focus)': 'onFocus($event)',\r\n '(input)': 'onChange($event)',\r\n },\r\n standalone: true\r\n})\r\nexport class RutDirective {\r\n @Output() public rutChange: EventEmitter<any>;\r\n\r\n constructor() {\r\n this.rutChange = new EventEmitter();\r\n }\r\n\r\n public onFocus(ev: Event) {\r\n let htmlInputElement: HTMLInputElement = <HTMLInputElement> ev.target;\r\n htmlInputElement.value = rutHelpers.rutClean(htmlInputElement.value);\r\n }\r\n\r\n public onBlur(ev: Event) {\r\n let htmlInputElement: HTMLInputElement = <HTMLInputElement> ev.target;\r\n htmlInputElement.value = rutHelpers.rutFormat(htmlInputElement.value) || '';\r\n }\r\n\r\n public onChange(ev: Event) {\r\n let htmlInputElement: HTMLInputElement = <HTMLInputElement> ev.target;\r\n this.rutChange.emit(rutHelpers.rutClean(htmlInputElement.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":["rutHelpers.rutClean","rutHelpers.rutFormat"],"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":["export function rutClean(value: 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\nexport function rutValidate(value: string) {\r\n if (typeof value !== 'string') {\r\n return false;\r\n }\r\n\r\n const rut: string = rutClean(value);\r\n let rutDigits: number = parseInt(rut.slice(0, -1), 10);\r\n let m: number = 0;\r\n let s: number = 1;\r\n\r\n while (rutDigits > 0) {\r\n s = (s + rutDigits % 10 * (9 - m++ % 6)) % 11;\r\n rutDigits = Math.floor(rutDigits / 10);\r\n }\r\n const checkDigit: string = (s > 0) ? String((s - 1)) : 'K';\r\n\r\n return (checkDigit === rut.slice(-1));\r\n}\r\n\r\nexport function rutFormat(value: 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.substr(rut.length - 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, UntypedFormControl, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { rutValidate } from '../helpers/rut-helpers';\r\n\r\n\r\nexport function validateRutFactory(rutValidate: Function) {\r\n return (c: UntypedFormControl) => {\r\n if (!c.value) {\r\n return null;\r\n }\r\n return rutValidate(c.value) ? null : { invalidRut: true };\r\n };\r\n}\r\n\r\nexport function RutValidatorReactive(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n\r\n if(!control.value) {\r\n return null;\r\n }\r\n return rutValidate(control.value) ? null : { invalidRut: true };\r\n };\r\n}\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\r\n private validator: Function;\r\n\r\n constructor() {\r\n this.validator = validateRutFactory(rutValidate);\r\n }\r\n\r\n public validate(c: UntypedFormControl) {\r\n return this.validator(c);\r\n }\r\n\r\n}\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { rutFormat } from '../helpers/rut-helpers';\r\n\r\nimport { ElementRef, Renderer2 } from '@angular/core';\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 host: {\r\n '(rutChange)': 'onChange($event)',\r\n '(blur)': 'onTouched($event)',\r\n },\r\n standalone: true,\r\n providers: [RUT_VALUE_ACCESSOR],\r\n})\r\nexport class RutValueAccessor implements ControlValueAccessor {\r\n constructor(\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n ) { }\r\n\r\n public onChange: any = (_: any) => { /*Empty*/ };\r\n public onTouched: any = () => { /*Empty*/ };\r\n\r\n public writeValue(value: any): void {\r\n let normalizedValue: string = rutFormat(value) || '';\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);\r\n }\r\n\r\n public registerOnChange(fn: (_: any) => void): void { this.onChange = fn; }\r\n public registerOnTouched(fn: () => void): void { this.onTouched = fn; }\r\n}\r\n","import {Directive, EventEmitter, Output} from '@angular/core';\r\nimport * as rutHelpers from '../helpers/rut-helpers';\r\n\r\n@Directive({\r\n selector: '[formatRut]',\r\n host: {\r\n '(blur)': 'onBlur($event)',\r\n '(focus)': 'onFocus($event)',\r\n '(input)': 'onChange($event)',\r\n },\r\n standalone: true\r\n})\r\nexport class RutDirective {\r\n @Output() public rutChange: EventEmitter<any>;\r\n\r\n constructor() {\r\n this.rutChange = new EventEmitter();\r\n }\r\n\r\n public onFocus(ev: Event) {\r\n let htmlInputElement: HTMLInputElement = <HTMLInputElement> ev.target;\r\n htmlInputElement.value = rutHelpers.rutClean(htmlInputElement.value);\r\n }\r\n\r\n public onBlur(ev: Event) {\r\n let htmlInputElement: HTMLInputElement = <HTMLInputElement> ev.target;\r\n htmlInputElement.value = rutHelpers.rutFormat(htmlInputElement.value) || '';\r\n }\r\n\r\n public onChange(ev: Event) {\r\n let htmlInputElement: HTMLInputElement = <HTMLInputElement> ev.target;\r\n this.rutChange.emit(rutHelpers.rutClean(htmlInputElement.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":["rutHelpers.rutClean","rutHelpers.rutFormat"],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "ngx-rut-v2",
3
- "version": "1.5.0",
3
+ "version": "1.6.2",
4
4
  "private": false,
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/danieldiazastudillo/ngx-rut-v2"
8
+ },
5
9
  "peerDependencies": {
6
- "@angular/common": "^18.1.0",
7
- "@angular/core": "^18.1.0"
10
+ "@angular/common": "^19.2.14",
11
+ "@angular/core": "^19.2.14"
8
12
  },
9
13
  "dependencies": {
10
- "tslib": "^2.3.0"
14
+ "tslib": "^2.8.1"
11
15
  },
12
16
  "sideEffects": false,
13
17
  "module": "fesm2022/ngx-rut-v2.mjs",
@@ -18,8 +22,6 @@
18
22
  },
19
23
  ".": {
20
24
  "types": "./index.d.ts",
21
- "esm2022": "./esm2022/ngx-rut-v2.mjs",
22
- "esm": "./esm2022/ngx-rut-v2.mjs",
23
25
  "default": "./fesm2022/ngx-rut-v2.mjs"
24
26
  }
25
27
  }
@@ -1,44 +0,0 @@
1
- import { Directive, forwardRef } from '@angular/core';
2
- import { NG_VALIDATORS } from '@angular/forms';
3
- import { rutValidate } from '../helpers/rut-helpers';
4
- import * as i0 from "@angular/core";
5
- export function validateRutFactory(rutValidate) {
6
- return (c) => {
7
- if (!c.value) {
8
- return null;
9
- }
10
- return rutValidate(c.value) ? null : { invalidRut: true };
11
- };
12
- }
13
- export function RutValidatorReactive() {
14
- return (control) => {
15
- if (!control.value) {
16
- return null;
17
- }
18
- return rutValidate(control.value) ? null : { invalidRut: true };
19
- };
20
- }
21
- export class RutValidator {
22
- validator;
23
- constructor() {
24
- this.validator = validateRutFactory(rutValidate);
25
- }
26
- validate(c) {
27
- return this.validator(c);
28
- }
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
30
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.3", type: RutValidator, isStandalone: true, selector: "[validateRut][ngModel],[validateRut][formControl]", providers: [
31
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => RutValidator), multi: true },
32
- ], ngImport: i0 });
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutValidator, decorators: [{
35
- type: Directive,
36
- args: [{
37
- selector: '[validateRut][ngModel],[validateRut][formControl]',
38
- providers: [
39
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => RutValidator), multi: true },
40
- ],
41
- standalone: true
42
- }]
43
- }], ctorParameters: () => [] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnV0LXZhbGlkYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnV0LXYyL3NyYy9saWIvZGlyZWN0aXZlcy9ydXQtdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQW1CLGFBQWEsRUFBZ0UsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBR3JELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUFxQjtJQUN0RCxPQUFPLENBQUMsQ0FBcUIsRUFBRSxFQUFFO1FBQy9CLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFFM0QsSUFBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVVELE1BQU0sT0FBTyxZQUFZO0lBRWYsU0FBUyxDQUFXO0lBRTVCO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sUUFBUSxDQUFDLENBQXFCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO3VHQVZVLFlBQVk7MkZBQVosWUFBWSxnR0FMWjtZQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7U0FDckY7OzJGQUdVLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1EQUFtRDtvQkFDN0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3FCQUNyRjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHJ1dFZhbGlkYXRlIH0gZnJvbSAnLi4vaGVscGVycy9ydXQtaGVscGVycyc7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUnV0RmFjdG9yeShydXRWYWxpZGF0ZTogRnVuY3Rpb24pIHtcclxuICByZXR1cm4gKGM6IFVudHlwZWRGb3JtQ29udHJvbCkgPT4ge1xyXG4gICAgaWYgKCFjLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJ1dFZhbGlkYXRlKGMudmFsdWUpID8gbnVsbCA6IHsgaW52YWxpZFJ1dDogdHJ1ZSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBSdXRWYWxpZGF0b3JSZWFjdGl2ZSgpOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcblxyXG4gICAgaWYoIWNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcnV0VmFsaWRhdGUoY29udHJvbC52YWx1ZSkgPyBudWxsIDogeyBpbnZhbGlkUnV0OiB0cnVlIH07XHJcbiAgfTtcclxufVxyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3ZhbGlkYXRlUnV0XVtuZ01vZGVsXSxbdmFsaWRhdGVSdXRdW2Zvcm1Db250cm9sXScsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ1dFZhbGlkYXRvciksIG11bHRpOiB0cnVlIH0sXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSdXRWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xyXG5cclxuICBwcml2YXRlIHZhbGlkYXRvcjogRnVuY3Rpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy52YWxpZGF0b3IgPSB2YWxpZGF0ZVJ1dEZhY3RvcnkocnV0VmFsaWRhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdG9yKGMpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,40 +0,0 @@
1
- import { Directive, forwardRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { rutFormat } from '../helpers/rut-helpers';
4
- import * as i0 from "@angular/core";
5
- const RUT_VALUE_ACCESSOR = {
6
- provide: NG_VALUE_ACCESSOR,
7
- useExisting: forwardRef(() => RutValueAccessor),
8
- multi: true,
9
- };
10
- export class RutValueAccessor {
11
- renderer;
12
- elementRef;
13
- constructor(renderer, elementRef) {
14
- this.renderer = renderer;
15
- this.elementRef = elementRef;
16
- }
17
- onChange = (_) => { };
18
- onTouched = () => { };
19
- writeValue(value) {
20
- let normalizedValue = rutFormat(value) || '';
21
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);
22
- }
23
- registerOnChange(fn) { this.onChange = fn; }
24
- registerOnTouched(fn) { this.onTouched = fn; }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
26
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.3", type: RutValueAccessor, isStandalone: true, selector: "input[formatRut]", host: { listeners: { "rutChange": "onChange($event)", "blur": "onTouched($event)" } }, providers: [RUT_VALUE_ACCESSOR], ngImport: i0 });
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutValueAccessor, decorators: [{
29
- type: Directive,
30
- args: [{
31
- selector: 'input[formatRut]',
32
- host: {
33
- '(rutChange)': 'onChange($event)',
34
- '(blur)': 'onTouched($event)',
35
- },
36
- standalone: true,
37
- providers: [RUT_VALUE_ACCESSOR],
38
- }]
39
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnV0LXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ydXQtdjIvc3JjL2xpYi9kaXJlY3RpdmVzL3J1dC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFJbkQsTUFBTSxrQkFBa0IsR0FBUTtJQUM5QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7SUFDL0MsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBV0YsTUFBTSxPQUFPLGdCQUFnQjtJQUVqQjtJQUNBO0lBRlYsWUFDVSxRQUFtQixFQUNuQixVQUFzQjtRQUR0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDMUIsQ0FBQztJQUVBLFFBQVEsR0FBUSxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQWEsQ0FBQyxDQUFDO0lBQzFDLFNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBYSxDQUFDLENBQUM7SUFFckMsVUFBVSxDQUFDLEtBQVU7UUFDMUIsSUFBSSxlQUFlLEdBQVcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQW9CLElBQVUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLGlCQUFpQixDQUFDLEVBQWMsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7dUdBZjVELGdCQUFnQjsyRkFBaEIsZ0JBQWdCLHNKQUZoQixDQUFDLGtCQUFrQixDQUFDOzsyRkFFcEIsZ0JBQWdCO2tCQVQ1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLElBQUksRUFBRTt3QkFDSixhQUFhLEVBQUUsa0JBQWtCO3dCQUNqQyxRQUFRLEVBQUUsbUJBQW1CO3FCQUM5QjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgcnV0Rm9ybWF0IH0gZnJvbSAnLi4vaGVscGVycy9ydXQtaGVscGVycyc7XHJcblxyXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmNvbnN0IFJVVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ1dFZhbHVlQWNjZXNzb3IpLFxyXG4gIG11bHRpOiB0cnVlLFxyXG59O1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdpbnB1dFtmb3JtYXRSdXRdJyxcclxuICBob3N0OiB7XHJcbiAgICAnKHJ1dENoYW5nZSknOiAnb25DaGFuZ2UoJGV2ZW50KScsXHJcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgkZXZlbnQpJyxcclxuICB9LFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgcHJvdmlkZXJzOiBbUlVUX1ZBTFVFX0FDQ0VTU09SXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJ1dFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICApIHsgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2U6IGFueSA9IChfOiBhbnkpID0+IHsgLypFbXB0eSovIH07XHJcbiAgcHVibGljIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyAvKkVtcHR5Ki8gfTtcclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgbGV0IG5vcm1hbGl6ZWRWYWx1ZTogc3RyaW5nID0gcnV0Rm9ybWF0KHZhbHVlKSB8fCAnJztcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG5vcm1hbGl6ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxyXG59XHJcbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { Directive, EventEmitter, Output } from '@angular/core';
2
- import * as rutHelpers from '../helpers/rut-helpers';
3
- import * as i0 from "@angular/core";
4
- export class RutDirective {
5
- rutChange;
6
- constructor() {
7
- this.rutChange = new EventEmitter();
8
- }
9
- onFocus(ev) {
10
- let htmlInputElement = ev.target;
11
- htmlInputElement.value = rutHelpers.rutClean(htmlInputElement.value);
12
- }
13
- onBlur(ev) {
14
- let htmlInputElement = ev.target;
15
- htmlInputElement.value = rutHelpers.rutFormat(htmlInputElement.value) || '';
16
- }
17
- onChange(ev) {
18
- let htmlInputElement = ev.target;
19
- this.rutChange.emit(rutHelpers.rutClean(htmlInputElement.value));
20
- }
21
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
22
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.3", type: RutDirective, isStandalone: true, selector: "[formatRut]", outputs: { rutChange: "rutChange" }, host: { listeners: { "blur": "onBlur($event)", "focus": "onFocus($event)", "input": "onChange($event)" } }, ngImport: i0 });
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutDirective, decorators: [{
25
- type: Directive,
26
- args: [{
27
- selector: '[formatRut]',
28
- host: {
29
- '(blur)': 'onBlur($event)',
30
- '(focus)': 'onFocus($event)',
31
- '(input)': 'onChange($event)',
32
- },
33
- standalone: true
34
- }]
35
- }], ctorParameters: () => [], propDecorators: { rutChange: [{
36
- type: Output
37
- }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ydXQtdjIvc3JjL2xpYi9kaXJlY3RpdmVzL3J1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7O0FBV3JELE1BQU0sT0FBTyxZQUFZO0lBQ04sU0FBUyxDQUFvQjtJQUU5QztRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sT0FBTyxDQUFDLEVBQVM7UUFDdEIsSUFBSSxnQkFBZ0IsR0FBd0MsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUN0RSxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sTUFBTSxDQUFDLEVBQVM7UUFDckIsSUFBSSxnQkFBZ0IsR0FBd0MsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUN0RSxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxFQUFTO1FBQ3ZCLElBQUksZ0JBQWdCLEdBQXdDLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7dUdBcEJVLFlBQVk7MkZBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFUeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNKLFFBQVEsRUFBRSxnQkFBZ0I7d0JBQzFCLFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLFNBQVMsRUFBRSxrQkFBa0I7cUJBQzlCO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3REFFa0IsU0FBUztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIHJ1dEhlbHBlcnMgZnJvbSAnLi4vaGVscGVycy9ydXQtaGVscGVycyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tmb3JtYXRSdXRdJyxcclxuICBob3N0OiB7XHJcbiAgICAnKGJsdXIpJzogJ29uQmx1cigkZXZlbnQpJyxcclxuICAgICcoZm9jdXMpJzogJ29uRm9jdXMoJGV2ZW50KScsXHJcbiAgICAnKGlucHV0KSc6ICdvbkNoYW5nZSgkZXZlbnQpJyxcclxuICB9LFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFJ1dERpcmVjdGl2ZSB7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBydXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucnV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRm9jdXMoZXY6IEV2ZW50KSB7XHJcbiAgICBsZXQgaHRtbElucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCA9IDxIVE1MSW5wdXRFbGVtZW50PiBldi50YXJnZXQ7XHJcbiAgICBodG1sSW5wdXRFbGVtZW50LnZhbHVlID0gcnV0SGVscGVycy5ydXRDbGVhbihodG1sSW5wdXRFbGVtZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkJsdXIoZXY6IEV2ZW50KSB7XHJcbiAgICBsZXQgaHRtbElucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCA9IDxIVE1MSW5wdXRFbGVtZW50PiBldi50YXJnZXQ7XHJcbiAgICBodG1sSW5wdXRFbGVtZW50LnZhbHVlID0gcnV0SGVscGVycy5ydXRGb3JtYXQoaHRtbElucHV0RWxlbWVudC52YWx1ZSkgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoZXY6IEV2ZW50KSB7XHJcbiAgICBsZXQgaHRtbElucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCA9IDxIVE1MSW5wdXRFbGVtZW50PiBldi50YXJnZXQ7XHJcbiAgICB0aGlzLnJ1dENoYW5nZS5lbWl0KHJ1dEhlbHBlcnMucnV0Q2xlYW4oaHRtbElucHV0RWxlbWVudC52YWx1ZSkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,36 +0,0 @@
1
- export function rutClean(value) {
2
- if (typeof value === 'string') {
3
- return value
4
- .replace(/[^0-9kK]+/g, '')
5
- .replace(/^0+/, '')
6
- .toUpperCase();
7
- }
8
- return '';
9
- }
10
- export function rutValidate(value) {
11
- if (typeof value !== 'string') {
12
- return false;
13
- }
14
- const rut = rutClean(value);
15
- let rutDigits = parseInt(rut.slice(0, -1), 10);
16
- let m = 0;
17
- let s = 1;
18
- while (rutDigits > 0) {
19
- s = (s + rutDigits % 10 * (9 - m++ % 6)) % 11;
20
- rutDigits = Math.floor(rutDigits / 10);
21
- }
22
- const checkDigit = (s > 0) ? String((s - 1)) : 'K';
23
- return (checkDigit === rut.slice(-1));
24
- }
25
- export function rutFormat(value) {
26
- const rut = rutClean(value);
27
- if (rut.length <= 1) {
28
- return rut;
29
- }
30
- let result = `${rut.slice(-4, -1)}-${rut.substr(rut.length - 1)}`;
31
- for (let i = 4; i < rut.length; i += 3) {
32
- result = `${rut.slice(-3 - i, -i)}.${result}`;
33
- }
34
- return result;
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnV0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnV0LXYyL3NyYy9saWIvaGVscGVycy9ydXQtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWE7SUFDcEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUs7YUFDVCxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQzthQUN6QixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzthQUNsQixXQUFXLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFhO0lBQ3ZDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQVcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLElBQUksU0FBUyxHQUFXLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztJQUNsQixJQUFJLENBQUMsR0FBVyxDQUFDLENBQUM7SUFFbEIsT0FBTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDOUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUUzRCxPQUFPLENBQUMsVUFBVSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWE7SUFDckMsTUFBTSxHQUFHLEdBQVcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBDLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFJLE1BQU0sR0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxRSxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDL0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBydXRDbGVhbih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiB2YWx1ZVxyXG4gICAgICAucmVwbGFjZSgvW14wLTlrS10rL2csICcnKVxyXG4gICAgICAucmVwbGFjZSgvXjArLywgJycpXHJcbiAgICAgIC50b1VwcGVyQ2FzZSgpO1xyXG4gIH1cclxuICByZXR1cm4gJyc7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBydXRWYWxpZGF0ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHJ1dDogc3RyaW5nID0gcnV0Q2xlYW4odmFsdWUpO1xyXG4gIGxldCBydXREaWdpdHM6IG51bWJlciA9IHBhcnNlSW50KHJ1dC5zbGljZSgwLCAtMSksIDEwKTtcclxuICBsZXQgbTogbnVtYmVyID0gMDtcclxuICBsZXQgczogbnVtYmVyID0gMTtcclxuXHJcbiAgd2hpbGUgKHJ1dERpZ2l0cyA+IDApIHtcclxuICAgIHMgPSAocyArIHJ1dERpZ2l0cyAlIDEwICogKDkgLSBtKysgJSA2KSkgJSAxMTtcclxuICAgIHJ1dERpZ2l0cyA9IE1hdGguZmxvb3IocnV0RGlnaXRzIC8gMTApO1xyXG4gIH1cclxuICBjb25zdCBjaGVja0RpZ2l0OiBzdHJpbmcgPSAocyA+IDApID8gU3RyaW5nKChzIC0gMSkpIDogJ0snO1xyXG5cclxuICByZXR1cm4gKGNoZWNrRGlnaXQgPT09IHJ1dC5zbGljZSgtMSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcnV0Rm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcclxuICBjb25zdCBydXQ6IHN0cmluZyA9IHJ1dENsZWFuKHZhbHVlKTtcclxuXHJcbiAgaWYgKHJ1dC5sZW5ndGggPD0gMSkge1xyXG4gICAgcmV0dXJuIHJ1dDtcclxuICB9XHJcblxyXG4gIGxldCByZXN1bHQ6IHN0cmluZyA9IGAke3J1dC5zbGljZSgtNCwgLTEpfS0ke3J1dC5zdWJzdHIocnV0Lmxlbmd0aCAtIDEpfWA7XHJcbiAgZm9yIChsZXQgaTogbnVtYmVyID0gNDsgaSA8IHJ1dC5sZW5ndGg7IGkgKz0gMykge1xyXG4gICAgcmVzdWx0ID0gYCR7cnV0LnNsaWNlKC0zIC0gaSwgLWkpfS4ke3Jlc3VsdH1gO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4iXX0=
@@ -1,18 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { rutFormat } from '../helpers/rut-helpers';
3
- import * as i0 from "@angular/core";
4
- export class RutPipe {
5
- transform(value) {
6
- return rutFormat(value);
7
- }
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.3", ngImport: i0, type: RutPipe, isStandalone: true, name: "rut" });
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: RutPipe, decorators: [{
12
- type: Pipe,
13
- args: [{
14
- name: 'rut',
15
- standalone: true
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnV0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnV0LXYyL3NyYy9saWIvcGlwZXMvcnV0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQU1uRCxNQUFNLE9BQU8sT0FBTztJQUNYLFNBQVMsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7dUdBSFUsT0FBTztxR0FBUCxPQUFPOzsyRkFBUCxPQUFPO2tCQUpuQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxLQUFLO29CQUNYLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcnV0Rm9ybWF0IH0gZnJvbSAnLi4vaGVscGVycy9ydXQtaGVscGVycyc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3J1dCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUnV0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gcnV0Rm9ybWF0KHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJ1dC12Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1ydXQtdjIvc3JjL25neC1ydXQtdjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,9 +0,0 @@
1
- /*
2
- * Public API Surface of ngx-rut-v2
3
- */
4
- export * from './lib/helpers/rut-helpers';
5
- export * from './lib/directives/rut-validator.directive';
6
- export * from './lib/directives/rut-value-accessor.directive';
7
- export * from './lib/directives/rut.directive';
8
- export * from './lib/pipes/rut.pipe';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1ydXQtdjIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LXJ1dC12MlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlbHBlcnMvcnV0LWhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3J1dC12YWxpZGF0b3IuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9ydXQtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9ydXQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvcnV0LnBpcGUnO1xyXG4iXX0=