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.
@@ -9,7 +9,7 @@ import { IonicModule } from '@ionic/angular';
9
9
  import * as i1$1 from '@angular/common/http';
10
10
  import { HttpClientModule } from '@angular/common/http';
11
11
  import { __awaiter } from 'tslib';
12
- import { Subject, of } from 'rxjs';
12
+ import { Subject, of, Observable } from 'rxjs';
13
13
  import { debounceTime, switchMap } from 'rxjs/operators';
14
14
 
15
15
  class AppprojectComponentsService {
@@ -155,14 +155,14 @@ InputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
155
155
  provide: NG_VALUE_ACCESSOR,
156
156
  useExisting: InputTextComponent,
157
157
  multi: true
158
- }], 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" }] });
158
+ }], 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" }] });
159
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputTextComponent, decorators: [{
160
160
  type: Component,
161
161
  args: [{ selector: 'kb-input-text', providers: [{
162
162
  provide: NG_VALUE_ACCESSOR,
163
163
  useExisting: InputTextComponent,
164
164
  multi: true
165
- }], 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"] }]
165
+ }], 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"] }]
166
166
  }], ctorParameters: function () { return []; } });
167
167
 
168
168
  class InputFormatComponent extends BaseInputComponent {
@@ -276,14 +276,14 @@ InputFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
276
276
  provide: NG_VALUE_ACCESSOR,
277
277
  useExisting: InputFormatComponent,
278
278
  multi: true
279
- }], 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" }] });
279
+ }], 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" }] });
280
280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputFormatComponent, decorators: [{
281
281
  type: Component,
282
282
  args: [{ selector: 'kb-input-format', providers: [{
283
283
  provide: NG_VALUE_ACCESSOR,
284
284
  useExisting: InputFormatComponent,
285
285
  multi: true
286
- }], 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"] }]
286
+ }], 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"] }]
287
287
  }], ctorParameters: function () { return []; }, propDecorators: { formato: [{
288
288
  type: Input
289
289
  }], keyEnter: [{
@@ -340,14 +340,14 @@ InputSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
340
340
  provide: NG_VALUE_ACCESSOR,
341
341
  useExisting: InputSelectComponent,
342
342
  multi: true
343
- }], 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"] }] });
343
+ }], 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"] }] });
344
344
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputSelectComponent, decorators: [{
345
345
  type: Component,
346
346
  args: [{ selector: 'kb-input-select', providers: [{
347
347
  provide: NG_VALUE_ACCESSOR,
348
348
  useExisting: InputSelectComponent,
349
349
  multi: true
350
- }], 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"] }]
350
+ }], 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"] }]
351
351
  }], ctorParameters: function () { return []; }, propDecorators: { change: [{
352
352
  type: Input
353
353
  }], itens: [{
@@ -855,14 +855,14 @@ InputPesquisaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
855
855
  provide: NG_VALUE_ACCESSOR,
856
856
  useExisting: InputPesquisaComponent,
857
857
  multi: true
858
- }], 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" }] });
858
+ }], 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" }] });
859
859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputPesquisaComponent, decorators: [{
860
860
  type: Component,
861
861
  args: [{ selector: 'kb-input-pesquisa', providers: [{
862
862
  provide: NG_VALUE_ACCESSOR,
863
863
  useExisting: InputPesquisaComponent,
864
864
  multi: true
865
- }], 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"] }]
865
+ }], 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"] }]
866
866
  }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i2.ModalController }]; }, propDecorators: { textoPesquisa: [{
867
867
  type: Input
868
868
  }], max: [{
@@ -959,7 +959,7 @@ class InputValorComponent extends BaseInputComponent {
959
959
  return campo;
960
960
  }
961
961
  let valor = parseFloat(campo.replace(',', '').replace('.', '').replace('.', '').replace('.', ''));
962
- if (valor == NaN) {
962
+ if (isNaN(valor)) {
963
963
  return '';
964
964
  }
965
965
  let valordiv = parseInt("1" + this.stringOfChar("0", casas));
@@ -1011,16 +1011,226 @@ InputValorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
1011
1011
  provide: NG_VALUE_ACCESSOR,
1012
1012
  useExisting: InputValorComponent,
1013
1013
  multi: true
1014
- }], 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" }] });
1014
+ }], 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" }] });
1015
1015
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputValorComponent, decorators: [{
1016
1016
  type: Component,
1017
1017
  args: [{ selector: 'kb-input-valor', providers: [{
1018
1018
  provide: NG_VALUE_ACCESSOR,
1019
1019
  useExisting: InputValorComponent,
1020
1020
  multi: true
1021
- }], 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"] }]
1021
+ }], 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"] }]
1022
1022
  }], ctorParameters: function () { return []; } });
