@starley/ion-directives 1.2.36 → 1.2.40

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.
@@ -39,7 +39,7 @@ var IonInputMaskDirective = /** @class */ (function () {
39
39
  });
40
40
  };
41
41
  IonInputMaskDirective.prototype.extractRawValue = function (value) {
42
- return value.replace(/[a-zA-Z0-9]/, ''); // Remove todos os caracteres não dígitos
42
+ return value.replace(/[^a-zA-Z0-9]/g, ''); // Remove todos os caracteres não são letras e digitos
43
43
  };
44
44
  IonInputMaskDirective.prototype.maskValue = function (rawValue, mask) {
45
45
  var maskedValue = '';
@@ -1 +1 @@
1
- {"version":3,"file":"input-mask.directive.js","sourceRoot":"","sources":["../../src/input-mask/input-mask.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAc,YAAY,EAAE,KAAK,EAAuC,MAAM,eAAe,CAAC;AACnI,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;;;AAEzC;;;;GAIG;AAEH;IASI,+BAAoB,UAAsB,EAAU,QAAmB,EAAU,OAAgB,EAAU,KAAwB;QAA/G,eAAU,GAAV,UAAU,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAW;QAAU,YAAO,GAAP,OAAO,CAAS;QAAU,UAAK,GAAL,KAAK,CAAmB;QAF3H,aAAQ,GAAW,EAAE,CAAC;IAEyG,CAAC;IAExI,2CAAW,GAAX,UAAY,OAAsB;QAC9B,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACvD,gEAAgE;YAChE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,wDAAwD;YAClH,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,sBAAsB;YACxC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAGD,uCAAO,GADP,UACQ,KAAa;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,qDAAqD;QAClG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,sBAAsB;IAC5C,CAAC;IAEO,yCAAS,GAAjB;QAAA,iBAQC;QAPG,mCAAmC;QACnC,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;;YACnB,iEAAiE;YACjE,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAA,KAAI,CAAC,OAAO,CAAC,OAAO,0CAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,+CAAe,GAAvB,UAAwB,KAAa;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,yCAAyC;IACtF,CAAC;IAEO,yCAAS,GAAjB,UAAkB,QAAgB,EAAE,IAAY;QAC5C,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACjB,WAAW,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;aAC1C;iBAAM;gBACH,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;SACJ;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;8FA/CQ,qBAAqB;4EAArB,qBAAqB;4GAArB,gCAA4B;2FAF1B,CAAC,OAAO,CAAC;gCAXxB;CA6DC,AApDD,IAoDC;SAhDY,qBAAqB;uFAArB,qBAAqB;cAJjC,SAAS;eAAC;gBACP,QAAQ,EAAE,WAAW;gBACrB,SAAS,EAAE,CAAC,OAAO,CAAC;aACvB;2IAGqB,OAAO;kBAAxB,KAAK;mBAAC,SAAS;YAehB,OAAO;kBADN,YAAY;mBAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC","sourcesContent":["import { ChangeDetectorRef, Directive, ElementRef, HostListener, Input, OnChanges, Renderer2, SimpleChanges } from '@angular/core';\nimport { NgModel } from '@angular/forms';\n\n/**\n * Directive input mask\n * @author Starley Cazorla\n * @version 1.0.0\n */\n\n@Directive({\n selector: '[appMask]',\n providers: [NgModel]\n})\nexport class IonInputMaskDirective implements OnChanges {\n\n @Input('appMask') pattern: string;\n private rawValue: string = '';\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private ngModel: NgModel, private cdRef: ChangeDetectorRef) { }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pattern'] && !changes['pattern'].firstChange) {\n // Quando a máscara muda, limpe o valor e aplique a nova máscara\n this.rawValue = this.extractRawValue(this.ngModel.value); // Extraia o valor bruto antes de aplicar a nova máscara\n this.applyMask(); // Reaplique a máscara\n this.cdRef.detectChanges();\n }\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: string) {\n this.rawValue = this.extractRawValue(value); // Atualize o valor bruto com o novo valor de entrada\n this.applyMask(); // Reaplique a máscara\n }\n\n private applyMask() {\n // Aplique a máscara ao valor bruto\n const maskedValue = this.maskValue(this.rawValue, this.pattern);\n Promise.resolve().then(() => {\n // Atualizar o input e o modelo de controle com o valor mascarado\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', maskedValue);\n this.ngModel.control?.setValue(maskedValue, { emitEvent: false });\n });\n }\n\n private extractRawValue(value: string): string {\n return value.replace(/[a-zA-Z0-9]/, ''); // Remove todos os caracteres não dígitos\n }\n\n private maskValue(rawValue: string, mask: string): string {\n let maskedValue = '';\n let rawValIndex = 0;\n for (let i = 0; i < mask.length && rawValIndex < rawValue.length; i++) {\n if (mask[i] === '*') {\n maskedValue += rawValue[rawValIndex++];\n } else {\n maskedValue += mask[i];\n }\n }\n return maskedValue;\n }\n}\n"]}
1
+ {"version":3,"file":"input-mask.directive.js","sourceRoot":"","sources":["../../src/input-mask/input-mask.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAc,YAAY,EAAE,KAAK,EAAuC,MAAM,eAAe,CAAC;AACnI,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;;;AAEzC;;;;GAIG;AAEH;IASI,+BAAoB,UAAsB,EAAU,QAAmB,EAAU,OAAgB,EAAU,KAAwB;QAA/G,eAAU,GAAV,UAAU,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAW;QAAU,YAAO,GAAP,OAAO,CAAS;QAAU,UAAK,GAAL,KAAK,CAAmB;QAF3H,aAAQ,GAAW,EAAE,CAAC;IAEyG,CAAC;IAExI,2CAAW,GAAX,UAAY,OAAsB;QAC9B,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACvD,gEAAgE;YAChE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,wDAAwD;YAClH,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,sBAAsB;YACxC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAGD,uCAAO,GADP,UACQ,KAAa;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,qDAAqD;QAClG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,sBAAsB;IAC5C,CAAC;IAEO,yCAAS,GAAjB;QAAA,iBAQC;QAPG,mCAAmC;QACnC,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;;YACnB,iEAAiE;YACjE,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAA,KAAI,CAAC,OAAO,CAAC,OAAO,0CAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,+CAAe,GAAvB,UAAwB,KAAa;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,sDAAsD;IACrG,CAAC;IAEO,yCAAS,GAAjB,UAAkB,QAAgB,EAAE,IAAY;QAC5C,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACjB,WAAW,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;aAC1C;iBAAM;gBACH,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;SACJ;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;8FA/CQ,qBAAqB;4EAArB,qBAAqB;4GAArB,gCAA4B;2FAF1B,CAAC,OAAO,CAAC;gCAXxB;CA6DC,AApDD,IAoDC;SAhDY,qBAAqB;uFAArB,qBAAqB;cAJjC,SAAS;eAAC;gBACP,QAAQ,EAAE,WAAW;gBACrB,SAAS,EAAE,CAAC,OAAO,CAAC;aACvB;2IAGqB,OAAO;kBAAxB,KAAK;mBAAC,SAAS;YAehB,OAAO;kBADN,YAAY;mBAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC","sourcesContent":["import { ChangeDetectorRef, Directive, ElementRef, HostListener, Input, OnChanges, Renderer2, SimpleChanges } from '@angular/core';\nimport { NgModel } from '@angular/forms';\n\n/**\n * Directive input mask\n * @author Starley Cazorla\n * @version 1.0.0\n */\n\n@Directive({\n selector: '[appMask]',\n providers: [NgModel]\n})\nexport class IonInputMaskDirective implements OnChanges {\n\n @Input('appMask') pattern: string;\n private rawValue: string = '';\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private ngModel: NgModel, private cdRef: ChangeDetectorRef) { }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pattern'] && !changes['pattern'].firstChange) {\n // Quando a máscara muda, limpe o valor e aplique a nova máscara\n this.rawValue = this.extractRawValue(this.ngModel.value); // Extraia o valor bruto antes de aplicar a nova máscara\n this.applyMask(); // Reaplique a máscara\n this.cdRef.detectChanges();\n }\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: string) {\n this.rawValue = this.extractRawValue(value); // Atualize o valor bruto com o novo valor de entrada\n this.applyMask(); // Reaplique a máscara\n }\n\n private applyMask() {\n // Aplique a máscara ao valor bruto\n const maskedValue = this.maskValue(this.rawValue, this.pattern);\n Promise.resolve().then(() => {\n // Atualizar o input e o modelo de controle com o valor mascarado\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', maskedValue);\n this.ngModel.control?.setValue(maskedValue, { emitEvent: false });\n });\n }\n\n private extractRawValue(value: string): string {\n return value.replace(/[^a-zA-Z0-9]/g, ''); // Remove todos os caracteres não são letras e digitos\n }\n\n private maskValue(rawValue: string, mask: string): string {\n let maskedValue = '';\n let rawValIndex = 0;\n for (let i = 0; i < mask.length && rawValIndex < rawValue.length; i++) {\n if (mask[i] === '*') {\n maskedValue += rawValue[rawValIndex++];\n } else {\n maskedValue += mask[i];\n }\n }\n return maskedValue;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starley/ion-directives",
3
- "version": "1.2.36",
3
+ "version": "1.2.40",
4
4
  "description": "Directivas internas para ionic",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",