matcha-components 20.78.0 → 20.80.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.
@@ -6,7 +6,7 @@ import { debounceTime, takeUntil, filter, startWith, map, distinctUntilChanged }
6
6
  import * as i1 from '@angular/common';
7
7
  import { DOCUMENT, CommonModule, isPlatformBrowser } from '@angular/common';
8
8
  import * as i2 from '@angular/forms';
9
- import { FormControlName, NG_VALUE_ACCESSOR, NgControl, NG_VALIDATORS, FormsModule, ReactiveFormsModule } from '@angular/forms';
9
+ import { FormControlName, NG_VALUE_ACCESSOR, NgControl, NG_VALIDATORS, ReactiveFormsModule, FormsModule } from '@angular/forms';
10
10
  import * as i1$1 from '@angular/common/http';
11
11
 
12
12
  /**
@@ -1973,11 +1973,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1973
1973
 
1974
1974
  class MatchaModalHeaderComponent {
1975
1975
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaModalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1976
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: MatchaModalHeaderComponent, isStandalone: false, selector: "matcha-modal-header", ngImport: i0, template: "<!-- [@animate]=\"{ value: '*', params: { delay: '100ms' } }\" -->\n<!-- MATCHA CHECK -->\n<div class=\"matcha-section pt-16 px-16 pt-md-24 px-md-24\">\n <div class=\"d-flex flex-wrap flex-space-between mb-16 mb-md-24\">\n <div class=\"flex-space-between flex-align-center\">\n <ng-content></ng-content>\n </div>\n <div class=\"flex-row flex-end gap-8\">\n <ng-content select=\"matcha-modal-options\"></ng-content>\n </div>\n </div>\n <matcha-divider></matcha-divider>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MatchaDividerComponent, selector: "matcha-divider", inputs: ["gap", "gap-sm", "gap-md", "gap-lg", "gap-xl", "direction"] }] }); }
1976
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: MatchaModalHeaderComponent, isStandalone: false, selector: "matcha-modal-header", ngImport: i0, template: "<!-- [@animate]=\"{ value: '*', params: { delay: '100ms' } }\" -->\n<!-- MATCHA CHECK -->\n<div class=\"matcha-section pt-16 px-16 pt-md-24 px-md-24\">\n <div class=\"d-flex flex-space-between mb-16 mb-md-24\">\n <!-- Remo\u00E7\u00E3o do flex-wrap para que o conte\u00FAdo seja exibido em uma \u00FAnica linha -->\n <div class=\"flex-space-between flex-align-center\">\n <ng-content></ng-content>\n </div>\n <div class=\"flex-row flex-end gap-8\">\n <ng-content select=\"matcha-modal-options\"></ng-content>\n </div>\n </div>\n <matcha-divider></matcha-divider>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MatchaDividerComponent, selector: "matcha-divider", inputs: ["gap", "gap-sm", "gap-md", "gap-lg", "gap-xl", "direction"] }] }); }
1977
1977
  }
1978
1978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaModalHeaderComponent, decorators: [{
1979
1979
  type: Component,
1980
- args: [{ selector: 'matcha-modal-header', standalone: false, template: "<!-- [@animate]=\"{ value: '*', params: { delay: '100ms' } }\" -->\n<!-- MATCHA CHECK -->\n<div class=\"matcha-section pt-16 px-16 pt-md-24 px-md-24\">\n <div class=\"d-flex flex-wrap flex-space-between mb-16 mb-md-24\">\n <div class=\"flex-space-between flex-align-center\">\n <ng-content></ng-content>\n </div>\n <div class=\"flex-row flex-end gap-8\">\n <ng-content select=\"matcha-modal-options\"></ng-content>\n </div>\n </div>\n <matcha-divider></matcha-divider>\n</div>\n" }]
1980
+ args: [{ selector: 'matcha-modal-header', standalone: false, template: "<!-- [@animate]=\"{ value: '*', params: { delay: '100ms' } }\" -->\n<!-- MATCHA CHECK -->\n<div class=\"matcha-section pt-16 px-16 pt-md-24 px-md-24\">\n <div class=\"d-flex flex-space-between mb-16 mb-md-24\">\n <!-- Remo\u00E7\u00E3o do flex-wrap para que o conte\u00FAdo seja exibido em uma \u00FAnica linha -->\n <div class=\"flex-space-between flex-align-center\">\n <ng-content></ng-content>\n </div>\n <div class=\"flex-row flex-end gap-8\">\n <ng-content select=\"matcha-modal-options\"></ng-content>\n </div>\n </div>\n <matcha-divider></matcha-divider>\n</div>\n" }]
1981
1981
  }] });
1982
1982
 
1983
1983
  class MatchaModalFooterComponent {
@@ -2243,14 +2243,14 @@ class MatchaFormFieldComponent {
2243
2243
  return this.controlDir?.control;
2244
2244
  }
2245
2245
  get showError() {
2246
- return !!this.control?.invalid && (this.control?.touched || this.control?.dirty);
2246
+ return !!this.control?.invalid && !!this.control?.touched;
2247
2247
  }
2248
2248
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaFormFieldComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2249
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: MatchaFormFieldComponent, isStandalone: false, selector: "matcha-form-field", inputs: { color: "color", size: "size", sizeXs: ["size-xs", "sizeXs"], sizeSm: ["size-sm", "sizeSm"], sizeMd: ["size-md", "sizeMd"], sizeLg: ["size-lg", "sizeLg"], sizeXl: ["size-xl", "sizeXl"] }, queries: [{ propertyName: "controlDir", first: true, predicate: FormControlName, descendants: true }], ngImport: i0, template: "<div class=\"flex-column gap-4\">\n <div class=\"matcha-form-field position-relative w-100-p min-h-40 flex-align-center\" #inputSelector>\n <div class=\"flex-row position-absolute w-100-p min-h-40 h-100-p\">\n <div class=\"matcha-form-field-border-start bl-2 bt-2 bb-2 radius-left-8 min-w-8 border-color-{{color}}\"></div>\n <div class=\"matcha-form-field-border-middle bb-2 w-auto border-color-{{color}}\">\n <ng-content select=\"matcha-label\"></ng-content>\n </div>\n <div class=\"matcha-form-field-border-end br-2 bt-2 bb-2 radius-right-8 w-100-p border-color-{{color}}\"></div>\n </div>\n <div class=\"flex-row position-relative py-8 px-12 gap-8 w-100-p\">\n <ng-content></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"showError\">\n <ng-content select=\"matcha-error\"></ng-content>\n </ng-container>\n <ng-content select=\"matcha-autocomplete\"></ng-content>\n</div>\n<ng-content select=\"matcha-hint-text\"></ng-content>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
2249
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: MatchaFormFieldComponent, isStandalone: false, selector: "matcha-form-field", inputs: { color: "color", size: "size", sizeXs: ["size-xs", "sizeXs"], sizeSm: ["size-sm", "sizeSm"], sizeMd: ["size-md", "sizeMd"], sizeLg: ["size-lg", "sizeLg"], sizeXl: ["size-xl", "sizeXl"] }, queries: [{ propertyName: "controlDir", first: true, predicate: FormControlName, descendants: true }], ngImport: i0, template: "<div class=\"flex-column\">\n <div class=\"matcha-form-field position-relative w-100-p min-h-40 flex-align-center\" #inputSelector>\n <div class=\"flex-row position-absolute w-100-p min-h-40 h-100-p\">\n <div class=\"matcha-form-field-border-start bl-2 bt-2 bb-2 radius-left-8 min-w-8 border-color-{{color}}\"></div>\n <div class=\"matcha-form-field-border-middle bb-2 w-auto border-color-{{color}}\">\n <ng-content select=\"matcha-label\"></ng-content>\n </div>\n <div class=\"matcha-form-field-border-end br-2 bt-2 bb-2 radius-right-8 w-100-p border-color-{{color}}\"></div>\n </div>\n <div class=\"flex-row position-relative py-8 px-12 gap-8 w-100-p\">\n <ng-content></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"showError\">\n <ng-content select=\"matcha-error\"></ng-content>\n </ng-container>\n <ng-content select=\"matcha-autocomplete\"></ng-content>\n</div>\n<ng-content select=\"matcha-hint-text\"></ng-content>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
2250
2250
  }
2251
2251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaFormFieldComponent, decorators: [{
2252
2252
  type: Component,
2253
- args: [{ selector: 'matcha-form-field', standalone: false, template: "<div class=\"flex-column gap-4\">\n <div class=\"matcha-form-field position-relative w-100-p min-h-40 flex-align-center\" #inputSelector>\n <div class=\"flex-row position-absolute w-100-p min-h-40 h-100-p\">\n <div class=\"matcha-form-field-border-start bl-2 bt-2 bb-2 radius-left-8 min-w-8 border-color-{{color}}\"></div>\n <div class=\"matcha-form-field-border-middle bb-2 w-auto border-color-{{color}}\">\n <ng-content select=\"matcha-label\"></ng-content>\n </div>\n <div class=\"matcha-form-field-border-end br-2 bt-2 bb-2 radius-right-8 w-100-p border-color-{{color}}\"></div>\n </div>\n <div class=\"flex-row position-relative py-8 px-12 gap-8 w-100-p\">\n <ng-content></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"showError\">\n <ng-content select=\"matcha-error\"></ng-content>\n </ng-container>\n <ng-content select=\"matcha-autocomplete\"></ng-content>\n</div>\n<ng-content select=\"matcha-hint-text\"></ng-content>\n" }]
2253
+ args: [{ selector: 'matcha-form-field', standalone: false, template: "<div class=\"flex-column\">\n <div class=\"matcha-form-field position-relative w-100-p min-h-40 flex-align-center\" #inputSelector>\n <div class=\"flex-row position-absolute w-100-p min-h-40 h-100-p\">\n <div class=\"matcha-form-field-border-start bl-2 bt-2 bb-2 radius-left-8 min-w-8 border-color-{{color}}\"></div>\n <div class=\"matcha-form-field-border-middle bb-2 w-auto border-color-{{color}}\">\n <ng-content select=\"matcha-label\"></ng-content>\n </div>\n <div class=\"matcha-form-field-border-end br-2 bt-2 bb-2 radius-right-8 w-100-p border-color-{{color}}\"></div>\n </div>\n <div class=\"flex-row position-relative py-8 px-12 gap-8 w-100-p\">\n <ng-content></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"showError\">\n <ng-content select=\"matcha-error\"></ng-content>\n </ng-container>\n <ng-content select=\"matcha-autocomplete\"></ng-content>\n</div>\n<ng-content select=\"matcha-hint-text\"></ng-content>\n" }]
2254
2254
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { color: [{
2255
2255
  type: Input
2256
2256
  }], size: [{
@@ -2289,8 +2289,9 @@ class MatchaLabelComponent {
2289
2289
  // Busca o form-field pai
2290
2290
  const formField = this.elementRef.nativeElement.closest('matcha-form-field');
2291
2291
  if (formField) {
2292
- // Busca por input, textarea ou select com required
2293
- const inputElement = formField.querySelector('input[required], textarea[required], select[required]');
2292
+ // Busca por elementos nativos e componentes customizados com required
2293
+ const inputElement = formField.querySelector('input[required], textarea[required], select[required], ' +
2294
+ 'matcha-select[required], matcha-autocomplete[required]');
2294
2295
  this.isRequired = !!inputElement;
2295
2296
  }
2296
2297
  }
@@ -2306,11 +2307,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
2306
2307
 
2307
2308
  class MatchaErrorComponent {
2308
2309
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2309
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: MatchaErrorComponent, isStandalone: false, selector: "matcha-error", ngImport: i0, template: "<p class=\"w-100-p color-red fs-12 lh-16 flex-row flex-align-center gap-4 m-0\">\n <matcha-icon name=\"action_sign_warning-out\" size=\"sm\"></matcha-icon>\n <ng-content></ng-content>\n</p>", styles: [""], dependencies: [{ kind: "component", type: MatchaIconComponent, selector: "matcha-icon", inputs: ["name", "size", "color", "class", "loading"] }] }); }
2310
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: MatchaErrorComponent, isStandalone: false, selector: "matcha-error", ngImport: i0, template: "<p class=\"w-100-p color-red fs-12 lh-16 flex-row flex-align-center gap-4 m-0 py-4\">\n <matcha-icon name=\"action_sign_warning-out\" size=\"sm\"></matcha-icon>\n <ng-content></ng-content>\n</p>\n", styles: [""], dependencies: [{ kind: "component", type: MatchaIconComponent, selector: "matcha-icon", inputs: ["name", "size", "color", "class", "loading"] }] }); }
2310
2311
  }
2311
2312
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaErrorComponent, decorators: [{
2312
2313
  type: Component,
2313
- args: [{ selector: 'matcha-error', standalone: false, template: "<p class=\"w-100-p color-red fs-12 lh-16 flex-row flex-align-center gap-4 m-0\">\n <matcha-icon name=\"action_sign_warning-out\" size=\"sm\"></matcha-icon>\n <ng-content></ng-content>\n</p>" }]
2314
+ args: [{ selector: 'matcha-error', standalone: false, template: "<p class=\"w-100-p color-red fs-12 lh-16 flex-row flex-align-center gap-4 m-0 py-4\">\n <matcha-icon name=\"action_sign_warning-out\" size=\"sm\"></matcha-icon>\n <ng-content></ng-content>\n</p>\n" }]
2314
2315
  }] });
2315
2316
 
2316
2317
  class MatchaRippleDirective {
@@ -6750,7 +6751,7 @@ class MatchaInputPhoneComponent {
6750
6751
  this.removeClickListener();
6751
6752
  }
6752
6753
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaInputPhoneComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
6753
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: MatchaInputPhoneComponent, isStandalone: false, selector: "matcha-input-phone", inputs: { fallbackMask: "fallbackMask", value: "value" }, outputs: { onChange: "onChange" }, viewQueries: [{ propertyName: "inputSelector", first: true, predicate: ["inputSelector"], descendants: true }, { propertyName: "phoneRef", first: true, predicate: ["phoneRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n<div class=\"flex-row position-relative px-16 gap-8\" #inputSelector>\n <div class=\"min-h-24 radius-8 cursor-pointer d-flex gap-8 flex-align-center fs-16\" (click)=\"toggleDropdown()\">\n <div class=\"d-flex-row flex-align-center\">\n <img alt=\"\" [src]=\"'https://flagcdn.com/16x12/'+ selectedCountry?.iso2?.toLowerCase() + '.png'\"\n height=\"16\">\n </div>\n <span class=\"w-16 fs-16\"\n [ngClass]=\"isOpen ? 'i-matcha-action_arrow_up': 'i-matcha-action_arrow_down'\"></span>\n\n </div>\n <input *ngIf=\"isInitialized\" #phoneRef type=\"text\" placeholder=\"{{ typeMask }}\"\n [(ngModel)]=\"inputValueModel\"\n pattern=\"[0-9]*\" (keyup)=\"onInput($event)\" [mask]=\"typeMask\">\n\n <ng-container *ngIf=\"isOpen\">\n <div class=\"position-absolute z-index-10\">\n <div class=\"grid-1 gap-16 radius-8 z-index-10 p-8 w-300 position-absolute background-surface elevation-z-1\"\n style=\"top: calc(100% + 10px); overflow: hidden; height: 300px; overflow-y: auto;\">\n\n <label *ngFor=\"let country of allCountries; let i = index\"\n class=\"fs-16 lh-18 cursor-pointer d-flex-align-center p-8 ts-300-l\"\n [ngClass]=\"labelHover === i+'bg' ? 'background-bg' : 'background-surface'\"\n (mouseover)=\"labelHover = i+'bg'\" (mouseout)=\"labelHover = i+'su'\"\n (click)=\"selectCountry(country)\">\n <img alt=\"\" class=\"mr-8\"\n [src]=\"'https://flagcdn.com/16x12/'+ country?.iso2?.toLowerCase() + '.png'\" height=\"16\">\n {{country.name}}\n </label>\n </div>\n </div>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MatchaMaskCompatibleDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "matchaMask"] }] }); }
6754
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: MatchaInputPhoneComponent, isStandalone: false, selector: "matcha-input-phone", inputs: { fallbackMask: "fallbackMask", value: "value" }, outputs: { onChange: "onChange" }, viewQueries: [{ propertyName: "inputSelector", first: true, predicate: ["inputSelector"], descendants: true }, { propertyName: "phoneRef", first: true, predicate: ["phoneRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n<div class=\"flex-row position-relative px-16 gap-8\" #inputSelector>\n <div class=\"min-h-24 radius-8 cursor-pointer d-flex gap-8 flex-align-center fs-16\" (click)=\"toggleDropdown()\">\n <div class=\"d-flex-row flex-align-center\">\n <img alt=\"\" [src]=\"'https://flagcdn.com/16x12/'+ selectedCountry?.iso2?.toLowerCase() + '.png'\"\n height=\"16\">\n </div>\n <span class=\"w-16 fs-16\"\n [ngClass]=\"isOpen ? 'i-matcha-action_arrow_up': 'i-matcha-action_arrow_down'\"></span>\n\n </div>\n <input *ngIf=\"isInitialized\" #phoneRef type=\"text\" placeholder=\"{{ typeMask }}\"\n [(ngModel)]=\"inputValueModel\"\n pattern=\"[0-9]*\" (keyup)=\"onInput($event)\" [mask]=\"typeMask\">\n\n <ng-container *ngIf=\"isOpen\">\n <div class=\"position-absolute z-index-10\">\n <div class=\"grid-1 gap-16 radius-8 z-index-10 p-8 w-300 position-absolute background-surface elevation-z-1\"\n style=\"top: calc(100% + 10px); overflow: hidden; height: 300px; overflow-y: auto;\">\n\n <label *ngFor=\"let country of allCountries; let i = index\"\n class=\"fs-16 lh-18 cursor-pointer d-flex-align-center p-8 ts-300-l\"\n [ngClass]=\"labelHover === i+'bg' ? 'background-bg' : 'background-surface'\"\n (mouseover)=\"labelHover = i+'bg'\" (mouseout)=\"labelHover = i+'su'\"\n (click)=\"selectCountry(country)\">\n <img alt=\"\" class=\"mr-8\"\n [src]=\"'https://flagcdn.com/16x12/'+ country?.iso2?.toLowerCase() + '.png'\" height=\"16\">\n {{country.name}}\n </label>\n </div>\n </div>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: MatchaMaskCompatibleDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "matchaMask"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
6754
6755
  }
6755
6756
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaInputPhoneComponent, decorators: [{
6756
6757
  type: Component,
@@ -8398,6 +8399,8 @@ class MatchaSelectComponent {
8398
8399
  this.updateSelectedStates();
8399
8400
  this.panel.closePanel();
8400
8401
  this.closed.emit();
8402
+ // Marcar como touched quando o painel fecha (importante para validação)
8403
+ this.onTouched();
8401
8404
  }
8402
8405
  togglePanel() {
8403
8406
  this.open ? this.closePanel() : this.openPanel();
@@ -10881,17 +10884,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
10881
10884
  }]
10882
10885
  }] });
10883
10886
 
10887
+ const compatibleOptions = {
10888
+ specialCharacters: ['/', '(', ')', '.', ':', '-', ' ', '+', ',', '@', '[', ']', '"', "'", '*'],
10889
+ patterns: {
10890
+ '0': { pattern: /\d/ },
10891
+ '9': { pattern: /\d/, optional: true },
10892
+ 'A': { pattern: /[a-zA-Z0-9]/ },
10893
+ 'S': { pattern: /[a-zA-Z]/ }
10894
+ },
10895
+ prefix: '',
10896
+ suffix: '',
10897
+ thousandSeparator: '',
10898
+ decimalMarker: '.',
10899
+ clearIfNotMatch: false,
10900
+ showMaskTyped: false,
10901
+ placeHolderCharacter: '_',
10902
+ shownMaskExpression: '',
10903
+ dropSpecialCharacters: true,
10904
+ hiddenInput: false,
10905
+ validation: true,
10906
+ instantPrefix: false,
10907
+ separatorLimit: '',
10908
+ apm: false,
10909
+ allowNegativeNumbers: false,
10910
+ leadZeroDateTime: false,
10911
+ leadZero: false,
10912
+ triggerOnMaskChange: false,
10913
+ keepCharacterPositions: false,
10914
+ inputTransformFn: (v) => v,
10915
+ outputTransformFn: (v) => v,
10916
+ maskFilled: new EventEmitter()
10917
+ };
10918
+ class MatchaMaskModule {
10919
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10920
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: MatchaMaskModule, declarations: [MatchaMaskCompatibleDirective], imports: [CommonModule], exports: [MatchaMaskCompatibleDirective] }); }
10921
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaMaskModule, providers: [
10922
+ MatchaMaskService,
10923
+ { provide: MATCHA_MASK_CONFIG, useValue: compatibleOptions }
10924
+ ], imports: [CommonModule] }); }
10925
+ }
10926
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaMaskModule, decorators: [{
10927
+ type: NgModule,
10928
+ args: [{
10929
+ declarations: [
10930
+ MatchaMaskCompatibleDirective
10931
+ ],
10932
+ imports: [
10933
+ CommonModule
10934
+ ],
10935
+ exports: [
10936
+ MatchaMaskCompatibleDirective
10937
+ ],
10938
+ providers: [
10939
+ MatchaMaskService,
10940
+ { provide: MATCHA_MASK_CONFIG, useValue: compatibleOptions }
10941
+ ]
10942
+ }]
10943
+ }] });
10944
+
10884
10945
  class MatchaFormFieldModule {
10885
10946
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10886
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: MatchaFormFieldModule, declarations: [MatchaFormFieldComponent, MatchaLabelComponent, MatchaErrorComponent], imports: [CommonModule, MatchaIconModule], exports: [MatchaFormFieldComponent, MatchaLabelComponent, MatchaErrorComponent] }); }
10887
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaFormFieldModule, imports: [CommonModule, MatchaIconModule] }); }
10947
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: MatchaFormFieldModule, declarations: [MatchaFormFieldComponent, MatchaLabelComponent, MatchaErrorComponent], imports: [CommonModule, MatchaIconModule, ReactiveFormsModule, MatchaMaskModule], exports: [MatchaFormFieldComponent, MatchaLabelComponent, MatchaErrorComponent, ReactiveFormsModule, MatchaMaskModule] }); }
10948
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaFormFieldModule, imports: [CommonModule, MatchaIconModule, ReactiveFormsModule, MatchaMaskModule, ReactiveFormsModule, MatchaMaskModule] }); }
10888
10949
  }
10889
10950
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaFormFieldModule, decorators: [{
10890
10951
  type: NgModule,
10891
10952
  args: [{
10892
10953
  declarations: [MatchaFormFieldComponent, MatchaLabelComponent, MatchaErrorComponent],
10893
- imports: [CommonModule, MatchaIconModule],
10894
- exports: [MatchaFormFieldComponent, MatchaLabelComponent, MatchaErrorComponent],
10954
+ imports: [CommonModule, MatchaIconModule, ReactiveFormsModule, MatchaMaskModule],
10955
+ exports: [MatchaFormFieldComponent, MatchaLabelComponent, MatchaErrorComponent, ReactiveFormsModule, MatchaMaskModule],
10895
10956
  }]
10896
10957
  }] });
10897
10958
 
@@ -11674,64 +11735,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
11674
11735
  }]
11675
11736
  }] });
11676
11737
 
11677
- const compatibleOptions = {
11678
- specialCharacters: ['/', '(', ')', '.', ':', '-', ' ', '+', ',', '@', '[', ']', '"', "'", '*'],
11679
- patterns: {
11680
- '0': { pattern: /\d/ },
11681
- '9': { pattern: /\d/, optional: true },
11682
- 'A': { pattern: /[a-zA-Z0-9]/ },
11683
- 'S': { pattern: /[a-zA-Z]/ }
11684
- },
11685
- prefix: '',
11686
- suffix: '',
11687
- thousandSeparator: '',
11688
- decimalMarker: '.',
11689
- clearIfNotMatch: false,
11690
- showMaskTyped: false,
11691
- placeHolderCharacter: '_',
11692
- shownMaskExpression: '',
11693
- dropSpecialCharacters: true,
11694
- hiddenInput: false,
11695
- validation: true,
11696
- instantPrefix: false,
11697
- separatorLimit: '',
11698
- apm: false,
11699
- allowNegativeNumbers: false,
11700
- leadZeroDateTime: false,
11701
- leadZero: false,
11702
- triggerOnMaskChange: false,
11703
- keepCharacterPositions: false,
11704
- inputTransformFn: (v) => v,
11705
- outputTransformFn: (v) => v,
11706
- maskFilled: new EventEmitter()
11707
- };
11708
- class MatchaMaskModule {
11709
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11710
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: MatchaMaskModule, declarations: [MatchaMaskCompatibleDirective], imports: [CommonModule], exports: [MatchaMaskCompatibleDirective] }); }
11711
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaMaskModule, providers: [
11712
- MatchaMaskService,
11713
- { provide: MATCHA_MASK_CONFIG, useValue: compatibleOptions }
11714
- ], imports: [CommonModule] }); }
11715
- }
11716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaMaskModule, decorators: [{
11717
- type: NgModule,
11718
- args: [{
11719
- declarations: [
11720
- MatchaMaskCompatibleDirective
11721
- ],
11722
- imports: [
11723
- CommonModule
11724
- ],
11725
- exports: [
11726
- MatchaMaskCompatibleDirective
11727
- ],
11728
- providers: [
11729
- MatchaMaskService,
11730
- { provide: MATCHA_MASK_CONFIG, useValue: compatibleOptions }
11731
- ]
11732
- }]
11733
- }] });
11734
-
11735
11738
  class MatchaInputPhoneModule {
11736
11739
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: MatchaInputPhoneModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11737
11740
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: MatchaInputPhoneModule, declarations: [MatchaInputPhoneComponent], imports: [CommonModule,