appproject-components 0.0.4 → 0.0.7

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.
@@ -8,7 +8,7 @@ import * as i2 from '@ionic/angular';
8
8
  import { IonicModule } from '@ionic/angular';
9
9
  import * as i1$1 from '@angular/common/http';
10
10
  import { HttpClientModule } from '@angular/common/http';
11
- import { Subject, of } from 'rxjs';
11
+ import { Subject, of, Observable } from 'rxjs';
12
12
  import { debounceTime, switchMap } from 'rxjs/operators';
13
13
 
14
14
  class AppprojectComponentsService {
@@ -153,14 +153,14 @@ InputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
153
153
  provide: NG_VALUE_ACCESSOR,
154
154
  useExisting: InputTextComponent,
155
155
  multi: true
156
- }], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\"\n [style.opacity]=\"readonly ? '0.5' : '1'\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label position=\"{{ labelPosition }}\" color=\"{{ labelColor }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ campo }}\" -->\n <ion-input #inputText\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputText.value)\" \n autocomplete=\"new-password\"\n style=\"--background:{{ inputBackgroungColor }};\"\n [disabled]=\"readonly\"></ion-input>\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"botaoLimpar\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"outline\" color=\"medium\" (click)=\"limparClick()\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"showSeePassword\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"clear\" color=\"dark\" (click)=\"changeTypeOfInput()\">\n <!-- (click)=\"limparClick()\" -->\n <ion-icon [name]=\"type == 'password' ? 'eye-outline' : 'eye-off-outline' \"></ion-icon>\n </ion-button>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}ion-label{margin-bottom:4px!important;opacity:1!important}.no-padding-end{--inner-padding-end: 0}ion-item ion-label{overflow:initial!important}ion-input{padding:2px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px;transition:.2s ease}.error-shake ion-label{color:red!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:red;margin-left:15px}.padding{padding:auto;padding-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:39px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.input-login{height:36px}\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: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
156
+ }], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\"\n [style.opacity]=\"readonly ? '0.5' : '1'\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label position=\"{{ labelPosition }}\" color=\"{{ labelColor }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ campo }}\" -->\n <ion-input #inputText\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputText.value)\" \n autocomplete=\"new-password\"\n style=\"--background:{{ inputBackgroungColor }};\"\n [disabled]=\"readonly\"></ion-input>\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"botaoLimpar\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"outline\" color=\"medium\" (click)=\"limparClick()\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"showSeePassword\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"clear\" color=\"dark\" (click)=\"changeTypeOfInput()\">\n <!-- (click)=\"limparClick()\" -->\n <ion-icon [name]=\"type == 'password' ? 'eye-outline' : 'eye-off-outline' \"></ion-icon>\n </ion-button>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: [".no-padding-end{--inner-padding-end: 0}ion-item ion-label{overflow:initial!important}.input-login{height:36px}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\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: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
157
157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputTextComponent, decorators: [{
158
158
  type: Component,
159
159
  args: [{ selector: 'kb-input-text', providers: [{
160
160
  provide: NG_VALUE_ACCESSOR,
161
161
  useExisting: InputTextComponent,
162
162
  multi: true
163
- }], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\"\n [style.opacity]=\"readonly ? '0.5' : '1'\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label position=\"{{ labelPosition }}\" color=\"{{ labelColor }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ campo }}\" -->\n <ion-input #inputText\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputText.value)\" \n autocomplete=\"new-password\"\n style=\"--background:{{ inputBackgroungColor }};\"\n [disabled]=\"readonly\"></ion-input>\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"botaoLimpar\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"outline\" color=\"medium\" (click)=\"limparClick()\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"showSeePassword\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"clear\" color=\"dark\" (click)=\"changeTypeOfInput()\">\n <!-- (click)=\"limparClick()\" -->\n <ion-icon [name]=\"type == 'password' ? 'eye-outline' : 'eye-off-outline' \"></ion-icon>\n </ion-button>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}ion-label{margin-bottom:4px!important;opacity:1!important}.no-padding-end{--inner-padding-end: 0}ion-item ion-label{overflow:initial!important}ion-input{padding:2px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px;transition:.2s ease}.error-shake ion-label{color:red!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:red;margin-left:15px}.padding{padding:auto;padding-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:39px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.input-login{height:36px}\n"] }]
163
+ }], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\"\n [style.opacity]=\"readonly ? '0.5' : '1'\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label position=\"{{ labelPosition }}\" color=\"{{ labelColor }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ campo }}\" -->\n <ion-input #inputText\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputText.value)\" \n autocomplete=\"new-password\"\n style=\"--background:{{ inputBackgroungColor }};\"\n [disabled]=\"readonly\"></ion-input>\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"botaoLimpar\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"outline\" color=\"medium\" (click)=\"limparClick()\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"showSeePassword\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"clear\" color=\"dark\" (click)=\"changeTypeOfInput()\">\n <!-- (click)=\"limparClick()\" -->\n <ion-icon [name]=\"type == 'password' ? 'eye-outline' : 'eye-off-outline' \"></ion-icon>\n </ion-button>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: [".no-padding-end{--inner-padding-end: 0}ion-item ion-label{overflow:initial!important}.input-login{height:36px}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\n"] }]
164
164
  }], ctorParameters: function () { return []; } });