1023
1023
 
1024
+ class InputAreaComponent extends BaseInputComponent {
1025
+ constructor() {
1026
+ super();
1027
+ this.linhas = 5;
1028
+ this.onChange = (data) => { };
1029
+ this.onTouch = () => { };
1030
+ this.disabled = false;
1031
+ this.console = console;
1032
+ }
1033
+ writeValue(value) {
1034
+ //console.log('write value', value);
1035
+ this.onChange(value);
1036
+ this.data = value;
1037
+ }
1038
+ registerOnChange(fn) {
1039
+ this.onChange = fn;
1040
+ }
1041
+ registerOnTouched(fn) {
1042
+ this.onTouch = fn;
1043
+ }
1044
+ setDisabledState(isDisabled) {
1045
+ this.disabled = this.disabled;
1046
+ }
1047
+ ngOnInit() { }
1048
+ onBlur() {
1049
+ var _a;
1050
+ if (this.form) {
1051
+ (_a = this.form.get(this.formControlName)) === null || _a === void 0 ? void 0 : _a.markAsTouched();
1052
+ }
1053
+ }
1054
+ }
1055
+ InputAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1056
+ InputAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputAreaComponent, selector: "kb-input-area", inputs: { linhas: "linhas" }, providers: [{
1057
+ provide: NG_VALUE_ACCESSOR,
1058
+ useExisting: InputAreaComponent,
1059
+ multi: true
1060
+ }], 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" }] });
1061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputAreaComponent, decorators: [{
1062
+ type: Component,
1063
+ args: [{ selector: 'kb-input-area', providers: [{
1064
+ provide: NG_VALUE_ACCESSOR,
1065
+ useExisting: InputAreaComponent,
1066
+ multi: true
1067
+ }], 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"] }]
1068
+ }], ctorParameters: function () { return []; }, propDecorators: { linhas: [{
1069
+ type: Input
1070
+ }] } });
1071
+
1072
+ class InputCepComponent extends BaseInputComponent {
1073
+ constructor() {
1074
+ super();
1075
+ this.formato = '00000-000';
1076
+ this.keyEnter = null;
1077
+ this.getResultados = null;
1078
+ //control value acessor
1079
+ this.data = null;
1080
+ this.onChange = (data) => { };
1081
+ this.onTouch = () => { };
1082
+ this.disabled = false;
1083
+ }
1084
+ writeValue(value) {
1085
+ //console.log('write value', value);
1086
+ this.onChange(value);
1087
+ this.data = value;
1088
+ }
1089
+ registerOnChange(fn) {
1090
+ this.onChange = fn;
1091
+ }
1092
+ registerOnTouched(fn) {
1093
+ this.onTouch = fn;
1094
+ }
1095
+ setDisabledState(isDisabled) {
1096
+ this.disabled = this.disabled;
1097
+ }
1098
+ ngOnInit() {
1099
+ }
1100
+ digitarFormatado(event) {
1101
+ console.log(event);
1102
+ if ((event.keyCode >= 48 && event.keyCode <= 57)
1103
+ || (event.keyCode >= 96 && event.keyCode <= 105)
1104
+ || (event.keyCode == 8)
1105
+ || (event.keyCode == 9)
1106
+ || (event.keyCode == 39)
1107
+ || (event.keyCode == 37)
1108
+ || (event.keyCode == 46)) {
1109
+ //console.log(this.formControlName, this.form.get(this.formControlName).value);
1110
+ setTimeout(() => {
1111
+ var _a, _b, _c, _d;
1112
+ if (this.form) {
1113
+ this.form.patchValue({
1114
+ [this.formControlName]: this.formataCampoValor((_a = this.form.get(this.formControlName)) === null || _a === void 0 ? void 0 : _a.value, (_b = this.formato) !== null && _b !== void 0 ? _b : '', event)
1115
+ });
1116
+ }
1117
+ else {
1118
+ this.data = this.formataCampoValor((_c = this.data) !== null && _c !== void 0 ? _c : '', (_d = this.formato) !== null && _d !== void 0 ? _d : '', event);
1119
+ this.writeValue(this.data);
1120
+ }
1121
+ }, 100);
1122
+ return true;
1123
+ }
1124
+ else {
1125
+ return false;
1126
+ }
1127
+ }
1128
+ onKeyEnter() {
1129
+ if (this.keyEnter != null) {
1130
+ this.keyEnter();
1131
+ }
1132
+ }
1133
+ onBlur() {
1134
+ var _a;
1135
+ if (this.form) {
1136
+ (_a = this.form.get(this.formControlName)) === null || _a === void 0 ? void 0 : _a.markAsTouched();
1137
+ }
1138
+ if (this.blur) {
1139
+ this.blur(this.blurArgs);
1140
+ }
1141
+ }
1142
+ formataCampoValor(valor, Mascara, evento) {
1143
+ console.log(valor);
1144
+ if (!valor)
1145
+ return null;
1146
+ //console.log(evento);
1147
+ //if (!this.keypressInteiro(evento))
1148
+ // return;
1149
+ var boleanoMascara;
1150
+ var Digitato = evento != null ? evento.keyCode : 0;
1151
+ let exp = /\-|\.|\/|\(|\)| /g;
1152
+ let campoSoNumeros = valor.replace(exp, "");
1153
+ var posicaoCampo = 0;
1154
+ var NovoValorCampo = "";
1155
+ var TamanhoMascara = campoSoNumeros.length;
1156
+ ;
1157
+ if (Digitato != 8) { // backspace
1158
+ for (let i = 0; i <= TamanhoMascara; i++) {
1159
+ boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
1160
+ || (Mascara.charAt(i) == "/"));
1161
+ boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
1162
+ || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "));
1163
+ if (boleanoMascara) {
1164
+ NovoValorCampo += Mascara.charAt(i);
1165
+ TamanhoMascara++;
1166
+ }
1167
+ else {
1168
+ NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
1169
+ posicaoCampo++;
1170
+ }
1171
+ }
1172
+ return NovoValorCampo;
1173
+ }
1174
+ else {
1175
+ return valor;
1176
+ }
1177
+ }
1178
+ pesquisarClick() {
1179
+ const cep = this.data;
1180
+ //se não estiver informado o cep, não fazer a pesquisa
1181
+ if (cep == null || cep == "") {
1182
+ return;
1183
+ }
1184
+ this.getEnderecoPeloCep(cep).subscribe({
1185
+ next: (result) => {
1186
+ console.log('result CEP', result);
1187
+ let cidadePesquisa = result.localidade;
1188
+ cidadePesquisa = this.converteCaracteresEspeciais(cidadePesquisa.toUpperCase());
1189
+ if (this.getResultados) {
1190
+ this.getResultados(result);
1191
+ }
1192
+ }, error: (error) => {
1193
+ }
1194
+ });
1195
+ }
1196
+ //substituição de caracteres
1197
+ converteCaracteresEspeciais(nome) {
1198
+ var res = nome.replace(/Ã/g, "A");
1199
+ res = res.replace(/Á/g, "A");
1200
+ res = res.replace(/Ç/g, "C");
1201
+ res = res.replace(/É/g, "E");
1202
+ res = res.replace(/Â/g, "A");
1203
+ res = res.replace(/Ô/g, "O");
1204
+ res = res.replace(/Ó/g, "O");
1205
+ res = res.replace(/Ú/g, "U");
1206
+ res = res.replace(/Í/g, "I");
1207
+ return res;
1208
+ }
1209
+ getEnderecoPeloCep(cep) {
1210
+ return new Observable((x) => {
1211
+ var request = new XMLHttpRequest();
1212
+ request.open('get', `https://viacep.com.br/ws/${cep}/json/`, true);
1213
+ request.send();
1214
+ request.onload = function () {
1215
+ var data = JSON.parse(this.response);
1216
+ x.next(data);
1217
+ };
1218
+ });
1219
+ }
1220
+ }
1221
+ InputCepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputCepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1222
+ 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" }] });
1223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputCepComponent, decorators: [{
1224
+ type: Component,
1225
+ 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>" }]
1226
+ }], ctorParameters: function () { return []; }, propDecorators: { formato: [{
1227
+ type: Input
1228
+ }], keyEnter: [{
1229
+ type: Input
1230
+ }], getResultados: [{
1231
+ type: Input
1232
+ }] } });
1233
+
1024
1234
  const LibConfigService = new InjectionToken('LibConfig');
