appproject-components 1.0.49 → 1.0.51
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.
- package/esm2022/appproject-components.mjs +5 -0
- package/esm2022/lib/appproject-components.component.mjs +22 -0
- package/esm2022/lib/appproject-components.module.mjs +159 -0
- package/esm2022/lib/appproject-components.service.mjs +14 -0
- package/esm2022/lib/baseInputComponent.mjs +69 -0
- package/esm2022/lib/buttons/baseBtnComponent.mjs +63 -0
- package/esm2022/lib/buttons/btn-action/btn-action.component.mjs +55 -0
- package/esm2022/lib/buttons/btn-cancelar/btn-cancelar.component.mjs +25 -0
- package/esm2022/lib/buttons/btn-excluir/btn-excluir.component.mjs +29 -0
- package/esm2022/lib/buttons/btn-novo/btn-novo.component.mjs +33 -0
- package/esm2022/lib/buttons/btn-salvar/btn-salvar.component.mjs +19 -0
- package/esm2022/lib/entity-edit/entity-edit.component.mjs +53 -0
- package/esm2022/lib/grid-view/grid-view.component.mjs +275 -0
- package/esm2022/lib/input-area/input-area.component.mjs +72 -0
- package/esm2022/lib/input-arquivo/input-arquivo.component.mjs +154 -0
- package/esm2022/lib/input-cep/input-cep.component.mjs +180 -0
- package/esm2022/lib/input-checkbox/input-checkbox.component.mjs +51 -0
- package/esm2022/lib/input-format/input-format.component.mjs +138 -0
- package/esm2022/lib/input-pesquisa/input-pesquisa.component.mjs +557 -0
- package/esm2022/lib/input-radio/input-radio.component.mjs +58 -0
- package/esm2022/lib/input-select/input-select.component.mjs +110 -0
- package/esm2022/lib/input-text/input-text.component.mjs +88 -0
- package/esm2022/lib/input-valor/input-valor.component.mjs +161 -0
- package/esm2022/lib/lib-config.mjs +2 -0
- package/esm2022/lib/model-treeview/model-treeview.component.mjs +126 -0
- package/esm2022/lib/tree-view/tree-view.component.mjs +104 -0
- package/esm2022/lib/tree-view-nivel/tree-view-nivel.component.mjs +50 -0
- package/esm2022/public-api.mjs +30 -0
- package/fesm2022/appproject-components.mjs +2531 -0
- package/fesm2022/appproject-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/appproject-components.component.d.ts +8 -0
- package/lib/appproject-components.module.d.ts +36 -0
- package/lib/appproject-components.service.d.ts +6 -0
- package/lib/baseInputComponent.d.ts +28 -0
- package/lib/buttons/baseBtnComponent.d.ts +19 -0
- package/lib/buttons/btn-action/btn-action.component.d.ts +21 -0
- package/lib/buttons/btn-cancelar/btn-cancelar.component.d.ts +10 -0
- package/lib/buttons/btn-excluir/btn-excluir.component.d.ts +12 -0
- package/lib/buttons/btn-novo/btn-novo.component.d.ts +13 -0
- package/lib/buttons/btn-salvar/btn-salvar.component.d.ts +9 -0
- package/lib/entity-edit/entity-edit.component.d.ts +22 -0
- package/lib/grid-view/grid-view.component.d.ts +52 -0
- package/lib/input-area/input-area.component.d.ts +24 -0
- package/lib/input-arquivo/input-arquivo.component.d.ts +43 -0
- package/lib/input-cep/input-cep.component.d.ts +29 -0
- package/lib/input-checkbox/input-checkbox.component.d.ts +21 -0
- package/lib/input-format/input-format.component.d.ts +27 -0
- package/lib/input-pesquisa/input-pesquisa.component.d.ts +69 -0
- package/lib/input-radio/input-radio.component.d.ts +23 -0
- package/lib/input-select/input-select.component.d.ts +32 -0
- package/lib/input-text/input-text.component.d.ts +33 -0
- package/lib/input-valor/input-valor.component.d.ts +29 -0
- package/{src/lib/lib-config.ts → lib/lib-config.d.ts} +3 -4
- package/lib/model-treeview/model-treeview.component.d.ts +39 -0
- package/lib/tree-view/tree-view.component.d.ts +23 -0
- package/lib/tree-view-nivel/tree-view-nivel.component.d.ts +17 -0
- package/package.json +26 -15
- package/{src/public-api.ts → public-api.d.ts} +24 -30
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -7
- package/src/lib/appproject-components.component.spec.ts +0 -23
- package/src/lib/appproject-components.component.ts +0 -20
- package/src/lib/appproject-components.module.ts +0 -106
- package/src/lib/appproject-components.service.spec.ts +0 -16
- package/src/lib/appproject-components.service.ts +0 -9
- package/src/lib/baseComponent.scss +0 -162
- package/src/lib/baseInputComponent.ts +0 -35
- package/src/lib/buttons/baseBtnComponent.ts +0 -38
- package/src/lib/buttons/btn-action/btn-action.component.html +0 -11
- package/src/lib/buttons/btn-action/btn-action.component.scss +0 -7
- package/src/lib/buttons/btn-action/btn-action.component.spec.ts +0 -24
- package/src/lib/buttons/btn-action/btn-action.component.ts +0 -31
- package/src/lib/buttons/btn-cancelar/btn-cancelar.component.html +0 -14
- package/src/lib/buttons/btn-cancelar/btn-cancelar.component.scss +0 -5
- package/src/lib/buttons/btn-cancelar/btn-cancelar.component.spec.ts +0 -24
- package/src/lib/buttons/btn-cancelar/btn-cancelar.component.ts +0 -19
- package/src/lib/buttons/btn-excluir/btn-excluir.component.html +0 -6
- package/src/lib/buttons/btn-excluir/btn-excluir.component.scss +0 -5
- package/src/lib/buttons/btn-excluir/btn-excluir.component.spec.ts +0 -24
- package/src/lib/buttons/btn-excluir/btn-excluir.component.ts +0 -18
- package/src/lib/buttons/btn-novo/btn-novo.component.html +0 -14
- package/src/lib/buttons/btn-novo/btn-novo.component.scss +0 -8
- package/src/lib/buttons/btn-novo/btn-novo.component.spec.ts +0 -24
- package/src/lib/buttons/btn-novo/btn-novo.component.ts +0 -20
- package/src/lib/buttons/btn-salvar/btn-salvar.component.html +0 -8
- package/src/lib/buttons/btn-salvar/btn-salvar.component.scss +0 -5
- package/src/lib/buttons/btn-salvar/btn-salvar.component.spec.ts +0 -24
- package/src/lib/buttons/btn-salvar/btn-salvar.component.ts +0 -16
- package/src/lib/entity-edit/entity-edit.component.html +0 -143
- package/src/lib/entity-edit/entity-edit.component.scss +0 -4
- package/src/lib/entity-edit/entity-edit.component.spec.ts +0 -23
- package/src/lib/entity-edit/entity-edit.component.ts +0 -43
- package/src/lib/grid-view/grid-view.component.html +0 -116
- package/src/lib/grid-view/grid-view.component.scss +0 -47
- package/src/lib/grid-view/grid-view.component.spec.ts +0 -23
- package/src/lib/grid-view/grid-view.component.ts +0 -292
- package/src/lib/input-area/input-area.component.html +0 -30
- package/src/lib/input-area/input-area.component.scss +0 -68
- package/src/lib/input-area/input-area.component.spec.ts +0 -23
- package/src/lib/input-area/input-area.component.ts +0 -69
- package/src/lib/input-arquivo/input-arquivo.component.html +0 -11
- package/src/lib/input-arquivo/input-arquivo.component.scss +0 -0
- package/src/lib/input-arquivo/input-arquivo.component.spec.ts +0 -23
- package/src/lib/input-arquivo/input-arquivo.component.ts +0 -140
- package/src/lib/input-cep/input-cep.component.html +0 -38
- package/src/lib/input-cep/input-cep.component.scss +0 -0
- package/src/lib/input-cep/input-cep.component.spec.ts +0 -23
- package/src/lib/input-cep/input-cep.component.ts +0 -186
- package/src/lib/input-checkbox/input-checkbox.component.html +0 -12
- package/src/lib/input-checkbox/input-checkbox.component.scss +0 -11
- package/src/lib/input-checkbox/input-checkbox.component.spec.ts +0 -23
- package/src/lib/input-checkbox/input-checkbox.component.ts +0 -48
- package/src/lib/input-format/input-format.component.html +0 -32
- package/src/lib/input-format/input-format.component.scss +0 -47
- package/src/lib/input-format/input-format.component.spec.ts +0 -23
- package/src/lib/input-format/input-format.component.ts +0 -139
- package/src/lib/input-pesquisa/input-pesquisa.component.html +0 -77
- package/src/lib/input-pesquisa/input-pesquisa.component.scss +0 -127
- package/src/lib/input-pesquisa/input-pesquisa.component.spec.ts +0 -23
- package/src/lib/input-pesquisa/input-pesquisa.component.ts +0 -558
- package/src/lib/input-radio/input-radio.component.html +0 -21
- package/src/lib/input-radio/input-radio.component.scss +0 -3
- package/src/lib/input-radio/input-radio.component.spec.ts +0 -23
- package/src/lib/input-radio/input-radio.component.ts +0 -49
- package/src/lib/input-select/input-select.component.html +0 -29
- package/src/lib/input-select/input-select.component.scss +0 -62
- package/src/lib/input-select/input-select.component.spec.ts +0 -23
- package/src/lib/input-select/input-select.component.ts +0 -96
- package/src/lib/input-text/input-text.component.html +0 -48
- package/src/lib/input-text/input-text.component.scss +0 -63
- package/src/lib/input-text/input-text.component.spec.ts +0 -23
- package/src/lib/input-text/input-text.component.ts +0 -78
- package/src/lib/input-valor/input-valor.component.html +0 -32
- package/src/lib/input-valor/input-valor.component.scss +0 -47
- package/src/lib/input-valor/input-valor.component.spec.ts +0 -23
- package/src/lib/input-valor/input-valor.component.ts +0 -164
- package/src/lib/model-treeview/model-treeview.component.html +0 -20
- package/src/lib/model-treeview/model-treeview.component.scss +0 -0
- package/src/lib/model-treeview/model-treeview.component.spec.ts +0 -23
- package/src/lib/model-treeview/model-treeview.component.ts +0 -152
- package/src/lib/tree-view/tree-view.component.html +0 -96
- package/src/lib/tree-view/tree-view.component.scss +0 -50
- package/src/lib/tree-view/tree-view.component.spec.ts +0 -23
- package/src/lib/tree-view/tree-view.component.ts +0 -92
- package/src/lib/tree-view-nivel/tree-view-nivel.component.html +0 -17
- package/src/lib/tree-view-nivel/tree-view-nivel.component.scss +0 -8
- package/src/lib/tree-view-nivel/tree-view-nivel.component.spec.ts +0 -23
- package/src/lib/tree-view-nivel/tree-view-nivel.component.ts +0 -43
- package/src/test.ts +0 -15
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appproject-components.mjs","sources":["../../../projects/appproject-components/src/lib/appproject-components.service.ts","../../../projects/appproject-components/src/lib/appproject-components.component.ts","../../../projects/appproject-components/src/lib/baseInputComponent.ts","../../../projects/appproject-components/src/lib/input-text/input-text.component.ts","../../../projects/appproject-components/src/lib/input-text/input-text.component.html","../../../projects/appproject-components/src/lib/input-format/input-format.component.ts","../../../projects/appproject-components/src/lib/input-format/input-format.component.html","../../../projects/appproject-components/src/lib/input-select/input-select.component.ts","../../../projects/appproject-components/src/lib/input-select/input-select.component.html","../../../projects/appproject-components/src/lib/tree-view-nivel/tree-view-nivel.component.ts","../../../projects/appproject-components/src/lib/tree-view-nivel/tree-view-nivel.component.html","../../../projects/appproject-components/src/lib/tree-view/tree-view.component.ts","../../../projects/appproject-components/src/lib/tree-view/tree-view.component.html","../../../projects/appproject-components/src/lib/model-treeview/model-treeview.component.ts","../../../projects/appproject-components/src/lib/model-treeview/model-treeview.component.html","../../../projects/appproject-components/src/lib/input-pesquisa/input-pesquisa.component.ts","../../../projects/appproject-components/src/lib/input-pesquisa/input-pesquisa.component.html","../../../projects/appproject-components/src/lib/input-valor/input-valor.component.ts","../../../projects/appproject-components/src/lib/input-valor/input-valor.component.html","../../../projects/appproject-components/src/lib/input-area/input-area.component.ts","../../../projects/appproject-components/src/lib/input-area/input-area.component.html","../../../projects/appproject-components/src/lib/input-cep/input-cep.component.ts","../../../projects/appproject-components/src/lib/input-cep/input-cep.component.html","../../../projects/appproject-components/src/lib/input-arquivo/input-arquivo.component.ts","../../../projects/appproject-components/src/lib/input-arquivo/input-arquivo.component.html","../../../projects/appproject-components/src/lib/buttons/baseBtnComponent.ts","../../../projects/appproject-components/src/lib/buttons/btn-action/btn-action.component.ts","../../../projects/appproject-components/src/lib/buttons/btn-action/btn-action.component.html","../../../projects/appproject-components/src/lib/buttons/btn-cancelar/btn-cancelar.component.ts","../../../projects/appproject-components/src/lib/buttons/btn-cancelar/btn-cancelar.component.html","../../../projects/appproject-components/src/lib/buttons/btn-excluir/btn-excluir.component.ts","../../../projects/appproject-components/src/lib/buttons/btn-excluir/btn-excluir.component.html","../../../projects/appproject-components/src/lib/buttons/btn-novo/btn-novo.component.ts","../../../projects/appproject-components/src/lib/buttons/btn-novo/btn-novo.component.html","../../../projects/appproject-components/src/lib/buttons/btn-salvar/btn-salvar.component.ts","../../../projects/appproject-components/src/lib/buttons/btn-salvar/btn-salvar.component.html","../../../projects/appproject-components/src/lib/input-checkbox/input-checkbox.component.ts","../../../projects/appproject-components/src/lib/input-checkbox/input-checkbox.component.html","../../../projects/appproject-components/src/lib/input-radio/input-radio.component.ts","../../../projects/appproject-components/src/lib/input-radio/input-radio.component.html","../../../projects/appproject-components/src/lib/entity-edit/entity-edit.component.ts","../../../projects/appproject-components/src/lib/entity-edit/entity-edit.component.html","../../../projects/appproject-components/src/lib/grid-view/grid-view.component.ts","../../../projects/appproject-components/src/lib/grid-view/grid-view.component.html","../../../projects/appproject-components/src/lib/appproject-components.module.ts","../../../projects/appproject-components/src/public-api.ts","../../../projects/appproject-components/src/appproject-components.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppprojectComponentsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'kb-appproject-components',\r\n template: `\r\n <p>\r\n appproject-components works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class AppprojectComponentsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class BaseInputComponent implements OnInit {\r\n @Input() label!: string;\r\n @Input() labelPosition: string = 'stacked';\r\n @Input() nome!: string;\r\n @Input() placeholder: string = '';\r\n @Input() form!: FormGroup;\r\n @Input() campo!: string;\r\n @Input('formControlName') formControlName!: string; \r\n @Input() max: string = '10';\r\n @Input() validation_messages!: any[];\r\n @Input() type: string = \"text\";\r\n @Input() readonly: boolean = false;\r\n @Input() leitura: boolean = false;\r\n @Input() itemClass: string = \"padding\";\r\n @Output() blur = new EventEmitter();\r\n @Input() botaoLimpar: boolean = false;\r\n @Input() labelColor: string = 'dark';\r\n @Input() inputBackgroungColor: string = 'auto';\r\n @Input() focusField: boolean = false; \r\n @Input() blurArgs!: any[];\r\n\r\n constructor() {\r\n\r\n }\r\n ngOnInit(): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\n\r\n@Component({\r\n selector: 'kb-input-text',\r\n templateUrl: './input-text.component.html',\r\n styleUrls: ['./input-text.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputTextComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputTextComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\r\n @Input() iconInput?: string;\r\n @Input() inputSpanAfter: string = null;\r\n @ViewChild('inputText', { read: ElementRef, static: true}) inputTextEdit;\r\n @Input() campoFoco: string;\r\n showSeePassword!: boolean;\r\n @Input() showCustomAction: boolean = false;\r\n @Input() customActionIcon: string = \"search-outline\";\r\n @Output() customActionClick = new EventEmitter();\r\n //control value acessor\r\n public data!: string | undefined;\r\n private onChange: Function = (data: string) => {};\r\n private onTouch: Function = () => {};\r\n private disabled: boolean = false;\r\n public console = console;\r\n\r\n writeValue(value?: any): void {\r\n //console.log('write value', value);\r\n this.onChange(value);\r\n this.data = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n constructor() { \r\n super();\r\n }\r\n\r\n override ngOnInit(): void {\r\n }\r\n\r\n onBlur() {\r\n console.log('control name', this.formControlName);\r\n if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\r\n }\r\n\r\n limparClick() {\r\n this.writeValue(undefined);\r\n }\r\n\r\n isReadonly() {\r\n return this.leitura;\r\n }\r\n changeTypeOfInput() {\r\n this.type = \r\n this.type == 'password' ?\r\n 'text' : 'password';\r\n }\r\n setFocus() {\r\n this.inputTextEdit.nativeElement.setFocus();\r\n }\r\n\r\n customClick() {\r\n this.customActionClick.emit();\r\n }\r\n}\r\n","<!--\r\n<div [formGroup]=\"form\">\r\n [style.opacity]=\"readonly ? '0.8' : '1'\"\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\" \r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }} </ion-label>\r\n <!-- formControlName=\"{{ campo }}\" -->\r\n <ion-input #inputText\r\n type=\"{{type}}\" \r\n [placeholder]=\"placeholder\" \r\n maxlength=\"{{ max }}\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n (input)=\"writeValue(inputText.value)\" \r\n autocomplete=\"new-password\"\r\n [style.--background]=\"inputBackgroungColor\"\r\n [disabled]=\"readonly\"\r\n [clearInput]=\"botaoLimpar\">\r\n <ion-icon *ngIf=\"iconInput\" name=\"{{ iconInput }}\"></ion-icon>\r\n </ion-input>\r\n \r\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"showSeePassword\" style=\"margin-top: 27px; margin-inline-start: 4px !important;\" fill=\"clear\" color=\"dark\" (click)=\"changeTypeOfInput()\">\r\n <!-- (click)=\"limparClick()\" -->\r\n <ion-icon [name]=\"type == 'password' ? 'eye-outline' : 'eye-off-outline' \"></ion-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" slot=\"end\" *ngIf=\"showCustomAction\" style=\"margin-top: var(--input-text-custom-btn-margin-top, 27px); margin-inline-start: 4px !important;\" fill=\"clear\" color=\"dark\" (click)=\"customClick()\">\r\n <!-- (click)=\"limparClick()\" -->\r\n <ion-icon slot=\"icon-only\" [name]=\"customActionIcon\"></ion-icon>\r\n </ion-button>\r\n\r\n <span *ngIf=\"inputSpanAfter\" slot=\"end\" class=\"inputSpanAfter-item\"> {{ inputSpanAfter }}</span>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n • {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>","import { Component, ElementRef, EventEmitter, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\n\r\n@Component({\r\n selector: 'kb-input-format',\r\n templateUrl: './input-format.component.html',\r\n styleUrls: ['./input-format.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputFormatComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputFormatComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() formato: string | null = null;\r\n @Input() keyEnter = new EventEmitter();\r\n @ViewChild('inputFormat', { read: ElementRef, static: true}) inputFormatEdit;\r\n \r\n //control value acessor\r\n public data: string | any = null;\r\n private onChange: Function = (data: string) => {};\r\n private onTouch: Function = () => {};\r\n private disabled: boolean = false;\r\n public console = console;\r\n\r\n writeValue(value: string | any): void {\r\n //console.log('write value', value);\r\n this.onChange(value);\r\n this.data = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n\r\n constructor() { \r\n super();\r\n }\r\n\r\n override ngOnInit() { }\r\n\r\n digitarFormatado(event: any) {\r\n //console.log(event);\r\n const index = event.target.selectionStart >= 1 ? (event.target.selectionStart - 1) : 0;\r\n const keyAt = event.target.value.charCodeAt(index);\r\n if ((event.keyCode >= 48 && event.keyCode <= 57)\r\n || (keyAt >= 48 && keyAt <= 57)\r\n || (event.keyCode >= 96 && event.keyCode <= 105)\r\n || (event.keyCode == 8)\r\n || (event.keyCode == 9)\r\n || (event.keyCode == 39)\r\n || (event.keyCode == 37) \r\n || (event.keyCode == 46)) {\r\n\r\n //console.log(this.formControlName, this.form.get(this.formControlName).value);\r\n\r\n setTimeout(() => {\r\n if (this.form) {\r\n this.form.patchValue({\r\n [this.formControlName]: this.formataCampoValor(this.form.get(this.formControlName)?.value, this.formato ?? '', event)\r\n });\r\n } else {\r\n this.data = this.formataCampoValor(this.data ?? '', this.formato ?? '', event);\r\n this.writeValue(this.data);\r\n }\r\n }, 100);\r\n\r\n return true;\r\n }\r\n else {\r\n return false;\r\n } \r\n }\r\n\r\n onKeyEnter() {\r\n if (this.keyEnter != null) {\r\n this.keyEnter.emit();\r\n }\r\n }\r\n\r\n onBlur() {\r\n if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\r\n if (this.blur) {\r\n this.blur.emit(this.blurArgs);\r\n }\r\n }\r\n\r\n setFocus() {\r\n this.inputFormatEdit.nativeElement.setFocus();\r\n }\r\n\r\n formataCampoValor(valor: string, Mascara: string, evento: any) {\r\n console.log(valor);\r\n if (!valor)\r\n return null;\r\n //console.log(evento);\r\n\r\n //if (!this.keypressInteiro(evento))\r\n // return;\r\n\r\n var boleanoMascara;\r\n\r\n var Digitato = evento != null ? evento.keyCode : 0;\r\n let exp = /\\-|\\.|\\/|\\(|\\)| /g\r\n let campoSoNumeros = valor.replace(exp, \"\");\r\n\r\n var posicaoCampo = 0;\r\n var NovoValorCampo = \"\";\r\n var TamanhoMascara = campoSoNumeros.length;;\r\n\r\n if (Digitato != 8) { // backspace \r\n for (let i = 0; i <= TamanhoMascara; i++) {\r\n boleanoMascara = ((Mascara.charAt(i) == \"-\") || (Mascara.charAt(i) == \".\")\r\n || (Mascara.charAt(i) == \"/\"))\r\n boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == \"(\")\r\n || (Mascara.charAt(i) == \")\") || (Mascara.charAt(i) == \" \"))\r\n if (boleanoMascara) {\r\n NovoValorCampo += Mascara.charAt(i);\r\n TamanhoMascara++;\r\n } else {\r\n NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);\r\n posicaoCampo++;\r\n }\r\n }\r\n return NovoValorCampo;\r\n } else {\r\n return valor;\r\n }\r\n }\r\n}\r\n","<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<!--comando --inner-padding-end: utilizado pra remover padding desnecessários-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\" [class]=\"itemClass\"\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\r\n <!-- formControlName={{formControlName}} -->\r\n <ion-input #inputFormat\r\n type=\"tel\" \r\n [placeholder]=\"placeholder\"\r\n maxlength=\"{{ max }}\" \r\n (keydown)=\"digitarFormatado($event)\" \r\n (keyup.enter)=\"onKeyEnter()\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n (input)=\"writeValue(inputFormat.value)\"\r\n [disabled]=\"readonly\"></ion-input>\r\n \r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n • {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\n\r\n@Component({\r\n selector: 'kb-input-select',\r\n templateUrl: './input-select.component.html',\r\n styleUrls: ['./input-select.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputSelectComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputSelectComponent extends BaseInputComponent implements OnInit, ControlValueAccessor { \r\n @Output() selectChange = new EventEmitter();\r\n @Output() selectChangeEntity = new EventEmitter();\r\n @Input() itens: any[] = [];\r\n @Input() itemId: string = \"Id\";\r\n @Input() itemNome: string = \"Nome\";\r\n @Input() showNovo: boolean = false;\r\n @Input() itemNull: boolean = true;\r\n @Input() opcaoDefault: string = 'Selecionar';\r\n\r\n //para 'injeção' de estilo no foco\r\n @ViewChild(\"itemSelect\", {read: ElementRef}) itemSelect: any;\r\n\r\n //control value acessor\r\n public data: string | any;\r\n private onChange: Function = (data: string) => {};\r\n private onTouch: Function = () => {};\r\n private disabled: boolean = false;\r\n public console = console;\r\n\r\n writeValue(value: string | any): void {\r\n //console.log('write value select', value);\r\n this.onChange(value);\r\n this.data = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n\r\n constructor(private renderer: Renderer2) { \r\n super();\r\n }\r\n\r\n override ngOnInit() {\r\n if (this.readonly === true) {\r\n //console.log(\"disabled\");\r\n setTimeout(() => {\r\n //this.renderer.addClass(document.getElementById(\"item-select\"), \"item-has-focus\");\r\n this.renderer.addClass(this.itemSelect.nativeElement, \"item-interactive-disabled\");\r\n //console.log('select focused', document.getElementById(\"item-select\"));\r\n }, 100);\r\n }\r\n }\r\n\r\n onSelectChange(value: any) {\r\n this.writeValue(value == '' ? null : value); \r\n if (this.selectChange != null) {\r\n //console.log('emit', value);\r\n this.selectChange.emit(value);\r\n }\r\n if (this.selectChangeEntity != null) {\r\n const existe = this.itens.find(i => i[this.itemId] == value);\r\n this.selectChangeEntity.emit(existe);\r\n }\r\n }\r\n\r\n onBlur() {\r\n //console.log('input select blur')\r\n setTimeout(() => {\r\n this.renderer.removeClass(this.itemSelect.nativeElement, \"item-has-focus\");\r\n }, 200);\r\n\r\n if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\r\n }\r\n\r\n onEnter() {\r\n //adicionar classe ao ion-item\r\n setTimeout(() => {\r\n this.renderer.addClass(this.itemSelect.nativeElement, \"item-has-focus\");\r\n //console.log('select focused', document.getElementById(\"item-select\"));\r\n }, 200); \r\n }\r\n\r\n}\r\n","<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\" #itemSelect\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n • {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'kb-tree-view-nivel', \r\n templateUrl: './tree-view-nivel.component.html',\r\n styleUrl: './tree-view-nivel.component.scss'\r\n})\r\nexport class TreeViewNivelComponent implements OnInit {\r\n @Output() nivelClick = new EventEmitter();\r\n @Input() node: any;\r\n @Input() nivel: number;\r\n @Input() currentSearch: string; \r\n\r\n identacao: string = '';\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n for (let i=0; i<this.nivel;i++) {\r\n this.identacao += '<span> </span>';\r\n }\r\n //console.log('IDENT', this.identacao)\r\n }\r\n\r\n nodeClick() {\r\n if (this.nivelClick) {\r\n this.nivelClick.emit(this.node);\r\n }\r\n }\r\n\r\n highlight(texto: string): any { \r\n if (!this.currentSearch)\r\n return texto;\r\n let index = texto.toLowerCase().indexOf(this.currentSearch.toLowerCase());\r\n //console.log(index);\r\n if (index >= 0) {\r\n return this.sanitizer.bypassSecurityTrustHtml(texto.substring(0, index) + '<strong style=\"background-color: yellow !important;\">' + texto.substring(index, index + this.currentSearch.length) + '</strong>' + texto.substring(index + this.currentSearch.length)); //texto.replace(this.textoPesquisa, `<strong>${this.textoPesquisa}</strong>`);\r\n } else {\r\n return texto;\r\n }\r\n }\r\n}\r\n","<span [innerHtml]=\"identacao\" class=\"node-link\"></span>\r\n<!-- mostrar a seta se tiver filhos ou se for raiz (nivel = 0)-->\r\n<span class=\"node-link\" *ngIf=\"!node.Expandido && (node.Filhos.length > 0 || nivel == 0)\" (click)=\"node.Expandido = !node.Expandido\"\r\n class=\"boxSeta\">\r\n <ion-icon name=\"chevron-forward-outline\"></ion-icon>\r\n</span>\r\n<span class=\"node-link\" *ngIf=\"node.Expandido\" (click)=\"node.Expandido = !node.Expandido\" class=\"boxSeta\">\r\n <ion-icon name=\"chevron-down-outline\"></ion-icon>\r\n</span>\r\n<!--\r\n<span *ngIf=\"!node.Expandido\"> </span>\r\n-->\r\n\r\n<!-- \r\n<span [class]=\"{ 'node-link' : node.Clicable === true, 'node-disabled': node.Clicable === false }\" (click)=\"nodeClick()\" title=\"{{ node.Label }}\"> {{ node.Label }}</span>\r\n-->\r\n<span [class]=\"{ 'node-link' : node.Clicable === true, 'node-disabled': node.Clicable === false }\" (click)=\"nodeClick()\" title=\"{{ node.Label }}\" [innerHTML]=\"highlight(node.Label)\"></span>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Tree } from 'appproject-lib';\r\n\r\n@Component({\r\n selector: 'kb-tree-view',\r\n templateUrl: './tree-view.component.html',\r\n styleUrl: './tree-view.component.scss'\r\n})\r\nexport class TreeViewComponent implements OnInit{\r\n @Input() itens: any[] = [];\r\n @Input() campoId: string;\r\n @Input() campoPai: string;\r\n @Input() campoLabel: string;\r\n @Input() cadastro: string;\r\n //sera o nome da chamada put, ex: [endpoint: CentroCustoPai]/id/pai\r\n @Input() endpoint: string;\r\n @Input() caixaClass: string = 'caixa';\r\n @Output() beforeUpdate = new EventEmitter(); \r\n @Input() currentSearch: string;\r\n @Output() selecionarRegistro = new EventEmitter();\r\n\r\n arvore: Tree[] = [];\r\n\r\n ngOnInit(): void {\r\n //throw new Error('Method not implemented.');\r\n }\r\n\r\n montaArvore(pai: number, arvore: Tree[]): number {\r\n if (arvore && arvore.length > 0) {\r\n //procurar os filhos de cada no\r\n arvore.forEach(f => {\r\n //console.log('no atual:', f, );\r\n let filhos = this.itens.filter(i => i[this.campoPai] == f.Id);\r\n //console.log('filhos atual:', filhos);\r\n f.Filhos = [];\r\n filhos.forEach(fi => {\r\n f.Filhos.push({ Id: fi[this.campoId], Pai: f.Id, Label: fi[this.campoLabel], Filhos: [], Expandido: false, Clicable: (fi['ClicableTree'] == null || fi['ClicableTree'] === true) });\r\n });\r\n return this.montaArvore(0, f.Filhos);\r\n });\r\n return 0;\r\n } else {\r\n //console.log('sem filhos');\r\n return 0;\r\n }\r\n }\r\n\r\n arvoreClick(before: boolean = true) {\r\n if (this.beforeUpdate && before) {\r\n this.beforeUpdate.emit();\r\n return;\r\n }\r\n this.arvore = [];\r\n //console.log('tree itens', this.itens);\r\n if (this.itens && this.itens.length > 0) {\r\n //montar arvore pais\r\n this.itens.forEach(it => {\r\n if (it[this.campoPai] == null) {\r\n //é pai\r\n this.arvore.push({ Id: it[this.campoId], Pai: null, Label: it[this.campoLabel], Filhos: [], Expandido: false, Clicable: (it['ClicableTree'] == null || it['ClicableTree'] === true) });\r\n\r\n }\r\n })\r\n this.montaArvore(0, this.arvore);\r\n\r\n console.log('arvore', this.arvore);\r\n }\r\n }\r\n\r\n expandir(arvore: Tree[] = null): number {\r\n if (arvore == null) {\r\n arvore = this.arvore;\r\n }\r\n if (arvore && arvore.length > 0) {\r\n //procurar os filhos de cada no\r\n arvore.forEach(f => {\r\n //expandir\r\n f.Expandido = true;\r\n return this.expandir(f.Filhos);\r\n });\r\n return 0;\r\n } else {\r\n //console.log('sem filhos');\r\n return 0;\r\n }\r\n }\r\n\r\n carregarRegistro(node: Tree) {\r\n console.log('carrega registro', node);\r\n this.selecionarRegistro.next({ Cadastro: this.cadastro, Id: node.Id });\r\n }\r\n}\r\n","<div style=\"position: relative; height: auto; padding-left: 2%; background-color: white;\">\r\n \r\n <div *ngIf=\"arvore\" [class]=\"caixaClass\" style=\"padding-left: 6px; font-size: 12px;\">\r\n <!-- raiz -->\r\n <div *ngFor=\"let raiz of arvore\" class=\"coluna\">\r\n <kb-tree-view-nivel [nivel]=\"0\" [node]=\"raiz\" [currentSearch]=\"currentSearch\" (nivelClick)=\"raiz.Clicable === true ? carregarRegistro(raiz) : null\">\r\n </kb-tree-view-nivel> \r\n \r\n <div *ngIf=\"raiz.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel1 of raiz.Filhos\" draggable=\"true\">\r\n <kb-tree-view-nivel [nivel]=\"1\" [node]=\"nivel1\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel1.Clicable === true ? carregarRegistro(nivel1): null\">\r\n </kb-tree-view-nivel> \r\n \r\n <div *ngIf=\"nivel1 && nivel1.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel2 of nivel1.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"2\" [node]=\"nivel2\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel2.Clicable === true ? carregarRegistro(nivel2): null\">\r\n </kb-tree-view-nivel> \r\n \r\n <div *ngIf=\"nivel2 && nivel2.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel3 of nivel2.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"3\" [node]=\"nivel3\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel3.Clicable === true ? carregarRegistro(nivel3): null\">\r\n </kb-tree-view-nivel>\r\n \r\n <div *ngIf=\"nivel3 && nivel3.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel4 of nivel3.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"4\" [node]=\"nivel4\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel4.Clicable === true ? carregarRegistro(nivel4): null\">\r\n </kb-tree-view-nivel>\r\n \r\n <div *ngIf=\"nivel4 && nivel4.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel5 of nivel4.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"5\" [node]=\"nivel5\" [currentSearch]=\"currentSearch\"\r\n (nivelClick)=\"nivel5.Clicable === true ? carregarRegistro(nivel5): null\"></kb-tree-view-nivel>\r\n \r\n <div *ngIf=\"nivel5 && nivel5.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel6 of nivel5.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"6\" [node]=\"nivel6\" [currentSearch]=\"currentSearch\"\r\n (nivelClick)=\"nivel6.Clicable === true ? carregarRegistro(nivel6): null\"></kb-tree-view-nivel>\r\n \r\n <div *ngIf=\"nivel6 && nivel6.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel7 of nivel6.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"7\" [node]=\"nivel7\" [currentSearch]=\"currentSearch\"\r\n (nivelClick)=\"nivel7.Clicable === true ? carregarRegistro(nivel7): null\"></kb-tree-view-nivel>\r\n \r\n <div *ngIf=\"nivel7 && nivel7.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel8 of nivel7.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"8\" [node]=\"nivel8\"\r\n (nivelClick)=\"nivel8.Clicable === true ? carregarRegistro(nivel8): null\"></kb-tree-view-nivel>\r\n \r\n <div *ngIf=\"nivel8 && nivel8.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel9 of nivel8.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"9\" [node]=\"nivel9\" [currentSearch]=\"currentSearch\"\r\n (nivelClick)=\"nivel9.Clicable === true ? carregarRegistro(nivel9): null\"></kb-tree-view-nivel>\r\n \r\n <div *ngIf=\"nivel9 && nivel9.Expandido\" class=\"filho\">\r\n <div *ngFor=\"let nivel10 of nivel9.Filhos\">\r\n <kb-tree-view-nivel [nivel]=\"10\" [node]=\"nivel10\" [currentSearch]=\"currentSearch\"\r\n (nivelClick)=\"nivel10.Clicable === true ? carregarRegistro(nivel10): null\"></kb-tree-view-nivel>\r\n \r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n \r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n \r\n \r\n </div>\r\n \r\n </div>\r\n \r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>","import { Component, Inject, Input, OnInit, Predicate, ViewChild } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { TreeViewComponent } from '../tree-view/tree-view.component';\r\nimport { LoadingController, ModalController } from '@ionic/angular';\r\nimport { LibConfig } from '../lib-config';\r\nimport { HttpClient } from '@angular/common/http';\r\n@Component({\r\n selector: 'kb-model-treeview',\r\n templateUrl: './model-treeview.component.html',\r\n styleUrls: ['./model-treeview.component.scss']\r\n})\r\nexport class ModelTreeviewComponent implements OnInit {\r\n titulo: string = \"Selecionar\";\r\n campoId: string;\r\n campoPai: string;\r\n campoLabel: string;\r\n @Input() textoPesquisa: string = \"\";\r\n empresaSelecionadaId: number;\r\n empresaContabilidadeId: number;\r\n listaArvore: any[];\r\n tipo: string;\r\n //url da API para pesquisar os itens\r\n url: string;\r\n subscriptionClick: Subscription;\r\n subscribeId: string;\r\n //função para filtrar registros que podem ser clicados\r\n filterFunction: Predicate<any>;\r\n //especificos\r\n planoContas: number;\r\n maximizar: boolean = false;\r\n @ViewChild(\"treeViewComp\") treeView: TreeViewComponent;\r\n\r\n BASE_API = this.config.apiUrl;\r\n constructor(@Inject('LibConfigService') private config: LibConfig,\r\n public modalCtrl: ModalController,\r\n private httpClient: HttpClient,\r\n private loadingCtrl: LoadingController) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ionViewDidEnter() {\r\n this.atualizaArvoreEntidade(this.tipo);\r\n }\r\n\r\n async atualizaArvoreEntidade(tipo: string) {\r\n let subscriptionC: Subscription;\r\n this.treeView.cadastro = this.subscribeId;\r\n let loading = await this.showLoading(\"Pesquisando...\", true);\r\n loading.onDidDismiss().then(() => {\r\n subscriptionC?.unsubscribe();\r\n });\r\n\r\n this.url = this.url.startsWith('http') ? this.url : `${this.BASE_API}/${this.url}`;\r\n\r\n var url = this.url.replace('<<EMPRESA>>', this.empresaSelecionadaId.toString());\r\n var url = this.url.replace('<<FILTRO>>', '');\r\n // if (this.textoPesquisa) {\r\n // url += `?filtro=${this.textoPesquisa}`;\r\n // }\r\n\r\n subscriptionC = this.httpClient.get(url).subscribe({\r\n next: (result: any[]) => {\r\n\r\n\r\n /*\r\n empresaContato.forEach((ec) => {\r\n ec.LabelTree = ec.Nome;\r\n ec.EmpresaContatoPaiId = null; //campo ficticio para montar arvore\r\n ec.ClicableTree = true;\r\n });\r\n\r\n this.treeView.campoId = \"EmpresaContatoId\";\r\n this.treeView.campoPai = \"EmpresaContatoPaiId\";\r\n this.treeView.campoLabel = \"LabelTree\";\r\n this.treeView.itens = empresaContato;\r\n this.treeView.arvoreClick(false);\r\n */\r\n\r\n\r\n if (!this.campoPai) {\r\n this.campoPai = `${this.campoId}Pai`;\r\n }\r\n\r\n\r\n result.forEach((cc) => {\r\n cc.LabelTree = cc[this.campoLabel];\r\n if (!cc[this.campoPai]) {\r\n cc[this.campoPai] = null;\r\n }\r\n\r\n if (this.filterFunction != null) {\r\n const clicable = [{ ...cc }].find(this.filterFunction);\r\n if (clicable != null && cc.ClicableTree == null) {\r\n cc.ClicableTree = true;\r\n } else {\r\n cc.ClicableTree = false;\r\n }\r\n } else {\r\n cc.ClicableTree = true;\r\n }\r\n });\r\n\r\n console.log('tree result', result);\r\n\r\n this.treeView.campoId = this.campoId;\r\n this.treeView.campoPai = this.campoPai;\r\n this.treeView.campoLabel = this.campoLabel;\r\n this.treeView.itens = result;\r\n this.treeView.arvoreClick(false);\r\n\r\n loading.dismiss();\r\n },\r\n error: (error) => {\r\n loading.dismiss();\r\n console.log(\"Erro ao carregar os registros.<br>Tente mais tarde.\");\r\n }\r\n });\r\n\r\n }\r\n\r\n clickRegistro(evento) {\r\n if (evento.Id > 0) {\r\n this.modalCtrl.dismiss({ Id: evento.Id });\r\n }\r\n }\r\n\r\n expandir() {\r\n this.treeView.expandir(); \r\n }\r\n\r\n //utils\r\n async showLoading(msg: string, cancelable: boolean = false): Promise<HTMLIonLoadingElement> {\r\n const loading = await this.loadingCtrl.create({\r\n message: msg,\r\n backdropDismiss: cancelable\r\n //duration: 2000\r\n });\r\n /*\r\n loading.onDidDismiss().then(() => {\r\n console.log('loading dissmissed', request);\r\n if (request.subscription) {\r\n request.subscription.unsubscribe();\r\n }\r\n });\r\n */\r\n await loading.present();\r\n return loading;\r\n\r\n }\r\n \r\n}\r\n","<ion-header>\r\n <ion-toolbar color=\"secondary\">\r\n <ion-title>{{ titulo }}</ion-title>\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"atualizaArvoreEntidade(tipo)\">\r\n <ion-icon slot=\"icon-only\" name=\"refresh\"></ion-icon>\r\n </ion-button>\r\n <ion-button (click)=\"modalCtrl.dismiss()\">Fechar</ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <ion-content>\r\n <ion-item>\r\n <ion-button style=\"box-shadow: #4c8dff 0px 2px 2px 0.05px;\" fill=\"outline\" (click)=\"expandir()\">\r\n <ion-icon name=\"expand-outline\"></ion-icon>\r\n </ion-button> \r\n </ion-item>\r\n <kb-tree-view #treeViewComp [campoId]=\"campoId\" [campoPai]=\"campoPai\" [campoLabel]=\"'LabelTree'\" (selecionarRegistro)=\"clickRegistro($event)\"></kb-tree-view>\r\n </ion-content>","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Inject, Input, OnInit, Output, Predicate, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { IonSelect, ModalController } from '@ionic/angular';\r\nimport { Subject, Subscription, of } from 'rxjs';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\nimport { debounceTime, switchMap } from 'rxjs/operators'\r\nimport { ModelTreeviewComponent } from '../model-treeview/model-treeview.component';\r\nimport { LibConfig } from '../lib-config';\r\n//import { LibConfig, LibConfigService } from '../appproject-components.module';\r\n\r\n@Component({\r\n selector: 'kb-input-pesquisa',\r\n templateUrl: './input-pesquisa.component.html',\r\n styleUrls: ['./input-pesquisa.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputPesquisaComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputPesquisaComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\r\n\r\n podePesquisar: boolean = true;\r\n @Input() textoPesquisa: string = '';\r\n selectElementVisivel: boolean = false;\r\n listaPesquisa: any[] = [];\r\n selectedItem: any;\r\n @Input() override max: string = '30';\r\n private pesquisaSubject: Subject<string> = new Subject();\r\n\r\n @Input() filterFunction: Predicate<any> | null = null;\r\n @Input() selectId: string = 'selectElement';\r\n @Input() campoId: string = 'Id';\r\n @Input() campoPaiId: string = 'PaiId';\r\n @Input() campoDisplay: string = 'Descricao';\r\n @Input() tipo: string = '';\r\n //@ViewChild('selectElement', { read: ElementRef, static: true }) selectElement;\r\n @ViewChild('selectElement', { static: false }) selectElement: IonSelect | null = null;\r\n\r\n @Output() pesquisaChange = new EventEmitter();\r\n @Input() pesquisaAction?: Function;\r\n @Input() limpar?: Function;\r\n //parametros para chamada API\r\n //endpoint para pesquisa por digitação\r\n @Input() url: string = '';\r\n @Input() urlItem: string = '';\r\n //endpoint para montar a arvore, se estiver vazia será usado o campo 'url'\r\n @Input() urlTree: string = '';\r\n @Input() empresa: number = 0;\r\n @Input() loadInit: boolean = false;\r\n @Input() treeTitulo: string;\r\n\r\n //planoContas: number;\r\n\r\n //control value acessor\r\n public data: number | any;\r\n private onChange: Function = (data: number) => { };\r\n private onTouch: Function = () => { };\r\n private disabled: boolean = false;\r\n public console = console;\r\n\r\n modelChanged: Subject<any> = new Subject<any>();\r\n modelChangeSubscription?: Subscription;\r\n\r\n writeValue(value: number | any): void {\r\n //console.log('write value', value);\r\n this.onChange(value);\r\n this.data = value;\r\n if (value == null || value == 0) {\r\n this.writePesquisa('');\r\n this.selectedItem = null;\r\n } else {\r\n if (this.loadInit == true) {\r\n this.loadInit = false;\r\n this.modelChanged.next(value);\r\n //this.carregaItemIdParaLista(value);\r\n } else {\r\n //console.log(this.selectedItem);\r\n if (!this.selectedItem || (this.selectedItem && this.selectedItem[this.campoId] != value)) {\r\n console.log('Id diferente');\r\n this.modelChanged.next(value);\r\n //this.carregaItemIdParaLista(value);\r\n }\r\n }\r\n }\r\n\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n\r\n BASE_API = this.config.apiUrl;\r\n\r\n constructor(@Inject('LibConfigService') private config: LibConfig,\r\n private httpClient: HttpClient,\r\n private modalCtrl: ModalController) {\r\n super();\r\n\r\n this.modelChangeSubscription = this.modelChanged\r\n .pipe(debounceTime(500)\r\n )\r\n .subscribe(data => {\r\n this.carregaItemIdParaLista(data);\r\n });\r\n }\r\n\r\n onBlur(event: any) {\r\n console.log('blur', event);\r\n //console.log(event.detail.relatedTarget);\r\n if (event.detail.relatedTarget == null || event.detail.relatedTarget.id.indexOf(this.selectId + 'IonItem') == -1) {\r\n //console.log(\"true\", event.detail.relatedTarget.id);\r\n //pesquisar item na lista\r\n if (!this.existeNaListaTexto(this.textoPesquisa, true)) {\r\n this.limparClick();\r\n }\r\n\r\n this.dropDownPesquisa(0);\r\n if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n override ngOnInit() {\r\n //tratar urls\r\n this.url = this.url.startsWith('http') ? this.url : `${this.BASE_API}/${this.url}`;\r\n this.urlItem = this.urlItem.startsWith('http') ? this.urlItem : `${this.BASE_API}/${this.urlItem}`;\r\n\r\n this.pesquisaSubject.pipe(switchMap((url) => {\r\n //this.console.log('subject url:', url); \r\n if (!this.isEmpty(url)) {\r\n return this.httpClient.get(url);\r\n //return of(url);\r\n }\r\n else\r\n return of([]);\r\n }))\r\n .subscribe({\r\n next: (result: any) => {\r\n //this.listaPesquisa = result;\r\n this.console.log('subject subscribe result:', result);\r\n this.listaPesquisa = [];\r\n\r\n if (result && result.length > 0) {\r\n if (this.filterFunction) {\r\n result = result.filter(this.filterFunction);\r\n }\r\n\r\n result.forEach((ent: any, index: any) => {\r\n this.listaPesquisa.push({ ...ent, Index: index, Selected: false });\r\n });\r\n }\r\n\r\n this.podePesquisar = true;\r\n if (this.listaPesquisa.length > 0) {\r\n this.dropDownPesquisa(this.listaPesquisa.length);\r\n }\r\n }\r\n , error: (error) => {\r\n this.podePesquisar = true;\r\n console.log('erro pesquisa', error);\r\n }\r\n });\r\n }\r\n\r\n writePesquisa(value: string | any): void {\r\n //console.log('write pesquisa', value);\r\n this.textoPesquisa = value;\r\n }\r\n\r\n showPesquisa(e: any): void {\r\n //console.log('show pesquisa', e.keyCode);\r\n var self = this;\r\n const index = e.target.selectionStart >= 1 ? (e.target.selectionStart - 1) : 0;\r\n //console.log(index, 'valor ', event.target.value, 'char ', event.target.value.charCodeAt(index));\r\n const keyAt = e.target.value.charCodeAt(index);\r\n /*\r\n if ((e.keyCode >= 48 && e.keyCode <= 57) ||\r\n (keyAt >= 48 && keyAt <= 57) ||\r\n (e.keyCode >= 65 && e.keyCode <= 90) ||\r\n (e.keyCode >= 96 && e.keyCode <= 105) ||\r\n (e.keyCode == 8)) {\r\n */\r\n if (e.keyCode != 40 && e.keyCode != 38) {\r\n if (!self.podePesquisar) {\r\n return;\r\n }\r\n let filtro = self.textoPesquisa;\r\n if (filtro != null && filtro != '' && filtro.length >= 2) {\r\n self.pesquisarEntidade(filtro);\r\n\r\n }\r\n else {\r\n if (e.keyCode == 8 && !filtro) {\r\n this.limparClick();\r\n }\r\n }\r\n }\r\n\r\n else {\r\n if (e.keyCode == 40 || e.keyCode == 38) {\r\n self.dropDownPesquisa(self.listaPesquisa.length);\r\n if (self.selectElementVisivel == true) {\r\n //let select = self.selectElement; //document.getElementById(self.TemplateSelect1Id());\r\n\r\n //ion-list\r\n //selecionado\r\n //console.log(self.listaPesquisa);\r\n let inc = e.keyCode == 40 ? 1 : -1;\r\n let selected = self.listaPesquisa.find(s => s['Selected'] === true);\r\n let cur = 0;\r\n if (selected != null) {\r\n cur = selected['Index'];\r\n //desmarcar o atual\r\n selected['Selected'] = false;\r\n cur = cur + inc;\r\n } else {\r\n cur = 0;\r\n }\r\n\r\n if (cur < 0) {\r\n cur = self.listaPesquisa.length - 1;\r\n } else if (cur >= self.listaPesquisa.length) {\r\n cur = 0;\r\n }\r\n\r\n let novoSelected = self.listaPesquisa.find(n => n['Index'] === cur);\r\n if (novoSelected != null) {\r\n novoSelected['Selected'] = true;\r\n self.selectedItem = novoSelected;\r\n self.textoPesquisa = novoSelected[self.campoDisplay];\r\n }\r\n /*\r\n let select = document.getElementById(this.selectId) as any;\r\n console.log('select Element', select)\r\n if (select != null) {\r\n let inc = e.keyCode == 40 ? 1 : -1;\r\n let cur = select.selectedIndex;\r\n if (cur == NaN) cur = -1;\r\n select.selectedIndex = cur + inc;\r\n if (select.selectedIndex >= 0 && select.selectedIndex < self.listaPesquisa.length) {\r\n self.selectedItem = self.listaPesquisa[select.selectedIndex];\r\n if (self.selectedItem != null) {\r\n self.textoPesquisa = self.selectedItem[self.campoDisplay];\r\n }\r\n }\r\n }\r\n */\r\n }\r\n\r\n } else\r\n if (e.keyCode == 13) {\r\n console.log('enter key', e)\r\n //self.selecionarComboClick(e);\r\n self.selecionarComboClick(null);\r\n //return false;\r\n } else if (e.keyCode == 27) {\r\n //ESC\r\n self.dropDownPesquisa(0);\r\n }\r\n }\r\n\r\n }\r\n\r\n highlight(texto: string): string {\r\n let index = texto.toLowerCase().indexOf(this.textoPesquisa.toLowerCase());\r\n //console.log(index);\r\n if (index >= 0) {\r\n 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>`);\r\n } else {\r\n return texto;\r\n }\r\n }\r\n\r\n selecionarComboClick(item: any) {\r\n // console.log(item);\r\n var self = this;\r\n // console.log('combo click', self);\r\n\r\n /*\r\n let select = document.getElementById(this.selectId) as any;\r\n if (select.selectedIndex >= 0) {\r\n self.selectedItem = self.listaPesquisa[select.selectedIndex];\r\n }\r\n console.log('selected', this.selectedItem);\r\n //self.selectedItem = this.listaPesquisa.find(i => i[this.campoId] == e);\r\n if (self.selectedItem != null) {\r\n self.textoPesquisa = self.selectedItem[self.campoDisplay];\r\n self.writeValue(self.selectedItem[self.campoId]);\r\n if (e != null) {\r\n self.selectElementVisivel = false;\r\n if (self.action != null) {\r\n self.action(self.selectedItem(), e);\r\n }\r\n }\r\n }\r\n else {\r\n self.selectElementVisivel = false;\r\n }\r\n */\r\n // pesquisar selecionado\r\n // console.log(this.listaPesquisa);\r\n let selected = this.listaPesquisa.find(s => s['Selected'] === true);\r\n\r\n // if (!selected) {\r\n // console.log(this.campoId, item);\r\n // selected = this.listaPesquisa.filter( s => s[this.campoId] == item[this.campoId]);\r\n // }\r\n\r\n //se o item form passado como parametro (click no ion-item)\r\n if (item != null) {\r\n if (selected != null) {\r\n selected['Selected'] = false;\r\n }\r\n item['Selected'] = true;\r\n selected = item;\r\n }\r\n if (selected != null) {\r\n self.selectedItem = selected;\r\n self.textoPesquisa = selected[self.campoDisplay];\r\n self.writeValue(selected[self.campoId]);\r\n self.selectElementVisivel = false;\r\n //console.log('action', self.change);\r\n if (self.pesquisaChange != null) {\r\n self.pesquisaChange.emit(self.selectedItem);\r\n }\r\n } else {\r\n self.selectElementVisivel = false;\r\n }\r\n // this.listaPesquisa.forEach( pesquisa => {\r\n // console.log(pesquisa, self.data);\r\n // } );\r\n // console.log(this.textoPesquisa);\r\n }\r\n\r\n selecionarComboChange(e: any) {\r\n var self = this;\r\n console.log('combo change', e);\r\n self.selectedItem = this.listaPesquisa.find(i => i[this.campoId] == e);\r\n if (self.selectedItem != null) {\r\n self.writeValue(e);\r\n self.textoPesquisa = self.selectedItem[self.campoDisplay];\r\n if (e != null) {\r\n self.selectElementVisivel = false;\r\n if (self.pesquisaChange != null) {\r\n self.pesquisaChange.emit(self.selectedItem);\r\n }\r\n }\r\n }\r\n else {\r\n self.selectElementVisivel = false;\r\n }\r\n }\r\n\r\n dropDownPesquisa(length: number) {\r\n var self = this;\r\n if (self.listaPesquisa != null && self.listaPesquisa.length > 0) {\r\n if (length == -1) {\r\n length = self.listaPesquisa.length;\r\n }\r\n self.selectElementVisivel = length == 0 ? false : true;\r\n\r\n //console.log(this.selectElement);\r\n //this.selectElement.open();\r\n\r\n /*\r\n //let element = this.selectElement;\r\n let element = document.getElementById(this.selectId);\r\n console.log('dropDown', element);\r\n (element as any).size = length + 1;\r\n if (length == 0) {\r\n self.selectElementVisivel = false;\r\n } else {\r\n self.selectElementVisivel = true;\r\n }\r\n */\r\n }\r\n }\r\n\r\n pesquisarEntidade(filtro: string) {\r\n let url = this.url.replace('<<FILTRO>>', filtro).replace('<<EMPRESA>>', this.empresa.toString());\r\n console.log('pesquisarEntidade url', url);\r\n this.podePesquisar = false;\r\n this.pesquisaSubject.next(url);\r\n }\r\n\r\n pesquisarEntidadeOld(filtro: string) {\r\n let url = this.url.replace('<<FILTRO>>', filtro).replace('<<EMPRESA>>', this.empresa.toString());\r\n console.log('pesquisarEntidade url', url);\r\n this.podePesquisar = false;\r\n this.httpClient.get<any>(url)\r\n .subscribe({ next: (result: any) => {\r\n //this.listaPesquisa = result;\r\n if (this.filterFunction) {\r\n result = result.filter(this.filterFunction);\r\n }\r\n this.listaPesquisa = [];\r\n result.forEach((ent: any, index: number) => {\r\n this.listaPesquisa.push({ ...ent, Index: index, Selected: false });\r\n });\r\n\r\n this.podePesquisar = true;\r\n if (this.listaPesquisa.length > 0) {\r\n this.dropDownPesquisa(this.listaPesquisa.length);\r\n }\r\n }, error: error => {\r\n console.log('erro pesquisa', error);\r\n this.podePesquisar = true;\r\n }});\r\n }\r\n\r\n existeNaLista(id: number, setRegistro: boolean = false): boolean {\r\n if (this.listaPesquisa && this.listaPesquisa.length > 0) {\r\n let existe = this.listaPesquisa.find(l => l[this.campoId] === id);\r\n if (existe) {\r\n if (setRegistro) {\r\n this.selectedItem = existe;\r\n this.selecionarComboClick(this.selectedItem);\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n existeNaListaTexto(texto: string, setRegistro: boolean = false): boolean {\r\n console.log(\"existe texto:\", texto, this.campoDisplay, this.listaPesquisa);\r\n if (this.listaPesquisa && this.listaPesquisa.length > 0) {\r\n let existe = this.listaPesquisa.find(l => l[this.campoDisplay].toUpperCase() === texto.toUpperCase());\r\n if (existe) {\r\n if (setRegistro) {\r\n this.selectedItem = existe;\r\n this.selecionarComboClick(this.selectedItem);\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n validarItemSelecionado(setarRegistro: boolean = false): boolean {\r\n console.log('validar selecionado');\r\n //passar pela função de filtro\r\n let valido = false;\r\n if (this.selectedItem) {\r\n if (this.filterFunction) {\r\n let existe = [{ ...this.selectedItem }].filter(this.filterFunction);\r\n if (existe != null && existe.length > 0) {\r\n valido = true;\r\n }\r\n } else {\r\n valido = true;\r\n }\r\n if (valido && setarRegistro) {\r\n this.selecionarComboClick(this.selectedItem);\r\n }\r\n\r\n return valido;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n carregaItemIdParaLista(id: number) {\r\n let url = this.urlItem.replace('<<ID>>', id.toString());\r\n console.log(this.urlItem);\r\n console.log('pesquisar ID url', url);\r\n this.podePesquisar = false;\r\n this.httpClient.get<any>(url)\r\n .subscribe({ next: (result: any) => {\r\n this.listaPesquisa = [];\r\n this.listaPesquisa.push({ ...result, Index: 0, Selected: true });\r\n this.podePesquisar = true;\r\n if (this.listaPesquisa.length > 0) {\r\n this.selectedItem = this.listaPesquisa[0];\r\n this.selecionarComboClick(this.selectedItem);\r\n }\r\n }, error: error => {\r\n console.log('erro pesquisa', error);\r\n this.podePesquisar = true;\r\n }});\r\n }\r\n\r\n limparClick() {\r\n this.writeValue(null);\r\n this.writePesquisa(null);\r\n this.listaPesquisa = [];\r\n this.dropDownPesquisa(0);\r\n //this.podePesquisar = true;\r\n this.pesquisaSubject.next('');\r\n if (this.limpar) {\r\n this.limpar();\r\n }\r\n }\r\n\r\n verificarPesquisa() {\r\n //TODO: verificar se o texto corresponde com um item da lista\r\n this.selecionarComboClick(null);\r\n }\r\n\r\n async pesquisarClick() {\r\n /*\r\n if (this.pesquisaAction != null) {\r\n this.pesquisaAction();\r\n }\r\n */\r\n //pesquisaCategoria\r\n console.log(this.filterFunction, this.url, this.urlTree);\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: ModelTreeviewComponent,\r\n componentProps: {\r\n //campoId: this.campoId,\r\n //campoPai: this.campoPaiId,\r\n //campoLabel: this.campoDisplay,\r\n textoPesquisa: this.textoPesquisa,\r\n filterFunction: this.filterFunction,\r\n empresaSelecionadaId: this.empresa,\r\n tipo: this.tipo,\r\n //especifico\r\n //planoContas: this.planoContas,\r\n url: this.isEmpty(this.urlTree) ? this.url : this.urlTree,\r\n titulo: this.treeTitulo,\r\n campoLabel: this.campoDisplay,\r\n campoId: this.campoId,\r\n campoPai: this.campoPaiId\r\n },\r\n cssClass: 'my-custom-modal-pesquisa'\r\n });\r\n\r\n modal.onDidDismiss().then(data => {\r\n let result = data['data'];\r\n console.log(result);\r\n if (result != null && result.Id > 0) {\r\n this.carregaItemIdParaLista(result.Id);\r\n }\r\n });\r\n modal.present();\r\n\r\n }\r\n\r\n isEmpty(valor: string | any) {\r\n return valor == null || valor == undefined || valor == ''\r\n }\r\n}\r\n","<div style=\"padding-inline-end: 0px;\">\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; margin-top: 2px;\" [class]=\"itemClass\">\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ campo }}\" -->\r\n <ion-spinner *ngIf=\"!podePesquisar\"\r\n style=\"--min-height: 0px !important; margin-inline-end: 5px !important; margin-top: 16px;\" \r\n slot=\"start\" name=\"lines\"></ion-spinner>\r\n <!-- (ionBlur)=\"verificarPesquisa()\" -->\r\n <!-- conflito com click da lista -->\r\n <ion-input #inputPesquisa\r\n [legacy]=\"true\"\r\n type=\"{{type}}\" \r\n [placeholder]=\"placeholder\" \r\n maxlength=\"{{ max }}\" \r\n (ionBlur)=\"onBlur($event)\"\r\n [value]=\"textoPesquisa\" (input)=\"writePesquisa(inputPesquisa.value)\" \r\n (keyup)=\"showPesquisa($event)\"\r\n autocomplete=\"off\" [style.--background]=\"inputBackgroungColor\"\r\n (click)=\"dropDownPesquisa(-1)\"\r\n [disabled]=\"readonly\" debounce=\"500\"></ion-input>\r\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\r\n class=\"botao-limpar\" fill=\"clear\" color=\"medium\"\r\n (click)=\"limparClick()\">\r\n <ion-icon name=\"close-outline\"></ion-icon>\r\n </ion-button>\r\n \r\n \r\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\r\n class=\"botao-limpar\" fill=\"clear\" color=\"medium\"\r\n (click)=\"pesquisarClick()\">\r\n <ion-icon color=\"primary\" name=\"search\"></ion-icon>\r\n </ion-button>\r\n \r\n \r\n </ion-item>\r\n \r\n <ion-list tabindex=\"-1\" [hidden]=\"!selectElementVisivel || !listaPesquisa || listaPesquisa.length == 0\" class=\"pesquisa-list\" style=\"max-height: 250px; overflow-y: auto;\">\r\n \r\n <ion-item tabindex=\"-1\" button *ngFor=\"let item of listaPesquisa\" \r\n (click)=\"selecionarComboClick(item)\" [id]=\"selectId + 'IonItem' + item['Index']\"\r\n class=\"pesquisa-item\">\r\n <!-- {{ item | json}} -->\r\n <span [class]=\"{'selected-item': item['Selected'] === true}\" [innerHTML]=\"highlight(item[campoDisplay])\"></span>\r\n </ion-item>\r\n \r\n </ion-list>\r\n \r\n <!--\r\n <ion-select interface=\"popover\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\r\n (ionChange)=\"selecionarComboChange($event.target.value)\">\r\n <ion-select-option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\r\n {{ item[campoDisplay] }}\r\n </ion-select-option>\r\n </ion-select>\r\n -->\r\n \r\n <!--\r\n <select [id]=\"selectId\" #selectElement tabindex=\"-1\" [hidden]=\"!selectElementVisivel\"\r\n (change)=\"selecionarComboChange($event.target.value)\" class=\"pesquisa-select\">\r\n <option *ngFor=\"let item of listaPesquisa\" [value]=\"item[campoId]\" (click)=\"selecionarComboClick(item[campoId])\">\r\n {{ item[campoDisplay] }}\r\n </option>\r\n \r\n </select>\r\n -->\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n • {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\n\r\n@Component({\r\n selector: 'kb-input-valor',\r\n templateUrl: './input-valor.component.html',\r\n styleUrls: ['./input-valor.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputValorComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputValorComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\r\n @Input() maxValor: number = null;\r\n @ViewChild('inputValor', { read: ElementRef, static: true}) inputValorEdit;\r\n //control value acessor\r\n public data: string | any;\r\n private onChange: Function = (data: string) => { };\r\n private onTouch: Function = () => { };\r\n private disabled: boolean = false;\r\n public console = console;\r\n\r\n writeValue(value: string | any): void {\r\n //console.log('write value', value);\r\n this.onChange(value);\r\n this.data = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n override ngOnInit() { }\r\n\r\n onBlur() {\r\n if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\r\n //verificar o valor\r\n if (this.maxValor) {\r\n if (this.form) {\r\n //console.log(this.form.get(this.formControlName).value);\r\n let valor = this.strToFloatZero(this.form.get(this.formControlName).value);\r\n if (valor > this.maxValor) {\r\n this.form.patchValue({\r\n [this.formControlName]: this.converterValorDecimalMil((this.maxValor * 100).toString())\r\n });\r\n }\r\n } else {\r\n let valor = this.strToFloatZero(this.data);\r\n if (valor > this.maxValor) {\r\n this.data = this.converterValorDecimalMil((this.maxValor * 100).toString());\r\n this.writeValue(this.data);\r\n }\r\n }\r\n }\r\n if (this.blur) {\r\n this.blur.emit(this.blurArgs);\r\n }\r\n }\r\n\r\n digitarValor(event: any) {\r\n //this.item.vendaunitario = this.utils.converterValorDecimal(this.item.vendaunitario);\r\n setTimeout(() => {\r\n if (this.form) {\r\n this.form.patchValue({\r\n [this.formControlName]: this.converterValorDecimalMil(this.form.get(this.formControlName)?.value) \r\n });\r\n } else {\r\n this.data = this.converterValorDecimalMil(this.data);\r\n this.writeValue(this.data);\r\n }\r\n }, 100);\r\n\r\n return true;\r\n }\r\n\r\n isEmpty(str: string | any): boolean {\r\n return str == null || str == undefined || str == '';\r\n }\r\n\r\n converterValorDecimalMil(campo: string, casas: number = 2): string {\r\n if (!this.isEmpty(campo)) {\r\n //console.log('converterValorDecimal');\r\n //console.log('campo:', campo, ' replaced: ', campo.replace(',', '').replace('.', '')); \r\n if (campo == '-') {\r\n return campo;\r\n }\r\n\r\n let valor = parseFloat(campo.replace(',', '').replace('.', '').replace('.', '').replace('.', ''));\r\n\r\n if (isNaN(valor)) {\r\n return '';\r\n }\r\n\r\n let valordiv = parseInt(\"1\" + this.stringOfChar(\"0\", casas));\r\n //valor /= 100; \r\n console.log(valor, '/', valordiv);\r\n valor /= valordiv;\r\n console.log('=', valor);\r\n return this.decimalToStringMil(valor);\r\n /*\r\n var str = valor.toString().replace('.', ',');\r\n var aStr = str.split(',');\r\n if (aStr.length == 1) {\r\n //str += ',00';\r\n str += ',' + this.stringOfChar('0', casas);\r\n }\r\n else {\r\n //str += this.stringOfChar('0', 2 - aStr[1].length);\r\n str += this.stringOfChar('0', casas - aStr[1].length);\r\n }\r\n return str;\r\n */\r\n }\r\n else\r\n return campo;\r\n }\r\n\r\n decimalToStringMil(number?: any) {\r\n if (number != null) {\r\n if (number == 0 || number == '0') {\r\n return '0,00';\r\n }\r\n //console.log(number);\r\n let numero = number.toFixed(2).split('.');\r\n numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');\r\n return numero.join(',').replace('-.', '-');\r\n } else\r\n return '';\r\n }\r\n\r\n stringOfChar(str: string, tam: number): string {\r\n var res = '';\r\n for (var i = 0; i < tam; i++) {\r\n res += str;\r\n }\r\n return res;\r\n }\r\n\r\n strToFloatZero(str): number {\r\n if (Number.isFinite(str))\r\n return str;\r\n if (this.isEmpty(str))\r\n return 0;\r\n else\r\n return parseFloat(str.replace('.', '').replace(',', '.'));\r\n }\r\n\r\n setFocus() {\r\n this.inputValorEdit.nativeElement.setFocus();\r\n }\r\n}\r\n","<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\"\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <ion-input #inputValor\r\n type=\"text\" \r\n [placeholder]=\"placeholder\" \r\n maxlength=\"{{ max }}\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n (input)=\"writeValue(inputValor.value)\" \r\n (keypress)=\"digitarValor($event)\"\r\n [clearInput]=\"botaoLimpar\"\r\n [disabled]=\"readonly\"></ion-input>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n • {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>","import { Component, ElementRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\n\r\n@Component({\r\n selector: 'kb-input-area',\r\n templateUrl: './input-area.component.html',\r\n styleUrls: ['./input-area.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputAreaComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputAreaComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\r\n @Input() linhas: number = 5;\r\n \r\n @ViewChild(\"itemArea\", {read: ElementRef}) itemArea: any;\r\n //control value acessor\r\n public data: string | any;\r\n private onChange: Function = (data: string) => {};\r\n private onTouch: Function = () => {};\r\n private disabled: boolean = false;\r\n public console = console;\r\n\r\n writeValue(value: string | any): void {\r\n //console.log('write value', value);\r\n this.onChange(value);\r\n this.data = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n constructor(private renderer: Renderer2) { \r\n super();\r\n }\r\n\r\n override ngOnInit() {}\r\n\r\n onBlur() {\r\n //remover classe do ion-item\r\n setTimeout(() => {\r\n //this.renderer.addClass(document.getElementById(\"item-select\"), \"item-has-focus\");\r\n this.renderer.removeClass(this.itemArea.nativeElement, \"item-has-focus\");\r\n //console.log('select focused', document.getElementById(\"item-select\"));\r\n }, 200);\r\n \r\n if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\r\n }\r\n\r\n entered() {\r\n //adicionar classe ao ion-item\r\n // console.log('select focused');\r\n setTimeout(() => {\r\n //this.renderer.addClass(document.getElementById(\"item-select\"), \"item-has-focus\");\r\n this.renderer.addClass(this.itemArea.nativeElement, \"item-has-focus\");\r\n //console.log('select focused', document.getElementById(\"item-select\"));\r\n }, 200);\r\n \r\n }\r\n}\r\n","<!-- \r\n maxlength=\"{{ max }}\"\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\" #itemArea>\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n [maxLength]=\"max\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"\r\n (focus)=\"entered()\"\r\n ></textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n • {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\n\r\n@Component({\r\n selector: 'kb-input-cep',\r\n templateUrl: './input-cep.component.html',\r\n styleUrls: ['./input-cep.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputCepComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputCepComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() formato: string | null = '00000-000';\r\n @Input() keyEnter: Function | null = null;\r\n @Output() getResultados = new EventEmitter();\r\n\r\n //control value acessor\r\n public data: string | any = null;\r\n private onChange: Function = (data: string) => { };\r\n private onTouch: Function = () => { };\r\n private disabled: boolean = false;\r\n constructor() {\r\n super();\r\n }\r\n\r\n writeValue(value: string | any): void {\r\n //console.log('write value', value);\r\n this.onChange(value);\r\n this.data = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n\r\n override ngOnInit(): void {\r\n }\r\n\r\n digitarFormatado(event: any) {\r\n //console.log(event);\r\n if ((event.keyCode >= 48 && event.keyCode <= 57)\r\n || (event.keyCode >= 96 && event.keyCode <= 105)\r\n || (event.keyCode == 8)\r\n || (event.keyCode == 9)\r\n || (event.keyCode == 39)\r\n || (event.keyCode == 37)\r\n || (event.keyCode == 46)) {\r\n\r\n //console.log(this.formControlName, this.form.get(this.formControlName).value);\r\n\r\n setTimeout(() => {\r\n if (this.form) {\r\n this.form.patchValue({\r\n [this.formControlName]: this.formataCampoValor(this.form.get(this.formControlName)?.value, this.formato ?? '', event)\r\n });\r\n } else {\r\n this.data = this.formataCampoValor(this.data ?? '', this.formato ?? '', event);\r\n this.writeValue(this.data);\r\n }\r\n }, 100);\r\n\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onKeyEnter() {\r\n if (this.keyEnter != null) {\r\n this.keyEnter();\r\n } else {\r\n if (this.getResultados != null) {\r\n this.pesquisarClick();\r\n }\r\n }\r\n }\r\n\r\n onBlur() {\r\n if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\r\n if (this.blur) {\r\n this.blur.emit(this.blurArgs);\r\n }\r\n }\r\n\r\n formataCampoValor(valor: string, Mascara: string, evento: any) {\r\n //console.log(valor);\r\n if (!valor)\r\n return null;\r\n //console.log(evento);\r\n\r\n //if (!this.keypressInteiro(evento))\r\n // return;\r\n\r\n var boleanoMascara;\r\n\r\n var Digitato = evento != null ? evento.keyCode : 0;\r\n let exp = /\\-|\\.|\\/|\\(|\\)| /g\r\n let campoSoNumeros = valor.replace(exp, \"\");\r\n\r\n var posicaoCampo = 0;\r\n var NovoValorCampo = \"\";\r\n var TamanhoMascara = campoSoNumeros.length;;\r\n\r\n if (Digitato != 8) { // backspace \r\n for (let i = 0; i <= TamanhoMascara; i++) {\r\n boleanoMascara = ((Mascara.charAt(i) == \"-\") || (Mascara.charAt(i) == \".\")\r\n || (Mascara.charAt(i) == \"/\"))\r\n boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == \"(\")\r\n || (Mascara.charAt(i) == \")\") || (Mascara.charAt(i) == \" \"))\r\n if (boleanoMascara) {\r\n NovoValorCampo += Mascara.charAt(i);\r\n TamanhoMascara++;\r\n } else {\r\n NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);\r\n posicaoCampo++;\r\n }\r\n }\r\n return NovoValorCampo;\r\n } else {\r\n return valor;\r\n }\r\n }\r\n\r\n pesquisarClick() {\r\n const cep = this.data;\r\n //se não estiver informado o cep, não fazer a pesquisa\r\n if (cep == null || cep == \"\") {\r\n return;\r\n }\r\n\r\n this.getEnderecoPeloCep(cep).subscribe({\r\n next: (result) => {\r\n //console.log('result CEP', result);\r\n\r\n let cidadePesquisa: string = result.localidade;\r\n cidadePesquisa = this.converteCaracteresEspeciais(cidadePesquisa.toUpperCase());\r\n\r\n if (this.getResultados) {\r\n this.getResultados.emit(result);\r\n }\r\n\r\n }, error: (error) => {\r\n\r\n }\r\n });\r\n }\r\n\r\n //substituição de caracteres\r\n converteCaracteresEspeciais(nome: string): string {\r\n var res = nome.replace(/Ã/g, \"A\");\r\n res = res.replace(/Á/g, \"A\");\r\n res = res.replace(/Ç/g, \"C\");\r\n res = res.replace(/É/g, \"E\");\r\n res = res.replace(/Â/g, \"A\");\r\n res = res.replace(/Ô/g, \"O\");\r\n res = res.replace(/Ó/g, \"O\");\r\n res = res.replace(/Ú/g, \"U\");\r\n res = res.replace(/Í/g, \"I\");\r\n return res;\r\n }\r\n\r\n getEnderecoPeloCep(cep: any): Observable<any> {\r\n return new Observable((x) => {\r\n var request = new XMLHttpRequest();\r\n request.open('get', `https://viacep.com.br/ws/${cep}/json/`, true);\r\n request.send();\r\n request.onload = function () {\r\n var data = JSON.parse(this.response);\r\n x.next(data)\r\n }\r\n })\r\n }\r\n}\r\n","<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<!--comando --inner-padding-end: utilizado pra remover padding desnecessários-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\" [class]=\"itemClass\"\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\r\n <!-- formControlName={{formControlName}} -->\r\n <ion-input #inputCep\r\n type=\"tel\" \r\n [placeholder]=\"placeholder\"\r\n maxlength=\"{{ max }}\" \r\n (keydown)=\"digitarFormatado($event)\" \r\n (keyup.enter)=\"onKeyEnter()\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n (input)=\"writeValue(inputCep.value)\"\r\n [disabled]=\"readonly\"></ion-input>\r\n\r\n <ion-button size=\"small\" slot=\"end\" tabindex=\"-1\"\r\n style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" fill=\"clear\" color=\"medium\"\r\n (click)=\"pesquisarClick()\">\r\n <ion-icon color=\"primary\" name=\"search\"></ion-icon>\r\n </ion-button>\r\n \r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n • {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>","import { Component, Input, OnInit, ViewChild, ElementRef, EventEmitter, Output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'kb-input-arquivo',\r\n templateUrl: './input-arquivo.component.html',\r\n styleUrls: ['./input-arquivo.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputArquivoComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputArquivoComponent implements OnInit, ControlValueAccessor {\r\n @Input() nomeArquivo: string;\r\n\r\n //@Input() disabled: boolean = false;\r\n\r\n @Input() caption: string;\r\n @Input() pasta: string;\r\n @Input() subir: boolean = false;\r\n @Input() callback = new EventEmitter();\r\n @Input() tipoArquivo: string = \"image/*\";\r\n @Output() fileSelected = new EventEmitter();\r\n @Input() form: boolean = false;\r\n @Input() showIcon: boolean = false;\r\n @Input() icon: string;\r\n @Input() iconSrc: string; ///assets/icon/image_primary_24dp.svg\r\n @Input() btnExpand: string = \"block\";\r\n @Input() btnColor: string = \"primary\";\r\n @Input() btnFill: string = \"outline\";\r\n @Input() iconSlot: string = \"start\";\r\n @Input() arquivoTipos: string = \"image/*\";\r\n @Input() readOnly: boolean = false;\r\n\r\n //imagem\r\n @ViewChild('inputNome', { read: ElementRef, static: true }) myInput;\r\n captureDataUrl: string;\r\n public formFile: any;\r\n public sucessoEvent: Subject<boolean> = new Subject();\r\n\r\n data: string;\r\n filename: string;\r\n\r\n private onChange: Function = (selectedColor: string) => { };\r\n private onTouch: Function = () => { };\r\n private disabled: boolean = false;\r\n\r\n showImageBrowser() {\r\n this.myInput.nativeElement.click();\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.onChange(value);\r\n this.data = value;\r\n if (this.callback)\r\n this.callback.emit(this.filename);\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n loadImagem() {\r\n //console.log(this.myInput);\r\n this.formFile = this.myInput.nativeElement.files[0];\r\n \r\n if (this.fileSelected) {\r\n this.fileSelected.emit({ content: this.formFile, name: this.myInput.nativeElement.files[0].name });\r\n }\r\n\r\n if (this.form) {\r\n //this.formFile = this.myInput.nativeElement.files[0];\r\n this.sucessoEvent.next(true);\r\n\r\n } else {\r\n //this.formFile = this.myInput.nativeElement.files[0];\r\n this.getBase64FromFile(this.myInput.nativeElement.files[0])\r\n .then(result => {\r\n //console.log('file: ', result.toString());\r\n //console.log('nome do arquivo: ', this.nomeArquivo.toLowerCase());\r\n let searchstr = result.toString().substring(0, result.toString().indexOf('base64,')) + 'base64,';\r\n console.log('searchstring', searchstr);\r\n if (this.subir) {\r\n this.captureDataUrl = result.toString().replace(searchstr, '');\r\n } else {\r\n this.captureDataUrl = result.toString();\r\n }\r\n //this.utils.showToast('Imagem carregada em memória.');\r\n this.sucessoEvent.next(true);\r\n console.log('file', this.myInput.nativeElement.files[0]);\r\n this.filename = this.myInput.nativeElement.files[0].name;\r\n this.writeValue(this.captureDataUrl);\r\n\r\n\r\n\r\n // if (this.nomeArquivo && this.subir) {\r\n // this.arquivoService.setImagem({ Nome: this.nomeArquivo, Conteudo: this.captureDataUrl, Status: 0, Pasta: this.pasta })\r\n // .subscribe(result => {\r\n // console.log('result set imagem', result);\r\n // if (result.Status == 200) {\r\n // this.utils.showToast('Sucesso!');\r\n // } else {\r\n // this.utils.showAlert('Erro. Tente mais tarde.' + result.Conteudo);\r\n // }\r\n // }, error => {\r\n // this.utils.showAlert('Erro. Tente mais tarde.');\r\n // })\r\n // }\r\n\r\n }).catch(error => {\r\n this.sucessoEvent.next(false);\r\n })\r\n }\r\n }\r\n\r\n //util\r\n getBase64FromFile(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n}\r\n","<!-- style=\"box-shadow: #4c8dff 0px 3px 3px 0.05px\" -->\r\n<div style=\"text-align:center;\">\r\n <ion-button [fill]=\"btnFill\" size=\"normal\" [color]=\"btnColor\" \r\n (click)=\"showImageBrowser()\" [expand]=\"btnExpand\" [disabled]=\"readOnly\">\r\n <ion-icon *ngIf=\"showIcon\" class=\"ion-padding-end\" [slot]=\"iconSlot\" [src]=\"iconSrc\" [name]=\"icon\"></ion-icon>\r\n {{ caption }}\r\n </ion-button>\r\n <input type=\"file\" id=\"upimgfile\" name=\"uploadfile\" #inputNome [accept]=\"arquivoTipos\" (change)=\"loadImagem()\"\r\n style=\"display: none;\" />\r\n </div>\r\n ","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class BaseBtnComponent implements OnInit {\r\n @Input() disabled: boolean = false;\r\n @Input() type: string = 'submit';\r\n @Input() icon: string = 'checkmark-outline';\r\n @Input() iconSrc: string = '';\r\n @Input() title: string = 'Salvar';\r\n @Input() fill: string = 'outline';\r\n @Input() expand: string = 'block';\r\n @Output() btnClick = new EventEmitter();\r\n @Input() size: string = 'default';\r\n @Input() iconSlot: string = 'start';\r\n\r\n ngOnInit(): void {\r\n return;\r\n }\r\n\r\n onClick() {\r\n if (this.btnClick)\r\n this.btnClick.emit();\r\n }\r\n\r\n resolveTheme(theme: string) {\r\n //console.log('resolve theme', theme);\r\n // if (theme == 'default') {\r\n // this.fill = 'outline';\r\n // } else {\r\n // this.fill = 'solid';\r\n // }\r\n if (theme == 'windows-theme') {\r\n this.fill = 'solid';\r\n }\r\n }\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BaseBtnComponent } from '../baseBtnComponent';\r\n\r\n@Component({\r\n selector: 'kb-btn-action',\r\n templateUrl: './btn-action.component.html',\r\n styleUrls: ['./btn-action.component.scss'],\r\n})\r\nexport class BtnActionComponent extends BaseBtnComponent implements OnInit {\r\n @Input() override title: string = 'Abrir';\r\n @Input() color: string = 'primary';\r\n @Input() hidden: boolean = false;\r\n @Input() override icon: string = '';\r\n @Input() override iconSrc: string = '';\r\n @Input() imgSrc: string = '';\r\n @Input() boxColor: string = '#4c8dff';\r\n @Input() btnMargin: string = '4px';\r\n @Input() override expand: string = 'block';\r\n @Input() iconStyle: string = '';\r\n @Input() titleStyle: string = '';\r\n buttonStyle: string = ''; \r\n constructor() {\r\n super();\r\n this.type = 'button';\r\n }\r\n\r\n override ngOnInit() {\r\n this.buttonStyle = ''; \r\n } \r\n\r\n}\r\n","<ion-button [color]=\"color\" [type]=\"type\" [disabled]=\"disabled\" [fill]=\"fill\" [expand]=\"expand\"\r\n [size]=\"size\"\r\n [hidden]=\"hidden\" \r\n (click)=\"onClick()\"\r\n > \r\n <ion-icon *ngIf=\"icon || iconSrc\" [slot]=\"title ? iconSlot : 'icon-only'\" [name]=\"icon\" [src]=\"iconSrc\" [style]=\"iconStyle\"></ion-icon>\r\n <span [style]=\"titleStyle\">{{ title }}</span>\r\n <img *ngIf=\"imgSrc\" [src]=\"imgSrc\" [slot]=\"title ? iconSlot : 'icon-only'\"/>\r\n</ion-button>\r\n\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BaseBtnComponent } from '../baseBtnComponent';\r\n\r\n@Component({\r\n selector: 'kb-btn-cancelar',\r\n templateUrl: './btn-cancelar.component.html',\r\n styleUrls: ['./btn-cancelar.component.scss'],\r\n})\r\nexport class BtnCancelarComponent extends BaseBtnComponent implements OnInit {\r\n //@Input() override iconSrc = \"/assets/icon/limpar_purple_24dp.svg\";\r\n @Input() override icon = \"close-outline\";\r\n @Input() override title: string = 'Cancelar';\r\n //@Input() override icon: string = '';\r\n constructor() { \r\n super();\r\n this.type = 'button';\r\n } \r\n\r\n}\r\n","<ion-button color=\"tertiary\" [type]=\"type\" [disabled]=\"disabled\" [fill]=\"fill\" [expand]=\"expand\" \r\n [size]=\"size\"\r\n (click)=\"onClick()\"\r\n > \r\n <ion-icon [slot]=\"title ? 'start' : 'icon-only'\" [src]=\"iconSrc\" [name]=\"icon\"></ion-icon>\r\n {{ title }}\r\n</ion-button> \r\n<!-- \r\n<ion-button color=\"tertiary\" fill=\"outline\" (click)=\"cancelarContato()\" style=\"box-shadow: #6370ff 0px 3px 3px 0.05px\"\r\n [disabled]=\"!selectedContato\">\r\n <ion-icon src=\"/assets/icon/limpar_purple_24dp.svg\"></ion-icon>\r\n Cancelar\r\n</ion-button>\r\n-->","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BaseBtnComponent } from '../baseBtnComponent';\r\n\r\n@Component({\r\n selector: 'kb-btn-excluir',\r\n templateUrl: './btn-excluir.component.html',\r\n styleUrls: ['./btn-excluir.component.scss'],\r\n})\r\nexport class BtnExcluirComponent extends BaseBtnComponent implements OnInit {\r\n @Input() override type: string = 'button';\r\n @Input() override expand: string = 'inline';\r\n @Input() override icon: string = 'trash'; \r\n @Input() override title: string = 'Excluir'; \r\n constructor() { \r\n super();\r\n }\r\n \r\n}\r\n","<ion-button color=\"danger\" [type]=\"type\" [disabled]=\"disabled\" [fill]=\"fill\" [expand]=\"expand\" [size]=\"size\"\r\n (click)=\"onClick()\"\r\n > \r\n <ion-icon *ngIf=\"icon\" [slot]=\"title ? 'start' : 'icon-only'\" [name]=\"icon\"></ion-icon>\r\n {{ title }}\r\n</ion-button> \r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BaseBtnComponent } from '../baseBtnComponent';\r\n\r\n@Component({\r\n selector: 'kb-btn-novo',\r\n templateUrl: './btn-novo.component.html',\r\n styleUrls: ['./btn-novo.component.scss'],\r\n})\r\nexport class BtnNovoComponent extends BaseBtnComponent implements OnInit {\r\n @Input() override title: string = 'Novo';\r\n @Input() override icon: string = 'person-add'; \r\n @Input() override iconSrc: string = '';\r\n @Input() override expand: string = 'block';\r\n @Input() imgSrc: string = '';\r\n constructor() {\r\n super();\r\n this.type = 'button'; \r\n }\r\n \r\n}\r\n","<ion-button color=\"primary\" [type]=\"type\" [disabled]=\"disabled\" [fill]=\"fill\" [expand]=\"expand\" \r\n [size]=\"size\"\r\n (click)=\"onClick()\"\r\n > \r\n <ion-icon *ngIf=\"icon || iconSrc\" [slot]=\"title ? 'start' : 'icon-only'\" [name]=\"icon\" [src]=\"iconSrc\"></ion-icon>\r\n {{ title }}\r\n <img *ngIf=\"imgSrc\" [src]=\"imgSrc\" [slot]=\"title ? 'start' : 'icon-only'\"/>\r\n</ion-button> \r\n<!-- \r\n<ion-button (click)=\"novoContato()\" fill=\"outline\" style=\"box-shadow: #4c8dff 0px 3px 3px 0.05px\">\r\n <ion-icon slot=\"start\" name=\"person-add\"></ion-icon>\r\n Novo\r\n</ion-button>\r\n-->","import { Component, Input, OnInit, Output } from '@angular/core';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { BaseBtnComponent } from '../baseBtnComponent';\r\n\r\n@Component({\r\n selector: 'kb-btn-salvar',\r\n templateUrl: './btn-salvar.component.html',\r\n styleUrls: ['./btn-salvar.component.scss'],\r\n})\r\nexport class BtnSalvarComponent extends BaseBtnComponent implements OnInit {\r\n @Input() btnMargin: string = '4px';\r\n constructor() { \r\n super();\r\n } \r\n \r\n}\r\n","<ion-button color=\"success\" [type]=\"type\" [disabled]=\"disabled\" [fill]=\"fill\" [expand]=\"expand\" \r\n [size]=\"size\"\r\n (click)=\"onClick()\"\r\n [style.margin]=\"btnMargin\"\r\n > \r\n <ion-icon [slot]=\"title ? 'start' : 'icon-only'\" [name]=\"icon\"></ion-icon>\r\n {{ title }}\r\n</ion-button>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\n\r\n@Component({\r\n selector: 'kb-input-checkbox',\r\n templateUrl: './input-checkbox.component.html',\r\n styleUrls: ['./input-checkbox.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputCheckboxComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputCheckboxComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() justify: string = \"start\";\r\n @Input() labelPlacement: string = \"end\";\r\n //control value acessor\r\n public data!: boolean | undefined;\r\n private onChange: Function = (data: string) => { };\r\n private onTouch: Function = () => { };\r\n private disabled: boolean = false;\r\n public console = console;\r\n\r\n writeValue(value?: any): void {\r\n console.log('write value', value);\r\n this.onChange(value);\r\n this.data = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n constructor() {\r\n super();\r\n }\r\n\r\n \r\n\r\n override ngOnInit(): void {\r\n }\r\n}\r\n","<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\">\r\n <ion-checkbox #inputCheck\r\n [labelPlacement]=\"labelPlacement\" [justify]=\"justify\" \r\n [disabled]=\"readonly\"\r\n [checked]=\"data\"\r\n [color]=\"labelColor ?? 'primary'\" \r\n (ionChange)=\"writeValue(inputCheck.checked)\">\r\n <span [style.color]=\"labelColor ?? 'auto'\">{{ label }}</span> \r\n </ion-checkbox>\r\n </ion-item>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BaseInputComponent } from '../baseInputComponent';\r\n\r\n@Component({\r\n selector: 'kb-input-radio',\r\n templateUrl: './input-radio.component.html',\r\n styleUrls: ['./input-radio.component.scss', './../baseComponent.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: InputRadioComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class InputRadioComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\r\n @Input() itens: any[] = [];\r\n @Input() itemId: string = \"Id\";\r\n @Input() itemNome: string = \"Nome\";\r\n @Input() color: string = \"primary\";\r\n //control value acessor\r\n public data!: string | undefined;\r\n private onChange: Function = (data: string) => { };\r\n private onTouch: Function = () => { };\r\n private disabled: boolean = false;\r\n public console = console;\r\n\r\n writeValue(value?: any): void {\r\n //console.log('write value', value);\r\n this.onChange(value);\r\n this.data = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disabled;\r\n }\r\n constructor() {\r\n super();\r\n }\r\n\r\n override ngOnInit(): void {\r\n }\r\n\r\n\r\n}\r\n","<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\"\r\n [style.opacity]=\"readonly ? '0.5' : '1'\">\r\n <ion-radio-group [disabled]=\"readonly\" #inputRadio \r\n [value]=\"data\"\r\n (ionChange)=\"writeValue(inputRadio.value)\">\r\n <span style=\"font-size: 13px\">\r\n {{ label }}\r\n </span>\r\n <ion-row>\r\n <ion-col *ngFor=\"let item of itens\">\r\n <ion-radio style=\"margin-right: 12px;\" [color]=\"color\" \r\n labelPlacement=\"end\" \r\n justify=\"start\"\r\n [value]=\"item[itemId]\">\r\n {{ item[itemNome] }}</ion-radio><br />\r\n </ion-col>\r\n </ion-row>\r\n </ion-radio-group>\r\n </ion-item>\r\n</div>","import { Component, Input, NgZone, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BaseModel, HtmlRow } from 'appproject-lib';\r\n\r\n@Component({\r\n selector: 'kb-entity-edit',\r\n //standalone: true,\r\n templateUrl: './entity-edit.component.html',\r\n styleUrl: './entity-edit.component.scss'\r\n})\r\nexport class EntityEditComponent<T extends BaseModel> implements OnInit {\r\n @Input() entidade: T | null;\r\n //entidade: any;\r\n /**\r\n * Vai receber montado do base cadastro\r\n */\r\n @Input() campos: HtmlRow[];\r\n @Input() entidadeForm: FormGroup;\r\n @Input() validation_messages: any;\r\n @Input() itemClass: string = \"\";\r\n @Input() rowClass: string = \"\";\r\n constructor(private ngZone: NgZone) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n //this.getEntidadeCampos();\r\n }\r\n\r\n getEntidadeCampos() {\r\n //this.entidade = new this.entidadeTipo();\r\n\r\n // console.log(this.entidade);\r\n // this.ngZone.run(() => \r\n // this.campos = this.entidade.getHtmlForm()\r\n // );\r\n // console.log(this.campos);\r\n }\r\n\r\n emptyHandler() {\r\n\r\n }\r\n}\r\n","<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\r\n\r\n\r\n <ion-row *ngFor=\"let linha of campos\" [class]=\"rowClass\">\r\n <ng-container *ngFor=\"let campo of linha.Linha\">\r\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\r\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \r\n [type]=\"campo.TipoInput ?? 'text'\" \r\n [showSeePassword]=\"campo.TipoInput == 'password'\"\r\n [showCustomAction]=\"campo.InputAction\"\r\n [customActionIcon]=\"campo.InputActionIcon ?? 'search-outline'\"\r\n (customActionClick)=\"campo.click ? campo.click($event) : emptyHandler()\"\r\n\r\n [itemClass]=\"itemClass\">\r\n </kb-input-text>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\r\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [linhas]=\"campo.Linhas ?? 5\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-area>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\"\r\n (getResultados)=\"campo.change ? campo.change($event) : emptyHandler()\"\r\n >\r\n </kb-input-cep>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-valor>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"campo.Formato ?? ''\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-format>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \r\n [itemClass]=\"itemClass\"\r\n [labelColor]=\"campo.BtnColor\">\r\n\r\n </kb-input-checkbox>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\r\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId ?? 'Id'\"\r\n [itemNome]=\"campo.ItemNome ?? 'Nome'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-select>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\r\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-radio>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\" [hidden]=\"campo.Hidden === true\">\r\n <kb-input-pesquisa #pesquisaCentroCustoPai \r\n [label]=\"campo.Label ?? campo.Nome\" \r\n [campoId]=\"campo.ItemId\"\r\n [focusField]=\"campo.focusField\"\r\n [formControlName]=\"campo.Nome\" \r\n placeholder=\"Pesquisar...\" \r\n [campoDisplay]=\"campo.ItemNome ?? 'Nome'\" \r\n [form]=\"entidadeForm\"\r\n [tipo]=\"campo.TipoPesquisa\" \r\n [urlItem]=\"campo.UrlItem\" \r\n [max]=\"campo.Tamanho ?? '50'\" \r\n [url]=\"campo.UrlPesquisa\" \r\n [readonly]=\"campo.ReadOnly\"\r\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-pesquisa>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-button'\">\r\n <!-- \r\n <kb-btn-action [title]=\"campo.Label\" [icon]=\"campo.Icon\" [iconSrc]=\"campo.IconSrc\" [color]=\"campo.BtnColor ?? 'light'\" \r\n [expand]=\"campo.BtnExpand ?? 'block'\" style=\"margin-top: var(--btn-action-margin-top, auto);\">\r\n </kb-btn-action>\r\n -->\r\n <ion-button [expand]=\"campo.BtnExpand ?? 'block'\" [color]=\"campo.BtnColor ?? 'light'\"\r\n (click)=\"campo.click ? campo.click($event) : emptyHandler()\" [size]=\"campo.BtnSize ?? 'default'\"\r\n [disabled]=\"campo.ReadOnly\">\r\n <ion-icon *ngIf=\"campo.Icon || campo.IconSrc\" [name]=\"campo.Icon\" [src]=\"campo.IconSrc\"></ion-icon>\r\n {{ campo.Label }}\r\n </ion-button>\r\n </ion-col>\r\n\r\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\r\n\r\n </ion-col>\r\n\r\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\r\n <ion-list lines=\"none\" class=\"ion-no-padding\">\r\n <ion-list-header color=\"primary\" [style]=\"campo.CampoStyle ?? ''\"> \r\n <ion-label [style]=\"campo.LabelStyle ?? ''\">{{ campo.Label }}</ion-label>\r\n </ion-list-header>\r\n </ion-list>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n\r\n <!--\r\n <ion-col class=\"select ion-no-margin ion-no-padding\">\r\n <ion-item lines=\"none\">\r\n <ion-label>Totalizador</ion-label>\r\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col class=\"select ion-no-margin ion-no-padding\">\r\n <ion-item lines=\"none\">\r\n <ion-label>Inativo</ion-label>\r\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\r\n </ion-item>\r\n </ion-col>\r\n -->\r\n</form>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { GridColuna, GridTabela, LibService } from 'appproject-lib';\r\n\r\n@Component({\r\n selector: 'kb-grid-view', \r\n templateUrl: './grid-view.component.html',\r\n styleUrl: './grid-view.component.scss'\r\n})\r\nexport class GridViewComponent implements OnInit, OnChanges {\r\n @Input() empresaId: number;\r\n @Input() tabelaCampos: GridTabela;\r\n @Input() dataSet: Array<any>;\r\n @Input() minHeight: string = '400px';\r\n @Input() inMemoryPagination: boolean = false;\r\n\r\n @Output() selecionarItem = new EventEmitter();\r\n @Output() excluirItem = new EventEmitter();\r\n @Output() selecionarChecked = new EventEmitter();\r\n\r\n selectedItem: any;\r\n //inputs = inject(new InjectionToken<any>('title inputs'));\r\n grupos: any[] = [{ Coluna: '', Tabela: null, Dados: null, Nivel: 0 }];\r\n\r\n // tabelaCampos = {\r\n // Selecionar: false,\r\n // Exportar: true,\r\n // Colunas: [\r\n // { Campo: 'Id', Titulo: 'Id', Tamanho: '10%', Ordem: true, Grupo: false, Filtrar: true, OrdemStatus: 0, Tipo: 'number', Valores: [], FiltroOperador: '=', FiltroValor: '', FiltroVisivel: false },\r\n // { Campo: 'Marca', Titulo: 'Marca', Tamanho: '25%', Ordem: true, Grupo: true, Filtrar: true, OrdemStatus: 0, Tipo: 'string', Valores: [], FiltroOperador: '=', FiltroValor: '', FiltroVisivel: false },\r\n // { Campo: 'Descricao', Titulo: 'Descrição', Tamanho: '25%', Ordem: true, Grupo: true, Filtrar: true, OrdemStatus: 0, Tipo: 'string', Valores: [], FiltroOperador: '=', FiltroValor: '', FiltroVisivel: false },\r\n // { Campo: 'Data', Titulo: 'Data', Tamanho: '20%', Ordem: true, Grupo: true, Filtrar: true, OrdemStatus: 0, Tipo: 'date', Valores: [], FiltroOperador: '=', FiltroValor: '', FiltroVisivel: false },\r\n // { Campo: 'Valor', Titulo: 'Valor', Tamanho: '20%', Ordem: true, Grupo: false, Filtrar: true, OrdemStatus: 0, Tipo: 'number', Valores: [], FiltroOperador: '=', FiltroValor: '', FiltroVisivel: false },\r\n // ]\r\n // }\r\n\r\n // dataSet: Array<any> = [\r\n // { Id: 1, Marca: 'Apple', Descricao: 'IPhone 14', Data: '2023-05-01', Valor: 7899.99 },\r\n // { Id: 2, Marca: 'Apple', Descricao: 'MacBook Pro', Data: '2023-06-01', Valor: 17999.99 },\r\n // { Id: 3, Marca: 'Samsung', Descricao: 'Galaxy S23', Data: '2023-05-01', Valor: 6899.99 },\r\n // { Id: 4, Marca: 'Sony', Descricao: 'PS 5', Data: '2023-06-01', Valor: 4899.99 },\r\n // { Id: 5, Marca: 'Samsung', Descricao: 'Watch 23', Data: '2023-05-01', Valor: 1899.99 },\r\n // ]\r\n\r\n\r\n\r\n groups = []\r\n @Input() filteredDataSet = [];\r\n pageDataSet = [];\r\n\r\n\r\n //array com os campos filtrados para display\r\n camposDisplay = [];\r\n\r\n //filtro\r\n isFiltroOpen: boolean = false;\r\n selectedColuna: any;\r\n todosSelecionados: boolean = false;\r\n\r\n //pagination\r\n //página atual\r\n page: number = 1;\r\n //registros por página\r\n @Input() pageOffset: number = 20;\r\n //total de registros\r\n totalRec: number;\r\n //total de páginas\r\n totalPages: number;\r\n //indexador de paginas\r\n pages: number[]; \r\n start: number;\r\n\r\n\r\n constructor() { }\r\n\r\n valoresFiltro() {\r\n this.tabelaCampos.Colunas.forEach(c => {\r\n if (c.Filtrar) {\r\n //projetar a coluna\r\n let initial = [];\r\n let valores = this.dataSet.map(d => d[c.Campo]);\r\n c.Valores = valores.filter((value, index, self) => {\r\n return self.indexOf(value) === index;\r\n }).map(v => { return { Selecionado: false, Valor: v } });\r\n // console.log(c.Campo, valores);\r\n // console.log(c.Valores)\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n\r\n\r\n //this.inicializaGrupo();\r\n //this.agrupar('Marca');\r\n //console.log('inputs', this.inputs);\r\n //console.log('Input empresa', this.empresaId);\r\n GridTabela.init(this.tabelaCampos);\r\n this.valoresFiltro();\r\n this.filteredDataSet = this.dataSet;\r\n console.log('Init Tabela campos', this.tabelaCampos);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log('On changes Tabela campos', this.tabelaCampos);\r\n //evento chamado quando o dataset for atualizado\r\n //inicializar vars de paginação\r\n this.initPage();\r\n this.todosSelecionados = false;\r\n }\r\n\r\n initPage() {\r\n this.page = 1;\r\n this.totalRec = this.filteredDataSet.length;\r\n this.totalPages = Math.ceil(this.totalRec / this.pageOffset); \r\n\r\n if (this.inMemoryPagination === true) {\r\n this.getRegistrosPage();\r\n } else {\r\n this.pageDataSet = this.filteredDataSet;\r\n }\r\n }\r\n\r\n getRegistrosPage() {\r\n this.start = (this.page - 1) * this.pageOffset;\r\n console.log('dataset', this.filteredDataSet);\r\n console.log('start', this.start);\r\n console.log('offset', this.pageOffset);\r\n this.pageDataSet = this.filteredDataSet.slice(this.start, (this.start + this.pageOffset));\r\n console.log('page dataset', this.pageDataSet);\r\n }\r\n\r\n proximo() {\r\n if (this.page < this.totalPages) {\r\n this.page++;\r\n this.getRegistrosPage();\r\n this.gerarArrayPags();\r\n }\r\n }\r\n\r\n anterior() {\r\n if (this.page > 1) {\r\n this.page--;\r\n this.getRegistrosPage();\r\n this.gerarArrayPags();\r\n }\r\n }\r\n\r\n gerarArrayPags() {\r\n\r\n }\r\n\r\n inicializaGrupo() {\r\n //inicializar o primeiro grupo 'default'\r\n this.camposDisplay = this.tabelaCampos.Colunas;\r\n this.grupos[0].Tabela = this.camposDisplay;\r\n this.grupos[0].Dados = this.dataSet;\r\n }\r\n\r\n agrupar(campo: string) {\r\n this.groups.push(campo);\r\n let level = 0;\r\n for (let g in this.groups) {\r\n console.log(g);\r\n //filtrar os dados\r\n let result = this.dataSet.reduce((group, data) => {\r\n const { g } = data;\r\n group[g] = group[campo] ?? [];\r\n group[g].push(data);\r\n return group;\r\n }, {});\r\n console.log(result);\r\n }\r\n\r\n }\r\n\r\n filtrarCampos(coluna = '') {\r\n if (coluna != '') {\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n filtrar(col: GridColuna) {\r\n //console.log('filtrar', col);\r\n if (col.Valores && col.Valores.find(v => v.Selecionado) != null) {\r\n const valores = col.Valores.filter(v => v.Selecionado).map(v => v.Valor);\r\n\r\n //filtrar por valores selecionados\r\n this.filteredDataSet = this.dataSet.filter(d => valores.indexOf(d[col.Campo]) > -1);\r\n } else if (col.FiltroOperador && col.FiltroValor) {\r\n //console.log(col.FiltroOperador, col.FiltroValor)\r\n try {\r\n this.filteredDataSet = this.dataSet.filter(d => {\r\n switch (col.FiltroOperador) {\r\n case \"=\":\r\n return d[col.Campo] == col.FiltroValor;\r\n case \">=\":\r\n if (col.Tipo == 'number') {\r\n return LibService.stringToDecimal(d[col.Campo], true) >= LibService.stringToDecimal(col.FiltroValor, true); \r\n } else if (col.Tipo == 'data') {\r\n return new Date(this.dataToString(d[col.Campo])) >= new Date(this.dataToString(col.FiltroValor)); \r\n } else\r\n return d[col.Campo] >= col.FiltroValor;\r\n case \"<=\":\r\n if (col.Tipo == 'number') {\r\n return LibService.stringToDecimal(d[col.Campo], true) <= LibService.stringToDecimal(col.FiltroValor, true); \r\n } else\r\n return d[col.Campo] <= col.FiltroValor;\r\n case \"tem\":\r\n return d[col.Campo].toString().toLowerCase().indexOf(col.FiltroValor.toLowerCase()) > -1;\r\n default:\r\n return true;\r\n }\r\n\r\n });\r\n } catch(ex) {\r\n console.log(ex);\r\n this.filteredDataSet = this.dataSet;\r\n }\r\n }\r\n col.FiltroVisivel = false;\r\n\r\n this.initPage();\r\n }\r\n\r\n getPage() {\r\n\r\n }\r\n\r\n limpar() {\r\n this.filteredDataSet = this.dataSet;\r\n }\r\n\r\n dataToString(data: string): string {\r\n if (data) {\r\n return data.split('/').reverse().join('-');\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n ordenar(col: GridColuna) {\r\n if (col.OrdemStatus == 0 || col.OrdemStatus == -1) {\r\n if (col.Tipo == 'data') {\r\n this.filteredDataSet.sort((a, b) => this.dataToString(a[col.Campo]) > this.dataToString(b[col.Campo]) ? 1 : (this.dataToString(a[col.Campo]) < this.dataToString(b[col.Campo]) ? -1 : 0));\r\n } else if (col.Tipo == 'number') {\r\n this.filteredDataSet.sort((a, b) => LibService.stringToDecimal(a[col.Campo]) > LibService.stringToDecimal(b[col.Campo]) ? 1 : (LibService.stringToDecimal(a[col.Campo]) < LibService.stringToDecimal(b[col.Campo]) ? -1 : 0));\r\n } else \r\n this.filteredDataSet.sort((a, b) => a[col.Campo] > b[col.Campo] ? 1 : (a[col.Campo] < b[col.Campo] ? -1 : 0));\r\n col.OrdemStatus = 1; //asc\r\n } else {\r\n if (col.Tipo == 'data') {\r\n this.filteredDataSet.sort((a, b) => this.dataToString(a[col.Campo]) < this.dataToString(b[col.Campo]) ? 1 : (this.dataToString(a[col.Campo]) > this.dataToString(b[col.Campo]) ? -1 : 0));\r\n } else if (col.Tipo == 'number') {\r\n this.filteredDataSet.sort((a, b) => LibService.stringToDecimal(a[col.Campo], true) < LibService.stringToDecimal(b[col.Campo], true) ? 1 : (LibService.stringToDecimal(a[col.Campo], true) > LibService.stringToDecimal(b[col.Campo], true) ? -1 : 0));\r\n } else \r\n this.filteredDataSet.sort((a, b) => a[col.Campo] < b[col.Campo] ? 1 : (a[col.Campo] > b[col.Campo] ? -1 : 0));\r\n col.OrdemStatus = -1; //desc\r\n }\r\n }\r\n\r\n setFiltroOpen(col: any) {\r\n col.FiltroVisivel = !col.FiltroVisivel\r\n if (col.FiltroVisivel) {\r\n this.selectedColuna = col;\r\n //console.log(this.selectedColuna);\r\n } \r\n }\r\n\r\n selecionarTodos() {\r\n //this.todosSelecionados = !this.todosSelecionados;\r\n this.filteredDataSet.forEach(item => {\r\n item[this.tabelaCampos.CampoSelecionar] = this.todosSelecionados;\r\n });\r\n this.selecionarChecked.emit();\r\n }\r\n\r\n selecionarLinha(item: any) {\r\n this.selecionarItem.emit(item);\r\n this.selectedItem = item;\r\n }\r\n\r\n excluirLinha(item: any) {\r\n this.excluirItem.emit(item);\r\n }\r\n\r\n //check\r\n selecionadoChecked() {\r\n this.selecionarChecked.emit();\r\n }\r\n}\r\n","<div style=\"font-size: 14px;\">\r\n <div id=\"painelExportacao\">\r\n <ion-row *ngIf=\"inMemoryPagination\">\r\n <!--\r\n <ion-col size=\"2\">\r\n <ion-button *ngIf=\"tabelaCampos.Selecionar === true\" size=\"small\" fill=\"outline\" color=\"medium\"\r\n (click)=\"selecionarTodos()\">Selecionar Todos</ion-button>\r\n </ion-col>\r\n -->\r\n <ion-col size=\"3\">\r\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\r\n (click)=\"anterior()\">\r\n <ion-icon name=\"chevron-back-outline\" slot=\"start\"></ion-icon>\r\n Anterior\r\n </ion-button>\r\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\r\n (click)=\"proximo()\">\r\n Próximo\r\n <ion-icon name=\"chevron-forward-outline\" slot=\"end\"></ion-icon>\r\n </ion-button> \r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <span style=\"display: block; margin-top: 10px;\" *ngIf=\"inMemoryPagination && totalRec > 0\">Exibindo {{ start + 1 }} - {{ (start + pageOffset) < totalRec ? (start + pageOffset) : totalRec }} total de {{ totalRec }} \r\n </span> \r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n <div style=\"width: 100%;\" [style.min-height]=\"minHeight\">\r\n <table class=\"grid\">\r\n <thead>\r\n <tr style=\"background-color: var(--ion-color-bluetool); color: white;\">\r\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"width: 3%; text-align: center;\">\r\n <input type=\"checkbox\" [(ngModel)]=\"todosSelecionados\" (change)=\"selecionarTodos()\">\r\n </td>\r\n <td *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\">\r\n <div style=\"position: relative;\">\r\n <div style=\"display: flex; justify-content: space-between; align-items: end;\">\r\n <strong>{{ col.Titulo }}</strong>\r\n <div>\r\n <ion-icon *ngIf=\"col.Ordem\" slot=\"end\" (click)=\"ordenar(col)\" style=\"cursor: pointer;\"\r\n [name]=\"col.OrdemStatus == 0 ? 'swap-vertical' : (col.OrdemStatus == 1 ? 'arrow-up': 'arrow-down')\"></ion-icon>\r\n \r\n <ion-icon *ngIf=\"col.Filtrar\" name=\"funnel\" (click)=\"setFiltroOpen(col)\" slot=\"end\"></ion-icon>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"caixaGrande\" [hidden]=\"!col.FiltroVisivel\" tabindex=\"-1\"\r\n style=\"color: black; display: block; position: absolute; z-index: 800; width: 210px; right: 0px; opacity: 0.9;\">\r\n Filtrar:\r\n <div>\r\n <div style=\"display: flex; justify-content: space-between; align-items: start;\">\r\n <select style=\"width: 80px;\" [(ngModel)]=\"col.FiltroOperador\">\r\n <option>=</option>\r\n <option>>=</option>\r\n <option><=</option>\r\n <option>tem</option>\r\n </select>\r\n <input style=\"width: 100px;\" type=\"text\" [(ngModel)]=\"col.FiltroValor\">\r\n </div>\r\n <ion-button size=\"small\" color=\"medium\" expand=\"block\" (click)=\"filtrar(col)\">Filtrar</ion-button>\r\n <ion-button size=\"small\" color=\"light\" expand=\"block\" (click)=\"limpar()\">Limpar</ion-button>\r\n </div>\r\n <div *ngIf=\"col.Valores\" class=\"scroll-container\" style=\"height: 200px; overflow-y: scroll;\">\r\n <div *ngFor=\"let valor of col.Valores\">\r\n <input type=\"checkbox\" [(ngModel)]=\"valor.Selecionado\">\r\n <span>{{ valor.Valor }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </td>\r\n <td *ngIf=\"tabelaCampos.Excluir === true\">\r\n \r\n </td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of pageDataSet\" [class]=\"item == selectedItem ? 'item-selecionado' : '' \">\r\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"text-align: center; cursor: auto;\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item[tabelaCampos.CampoSelecionar]\" (change)=\"selecionadoChecked()\">\r\n </td>\r\n <td class=\"col\" *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\"\r\n [style.text-align]=\"col.Tipo == 'number' ? 'right' : (col.Alinhamento ?? 'left')\"\r\n (click)=\"col.ClickFunction ? col.ClickFunction(item) : selecionarLinha(item)\">\r\n <span *ngIf=\"col.Pipe == 'date'\">{{ item[col.Campo] | date: 'dd/MM/yyyy' }}</span> \r\n <span *ngIf=\"col.Pipe == 'valor'\">{{ item[col.Campo] | valorFormat }}</span>\r\n <span *ngIf=\"col.RenderFunction\" [innerHtml]=\"col.RenderFunction(item) | safeHtml\"></span>\r\n <span *ngIf=\"!col.Pipe && !col.RenderFunction\">{{ item[col.Campo] ?? col.Default }}</span>\r\n </td>\r\n <td *ngIf=\"tabelaCampos.Excluir === true\" style=\"padding: 0px; text-align: center;\">\r\n <ion-button size=\"small\" color=\"danger\" fill=\"outline\" style=\"transform: scale(0.85);\" (click)=\"excluirLinha(item)\">\r\n <ion-icon name=\"trash\"></ion-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n \r\n <ion-modal [isOpen]=\"isFiltroOpen\" (didDismiss)=\"isFiltroOpen = false;\">\r\n <ng-template>\r\n <ion-content class=\"ion-padding\">\r\n <div class=\"caixaGrande\">\r\n Filtrar:\r\n <div *ngIf=\"selectedColuna.Valores\">\r\n <div *ngFor=\"let valor of selectedColuna.Valores\">\r\n <span>{{ valor }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-modal>\r\n </div>","import { CUSTOM_ELEMENTS_SCHEMA, InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { AppprojectComponentsComponent } from './appproject-components.component';\r\nimport { InputTextComponent } from './input-text/input-text.component';\r\nimport { InputFormatComponent } from './input-format/input-format.component';\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { AppprojectComponentsService } from './appproject-components.service';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputSelectComponent } from './input-select/input-select.component';\r\nimport { InputPesquisaComponent } from './input-pesquisa/input-pesquisa.component';\r\nimport { ModelTreeviewComponent } from './model-treeview/model-treeview.component';\r\nimport { InputValorComponent } from './input-valor/input-valor.component';\r\nimport { InputAreaComponent } from './input-area/input-area.component';\r\nimport { InputCepComponent } from './input-cep/input-cep.component';\r\nimport { InputArquivoComponent } from './input-arquivo/input-arquivo.component';\r\nimport { BtnActionComponent } from './buttons/btn-action/btn-action.component';\r\nimport { BtnCancelarComponent } from './buttons/btn-cancelar/btn-cancelar.component';\r\nimport { BtnExcluirComponent } from './buttons/btn-excluir/btn-excluir.component';\r\nimport { BtnNovoComponent } from './buttons/btn-novo/btn-novo.component';\r\nimport { BtnSalvarComponent } from './buttons/btn-salvar/btn-salvar.component';\r\nimport { EntityEditComponent } from './entity-edit/entity-edit.component';\r\nimport { LibConfig } from './lib-config';\r\nimport { InputCheckboxComponent } from './input-checkbox/input-checkbox.component';\r\nimport { InputRadioComponent } from './input-radio/input-radio.component';\r\nimport { TreeViewComponent } from './tree-view/tree-view.component';\r\nimport { TreeViewNivelComponent } from './tree-view-nivel/tree-view-nivel.component';\r\nimport { GridViewComponent } from './grid-view/grid-view.component';\r\nimport { SafeHtmlPipe, ValorFormatPipe } from 'appproject-lib';\r\n\r\n\r\nexport const LibConfigService = new InjectionToken<LibConfig>('LibConfig');\r\n\r\n@NgModule({\r\n declarations: [\r\n AppprojectComponentsComponent,\r\n InputTextComponent,\r\n InputFormatComponent,\r\n InputSelectComponent,\r\n InputPesquisaComponent,\r\n ModelTreeviewComponent,\r\n InputValorComponent,\r\n InputAreaComponent,\r\n InputCepComponent,\r\n InputArquivoComponent,\r\n BtnActionComponent,\r\n BtnCancelarComponent,\r\n BtnExcluirComponent,\r\n BtnNovoComponent,\r\n BtnSalvarComponent,\r\n EntityEditComponent,\r\n InputCheckboxComponent,\r\n InputRadioComponent,\r\n TreeViewComponent,\r\n TreeViewNivelComponent,\r\n GridViewComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ValorFormatPipe,\r\n SafeHtmlPipe\r\n ],\r\n exports: [\r\n AppprojectComponentsComponent,\r\n InputTextComponent,\r\n InputFormatComponent,\r\n InputSelectComponent,\r\n InputPesquisaComponent,\r\n ModelTreeviewComponent,\r\n InputValorComponent,\r\n InputAreaComponent,\r\n InputCepComponent,\r\n InputArquivoComponent,\r\n BtnActionComponent,\r\n BtnCancelarComponent,\r\n BtnExcluirComponent,\r\n BtnNovoComponent,\r\n BtnSalvarComponent,\r\n EntityEditComponent,\r\n InputCheckboxComponent,\r\n InputRadioComponent,\r\n TreeViewComponent,\r\n TreeViewNivelComponent,\r\n GridViewComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class AppprojectComponentsModule {\r\n static forRoot(config: LibConfig): ModuleWithProviders<AppprojectComponentsModule> {\r\n return {\r\n ngModule: AppprojectComponentsModule,\r\n providers: [\r\n AppprojectComponentsService,\r\n {\r\n provide: 'LibConfigService',\r\n useValue: config\r\n }\r\n ]\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of appproject-components\r\n */\r\n\r\nexport * from './lib/appproject-components.service';\r\nexport * from './lib/appproject-components.component';\r\nexport * from './lib/appproject-components.module';\r\n//export manual dos componentes criados\r\nexport * from './lib/baseInputComponent';\r\nexport * from './lib/input-text/input-text.component';\r\nexport * from './lib/input-format/input-format.component';\r\nexport * from './lib/input-select/input-select.component';\r\nexport * from './lib/input-pesquisa/input-pesquisa.component';\r\nexport * from './lib/input-valor/input-valor.component';\r\nexport * from './lib/model-treeview/model-treeview.component';\r\nexport * from './lib/input-area/input-area.component';\r\nexport * from './lib/input-cep/input-cep.component';\r\nexport * from './lib/input-arquivo/input-arquivo.component';\r\nexport * from './lib/entity-edit/entity-edit.component';\r\nexport * from './lib/input-checkbox/input-checkbox.component';\r\nexport * from './lib/input-radio/input-radio.component';\r\nexport * from './lib/tree-view/tree-view.component';\r\nexport * from './lib/tree-view-nivel/tree-view-nivel.component';\r\nexport * from './lib/grid-view/grid-view.component';\r\n//buttons\r\nexport * from './lib/buttons/btn-action/btn-action.component';\r\nexport * from './lib/buttons/btn-cancelar/btn-cancelar.component';\r\nexport * from './lib/buttons/btn-excluir/btn-excluir.component';\r\nexport * from './lib/buttons/btn-novo/btn-novo.component';\r\nexport * from './lib/buttons/btn-salvar/btn-salvar.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i2.TreeViewNivelComponent","i3.TreeViewComponent","i4.InputTextComponent","i5.InputFormatComponent","i6.InputSelectComponent","i7.InputPesquisaComponent","i8.InputValorComponent","i9.InputAreaComponent","i10.InputCepComponent","i11.InputCheckboxComponent","i12.InputRadioComponent"],"mappings":"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"}
|