appproject-components 0.0.1 → 0.0.4

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