appproject-components 0.0.1 → 0.0.2

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.
@@ -1,11 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, Input, InjectionToken, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
2
+ import { Injectable, Component, Input, ViewChild, InjectionToken, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
+ import * as i3 from '@angular/forms';
3
4
  import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
4
5
  import * as i1 from '@angular/common';
5
6
  import { CommonModule } from '@angular/common';
6
7
  import * as i2 from '@ionic/angular';
7
8
  import { IonicModule } from '@ionic/angular';
9
+ import * as i1$1 from '@angular/common/http';
8
10
  import { HttpClientModule } from '@angular/common/http';
11
+ import { __awaiter } from 'tslib';
12
+ import { Subject, of } from 'rxjs';
13
+ import { debounceTime, switchMap } from 'rxjs/operators';
9
14
 
10
15
  class AppprojectComponentsService {
11
16
  constructor() { }
@@ -160,16 +165,856 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
160
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"] }]
161
166
  }], ctorParameters: function () { return []; } });
162
167
 
163
- class InputFormatComponent {
164
- constructor() { }
165
- ngOnInit() {
168
+ class InputFormatComponent extends BaseInputComponent {
169
+ constructor() {
170
+ super();
171
+ this.formato = null;
172
+ this.keyEnter = null;
173
+ //control value acessor
174
+ this.data = null;
175
+ this.onChange = (data) => { };
176
+ this.onTouch = () => { };
177
+ this.disabled = false;
178
+ this.console = console;
179
+ }
180
+ writeValue(value) {
181
+ //console.log('write value', value);
182
+ this.onChange(value);
183
+ this.data = value;
184
+ }
185
+ registerOnChange(fn) {
186
+ this.onChange = fn;
187
+ }
188
+ registerOnTouched(fn) {
189
+ this.onTouch = fn;
190
+ }
191
+ setDisabledState(isDisabled) {
192
+ this.disabled = this.disabled;
193
+ }
194
+ ngOnInit() { }
195
+ digitarFormatado(event) {
196
+ console.log(event);
197
+ if ((event.keyCode >= 48 && event.keyCode <= 57)
198
+ || (event.keyCode >= 96 && event.keyCode <= 105)
199
+ || (event.keyCode == 8)
200
+ || (event.keyCode == 9)
201
+ || (event.keyCode == 39)
202
+ || (event.keyCode == 37)) {
203
+ //console.log(this.formControlName, this.form.get(this.formControlName).value);
204
+ setTimeout(() => {
205
+ var _a, _b, _c, _d;
206
+ if (this.form) {
207
+ this.form.patchValue({
208
+ [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)
209
+ });
210
+ }
211
+ else {
212
+ this.data = this.formataCampoValor((_c = this.data) !== null && _c !== void 0 ? _c : '', (_d = this.formato) !== null && _d !== void 0 ? _d : '', event);
213
+ this.writeValue(this.data);
214
+ }
215
+ }, 100);
216
+ return true;
217
+ }
218
+ else {
219
+ return false;
220
+ }
221
+ }
222
+ onKeyEnter() {
223
+ if (this.keyEnter != null) {
224
+ this.keyEnter();
225
+ }
226
+ }
227
+ onBlur() {
228
+ var _a;
229
+ if (this.form) {
230
+ (_a = this.form.get(this.formControlName)) === null || _a === void 0 ? void 0 : _a.markAsTouched();
231
+ }
232
+ if (this.blur) {
233
+ this.blur(this.blurArgs);
234
+ }
235
+ }
236
+ formataCampoValor(valor, Mascara, evento) {
237
+ console.log(valor);
238
+ if (!valor)
239
+ return null;
240
+ //console.log(evento);
241
+ //if (!this.keypressInteiro(evento))
242
+ // return;
243
+ var boleanoMascara;
244
+ var Digitato = evento != null ? evento.keyCode : 0;
245
+ let exp = /\-|\.|\/|\(|\)| /g;
246
+ let campoSoNumeros = valor.replace(exp, "");
247
+ var posicaoCampo = 0;
248
+ var NovoValorCampo = "";
249
+ var TamanhoMascara = campoSoNumeros.length;
250
+ ;
251
+ if (Digitato != 8) { // backspace
252
+ for (let i = 0; i <= TamanhoMascara; i++) {
253
+ boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
254
+ || (Mascara.charAt(i) == "/"));
255
+ boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
256
+ || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "));
257
+ if (boleanoMascara) {
258
+ NovoValorCampo += Mascara.charAt(i);
259
+ TamanhoMascara++;
260
+ }
261
+ else {
262
+ NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
263
+ posicaoCampo++;
264
+ }
265
+ }
266
+ return NovoValorCampo;
267
+ }
268
+ else {
269
+ return valor;
270
+ }
166
271
  }
167
272
  }
168
273
  InputFormatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputFormatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
169
- InputFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputFormatComponent, selector: "kb-input-format", ngImport: i0, template: "<p>input-format works!</p>\n", styles: [""] });
274
+ InputFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputFormatComponent, selector: "kb-input-format", inputs: { formato: "formato", keyEnter: "keyEnter" }, providers: [{
275
+ provide: NG_VALUE_ACCESSOR,
276
+ useExisting: InputFormatComponent,
277
+ 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" }] });
170
279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputFormatComponent, decorators: [{
171
280
  type: Component,
172
- args: [{ selector: 'kb-input-format', template: "<p>input-format works!</p>\n" }]
281
+ args: [{ selector: 'kb-input-format', providers: [{
282
+ provide: NG_VALUE_ACCESSOR,
283
+ useExisting: InputFormatComponent,
284
+ 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
+ }], ctorParameters: function () { return []; }, propDecorators: { formato: [{
287
+ type: Input
288
+ }], keyEnter: [{
289
+ type: Input
290
+ }] } });
291
+
292
+ class InputSelectComponent extends BaseInputComponent {
293
+ constructor() {
294
+ super();
295
+ this.change = null;
296
+ this.itens = [];
297
+ this.itemId = "Id";
298
+ this.itemNome = "Nome";
299
+ this.showNovo = false;
300
+ this.itemNull = true;
301
+ this.opcaoDefault = 'Selecionar';
302
+ this.onChange = (data) => { };
303
+ this.onTouch = () => { };
304
+ this.disabled = false;
305
+ this.console = console;
306
+ }
307
+ writeValue(value) {
308
+ //console.log('write value select', value);
309
+ this.onChange(value);
310
+ this.data = value;
311
+ }
312
+ registerOnChange(fn) {
313
+ this.onChange = fn;
314
+ }
315
+ registerOnTouched(fn) {
316
+ this.onTouch = fn;
317
+ }
318
+ setDisabledState(isDisabled) {
319
+ this.disabled = this.disabled;
320
+ }
321
+ ngOnInit() {
322
+ }
323
+ onSelectChange(value) {
324
+ this.writeValue(value);
325
+ if (this.change != null) {
326
+ this.change();
327
+ }
328
+ }
329
+ onBlur() {
330
+ var _a;
331
+ //console.log('input select blur')
332
+ if (this.form) {
333
+ (_a = this.form.get(this.formControlName)) === null || _a === void 0 ? void 0 : _a.markAsTouched();
334
+ }
335
+ }
336
+ }
337
+ InputSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
338
+ InputSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputSelectComponent, selector: "kb-input-select", inputs: { change: "change", itens: "itens", itemId: "itemId", itemNome: "itemNome", showNovo: "showNovo", itemNull: "itemNull", opcaoDefault: "opcaoDefault" }, providers: [{
339
+ provide: NG_VALUE_ACCESSOR,
340
+ useExisting: InputSelectComponent,
341
+ 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
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputSelectComponent, decorators: [{
344
+ type: Component,
345
+ args: [{ selector: 'kb-input-select', providers: [{
346
+ provide: NG_VALUE_ACCESSOR,
347
+ useExisting: InputSelectComponent,
348
+ 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
+ }], ctorParameters: function () { return []; }, propDecorators: { change: [{
351
+ type: Input
352
+ }], itens: [{
353
+ type: Input
354
+ }], itemId: [{
355
+ type: Input
356
+ }], itemNome: [{
357
+ type: Input
358
+ }], showNovo: [{
359
+ type: Input
360
+ }], itemNull: [{
361
+ type: Input
362
+ }], opcaoDefault: [{
363
+ type: Input
364
+ }] } });
365
+
366
+ class ModelTreeviewComponent {
367
+ constructor() { }
368
+ ngOnInit() {
369
+ }
370
+ }
371
+ ModelTreeviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ModelTreeviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
372
+ ModelTreeviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: ModelTreeviewComponent, selector: "kb-model-treeview", ngImport: i0, template: "<p>model-treeview works!</p>\n", styles: [""] });
373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ModelTreeviewComponent, decorators: [{
374
+ type: Component,
375
+ args: [{ selector: 'kb-model-treeview', template: "<p>model-treeview works!</p>\n" }]
376
+ }], ctorParameters: function () { return []; } });
377
+
378
+ class InputPesquisaComponent extends BaseInputComponent {
379
+ constructor(httpClient, modalCtrl) {
380
+ super();
381
+ this.httpClient = httpClient;
382
+ this.modalCtrl = modalCtrl;
383
+ this.podePesquisar = true;
384
+ this.textoPesquisa = '';
385
+ this.selectElementVisivel = false;
386
+ this.listaPesquisa = [];
387
+ this.max = '30';
388
+ this.pesquisaSubject = new Subject();
389
+ this.filterFunction = null;
390
+ this.selectId = 'selectElement';
391
+ this.campoId = 'Id';
392
+ this.campoPaiId = 'PaiId';
393
+ this.campoDisplay = 'Descricao';
394
+ this.tipo = '';
395
+ //@ViewChild('selectElement', { read: ElementRef, static: true }) selectElement;
396
+ this.selectElement = null;
397
+ //parametros para chamada API
398
+ //endpoint para pesquisa por digitação
399
+ this.url = '';
400
+ this.urlItem = '';
401
+ //endpoint para montar a arvore, se estiver vazia será usado o campo 'url'
402
+ this.urlTree = '';
403
+ this.empresa = 0;
404
+ this.loadInit = false;
405
+ this.onChange = (data) => { };
406
+ this.onTouch = () => { };
407
+ this.disabled = false;
408
+ this.console = console;
409
+ this.modelChanged = new Subject();
410
+ this.modelChangeSubscription = this.modelChanged
411
+ .pipe(debounceTime(500))
412
+ .subscribe(data => {
413
+ this.carregaItemIdParaLista(data);
414
+ });
415
+ }
416
+ writeValue(value) {
417
+ //console.log('write value', value);
418
+ this.onChange(value);
419
+ this.data = value;
420
+ if (value == null || value == 0) {
421
+ this.writePesquisa('');
422
+ this.selectedItem = null;
423
+ }
424
+ else {
425
+ if (this.loadInit == true) {
426
+ this.loadInit = false;
427
+ this.modelChanged.next(value);
428
+ //this.carregaItemIdParaLista(value);
429
+ }
430
+ else {
431
+ //console.log(this.selectedItem);
432
+ if (!this.selectedItem || (this.selectedItem && this.selectedItem[this.campoId] != value)) {
433
+ console.log('Id diferente');
434
+ this.modelChanged.next(value);
435
+ //this.carregaItemIdParaLista(value);
436
+ }
437
+ }
438
+ }
439
+ }
440
+ registerOnChange(fn) {
441
+ this.onChange = fn;
442
+ }
443
+ registerOnTouched(fn) {
444
+ this.onTouch = fn;
445
+ }
446
+ setDisabledState(isDisabled) {
447
+ this.disabled = this.disabled;
448
+ }
449
+ onBlur(event) {
450
+ var _a;
451
+ console.log('blur', event);
452
+ console.log(event.detail.relatedTarget);
453
+ if (event.detail.relatedTarget == null || event.detail.relatedTarget.id.indexOf(this.selectId + 'IonItem') == -1) {
454
+ console.log("true", event.detail.relatedTarget.id);
455
+ //pesquisar item na lista
456
+ if (!this.existeNaListaTexto(this.textoPesquisa, true)) {
457
+ this.limparClick();
458
+ }
459
+ this.dropDownPesquisa(0);
460
+ if (this.form) {
461
+ (_a = this.form.get(this.formControlName)) === null || _a === void 0 ? void 0 : _a.markAsTouched();
462
+ }
463
+ }
464
+ }
465
+ ngOnInit() {
466
+ this.pesquisaSubject.pipe(switchMap((url) => {
467
+ this.console.log('subject url:', url);
468
+ if (!this.isEmpty(url))
469
+ return this.httpClient.get(url);
470
+ else
471
+ return of([]);
472
+ }))
473
+ .subscribe({
474
+ next: (result) => {
475
+ //this.listaPesquisa = result;
476
+ this.console.log('subject subscribe result:', result);
477
+ this.listaPesquisa = [];
478
+ if (result && result.length > 0) {
479
+ if (this.filterFunction) {
480
+ result = result.filter(this.filterFunction);
481
+ }
482
+ result.forEach((ent, index) => {
483
+ this.listaPesquisa.push(Object.assign(Object.assign({}, ent), { Index: index, Selected: false }));
484
+ });
485
+ }
486
+ this.podePesquisar = true;
487
+ if (this.listaPesquisa.length > 0) {
488
+ this.dropDownPesquisa(this.listaPesquisa.length);
489
+ }
490
+ },
491
+ error: (error) => {
492
+ this.podePesquisar = true;
493
+ console.log('erro pesquisa', error);
494
+ }
495
+ });
496
+ }
497
+ writePesquisa(value) {
498
+ //console.log('write pesquisa', value);
499
+ this.textoPesquisa = value;
500
+ }
501
+ showPesquisa(e) {
502
+ //console.log('show pesquisa', e.keyCode);
503
+ var self = this;
504
+ if ((e.keyCode >= 48 && e.keyCode <= 57) ||
505
+ (e.keyCode >= 65 && e.keyCode <= 90) ||
506
+ (e.keyCode >= 96 && e.keyCode <= 105) ||
507
+ (e.keyCode == 8)) {
508
+ if (!self.podePesquisar) {
509
+ return;
510
+ }
511
+ let filtro = self.textoPesquisa;
512
+ if (filtro != null && filtro != '' && filtro.length >= 2) {
513
+ self.pesquisarEntidade(filtro);
514
+ }
515
+ else {
516
+ if (e.keyCode == 8 && !filtro) {
517
+ this.limparClick();
518
+ }
519
+ }
520
+ }
521
+ else {
522
+ if (e.keyCode == 40 || e.keyCode == 38) {
523
+ self.dropDownPesquisa(self.listaPesquisa.length);
524
+ if (self.selectElementVisivel == true) {
525
+ //let select = self.selectElement; //document.getElementById(self.TemplateSelect1Id());
526
+ //ion-list
527
+ //selecionado
528
+ //console.log(self.listaPesquisa);
529
+ let inc = e.keyCode == 40 ? 1 : -1;
530
+ let selected = self.listaPesquisa.find(s => s['Selected'] === true);
531
+ let cur = 0;
532
+ if (selected != null) {
533
+ cur = selected['Index'];
534
+ //desmarcar o atual
535
+ selected['Selected'] = false;
536
+ cur = cur + inc;
537
+ }
538
+ else {
539
+ cur = 0;
540
+ }
541
+ if (cur < 0) {
542
+ cur = self.listaPesquisa.length - 1;
543
+ }
544
+ else if (cur >= self.listaPesquisa.length) {
545
+ cur = 0;
546
+ }
547
+ let novoSelected = self.listaPesquisa.find(n => n['Index'] === cur);
548
+ if (novoSelected != null) {
549
+ novoSelected['Selected'] = true;
550
+ self.selectedItem = novoSelected;
551
+ self.textoPesquisa = novoSelected[self.campoDisplay];
552
+ }
553
+ /*
554
+ let select = document.getElementById(this.selectId) as any;
555
+ console.log('select Element', select)
556
+ if (select != null) {
557
+ let inc = e.keyCode == 40 ? 1 : -1;
558
+ let cur = select.selectedIndex;
559
+ if (cur == NaN) cur = -1;
560
+ select.selectedIndex = cur + inc;
561
+ if (select.selectedIndex >= 0 && select.selectedIndex < self.listaPesquisa.length) {
562
+ self.selectedItem = self.listaPesquisa[select.selectedIndex];
563
+ if (self.selectedItem != null) {
564
+ self.textoPesquisa = self.selectedItem[self.campoDisplay];
565
+ }
566
+ }
567
+ }
568
+ */
569
+ }
570
+ }
571
+ else if (e.keyCode == 13) {
572
+ console.log('enter key', e);
573
+ //self.selecionarComboClick(e);
574
+ self.selecionarComboClick(null);
575
+ //return false;
576
+ }
577
+ else if (e.keyCode == 27) {
578
+ //ESC
579
+ self.dropDownPesquisa(0);
580
+ }
581
+ }
582
+ }
583
+ highlight(texto) {
584
+ let index = texto.toLowerCase().indexOf(this.textoPesquisa.toLowerCase());
585
+ //console.log(index);
586
+ if (index >= 0) {
587
+ return texto.substring(0, index) + '<strong>' + texto.substring(index, index + this.textoPesquisa.length) + '</strong>' + texto.substring(index + this.textoPesquisa.length); //texto.replace(this.textoPesquisa, `<strong>${this.textoPesquisa}</strong>`);
588
+ }
589
+ else {
590
+ return texto;
591
+ }
592
+ }
593
+ selecionarComboClick(item) {
594
+ // console.log(item);
595
+ var self = this;
596
+ // console.log('combo click', self);
597
+ /*
598
+ let select = document.getElementById(this.selectId) as any;
599
+ if (select.selectedIndex >= 0) {
600
+ self.selectedItem = self.listaPesquisa[select.selectedIndex];
601
+ }
602
+ console.log('selected', this.selectedItem);
603
+ //self.selectedItem = this.listaPesquisa.find(i => i[this.campoId] == e);
604
+ if (self.selectedItem != null) {
605
+ self.textoPesquisa = self.selectedItem[self.campoDisplay];
606
+ self.writeValue(self.selectedItem[self.campoId]);
607
+ if (e != null) {
608
+ self.selectElementVisivel = false;
609
+ if (self.action != null) {
610
+ self.action(self.selectedItem(), e);
611
+ }
612
+ }
613
+ }
614
+ else {
615
+ self.selectElementVisivel = false;
616
+ }
617
+ */
618
+ // pesquisar selecionado
619
+ // console.log(this.listaPesquisa);
620
+ let selected = this.listaPesquisa.find(s => s['Selected'] === true);
621
+ // if (!selected) {
622
+ // console.log(this.campoId, item);
623
+ // selected = this.listaPesquisa.filter( s => s[this.campoId] == item[this.campoId]);
624
+ // }
625
+ //se o item form passado como parametro (click no ion-item)
626
+ if (item != null) {
627
+ if (selected != null) {
628
+ selected['Selected'] = false;
629
+ }
630
+ item['Selected'] = true;
631
+ selected = item;
632
+ }
633
+ if (selected != null) {
634
+ self.selectedItem = selected;
635
+ self.textoPesquisa = selected[self.campoDisplay];
636
+ self.writeValue(selected[self.campoId]);
637
+ self.selectElementVisivel = false;
638
+ console.log('action', self.change);
639
+ if (self.change != null) {
640
+ self.change(self.selectedItem);
641
+ }
642
+ }
643
+ else {
644
+ self.selectElementVisivel = false;
645
+ }
646
+ // this.listaPesquisa.forEach( pesquisa => {
647
+ // console.log(pesquisa, self.data);
648
+ // } );
649
+ // console.log(this.textoPesquisa);
650
+ }
651
+ selecionarComboChange(e) {
652
+ var self = this;
653
+ console.log('combo change', e);
654
+ self.selectedItem = this.listaPesquisa.find(i => i[this.campoId] == e);
655
+ if (self.selectedItem != null) {
656
+ self.writeValue(e);
657
+ self.textoPesquisa = self.selectedItem[self.campoDisplay];
658
+ if (e != null) {
659
+ self.selectElementVisivel = false;
660
+ if (self.change != null) {
661
+ self.change(self.selectedItem, e);
662
+ }
663
+ }
664
+ }
665
+ else {
666
+ self.selectElementVisivel = false;
667
+ }
668
+ }
669
+ dropDownPesquisa(length) {
670
+ var self = this;
671
+ if (self.listaPesquisa != null && self.listaPesquisa.length > 0) {
672
+ if (length == -1) {
673
+ length = self.listaPesquisa.length;
674
+ }
675
+ self.selectElementVisivel = length == 0 ? false : true;
676
+ //console.log(this.selectElement);
677
+ //this.selectElement.open();
678
+ /*
679
+ //let element = this.selectElement;
680
+ let element = document.getElementById(this.selectId);
681
+ console.log('dropDown', element);
682
+ (element as any).size = length + 1;
683
+ if (length == 0) {
684
+ self.selectElementVisivel = false;
685
+ } else {
686
+ self.selectElementVisivel = true;
687
+ }
688
+ */
689
+ }
690
+ }
691
+ pesquisarEntidade(filtro) {
692
+ let url = this.url.replace('<<FILTRO>>', filtro).replace('<<EMPRESA>>', this.empresa.toString());
693
+ console.log('pesquisarEntidade url', url);
694
+ this.podePesquisar = false;
695
+ this.pesquisaSubject.next(url);
696
+ }
697
+ pesquisarEntidadeOld(filtro) {
698
+ let url = this.url.replace('<<FILTRO>>', filtro).replace('<<EMPRESA>>', this.empresa.toString());
699
+ console.log('pesquisarEntidade url', url);
700
+ this.podePesquisar = false;
701
+ this.httpClient.get(url)
702
+ .subscribe({ next: (result) => {
703
+ //this.listaPesquisa = result;
704
+ if (this.filterFunction) {
705
+ result = result.filter(this.filterFunction);
706
+ }
707
+ this.listaPesquisa = [];
708
+ result.forEach((ent, index) => {
709
+ this.listaPesquisa.push(Object.assign(Object.assign({}, ent), { Index: index, Selected: false }));
710
+ });
711
+ this.podePesquisar = true;
712
+ if (this.listaPesquisa.length > 0) {
713
+ this.dropDownPesquisa(this.listaPesquisa.length);
714
+ }
715
+ }, error: error => {
716
+ console.log('erro pesquisa', error);
717
+ this.podePesquisar = true;
718
+ } });
719
+ }
720
+ existeNaLista(id, setRegistro = false) {
721
+ if (this.listaPesquisa && this.listaPesquisa.length > 0) {
722
+ let existe = this.listaPesquisa.find(l => l[this.campoId] === id);
723
+ if (existe) {
724
+ if (setRegistro) {
725
+ this.selectedItem = existe;
726
+ this.selecionarComboClick(this.selectedItem);
727
+ }
728
+ return true;
729
+ }
730
+ else {
731
+ return false;
732
+ }
733
+ }
734
+ else {
735
+ return false;
736
+ }
737
+ }
738
+ existeNaListaTexto(texto, setRegistro = false) {
739
+ console.log("existe texto:", texto, this.campoDisplay, this.listaPesquisa);
740
+ if (this.listaPesquisa && this.listaPesquisa.length > 0) {
741
+ let existe = this.listaPesquisa.find(l => l[this.campoDisplay].toUpperCase() === texto.toUpperCase());
742
+ if (existe) {
743
+ if (setRegistro) {
744
+ this.selectedItem = existe;
745
+ this.selecionarComboClick(this.selectedItem);
746
+ }
747
+ return true;
748
+ }
749
+ else {
750
+ return false;
751
+ }
752
+ }
753
+ else {
754
+ return false;
755
+ }
756
+ }
757
+ validarItemSelecionado(setarRegistro = false) {
758
+ console.log('validar selecionado');
759
+ //passar pela função de filtro
760
+ let valido = false;
761
+ if (this.selectedItem) {
762
+ if (this.filterFunction) {
763
+ let existe = [Object.assign({}, this.selectedItem)].filter(this.filterFunction);
764
+ if (existe != null && existe.length > 0) {
765
+ valido = true;
766
+ }
767
+ }
768
+ else {
769
+ valido = true;
770
+ }
771
+ if (valido && setarRegistro) {
772
+ this.selecionarComboClick(this.selectedItem);
773
+ }
774
+ return valido;
775
+ }
776
+ else {
777
+ return false;
778
+ }
779
+ }
780
+ carregaItemIdParaLista(id) {
781
+ let url = this.urlItem.replace('<<ID>>', id.toString());
782
+ console.log(this.urlItem);
783
+ console.log('pesquisar ID url', url);
784
+ this.podePesquisar = false;
785
+ this.httpClient.get(url)
786
+ .subscribe({ next: (result) => {
787
+ this.listaPesquisa = [];
788
+ this.listaPesquisa.push(Object.assign(Object.assign({}, result), { Index: 0, Selected: true }));
789
+ this.podePesquisar = true;
790
+ if (this.listaPesquisa.length > 0) {
791
+ this.selectedItem = this.listaPesquisa[0];
792
+ this.selecionarComboClick(this.selectedItem);
793
+ }
794
+ }, error: error => {
795
+ console.log('erro pesquisa', error);
796
+ this.podePesquisar = true;
797
+ } });
798
+ }
799
+ limparClick() {
800
+ this.writeValue(null);
801
+ this.writePesquisa(null);
802
+ this.listaPesquisa = [];
803
+ this.dropDownPesquisa(0);
804
+ //this.podePesquisar = true;
805
+ this.pesquisaSubject.next('');
806
+ if (this.limpar) {
807
+ this.limpar();
808
+ }
809
+ }
810
+ verificarPesquisa() {
811
+ //TODO: verificar se o texto corresponde com um item da lista
812
+ this.selecionarComboClick(null);
813
+ }
814
+ pesquisarClick() {
815
+ return __awaiter(this, void 0, void 0, function* () {
816
+ /*
817
+ if (this.pesquisaAction != null) {
818
+ this.pesquisaAction();
819
+ }
820
+ */
821
+ //pesquisaCategoria
822
+ console.log(this.filterFunction, this.url, this.urlTree);
823
+ const modal = yield this.modalCtrl.create({
824
+ component: ModelTreeviewComponent,
825
+ componentProps: {
826
+ //campoId: this.campoId,
827
+ //campoPai: this.campoPaiId,
828
+ //campoLabel: this.campoDisplay,
829
+ filterFunction: this.filterFunction,
830
+ empresaSelecionadaId: this.empresa,
831
+ tipo: this.tipo,
832
+ //especifico
833
+ //planoContas: this.planoContas,
834
+ url: this.isEmpty(this.urlTree) ? this.url : this.urlTree
835
+ },
836
+ cssClass: 'my-custom-modal-pesquisa'
837
+ });
838
+ modal.onDidDismiss().then(data => {
839
+ let result = data['data'];
840
+ console.log(result);
841
+ if (result != null && result.Id > 0) {
842
+ this.carregaItemIdParaLista(result.Id);
843
+ }
844
+ });
845
+ modal.present();
846
+ });
847
+ }
848
+ isEmpty(valor) {
849
+ return valor == null || valor == undefined || valor == '';
850
+ }
851
+ }
852
+ InputPesquisaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputPesquisaComponent, deps: [{ token: i1$1.HttpClient }, { token: i2.ModalController }], target: i0.ɵɵFactoryTarget.Component });
853
+ InputPesquisaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputPesquisaComponent, selector: "kb-input-pesquisa", inputs: { textoPesquisa: "textoPesquisa", max: "max", filterFunction: "filterFunction", selectId: "selectId", campoId: "campoId", campoPaiId: "campoPaiId", campoDisplay: "campoDisplay", tipo: "tipo", change: "change", pesquisaAction: "pesquisaAction", limpar: "limpar", url: "url", urlItem: "urlItem", urlTree: "urlTree", empresa: "empresa", loadInit: "loadInit" }, providers: [{
854
+ provide: NG_VALUE_ACCESSOR,
855
+ useExisting: InputPesquisaComponent,
856
+ 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
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputPesquisaComponent, decorators: [{
859
+ type: Component,
860
+ args: [{ selector: 'kb-input-pesquisa', providers: [{
861
+ provide: NG_VALUE_ACCESSOR,
862
+ useExisting: InputPesquisaComponent,
863
+ 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
+ }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i2.ModalController }]; }, propDecorators: { textoPesquisa: [{
866
+ type: Input
867
+ }], max: [{
868
+ type: Input
869
+ }], filterFunction: [{
870
+ type: Input
871
+ }], selectId: [{
872
+ type: Input
873
+ }], campoId: [{
874
+ type: Input
875
+ }], campoPaiId: [{
876
+ type: Input
877
+ }], campoDisplay: [{
878
+ type: Input
879
+ }], tipo: [{
880
+ type: Input
881
+ }], selectElement: [{
882
+ type: ViewChild,
883
+ args: ['selectElement', { static: false }]
884
+ }], change: [{
885
+ type: Input
886
+ }], pesquisaAction: [{
887
+ type: Input
888
+ }], limpar: [{
889
+ type: Input
890
+ }], url: [{
891
+ type: Input
892
+ }], urlItem: [{
893
+ type: Input
894
+ }], urlTree: [{
895
+ type: Input
896
+ }], empresa: [{
897
+ type: Input
898
+ }], loadInit: [{
899
+ type: Input
900
+ }] } });
901
+
902
+ class InputValorComponent extends BaseInputComponent {
903
+ constructor() {
904
+ super();
905
+ this.onChange = (data) => { };
906
+ this.onTouch = () => { };
907
+ this.disabled = false;
908
+ this.console = console;
909
+ }
910
+ writeValue(value) {
911
+ //console.log('write value', value);
912
+ this.onChange(value);
913
+ this.data = value;
914
+ }
915
+ registerOnChange(fn) {
916
+ this.onChange = fn;
917
+ }
918
+ registerOnTouched(fn) {
919
+ this.onTouch = fn;
920
+ }
921
+ setDisabledState(isDisabled) {
922
+ this.disabled = this.disabled;
923
+ }
924
+ ngOnInit() { }
925
+ onBlur() {
926
+ var _a;
927
+ if (this.form) {
928
+ (_a = this.form.get(this.formControlName)) === null || _a === void 0 ? void 0 : _a.markAsTouched();
929
+ }
930
+ if (this.blur) {
931
+ this.blur(this.blurArgs);
932
+ }
933
+ }
934
+ digitarValor(event) {
935
+ //this.item.vendaunitario = this.utils.converterValorDecimal(this.item.vendaunitario);
936
+ setTimeout(() => {
937
+ var _a;
938
+ if (this.form) {
939
+ this.form.patchValue({
940
+ [this.formControlName]: this.converterValorDecimalMil((_a = this.form.get(this.formControlName)) === null || _a === void 0 ? void 0 : _a.value)
941
+ });
942
+ }
943
+ else {
944
+ this.data = this.converterValorDecimalMil(this.data);
945
+ this.writeValue(this.data);
946
+ }
947
+ }, 100);
948
+ return true;
949
+ }
950
+ isEmpty(str) {
951
+ return str == null || str == undefined || str == '';
952
+ }
953
+ converterValorDecimalMil(campo, casas = 2) {
954
+ if (!this.isEmpty(campo)) {
955
+ //console.log('converterValorDecimal');
956
+ //console.log('campo:', campo, ' replaced: ', campo.replace(',', '').replace('.', ''));
957
+ if (campo == '-') {
958
+ return campo;
959
+ }
960
+ let valor = parseFloat(campo.replace(',', '').replace('.', '').replace('.', '').replace('.', ''));
961
+ let valordiv = parseInt("1" + this.stringOfChar("0", casas));
962
+ //valor /= 100;
963
+ console.log(valor, '/', valordiv);
964
+ valor /= valordiv;
965
+ console.log('=', valor);
966
+ return this.decimalToStringMil(valor);
967
+ /*
968
+ var str = valor.toString().replace('.', ',');
969
+ var aStr = str.split(',');
970
+ if (aStr.length == 1) {
971
+ //str += ',00';
972
+ str += ',' + this.stringOfChar('0', casas);
973
+ }
974
+ else {
975
+ //str += this.stringOfChar('0', 2 - aStr[1].length);
976
+ str += this.stringOfChar('0', casas - aStr[1].length);
977
+ }
978
+ return str;
979
+ */
980
+ }
981
+ else
982
+ return campo;
983
+ }
984
+ decimalToStringMil(number) {
985
+ if (number != null) {
986
+ if (number == 0 || number == '0') {
987
+ return '0,00';
988
+ }
989
+ //console.log(number);
990
+ let numero = number.toFixed(2).split('.');
991
+ numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
992
+ return numero.join(',').replace('-.', '-');
993
+ }
994
+ else
995
+ return '';
996
+ }
997
+ stringOfChar(str, tam) {
998
+ var res = '';
999
+ for (var i = 0; i < tam; i++) {
1000
+ res += str;
1001
+ }
1002
+ return res;
1003
+ }
1004
+ }
1005
+ InputValorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputValorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1006
+ InputValorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputValorComponent, selector: "kb-input-valor", providers: [{
1007
+ provide: NG_VALUE_ACCESSOR,
1008
+ useExisting: InputValorComponent,
1009
+ 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" }] });
1011
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputValorComponent, decorators: [{
1012
+ type: Component,
1013
+ args: [{ selector: 'kb-input-valor', providers: [{
1014
+ provide: NG_VALUE_ACCESSOR,
1015
+ useExisting: InputValorComponent,
1016
+ 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"] }]
173
1018
  }], ctorParameters: function () { return []; } });
174
1019
 
175
1020
  const LibConfigService = new InjectionToken('LibConfig');
@@ -190,12 +1035,20 @@ class AppprojectComponentsModule {
190
1035
  AppprojectComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
191
1036
  AppprojectComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, declarations: [AppprojectComponentsComponent,
192
1037
  InputTextComponent,
193
- InputFormatComponent], imports: [CommonModule,
1038
+ InputFormatComponent,
1039
+ InputSelectComponent,
1040
+ InputPesquisaComponent,
1041
+ ModelTreeviewComponent,
1042
+ InputValorComponent], imports: [CommonModule,
194
1043
  HttpClientModule,
195
1044
  IonicModule,
196
1045
  ReactiveFormsModule], exports: [AppprojectComponentsComponent,
197
1046
  InputTextComponent,
198
- InputFormatComponent] });
1047
+ InputFormatComponent,
1048
+ InputSelectComponent,
1049
+ InputPesquisaComponent,
1050
+ ModelTreeviewComponent,
1051
+ InputValorComponent] });
199
1052
  AppprojectComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, imports: [CommonModule,
200
1053
  HttpClientModule,
201
1054
  IonicModule,
@@ -206,7 +1059,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
206
1059
  declarations: [
207
1060
  AppprojectComponentsComponent,
208
1061
  InputTextComponent,
209
- InputFormatComponent
1062
+ InputFormatComponent,
1063
+ InputSelectComponent,
1064
+ InputPesquisaComponent,
1065
+ ModelTreeviewComponent,
1066
+ InputValorComponent
210
1067
  ],
211
1068
  imports: [
212
1069
  CommonModule,
@@ -217,7 +1074,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
217
1074
  exports: [
218
1075
  AppprojectComponentsComponent,
219
1076
  InputTextComponent,
220
- InputFormatComponent
1077
+ InputFormatComponent,
1078
+ InputSelectComponent,
1079
+ InputPesquisaComponent,
1080
+ ModelTreeviewComponent,
1081
+ InputValorComponent
221
1082
  ],
222
1083
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
223
1084
  }]
@@ -231,5 +1092,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
231
1092
  * Generated bundle index. Do not edit.
232
1093
  */
233
1094
 
234
- export { AppprojectComponentsComponent, AppprojectComponentsModule, AppprojectComponentsService, InputFormatComponent, InputTextComponent, LibConfigService };
1095
+ export { AppprojectComponentsComponent, AppprojectComponentsModule, AppprojectComponentsService, InputFormatComponent, InputPesquisaComponent, InputSelectComponent, InputTextComponent, InputValorComponent, LibConfigService, ModelTreeviewComponent };
235
1096
  //# sourceMappingURL=appproject-components.mjs.map