1025
1235
  class AppprojectComponentsModule {
1026
1236
  static forRoot(config) {
@@ -1043,7 +1253,9 @@ AppprojectComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.
1043
1253
  InputSelectComponent,
1044
1254
  InputPesquisaComponent,
1045
1255
  ModelTreeviewComponent,
1046
- InputValorComponent], imports: [CommonModule,
1256
+ InputValorComponent,
1257
+ InputAreaComponent,
1258
+ InputCepComponent], imports: [CommonModule,
1047
1259
  HttpClientModule,
1048
1260
  IonicModule,
1049
1261
  ReactiveFormsModule], exports: [AppprojectComponentsComponent,
@@ -1052,7 +1264,9 @@ AppprojectComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.
1052
1264
  InputSelectComponent,
1053
1265
  InputPesquisaComponent,
1054
1266
  ModelTreeviewComponent,
1055
- InputValorComponent] });
1267
+ InputValorComponent,
1268
+ InputAreaComponent,
1269
+ InputCepComponent] });
1056
1270
  AppprojectComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, imports: [CommonModule,
1057
1271
  HttpClientModule,
1058
1272
  IonicModule,
@@ -1067,7 +1281,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1067
1281
  InputSelectComponent,
1068
1282
  InputPesquisaComponent,
1069
1283
  ModelTreeviewComponent,
1070
- InputValorComponent
1284
+ InputValorComponent,
1285
+ InputAreaComponent,
1286
+ InputCepComponent
1071
1287
  ],
1072
1288
  imports: [
1073
1289
  CommonModule,
@@ -1082,7 +1298,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1082
1298
  InputSelectComponent,
1083
1299
  InputPesquisaComponent,
1084
1300
  ModelTreeviewComponent,
1085
- InputValorComponent
1301
+ InputValorComponent,
1302
+ InputAreaComponent,
1303
+ InputCepComponent
1086
1304
  ],
1087
1305
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
1088
1306
  }]
@@ -1096,5 +1314,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1096
1314
  * Generated bundle index. Do not edit.
1097
1315
  */
1098
1316
 
1099
- export { AppprojectComponentsComponent, AppprojectComponentsModule, AppprojectComponentsService, InputFormatComponent, InputPesquisaComponent, InputSelectComponent, InputTextComponent, InputValorComponent, LibConfigService, ModelTreeviewComponent };
1317
+ export { AppprojectComponentsComponent, AppprojectComponentsModule, AppprojectComponentsService, InputAreaComponent, InputCepComponent, InputFormatComponent, InputPesquisaComponent, InputSelectComponent, InputTextComponent, InputValorComponent, LibConfigService, ModelTreeviewComponent };
1100
1318
  //# sourceMappingURL=appproject-components.mjs.map