165
165
 
166
166
  class InputFormatComponent extends BaseInputComponent {
@@ -272,14 +272,14 @@ InputFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
272
272
  provide: NG_VALUE_ACCESSOR,
273
273
  useExisting: InputFormatComponent,
274
274
  multi: true
275
- }], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<!--comando --inner-padding-end: utilizado pra remover padding desnecess\u00E1rios-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName={{formControlName}} -->\n <ion-input #inputFormat\n type=\"tel\" \n [placeholder]=\"placeholder\"\n maxlength=\"{{ max }}\" \n (keydown)=\"digitarFormatado($event)\" \n (keyup.enter)=\"onKeyEnter()\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputFormat.value)\"\n [disabled]=\"readonly\"></ion-input>\n \n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:red!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}ion-label{margin-bottom:4px!important}ion-input{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.error-message{font-size:small;color:red;margin-left:15px}.item-inner{padding-right:0!important}\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: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
275
+ }], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<!--comando --inner-padding-end: utilizado pra remover padding desnecess\u00E1rios-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName={{formControlName}} -->\n <ion-input #inputFormat\n type=\"tel\" \n [placeholder]=\"placeholder\"\n maxlength=\"{{ max }}\" \n (keydown)=\"digitarFormatado($event)\" \n (keyup.enter)=\"onKeyEnter()\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputFormat.value)\"\n [disabled]=\"readonly\"></ion-input>\n \n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n </div>", styles: [".item-inner{padding-right:0!important}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\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: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
276
276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputFormatComponent, decorators: [{
277
277
  type: Component,
278
278
  args: [{ selector: 'kb-input-format', providers: [{
279
279
  provide: NG_VALUE_ACCESSOR,
280
280
  useExisting: InputFormatComponent,
281
281
  multi: true
282
- }], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<!--comando --inner-padding-end: utilizado pra remover padding desnecess\u00E1rios-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName={{formControlName}} -->\n <ion-input #inputFormat\n type=\"tel\" \n [placeholder]=\"placeholder\"\n maxlength=\"{{ max }}\" \n (keydown)=\"digitarFormatado($event)\" \n (keyup.enter)=\"onKeyEnter()\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputFormat.value)\"\n [disabled]=\"readonly\"></ion-input>\n \n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:red!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}ion-label{margin-bottom:4px!important}ion-input{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.error-message{font-size:small;color:red;margin-left:15px}.item-inner{padding-right:0!important}\n"] }]
282
+ }], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<!--comando --inner-padding-end: utilizado pra remover padding desnecess\u00E1rios-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName={{formControlName}} -->\n <ion-input #inputFormat\n type=\"tel\" \n [placeholder]=\"placeholder\"\n maxlength=\"{{ max }}\" \n (keydown)=\"digitarFormatado($event)\" \n (keyup.enter)=\"onKeyEnter()\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputFormat.value)\"\n [disabled]=\"readonly\"></ion-input>\n \n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n </div>", styles: [".item-inner{padding-right:0!important}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\n"] }]
283
283
  }], ctorParameters: function () { return []; }, propDecorators: { formato: [{
284
284
  type: Input
285
285
  }], keyEnter: [{
@@ -335,14 +335,14 @@ InputSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
335
335
  provide: NG_VALUE_ACCESSOR,
336
336
  useExisting: InputSelectComponent,
337
337
  multi: true
338
- }], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <select #inputSelect\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\n (blur)=\"onBlur()\" [disabled]=\"readonly\">\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\n </option>\n </select> \n </ion-item>\n \n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n \n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:red!important}.error-shake select{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}ion-label{margin-bottom:4px!important}select{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:0;height:28px;margin-left:0}.error-message{font-size:small;color:red;margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}\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: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
338
+ }], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <select #inputSelect\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\n (blur)=\"onBlur()\" [disabled]=\"readonly\">\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\n </option>\n </select> \n </ion-item>\n \n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n \n </div>", styles: ["select{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:0;height:28px;margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\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: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
339
339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputSelectComponent, decorators: [{
340
340
  type: Component,
341
341
  args: [{ selector: 'kb-input-select', providers: [{
342
342
  provide: NG_VALUE_ACCESSOR,
343
343
  useExisting: InputSelectComponent,
344
344
  multi: true
345
- }], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <select #inputSelect\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\n (blur)=\"onBlur()\" [disabled]=\"readonly\">\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\n </option>\n </select> \n </ion-item>\n \n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n \n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:red!important}.error-shake select{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}ion-label{margin-bottom:4px!important}select{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:0;height:28px;margin-left:0}.error-message{font-size:small;color:red;margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}\n"] }]
345
+ }], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <select #inputSelect\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\n (blur)=\"onBlur()\" [disabled]=\"readonly\">\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\n </option>\n </select> \n </ion-item>\n \n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n \n </div>", styles: ["select{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:0;height:28px;margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\n"] }]
346
346
  }], ctorParameters: function () { return []; }, propDecorators: { change: [{
347
347
  type: Input
348
348
  }], itens: [{
@@ -847,14 +847,14 @@ InputPesquisaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
847
847
  provide: NG_VALUE_ACCESSOR,
848
848
  useExisting: InputPesquisaComponent,
849
849
  multi: true
850
- }], viewQueries: [{ propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"padding-inline-end: 0px;\">\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; margin-top: 2px;\" [class]=\"itemClass\">\n <ion-label position=\"{{ labelPosition }}\" color=\"{{ labelColor }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ campo }}\" -->\n <ion-spinner *ngIf=\"!podePesquisar\"\n style=\"--min-height: 0px !important; margin-inline-end: 5px !important; margin-top: 16px;\" \n slot=\"start\" name=\"lines\"></ion-spinner>\n <!-- (ionBlur)=\"verificarPesquisa()\" -->\n <!-- conflito com click da lista -->\n <ion-input #inputPesquisa\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\" \n (ionBlur)=\"onBlur($event)\"\n [value]=\"textoPesquisa\" (input)=\"writePesquisa(inputPesquisa.value)\" \n (keyup)=\"showPesquisa($event)\"\n autocomplete=\"off\" style=\"--background:{{ inputBackgroungColor }};\"\n (click)=\"dropDownPesquisa(-1)\"\n [disabled]=\"readonly\" debounce=\"500\"></ion-input>\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"limparClick()\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n \n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"pesquisarClick()\">\n <ion-icon color=\"primary\" name=\"search\"></ion-icon>\n </ion-button>\n \n </ion-item>\n \n <ion-list tabindex=\"-1\" [hidden]=\"!selectElementVisivel || !listaPesquisa || listaPesquisa.length == 0\" class=\"pesquisa-list\" style=\"max-height: 250px; overflow-y: auto;\">\n \n <ion-item tabindex=\"-1\" button *ngFor=\"let item of listaPesquisa\" \n (click)=\"selecionarComboClick(item)\" [id]=\"selectId + 'IonItem' + item['Index']\"\n class=\"pesquisa-item\">\n <!-- {{ item | json}} -->\n <span [class]=\"{'selected-item': item['Selected'] === true}\" [innerHTML]=\"highlight(item[campoDisplay])\"></span>\n </ion-item>\n \n </ion-list>\n \n <!--\n <ion-select interface=\"popover\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\n (ionChange)=\"selecionarComboChange($event.target.value)\">\n <ion-select-option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\n {{ item[campoDisplay] }}\n </ion-select-option>\n </ion-select>\n -->\n \n <!--\n <select [id]=\"selectId\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\n (change)=\"selecionarComboChange($event.target.value)\" class=\"pesquisa-select\">\n <option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\n {{ item[campoDisplay] }}\n </option>\n \n </select>\n -->\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: ["ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:red;margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.pesquisa-select{display:block;position:absolute;top:58px;left:20px;width:100%;z-index:800;font-size:16px;font-family:Roboto,Helvetica Neue,sans-serif;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.pesquisa-select option{overflow-y:hidden}.pesquisa-select option:hover,.pesquisa-select option:checked{background-color:#add8e6}.pesquisa-list{display:block;position:relative;margin-left:20px;margin-top:-4px;width:calc(100% - 50px);z-index:800;border:1px lightgrey solid;border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:0}.pesquisa-item{--inner-padding-top: 0px;--inner-padding-bottom: 0px;--padding-top: 0px;--padding-bottom: 0px;--min-height: 30px !important;font-size:12px}.pesquisa-item button{padding:0}.selected-item{background-color:#add8e6}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
850
+ }], viewQueries: [{ propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"padding-inline-end: 0px;\">\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; margin-top: 2px;\" [class]=\"itemClass\">\n <ion-label position=\"{{ labelPosition }}\" color=\"{{ labelColor }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ campo }}\" -->\n <ion-spinner *ngIf=\"!podePesquisar\"\n style=\"--min-height: 0px !important; margin-inline-end: 5px !important; margin-top: 16px;\" \n slot=\"start\" name=\"lines\"></ion-spinner>\n <!-- (ionBlur)=\"verificarPesquisa()\" -->\n <!-- conflito com click da lista -->\n <ion-input #inputPesquisa\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\" \n (ionBlur)=\"onBlur($event)\"\n [value]=\"textoPesquisa\" (input)=\"writePesquisa(inputPesquisa.value)\" \n (keyup)=\"showPesquisa($event)\"\n autocomplete=\"off\" style=\"--background:{{ inputBackgroungColor }};\"\n (click)=\"dropDownPesquisa(-1)\"\n [disabled]=\"readonly\" debounce=\"500\"></ion-input>\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"limparClick()\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n \n <!--\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"pesquisarClick()\">\n <ion-icon color=\"primary\" name=\"search\"></ion-icon>\n </ion-button>\n -->\n \n </ion-item>\n \n <ion-list tabindex=\"-1\" [hidden]=\"!selectElementVisivel || !listaPesquisa || listaPesquisa.length == 0\" class=\"pesquisa-list\" style=\"max-height: 250px; overflow-y: auto;\">\n \n <ion-item tabindex=\"-1\" button *ngFor=\"let item of listaPesquisa\" \n (click)=\"selecionarComboClick(item)\" [id]=\"selectId + 'IonItem' + item['Index']\"\n class=\"pesquisa-item\">\n <!-- {{ item | json}} -->\n <span [class]=\"{'selected-item': item['Selected'] === true}\" [innerHTML]=\"highlight(item[campoDisplay])\"></span>\n </ion-item>\n \n </ion-list>\n \n <!--\n <ion-select interface=\"popover\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\n (ionChange)=\"selecionarComboChange($event.target.value)\">\n <ion-select-option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\n {{ item[campoDisplay] }}\n </ion-select-option>\n </ion-select>\n -->\n \n <!--\n <select [id]=\"selectId\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\n (change)=\"selecionarComboChange($event.target.value)\" class=\"pesquisa-select\">\n <option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\n {{ item[campoDisplay] }}\n </option>\n \n </select>\n -->\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: [".pesquisa-select{display:block;position:absolute;top:58px;left:20px;width:100%;z-index:800;font-size:16px;font-family:Roboto,Helvetica Neue,sans-serif;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.pesquisa-select option{overflow-y:hidden}.pesquisa-select option:hover,.pesquisa-select option:checked{background-color:#add8e6}.pesquisa-list{display:block;position:absolute;margin-left:20px;margin-top:-4px;width:calc(100% - 50px);z-index:800;border:1px lightgrey solid;border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:0}.pesquisa-item{--inner-padding-top: 0px;--inner-padding-bottom: 0px;--padding-top: 0px;--padding-bottom: 0px;--min-height: 30px !important;font-size:12px}.pesquisa-item button{padding:0}.selected-item{background-color:#add8e6}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
851
851
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputPesquisaComponent, decorators: [{
852
852
  type: Component,
853
853
  args: [{ selector: 'kb-input-pesquisa', providers: [{
854
854
  provide: NG_VALUE_ACCESSOR,
855
855
  useExisting: InputPesquisaComponent,
856
856
  multi: true
857
- }], template: "<div style=\"padding-inline-end: 0px;\">\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; margin-top: 2px;\" [class]=\"itemClass\">\n <ion-label position=\"{{ labelPosition }}\" color=\"{{ labelColor }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ campo }}\" -->\n <ion-spinner *ngIf=\"!podePesquisar\"\n style=\"--min-height: 0px !important; margin-inline-end: 5px !important; margin-top: 16px;\" \n slot=\"start\" name=\"lines\"></ion-spinner>\n <!-- (ionBlur)=\"verificarPesquisa()\" -->\n <!-- conflito com click da lista -->\n <ion-input #inputPesquisa\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\" \n (ionBlur)=\"onBlur($event)\"\n [value]=\"textoPesquisa\" (input)=\"writePesquisa(inputPesquisa.value)\" \n (keyup)=\"showPesquisa($event)\"\n autocomplete=\"off\" style=\"--background:{{ inputBackgroungColor }};\"\n (click)=\"dropDownPesquisa(-1)\"\n [disabled]=\"readonly\" debounce=\"500\"></ion-input>\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"limparClick()\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n \n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"pesquisarClick()\">\n <ion-icon color=\"primary\" name=\"search\"></ion-icon>\n </ion-button>\n \n </ion-item>\n \n <ion-list tabindex=\"-1\" [hidden]=\"!selectElementVisivel || !listaPesquisa || listaPesquisa.length == 0\" class=\"pesquisa-list\" style=\"max-height: 250px; overflow-y: auto;\">\n \n <ion-item tabindex=\"-1\" button *ngFor=\"let item of listaPesquisa\" \n (click)=\"selecionarComboClick(item)\" [id]=\"selectId + 'IonItem' + item['Index']\"\n class=\"pesquisa-item\">\n <!-- {{ item | json}} -->\n <span [class]=\"{'selected-item': item['Selected'] === true}\" [innerHTML]=\"highlight(item[campoDisplay])\"></span>\n </ion-item>\n \n </ion-list>\n \n <!--\n <ion-select interface=\"popover\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\n (ionChange)=\"selecionarComboChange($event.target.value)\">\n <ion-select-option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\n {{ item[campoDisplay] }}\n </ion-select-option>\n </ion-select>\n -->\n \n <!--\n <select [id]=\"selectId\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\n (change)=\"selecionarComboChange($event.target.value)\" class=\"pesquisa-select\">\n <option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\n {{ item[campoDisplay] }}\n </option>\n \n </select>\n -->\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: ["ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:red;margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.pesquisa-select{display:block;position:absolute;top:58px;left:20px;width:100%;z-index:800;font-size:16px;font-family:Roboto,Helvetica Neue,sans-serif;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.pesquisa-select option{overflow-y:hidden}.pesquisa-select option:hover,.pesquisa-select option:checked{background-color:#add8e6}.pesquisa-list{display:block;position:relative;margin-left:20px;margin-top:-4px;width:calc(100% - 50px);z-index:800;border:1px lightgrey solid;border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:0}.pesquisa-item{--inner-padding-top: 0px;--inner-padding-bottom: 0px;--padding-top: 0px;--padding-bottom: 0px;--min-height: 30px !important;font-size:12px}.pesquisa-item button{padding:0}.selected-item{background-color:#add8e6}\n"] }]
857
+ }], template: "<div style=\"padding-inline-end: 0px;\">\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; margin-top: 2px;\" [class]=\"itemClass\">\n <ion-label position=\"{{ labelPosition }}\" color=\"{{ labelColor }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ campo }}\" -->\n <ion-spinner *ngIf=\"!podePesquisar\"\n style=\"--min-height: 0px !important; margin-inline-end: 5px !important; margin-top: 16px;\" \n slot=\"start\" name=\"lines\"></ion-spinner>\n <!-- (ionBlur)=\"verificarPesquisa()\" -->\n <!-- conflito com click da lista -->\n <ion-input #inputPesquisa\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\" \n (ionBlur)=\"onBlur($event)\"\n [value]=\"textoPesquisa\" (input)=\"writePesquisa(inputPesquisa.value)\" \n (keyup)=\"showPesquisa($event)\"\n autocomplete=\"off\" style=\"--background:{{ inputBackgroungColor }};\"\n (click)=\"dropDownPesquisa(-1)\"\n [disabled]=\"readonly\" debounce=\"500\"></ion-input>\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"limparClick()\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n \n <!--\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"pesquisarClick()\">\n <ion-icon color=\"primary\" name=\"search\"></ion-icon>\n </ion-button>\n -->\n \n </ion-item>\n \n <ion-list tabindex=\"-1\" [hidden]=\"!selectElementVisivel || !listaPesquisa || listaPesquisa.length == 0\" class=\"pesquisa-list\" style=\"max-height: 250px; overflow-y: auto;\">\n \n <ion-item tabindex=\"-1\" button *ngFor=\"let item of listaPesquisa\" \n (click)=\"selecionarComboClick(item)\" [id]=\"selectId + 'IonItem' + item['Index']\"\n class=\"pesquisa-item\">\n <!-- {{ item | json}} -->\n <span [class]=\"{'selected-item': item['Selected'] === true}\" [innerHTML]=\"highlight(item[campoDisplay])\"></span>\n </ion-item>\n \n </ion-list>\n \n <!--\n <ion-select interface=\"popover\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\n (ionChange)=\"selecionarComboChange($event.target.value)\">\n <ion-select-option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\n {{ item[campoDisplay] }}\n </ion-select-option>\n </ion-select>\n -->\n \n <!--\n <select [id]=\"selectId\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\n (change)=\"selecionarComboChange($event.target.value)\" class=\"pesquisa-select\">\n <option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\n {{ item[campoDisplay] }}\n </option>\n \n </select>\n -->\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: [".pesquisa-select{display:block;position:absolute;top:58px;left:20px;width:100%;z-index:800;font-size:16px;font-family:Roboto,Helvetica Neue,sans-serif;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.pesquisa-select option{overflow-y:hidden}.pesquisa-select option:hover,.pesquisa-select option:checked{background-color:#add8e6}.pesquisa-list{display:block;position:absolute;margin-left:20px;margin-top:-4px;width:calc(100% - 50px);z-index:800;border:1px lightgrey solid;border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:0}.pesquisa-item{--inner-padding-top: 0px;--inner-padding-bottom: 0px;--padding-top: 0px;--padding-bottom: 0px;--min-height: 30px !important;font-size:12px}.pesquisa-item button{padding:0}.selected-item{background-color:#add8e6}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\n"] }]
858
858
  }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i2.ModalController }]; }, propDecorators: { textoPesquisa: [{
859
859
  type: Input
860
860
  }], max: [{
@@ -949,7 +949,7 @@ class InputValorComponent extends BaseInputComponent {
949
949
  return campo;
950
950
  }
951
951
  let valor = parseFloat(campo.replace(',', '').replace('.', '').replace('.', '').replace('.', ''));
952
- if (valor == NaN) {
952
+ if (isNaN(valor)) {
953
953
  return '';
954
954
  }
955
955
  let valordiv = parseInt("1" + this.stringOfChar("0", casas));
@@ -1001,16 +1001,223 @@ InputValorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
1001
1001
  provide: NG_VALUE_ACCESSOR,
1002
1002
  useExisting: InputValorComponent,
1003
1003
  multi: true
1004
- }], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <ion-input #inputValor\n type=\"text\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputValor.value)\" \n (keypress)=\"digitarValor($event)\"\n [disabled]=\"readonly\"></ion-input>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:red!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}ion-label{margin-bottom:4px!important;opacity:1!important;overflow:initial!important}ion-input{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;max-height:27px;text-align:right}.error-message{font-size:small;color:red;margin-left:15px}.item-inner{padding-right:0!important}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:39px!important}.label-right ion-label{transform-origin:right top;align-self:flex-end}.align-to-right ion-label{position:relative;left:25%;text-align:end}\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: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
1004
+ }], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <ion-input #inputValor\n type=\"text\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputValor.value)\" \n (keypress)=\"digitarValor($event)\"\n [disabled]=\"readonly\"></ion-input>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: [".item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end}.align-to-right ion-label{position:relative;left:25%;text-align:end}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\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: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
1005
1005
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputValorComponent, decorators: [{
1006
1006
  type: Component,
1007
1007
  args: [{ selector: 'kb-input-valor', providers: [{
1008
1008
  provide: NG_VALUE_ACCESSOR,
1009
1009
  useExisting: InputValorComponent,
1010
1010
  multi: true
1011
- }], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <ion-input #inputValor\n type=\"text\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputValor.value)\" \n (keypress)=\"digitarValor($event)\"\n [disabled]=\"readonly\"></ion-input>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:red!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}ion-label{margin-bottom:4px!important;opacity:1!important;overflow:initial!important}ion-input{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;max-height:27px;text-align:right}.error-message{font-size:small;color:red;margin-left:15px}.item-inner{padding-right:0!important}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:39px!important}.label-right ion-label{transform-origin:right top;align-self:flex-end}.align-to-right ion-label{position:relative;left:25%;text-align:end}\n"] }]
1011
+ }], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<div>\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <ion-input #inputValor\n type=\"text\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputValor.value)\" \n (keypress)=\"digitarValor($event)\"\n [disabled]=\"readonly\"></ion-input>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: [".item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end}.align-to-right ion-label{position:relative;left:25%;text-align:end}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\n"] }]
1012
1012
  }], ctorParameters: function () { return []; } });
1013
1013
 
1014
+ class InputAreaComponent extends BaseInputComponent {
1015
+ constructor() {
1016
+ super();
1017
+ this.linhas = 5;
1018
+ this.onChange = (data) => { };
1019
+ this.onTouch = () => { };
1020
+ this.disabled = false;
1021
+ this.console = console;
1022
+ }
1023
+ writeValue(value) {
1024
+ //console.log('write value', value);
1025
+ this.onChange(value);
1026
+ this.data = value;
1027
+ }
1028
+ registerOnChange(fn) {
1029
+ this.onChange = fn;
1030
+ }
1031
+ registerOnTouched(fn) {
1032
+ this.onTouch = fn;
1033
+ }
1034
+ setDisabledState(isDisabled) {
1035
+ this.disabled = this.disabled;
1036
+ }
1037
+ ngOnInit() { }
1038
+ onBlur() {
1039
+ if (this.form) {
1040
+ this.form.get(this.formControlName)?.markAsTouched();
1041
+ }
1042
+ }
1043
+ }
1044
+ InputAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1045
+ InputAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputAreaComponent, selector: "kb-input-area", inputs: { linhas: "linhas" }, providers: [{
1046
+ provide: NG_VALUE_ACCESSOR,
1047
+ useExisting: InputAreaComponent,
1048
+ multi: true
1049
+ }], usesInheritance: true, ngImport: i0, template: "<div>\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\">\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <ion-textarea #inputArea\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n [rows]=\"linhas\" \n (input)=\"writeValue(inputArea.value)\"\n [disabled]=\"readonly\"></ion-textarea>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: ["ion-label{margin-bottom:4px!important}ion-textarea{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "spellcheck", "value", "wrap"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
1050
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputAreaComponent, decorators: [{
1051
+ type: Component,
1052
+ args: [{ selector: 'kb-input-area', providers: [{
1053
+ provide: NG_VALUE_ACCESSOR,
1054
+ useExisting: InputAreaComponent,
1055
+ multi: true
1056
+ }], template: "<div>\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\">\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\n <!-- formControlName=\"{{ formControlName }}\" -->\n <ion-textarea #inputArea\n type=\"{{type}}\" \n [placeholder]=\"placeholder\" \n maxlength=\"{{ max }}\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n [rows]=\"linhas\" \n (input)=\"writeValue(inputArea.value)\"\n [disabled]=\"readonly\"></ion-textarea>\n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n \n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n \n </div>\n </div>", styles: ["ion-label{margin-bottom:4px!important}ion-textarea{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}\n", "ion-label{margin-bottom:4px!important;opacity:1!important}ion-input{padding:var(--input-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-label{--color: blue !important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:var(--error-text-color, red)!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}\n"] }]
1057
+ }], ctorParameters: function () { return []; }, propDecorators: { linhas: [{
1058
+ type: Input
1059
+ }] } });
1060
+
1061
+ class InputCepComponent extends BaseInputComponent {
1062
+ constructor() {
1063
+ super();
1064
+ this.formato = '00000-000';
1065
+ this.keyEnter = null;
1066
+ this.getResultados = null;
1067
+ //control value acessor
1068
+ this.data = null;
1069
+ this.onChange = (data) => { };
1070
+ this.onTouch = () => { };
1071
+ this.disabled = false;
1072
+ }
1073
+ writeValue(value) {
1074
+ //console.log('write value', value);
1075
+ this.onChange(value);
1076
+ this.data = value;
1077
+ }
1078
+ registerOnChange(fn) {
1079
+ this.onChange = fn;
1080
+ }
1081
+ registerOnTouched(fn) {
1082
+ this.onTouch = fn;
1083
+ }
1084
+ setDisabledState(isDisabled) {
1085
+ this.disabled = this.disabled;
1086
+ }
1087
+ ngOnInit() {
1088
+ }
1089
+ digitarFormatado(event) {
1090
+ console.log(event);
1091
+ if ((event.keyCode >= 48 && event.keyCode <= 57)
1092
+ || (event.keyCode >= 96 && event.keyCode <= 105)
1093
+ || (event.keyCode == 8)
1094
+ || (event.keyCode == 9)
1095
+ || (event.keyCode == 39)
1096
+ || (event.keyCode == 37)
1097
+ || (event.keyCode == 46)) {
1098
+ //console.log(this.formControlName, this.form.get(this.formControlName).value);
1099
+ setTimeout(() => {
1100
+ if (this.form) {
1101
+ this.form.patchValue({
1102
+ [this.formControlName]: this.formataCampoValor(this.form.get(this.formControlName)?.value, this.formato ?? '', event)
1103
+ });
1104
+ }
1105
+ else {
1106
+ this.data = this.formataCampoValor(this.data ?? '', this.formato ?? '', event);
1107
+ this.writeValue(this.data);
1108
+ }
1109
+ }, 100);
1110
+ return true;
1111
+ }
1112
+ else {
1113
+ return false;
1114
+ }
1115
+ }
1116
+ onKeyEnter() {
1117
+ if (this.keyEnter != null) {
1118
+ this.keyEnter();
1119
+ }
1120
+ }
1121
+ onBlur() {
1122
+ if (this.form) {
1123
+ this.form.get(this.formControlName)?.markAsTouched();
1124
+ }
1125
+ if (this.blur) {
1126
+ this.blur(this.blurArgs);
1127
+ }
1128
+ }
1129
+ formataCampoValor(valor, Mascara, evento) {
1130
+ console.log(valor);
1131
+ if (!valor)
1132
+ return null;
1133
+ //console.log(evento);
1134
+ //if (!this.keypressInteiro(evento))
1135
+ // return;
1136
+ var boleanoMascara;
1137
+ var Digitato = evento != null ? evento.keyCode : 0;
1138
+ let exp = /\-|\.|\/|\(|\)| /g;
1139
+ let campoSoNumeros = valor.replace(exp, "");
1140
+ var posicaoCampo = 0;
1141
+ var NovoValorCampo = "";
1142
+ var TamanhoMascara = campoSoNumeros.length;
1143
+ ;
1144
+ if (Digitato != 8) { // backspace
1145
+ for (let i = 0; i <= TamanhoMascara; i++) {
1146
+ boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
1147
+ || (Mascara.charAt(i) == "/"));
1148
+ boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
1149
+ || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "));
1150
+ if (boleanoMascara) {
1151
+ NovoValorCampo += Mascara.charAt(i);
1152
+ TamanhoMascara++;
1153
+ }
1154
+ else {
1155
+ NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
1156
+ posicaoCampo++;
1157
+ }
1158
+ }
1159
+ return NovoValorCampo;
1160
+ }
1161
+ else {
1162
+ return valor;
1163
+ }
1164
+ }
1165
+ pesquisarClick() {
1166
+ const cep = this.data;
1167
+ //se não estiver informado o cep, não fazer a pesquisa
1168
+ if (cep == null || cep == "") {
1169
+ return;
1170
+ }
1171
+ this.getEnderecoPeloCep(cep).subscribe({
1172
+ next: (result) => {
1173
+ console.log('result CEP', result);
1174
+ let cidadePesquisa = result.localidade;
1175
+ cidadePesquisa = this.converteCaracteresEspeciais(cidadePesquisa.toUpperCase());
1176
+ if (this.getResultados) {
1177
+ this.getResultados(result);
1178
+ }
1179
+ }, error: (error) => {
1180
+ }
1181
+ });
1182
+ }
1183
+ //substituição de caracteres
1184
+ converteCaracteresEspeciais(nome) {
1185
+ var res = nome.replace(/Ã/g, "A");
1186
+ res = res.replace(/Á/g, "A");
1187
+ res = res.replace(/Ç/g, "C");
1188
+ res = res.replace(/É/g, "E");
1189
+ res = res.replace(/Â/g, "A");
1190
+ res = res.replace(/Ô/g, "O");
1191
+ res = res.replace(/Ó/g, "O");
1192
+ res = res.replace(/Ú/g, "U");
1193
+ res = res.replace(/Í/g, "I");
1194
+ return res;
1195
+ }
1196
+ getEnderecoPeloCep(cep) {
1197
+ return new Observable((x) => {
1198
+ var request = new XMLHttpRequest();
1199
+ request.open('get', `https://viacep.com.br/ws/${cep}/json/`, true);
1200
+ request.send();
1201
+ request.onload = function () {
1202
+ var data = JSON.parse(this.response);
1203
+ x.next(data);
1204
+ };
1205
+ });
1206
+ }
1207
+ }
1208
+ InputCepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputCepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1209
+ InputCepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputCepComponent, selector: "kb-input-cep", inputs: { formato: "formato", keyEnter: "keyEnter", getResultados: "getResultados" }, usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<!--comando --inner-padding-end: utilizado pra remover padding desnecess\u00E1rios-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName={{formControlName}} -->\n <ion-input #inputFormat\n type=\"tel\" \n [placeholder]=\"placeholder\"\n maxlength=\"{{ max }}\" \n (keydown)=\"digitarFormatado($event)\" \n (keyup.enter)=\"onKeyEnter()\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputFormat.value)\"\n [disabled]=\"readonly\"></ion-input>\n\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"pesquisarClick()\">\n <ion-icon color=\"primary\" name=\"search\"></ion-icon>\n </ion-button>\n \n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n </div>", styles: [""], 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: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
1210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputCepComponent, decorators: [{
1211
+ type: Component,
1212
+ args: [{ selector: 'kb-input-cep', template: "<!--\n<div [formGroup]=\"form\">\n-->\n<!--comando --inner-padding-end: utilizado pra remover padding desnecess\u00E1rios-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName={{formControlName}} -->\n <ion-input #inputFormat\n type=\"tel\" \n [placeholder]=\"placeholder\"\n maxlength=\"{{ max }}\" \n (keydown)=\"digitarFormatado($event)\" \n (keyup.enter)=\"onKeyEnter()\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputFormat.value)\"\n [disabled]=\"readonly\"></ion-input>\n\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\n (click)=\"pesquisarClick()\">\n <ion-icon color=\"primary\" name=\"search\"></ion-icon>\n </ion-button>\n \n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n &#8226; {{ validation.message }}\n </div>\n </ng-container>\n </div>\n </div>" }]
1213
+ }], ctorParameters: function () { return []; }, propDecorators: { formato: [{
1214
+ type: Input
1215
+ }], keyEnter: [{
1216
+ type: Input
1217
+ }], getResultados: [{
1218
+ type: Input
1219
+ }] } });
1220
+
1014
1221
  const LibConfigService = new InjectionToken('LibConfig');
1015
1222
  class AppprojectComponentsModule {
1016
1223
  static forRoot(config) {
@@ -1033,7 +1240,9 @@ AppprojectComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.
1033
1240
  InputSelectComponent,
1034
1241
  InputPesquisaComponent,
1035
1242
  ModelTreeviewComponent,
1036
- InputValorComponent], imports: [CommonModule,
1243
+ InputValorComponent,
1244
+ InputAreaComponent,
1245
+ InputCepComponent], imports: [CommonModule,
1037
1246
  HttpClientModule,
1038
1247
  IonicModule,
1039
1248
  ReactiveFormsModule], exports: [AppprojectComponentsComponent,
@@ -1042,7 +1251,9 @@ AppprojectComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.
1042
1251
  InputSelectComponent,
1043
1252
  InputPesquisaComponent,
1044
1253
  ModelTreeviewComponent,
1045
- InputValorComponent] });
1254
+ InputValorComponent,
1255
+ InputAreaComponent,
1256
+ InputCepComponent] });
1046
1257
  AppprojectComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, imports: [CommonModule,
1047
1258
  HttpClientModule,
1048
1259
  IonicModule,
@@ -1057,7 +1268,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1057
1268
  InputSelectComponent,
1058
1269
  InputPesquisaComponent,
1059
1270
  ModelTreeviewComponent,
1060
- InputValorComponent
1271
+ InputValorComponent,
1272
+ InputAreaComponent,
1273
+ InputCepComponent
1061
1274
  ],
1062
1275
  imports: [
1063
1276
  CommonModule,
@@ -1072,7 +1285,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1072
1285
  InputSelectComponent,
1073
1286
  InputPesquisaComponent,
1074
1287
  ModelTreeviewComponent,
1075
- InputValorComponent
1288
+ InputValorComponent,
1289
+ InputAreaComponent,
1290
+ InputCepComponent
1076
1291
  ],
1077
1292
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
1078
1293
  }]
@@ -1086,5 +1301,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1086
1301
  * Generated bundle index. Do not edit.
1087
1302
  */
1088
1303
 
1089
- export { AppprojectComponentsComponent, AppprojectComponentsModule, AppprojectComponentsService, InputFormatComponent, InputPesquisaComponent, InputSelectComponent, InputTextComponent, InputValorComponent, LibConfigService, ModelTreeviewComponent };
1304
+ export { AppprojectComponentsComponent, AppprojectComponentsModule, AppprojectComponentsService, InputAreaComponent, InputCepComponent, InputFormatComponent, InputPesquisaComponent, InputSelectComponent, InputTextComponent, InputValorComponent, LibConfigService, ModelTreeviewComponent };
1090
1305
  //# sourceMappingURL=appproject-components.mjs.map