appproject-components 0.0.3 → 0.0.6

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 {
@@ -199,7 +199,8 @@ class InputFormatComponent extends BaseInputComponent {
199
199
  || (event.keyCode == 8)
200
200
  || (event.keyCode == 9)
201
201
  || (event.keyCode == 39)
202
- || (event.keyCode == 37)) {
202
+ || (event.keyCode == 37)
203
+ || (event.keyCode == 46)) {
203
204
  //console.log(this.formControlName, this.form.get(this.formControlName).value);
204
205
  setTimeout(() => {
205
206
  var _a, _b, _c, _d;
@@ -275,14 +276,14 @@ InputFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
275
276
  provide: NG_VALUE_ACCESSOR,
276
277
  useExisting: InputFormatComponent,
277
278
  multi: true
278
- }], 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" }] });
279
280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputFormatComponent, decorators: [{
280
281
  type: Component,
281
282
  args: [{ selector: 'kb-input-format', providers: [{
282
283
  provide: NG_VALUE_ACCESSOR,
283
284
  useExisting: InputFormatComponent,
284
285
  multi: true
285
- }], 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"] }]
286
287
  }], ctorParameters: function () { return []; }, propDecorators: { formato: [{
287
288
  type: Input
288
289
  }], keyEnter: [{
@@ -339,14 +340,14 @@ InputSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
339
340
  provide: NG_VALUE_ACCESSOR,
340
341
  useExisting: InputSelectComponent,
341
342
  multi: true
342
- }], 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"] }] });
343
344
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputSelectComponent, decorators: [{
344
345
  type: Component,
345
346
  args: [{ selector: 'kb-input-select', providers: [{
346
347
  provide: NG_VALUE_ACCESSOR,
347
348
  useExisting: InputSelectComponent,
348
349
  multi: true
349
- }], 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"] }]
350
351
  }], ctorParameters: function () { return []; }, propDecorators: { change: [{
351
352
  type: Input
352
353
  }], itens: [{
@@ -854,14 +855,14 @@ InputPesquisaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
854
855
  provide: NG_VALUE_ACCESSOR,
855
856
  useExisting: InputPesquisaComponent,
856
857
  multi: true
857
- }], 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:absolute;top:58px;left:20px;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" }] });
858
859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputPesquisaComponent, decorators: [{
859
860
  type: Component,
860
861
  args: [{ selector: 'kb-input-pesquisa', providers: [{
861
862
  provide: NG_VALUE_ACCESSOR,
862
863
  useExisting: InputPesquisaComponent,
863
864
  multi: true
864
- }], 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:absolute;top:58px;left:20px;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"] }]
865
866
  }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i2.ModalController }]; }, propDecorators: { textoPesquisa: [{
866
867
  type: Input
867
868
  }], max: [{
@@ -958,6 +959,9 @@ class InputValorComponent extends BaseInputComponent {
958
959
  return campo;
959
960
  }
960
961
  let valor = parseFloat(campo.replace(',', '').replace('.', '').replace('.', '').replace('.', ''));
962
+ if (isNaN(valor)) {
963
+ return '';
964
+ }
961
965
  let valordiv = parseInt("1" + this.stringOfChar("0", casas));
962
966
  //valor /= 100;
963
967
  console.log(valor, '/', valordiv);
@@ -1007,16 +1011,226 @@ InputValorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
1007
1011
  provide: NG_VALUE_ACCESSOR,
1008
1012
  useExisting: InputValorComponent,
1009
1013
  multi: true
1010
- }], 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;margin-bottom:4%!important}.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" }] });
1011
1015
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputValorComponent, decorators: [{
1012
1016
  type: Component,
1013
1017
  args: [{ selector: 'kb-input-valor', providers: [{
1014
1018
  provide: NG_VALUE_ACCESSOR,
1015
1019
  useExisting: InputValorComponent,
1016
1020
  multi: true
1017
- }], 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;margin-bottom:4%!important}.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"] }]
1018
1022
  }], ctorParameters: function () { return []; } });
1019
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
+
1020
1234
  const LibConfigService = new InjectionToken('LibConfig');
1021
1235
  class AppprojectComponentsModule {
1022
1236
  static forRoot(config) {
@@ -1039,7 +1253,9 @@ AppprojectComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.
1039
1253
  InputSelectComponent,
1040
1254
  InputPesquisaComponent,
1041
1255
  ModelTreeviewComponent,
1042
- InputValorComponent], imports: [CommonModule,
1256
+ InputValorComponent,
1257
+ InputAreaComponent,
1258
+ InputCepComponent], imports: [CommonModule,
1043
1259
  HttpClientModule,
1044
1260
  IonicModule,
1045
1261
  ReactiveFormsModule], exports: [AppprojectComponentsComponent,
@@ -1048,7 +1264,8 @@ AppprojectComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.
1048
1264
  InputSelectComponent,
1049
1265
  InputPesquisaComponent,
1050
1266
  ModelTreeviewComponent,
1051
- InputValorComponent] });
1267
+ InputValorComponent,
1268
+ InputAreaComponent] });
1052
1269
  AppprojectComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, imports: [CommonModule,
1053
1270
  HttpClientModule,
1054
1271
  IonicModule,
@@ -1063,7 +1280,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1063
1280
  InputSelectComponent,
1064
1281
  InputPesquisaComponent,
1065
1282
  ModelTreeviewComponent,
1066
- InputValorComponent
1283
+ InputValorComponent,
1284
+ InputAreaComponent,
1285
+ InputCepComponent
1067
1286
  ],
1068
1287
  imports: [
1069
1288
  CommonModule,
@@ -1078,7 +1297,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1078
1297
  InputSelectComponent,
1079
1298
  InputPesquisaComponent,
1080
1299
  ModelTreeviewComponent,
1081
- InputValorComponent
1300
+ InputValorComponent,
1301
+ InputAreaComponent
1082
1302
  ],
1083
1303
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
1084
1304
  }]
@@ -1092,5 +1312,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
1092
1312
  * Generated bundle index. Do not edit.
1093
1313
  */
1094
1314
 
1095
- export { AppprojectComponentsComponent, AppprojectComponentsModule, AppprojectComponentsService, InputFormatComponent, InputPesquisaComponent, InputSelectComponent, InputTextComponent, InputValorComponent, LibConfigService, ModelTreeviewComponent };
1315
+ export { AppprojectComponentsComponent, AppprojectComponentsModule, AppprojectComponentsService, InputAreaComponent, InputFormatComponent, InputPesquisaComponent, InputSelectComponent, InputTextComponent, InputValorComponent, LibConfigService, ModelTreeviewComponent };
1096
1316
  //# sourceMappingURL=appproject-components.mjs.map