appproject-components 1.0.12 → 1.0.14
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.
|
@@ -59,7 +59,7 @@ export class InputSelectComponent extends BaseInputComponent {
|
|
|
59
59
|
provide: NG_VALUE_ACCESSOR,
|
|
60
60
|
useExisting: InputSelectComponent,
|
|
61
61
|
multi: true
|
|
62
|
-
}], usesInheritance: true, ngImport: i0, template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --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 *ngIf=\"label\" [position]=\"labelPosition\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" [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>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}
|
|
62
|
+
}], usesInheritance: true, ngImport: i0, template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --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 *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()\" [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>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}select:focus .focus-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] }); }
|
|
63
63
|
}
|
|
64
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputSelectComponent, decorators: [{
|
|
65
65
|
type: Component,
|
|
@@ -67,7 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
67
67
|
provide: NG_VALUE_ACCESSOR,
|
|
68
68
|
useExisting: InputSelectComponent,
|
|
69
69
|
multi: true
|
|
70
|
-
}], template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --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 *ngIf=\"label\" [position]=\"labelPosition\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" [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>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}
|
|
70
|
+
}], template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --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 *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()\" [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>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}select:focus .focus-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
|
|
71
71
|
}], ctorParameters: () => [], propDecorators: { selectChange: [{
|
|
72
72
|
type: Output
|
|
73
73
|
}], selectChangeEntity: [{
|
|
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
85
85
|
}], opcaoDefault: [{
|
|
86
86
|
type: Input
|
|
87
87
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFZM0QsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQWlCMUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQWhDQSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLFdBQU0sR0FBVyxJQUFJLENBQUM7UUFDdEIsYUFBUSxHQUFXLE1BQU0sQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsaUJBQVksR0FBVyxZQUFZLENBQUM7UUFJckMsYUFBUSxHQUFhLENBQUMsSUFBWSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUMsWUFBTyxHQUFhLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxPQUFPLENBQUM7SUFtQnpCLENBQUM7SUFFUSxRQUFRO0lBRWpCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7WUFDN0IsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO1NBQ3REO0lBQ0gsQ0FBQzs4R0F6RFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsNlFBTnBCLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLG9CQUFvQjtnQkFDakMsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLGlEQ1pKLGszQ0E0QlE7OzJGRGRLLG9CQUFvQjtrQkFWaEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEIsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQzt3REFHUSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZUlucHV0Q29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna2ItaW5wdXQtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnNjc3MnLCAnLi8uLi9iYXNlQ29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBJbnB1dFNlbGVjdENvbXBvbmVudCxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0U2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7ICBcclxuICBAT3V0cHV0KCkgc2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RDaGFuZ2VFbnRpdHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXRlbnM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgaXRlbUlkOiBzdHJpbmcgPSBcIklkXCI7XHJcbiAgQElucHV0KCkgaXRlbU5vbWU6IHN0cmluZyA9IFwiTm9tZVwiO1xyXG4gIEBJbnB1dCgpIHNob3dOb3ZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXRlbU51bGw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG9wY2FvRGVmYXVsdDogc3RyaW5nID0gJ1NlbGVjaW9uYXInO1xyXG5cclxuICAvL2NvbnRyb2wgdmFsdWUgYWNlc3NvclxyXG4gIHB1YmxpYyBkYXRhOiBzdHJpbmcgfCBhbnk7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAoZGF0YTogc3RyaW5nKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2g6IEZ1bmN0aW9uID0gKCkgPT4ge307XHJcbiAgcHJpdmF0ZSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjb25zb2xlID0gY29uc29sZTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCd3cml0ZSB2YWx1ZSBzZWxlY3QnLCB2YWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIHRoaXMuZGF0YSA9IHZhbHVlO1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IFxyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBvblNlbGVjdENoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0Q2hhbmdlICE9IG51bGwpIHtcclxuICAgICAgLy9jb25zb2xlLmxvZygnZW1pdCcsIHZhbHVlKTtcclxuICAgICAgdGhpcy5zZWxlY3RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RDaGFuZ2VFbnRpdHkgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBleGlzdGUgPSB0aGlzLml0ZW5zLmZpbmQoaSA9PiBpW3RoaXMuaXRlbUlkXSA9PSB2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0Q2hhbmdlRW50aXR5LmVtaXQoZXhpc3RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQmx1cigpIHtcclxuICAgIC8vY29uc29sZS5sb2coJ2lucHV0IHNlbGVjdCBibHVyJylcclxuICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSk/Lm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS1cclxuPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuLS0+XHJcbjxkaXY+XHJcbiAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgc3R5bGU9XCItLWJhY2tncm91bmQ6IGluaGVyaXRlZDsgLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6IHRyYW5zcGFyZW50O1wiIFtjbGFzc109XCJpdGVtQ2xhc3NcIlxyXG4gICAgW25nQ2xhc3NdPVwiZm9ybT8uZ2V0KGZvcm1Db250cm9sTmFtZSk/LmVycm9ycyAmJiAoZm9ybT8uZ2V0KGZvcm1Db250cm9sTmFtZSk/LmRpcnR5IHx8IGZvcm0/LmdldChmb3JtQ29udHJvbE5hbWUpPy50b3VjaGVkKSA/ICdlcnJvci1zaGFrZScgOiAnJyBcIlxyXG4gICAgPlxyXG4gICAgICA8aW9uLWxhYmVsICpuZ0lmPVwibGFiZWxcIiBbcG9zaXRpb25dPVwibGFiZWxQb3NpdGlvblwiIGNsYXNzPVwiZm9jdXMtbGFiZWxcIj57eyBsYWJlbCB9fTwvaW9uLWxhYmVsPlxyXG4gICAgICA8IS0tIGZvcm1Db250cm9sTmFtZT1cInt7IGZvcm1Db250cm9sTmFtZSB9fVwiICAtLT5cclxuICAgICAgPHNlbGVjdCAjaW5wdXRTZWxlY3RcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIChjaGFuZ2UpPVwib25TZWxlY3RDaGFuZ2UoaW5wdXRTZWxlY3QudmFsdWUpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPlxyXG4gICAgICAgIDxvcHRpb24gKm5nSWY9XCJpdGVtTnVsbFwiIFt2YWx1ZV09XCInJ1wiIHNlbGVjdGVkPnt7IG9wY2FvRGVmYXVsdCB9fTwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbnNcIiBbdmFsdWVdPVwiaXRlbVtpdGVtSWRdXCIgW3NlbGVjdGVkXT1cIml0ZW1baXRlbUlkXSA9PSBkYXRhXCI+e3sgaXRlbVtpdGVtTm9tZV0gfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+ICAgIFxyXG4gICAgPC9pb24taXRlbT5cclxuICBcclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JzXCIgKm5nSWY9XCJmb3JtXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbl9tZXNzYWdlc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZm9ybSAmJiBmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy5oYXNFcnJvcih2YWxpZGF0aW9uLnR5cGUpICYmIChmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgJiM4MjI2OyB7eyB2YWxpZGF0aW9uLm1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gIDwvZGl2PiJdfQ==
|
|
@@ -363,7 +363,7 @@ class InputSelectComponent extends BaseInputComponent {
|
|
|
363
363
|
provide: NG_VALUE_ACCESSOR,
|
|
364
364
|
useExisting: InputSelectComponent,
|
|
365
365
|
multi: true
|
|
366
|
-
}], usesInheritance: true, ngImport: i0, template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --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 *ngIf=\"label\" [position]=\"labelPosition\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" [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>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}
|
|
366
|
+
}], usesInheritance: true, ngImport: i0, template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --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 *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()\" [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>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}select:focus .focus-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] }); }
|
|
367
367
|
}
|
|
368
368
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputSelectComponent, decorators: [{
|
|
369
369
|
type: Component,
|
|
@@ -371,7 +371,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
371
371
|
provide: NG_VALUE_ACCESSOR,
|
|
372
372
|
useExisting: InputSelectComponent,
|
|
373
373
|
multi: true
|
|
374
|
-
}], template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --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 *ngIf=\"label\" [position]=\"labelPosition\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" [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>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}
|
|
374
|
+
}], template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --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 *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()\" [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>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}select:focus .focus-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
|
|
375
375
|
}], ctorParameters: () => [], propDecorators: { selectChange: [{
|
|
376
376
|
type: Output
|
|
377
377
|
}], selectChangeEntity: [{
|
|
@@ -1 +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/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/appproject-components.module.ts","../../../projects/appproject-components/src/public-api.ts","../../../projects/appproject-components/src/appproject-components.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppprojectComponentsService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kb-appproject-components',\n template: `\n <p>\n appproject-components works!\n </p>\n `,\n styles: [\n ]\n})\nexport class AppprojectComponentsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\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 \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, 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-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 //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","<!--\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 <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, EventEmitter, Input, OnInit, Output } 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 //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): 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() { \r\n super();\r\n }\r\n\r\n override ngOnInit() {\r\n \r\n }\r\n\r\n onSelectChange(value: any) {\r\n this.writeValue(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 if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\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\"\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\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" [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, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kb-model-treeview',\n templateUrl: './model-treeview.component.html',\n styleUrls: ['./model-treeview.component.css']\n})\nexport class ModelTreeviewComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<p>model-treeview works!</p>\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Inject, Input, OnInit, 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 @Input() 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\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 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 },\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 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 style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" 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 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 \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, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseInputComponent } from '../baseInputComponent';\n\n@Component({\n selector: 'kb-input-area',\n templateUrl: './input-area.component.html',\n styleUrls: ['./input-area.component.scss', './../baseComponent.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputAreaComponent,\n multi: true\n }]\n})\nexport class InputAreaComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\n @Input() linhas: number = 5;\n \n //control value acessor\n public data: string | any;\n private onChange: Function = (data: string) => {};\n private onTouch: Function = () => {};\n private disabled: boolean = false;\n public console = console;\n\n writeValue(value: string | any): void {\n //console.log('write value', value);\n this.onChange(value);\n this.data = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = this.disabled;\n }\n constructor() { \n super();\n }\n\n override ngOnInit() {}\n\n onBlur() {\n if (this.form) {\n this.form.get(this.formControlName)?.markAsTouched();\n }\n }\n}\n","<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\">\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <ion-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\"></ion-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, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { BaseInputComponent } from '../baseInputComponent';\n\n@Component({\n selector: 'kb-input-cep',\n templateUrl: './input-cep.component.html',\n styleUrls: ['./input-cep.component.scss', './../baseComponent.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputCepComponent,\n multi: true\n }]\n})\nexport class InputCepComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\n\n @Input() formato: string | null = '00000-000';\n @Input() keyEnter: Function | null = null;\n @Input() getResultados: Function | null = null;\n\n //control value acessor\n public data: string | any = null;\n private onChange: Function = (data: string) => { };\n private onTouch: Function = () => { };\n private disabled: boolean = false;\n constructor() {\n super();\n }\n\n writeValue(value: string | any): void {\n //console.log('write value', value);\n this.onChange(value);\n this.data = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = this.disabled;\n }\n\n override ngOnInit(): void {\n }\n\n digitarFormatado(event: any) {\n console.log(event);\n if ((event.keyCode >= 48 && event.keyCode <= 57)\n || (event.keyCode >= 96 && event.keyCode <= 105)\n || (event.keyCode == 8)\n || (event.keyCode == 9)\n || (event.keyCode == 39)\n || (event.keyCode == 37)\n || (event.keyCode == 46)) {\n\n //console.log(this.formControlName, this.form.get(this.formControlName).value);\n\n setTimeout(() => {\n if (this.form) {\n this.form.patchValue({\n [this.formControlName]: this.formataCampoValor(this.form.get(this.formControlName)?.value, this.formato ?? '', event)\n });\n } else {\n this.data = this.formataCampoValor(this.data ?? '', this.formato ?? '', event);\n this.writeValue(this.data);\n }\n }, 100);\n\n return true;\n }\n else {\n return false;\n }\n }\n\n onKeyEnter() {\n if (this.keyEnter != null) {\n this.keyEnter();\n } else {\n if (this.getResultados != null) {\n this.pesquisarClick();\n }\n }\n }\n\n onBlur() {\n if (this.form) {\n this.form.get(this.formControlName)?.markAsTouched();\n }\n if (this.blur) {\n this.blur.emit(this.blurArgs);\n }\n }\n\n formataCampoValor(valor: string, Mascara: string, evento: any) {\n console.log(valor);\n if (!valor)\n return null;\n //console.log(evento);\n\n //if (!this.keypressInteiro(evento))\n // return;\n\n var boleanoMascara;\n\n var Digitato = evento != null ? evento.keyCode : 0;\n let exp = /\\-|\\.|\\/|\\(|\\)| /g\n let campoSoNumeros = valor.replace(exp, \"\");\n\n var posicaoCampo = 0;\n var NovoValorCampo = \"\";\n var TamanhoMascara = campoSoNumeros.length;;\n\n if (Digitato != 8) { // backspace \n for (let i = 0; i <= TamanhoMascara; i++) {\n boleanoMascara = ((Mascara.charAt(i) == \"-\") || (Mascara.charAt(i) == \".\")\n || (Mascara.charAt(i) == \"/\"))\n boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == \"(\")\n || (Mascara.charAt(i) == \")\") || (Mascara.charAt(i) == \" \"))\n if (boleanoMascara) {\n NovoValorCampo += Mascara.charAt(i);\n TamanhoMascara++;\n } else {\n NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);\n posicaoCampo++;\n }\n }\n return NovoValorCampo;\n } else {\n return valor;\n }\n }\n\n pesquisarClick() {\n const cep = this.data;\n //se não estiver informado o cep, não fazer a pesquisa\n if (cep == null || cep == \"\") {\n return;\n }\n\n this.getEnderecoPeloCep(cep).subscribe({\n next: (result) => {\n console.log('result CEP', result);\n\n let cidadePesquisa: string = result.localidade;\n cidadePesquisa = this.converteCaracteresEspeciais(cidadePesquisa.toUpperCase());\n\n if (this.getResultados) {\n this.getResultados(result);\n }\n\n }, error: (error) => {\n\n }\n });\n }\n\n //substituição de caracteres\n converteCaracteresEspeciais(nome: string): string {\n var res = nome.replace(/Ã/g, \"A\");\n res = res.replace(/Á/g, \"A\");\n res = res.replace(/Ç/g, \"C\");\n res = res.replace(/É/g, \"E\");\n res = res.replace(/Â/g, \"A\");\n res = res.replace(/Ô/g, \"O\");\n res = res.replace(/Ó/g, \"O\");\n res = res.replace(/Ú/g, \"U\");\n res = res.replace(/Í/g, \"I\");\n return res;\n }\n\n getEnderecoPeloCep(cep: any): Observable<any> {\n return new Observable((x) => {\n var request = new XMLHttpRequest();\n request.open('get', `https://viacep.com.br/ws/${cep}/json/`, true);\n request.send();\n request.onload = function () {\n var data = JSON.parse(this.response);\n x.next(data)\n }\n })\n }\n}\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 } 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() form: boolean = false;\r\n @Input() showIcon: boolean = false;\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 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","<div style=\"text-align:center;\">\r\n <ion-button style=\"box-shadow: #4c8dff 0px 3px 3px 0.05px\" fill=\"outline\" size=\"normal\" color=\"primary\" \r\n (click)=\"showImageBrowser()\" expand=\"block\">\r\n <ion-icon *ngIf=\"showIcon\" class=\"ion-padding-end\" src=\"/assets/icon/image_primary_24dp.svg\"></ion-icon>\r\n {{ caption }}\r\n </ion-button>\r\n <input type=\"file\" id=\"upimgfile\" name=\"uploadfile\" #inputNome accept=\"image/*\" (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: 'app-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: 'app-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: 'app-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: 'app-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: 'app-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';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseInputComponent } from '../baseInputComponent';\n\n@Component({\n selector: 'kb-input-checkbox',\n templateUrl: './input-checkbox.component.html',\n styleUrls: ['./input-checkbox.component.scss', './../baseComponent.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputCheckboxComponent,\n multi: true\n }]\n})\nexport class InputCheckboxComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\n\n @Input() justify: string = \"start\";\n @Input() labelPlacement: string = \"end\";\n //control value acessor\n public data!: boolean | undefined;\n private onChange: Function = (data: string) => { };\n private onTouch: Function = () => { };\n private disabled: boolean = false;\n public console = console;\n\n writeValue(value?: any): void {\n console.log('write value', value);\n this.onChange(value);\n this.data = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = this.disabled;\n }\n constructor() {\n super();\n }\n\n \n\n override ngOnInit(): void {\n }\n}\n","<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\">\n <ion-checkbox #inputCheck\n [labelPlacement]=\"labelPlacement\" [justify]=\"justify\" \n [disabled]=\"readonly\"\n [checked]=\"data\"\n (ionChange)=\"writeValue(inputCheck.checked)\">\n {{ label }}\n </ion-checkbox>\n </ion-item>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseInputComponent } from '../baseInputComponent';\n\n@Component({\n selector: 'kb-input-radio',\n templateUrl: './input-radio.component.html',\n styleUrls: ['./input-radio.component.scss', './../baseComponent.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputRadioComponent,\n multi: true\n }]\n})\nexport class InputRadioComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\n @Input() itens: any[] = [];\n @Input() itemId: string = \"Id\";\n @Input() itemNome: string = \"Nome\";\n @Input() color: string = \"primary\";\n //control value acessor\n public data!: string | undefined;\n private onChange: Function = (data: string) => { };\n private onTouch: Function = () => { };\n private disabled: boolean = false;\n public console = console;\n\n writeValue(value?: any): void {\n //console.log('write value', value);\n this.onChange(value);\n this.data = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = this.disabled;\n }\n constructor() {\n super();\n }\n\n override ngOnInit(): void {\n }\n\n\n}\n","<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\"\n [style.opacity]=\"readonly ? '0.5' : '1'\">\n <ion-radio-group [disabled]=\"readonly\" #inputRadio \n [value]=\"data\"\n (ionChange)=\"writeValue(inputRadio.value)\">\n <span style=\"font-size: 13px\">\n {{ label }}\n </span>\n <ion-row>\n <ion-col *ngFor=\"let item of itens\">\n <ion-radio style=\"margin-right: 12px;\" [color]=\"color\" \n labelPlacement=\"end\" \n justify=\"start\"\n [value]=\"item[itemId]\">\n {{ item[itemNome] }}</ion-radio><br />\n </ion-col>\n </ion-row>\n </ion-radio-group>\n </ion-item>\n</div>","import { Component, Input, NgZone, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseModel, HtmlRow } from 'appproject-lib';\n\n@Component({\n selector: 'kb-entity-edit',\n //standalone: true,\n templateUrl: './entity-edit.component.html',\n styleUrl: './entity-edit.component.scss'\n})\nexport class EntityEditComponent<T extends BaseModel> implements OnInit {\n @Input() entidade: T; \n //entidade: any;\n /**\n * Vai receber montado do base cadastro\n */\n @Input() campos: HtmlRow[]; \n @Input() entidadeForm: FormGroup;\n @Input() validation_messages: any;\n constructor(private ngZone: NgZone) { \n \n }\n\n ngOnInit() {\n //this.getEntidadeCampos();\n }\n\n getEntidadeCampos() {\n //this.entidade = new this.entidadeTipo();\n \n // console.log(this.entidade);\n // this.ngZone.run(() => \n // this.campos = this.entidade.getHtmlForm()\n // );\n // console.log(this.campos);\n }\n\n emptyHandler() {\n \n }\n}\n","<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\n\n\n <ion-row *ngFor=\"let linha of campos\">\n <ng-container *ngFor=\"let campo of linha.Linha\">\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\">\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" placeholder=\"{{campo.Label ??campo.Nome}}...\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [type]=\"campo.TipoInput ?? 'text'\" \n [showSeePassword]=\"campo.TipoInput == 'password'\">\n </kb-input-text>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\">\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" placeholder=\"{{campo.Label ?? campo.Nome}}...\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\">\n </kb-input-area>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\">\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\">\n </kb-input-cep>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\">\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\">\n </kb-input-valor>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\">\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"''\">\n </kb-input-format>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\">\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\">\n\n </kb-input-checkbox>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\">\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\"\n [itemNome]=\"campo.ItemNome\" [validation_messages]=\"validation_messages[campo.Nome]\"\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\">\n </kb-input-select>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\">\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\">\n </kb-input-radio>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\">\n <kb-input-pesquisa #pesquisaCentroCustoPai [label]=\"campo.Label ?? campo.Nome\" [campoId]=\"campo.ItemId\"\n [formControlName]=\"campo.Nome\" placeholder=\"Pesquisar...\" [campoDisplay]=\"'Nome'\" [form]=\"entidadeForm\"\n tipo=\"Empresa\" urlItem=\"Empresa/<<ID>>\" max=\"50\" [url]=\"campo.UrlPesquisa\" [readonly]=\"campo.ReadOnly\"\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\">\n </kb-input-pesquisa>\n </ion-col>\n\n\n\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\n\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\n <ion-list lines=\"none\" class=\"ion-no-padding\">\n <ion-list-header color=\"primary\">\n <ion-label>{{ campo.Label }}</ion-label>\n </ion-list-header>\n </ion-list>\n </ion-col>\n </ng-container>\n </ion-row>\n\n <!--\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Totalizador</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\n </ion-item>\n </ion-col>\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Inativo</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\n </ion-item>\n </ion-col>\n -->\n</form>","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 { 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\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 ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IonicModule,\r\n ReactiveFormsModule\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 ],\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\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","i3","i4.InputTextComponent","i5.InputFormatComponent","i6.InputSelectComponent","i7.InputPesquisaComponent","i8.InputValorComponent","i9.InputAreaComponent","i10.InputCepComponent","i11.InputCheckboxComponent","i12.InputRadioComponent"],"mappings":"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"}
|
|
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/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/appproject-components.module.ts","../../../projects/appproject-components/src/public-api.ts","../../../projects/appproject-components/src/appproject-components.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppprojectComponentsService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kb-appproject-components',\n template: `\n <p>\n appproject-components works!\n </p>\n `,\n styles: [\n ]\n})\nexport class AppprojectComponentsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\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 \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, 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-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 //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","<!--\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 <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, EventEmitter, Input, OnInit, Output } 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 //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): 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() { \r\n super();\r\n }\r\n\r\n override ngOnInit() {\r\n \r\n }\r\n\r\n onSelectChange(value: any) {\r\n this.writeValue(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 if (this.form) {\r\n this.form.get(this.formControlName)?.markAsTouched();\r\n }\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\"\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()\" [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, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kb-model-treeview',\n templateUrl: './model-treeview.component.html',\n styleUrls: ['./model-treeview.component.css']\n})\nexport class ModelTreeviewComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<p>model-treeview works!</p>\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Inject, Input, OnInit, 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 @Input() 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\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 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 },\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 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 style=\"margin-top: 25px; margin-inline-start: 4px !important; --padding-start:2px; --padding-end: 2px;\" 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 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 \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, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseInputComponent } from '../baseInputComponent';\n\n@Component({\n selector: 'kb-input-area',\n templateUrl: './input-area.component.html',\n styleUrls: ['./input-area.component.scss', './../baseComponent.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputAreaComponent,\n multi: true\n }]\n})\nexport class InputAreaComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\n @Input() linhas: number = 5;\n \n //control value acessor\n public data: string | any;\n private onChange: Function = (data: string) => {};\n private onTouch: Function = () => {};\n private disabled: boolean = false;\n public console = console;\n\n writeValue(value: string | any): void {\n //console.log('write value', value);\n this.onChange(value);\n this.data = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = this.disabled;\n }\n constructor() { \n super();\n }\n\n override ngOnInit() {}\n\n onBlur() {\n if (this.form) {\n this.form.get(this.formControlName)?.markAsTouched();\n }\n }\n}\n","<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\">\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <ion-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\"></ion-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, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { BaseInputComponent } from '../baseInputComponent';\n\n@Component({\n selector: 'kb-input-cep',\n templateUrl: './input-cep.component.html',\n styleUrls: ['./input-cep.component.scss', './../baseComponent.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputCepComponent,\n multi: true\n }]\n})\nexport class InputCepComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\n\n @Input() formato: string | null = '00000-000';\n @Input() keyEnter: Function | null = null;\n @Input() getResultados: Function | null = null;\n\n //control value acessor\n public data: string | any = null;\n private onChange: Function = (data: string) => { };\n private onTouch: Function = () => { };\n private disabled: boolean = false;\n constructor() {\n super();\n }\n\n writeValue(value: string | any): void {\n //console.log('write value', value);\n this.onChange(value);\n this.data = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = this.disabled;\n }\n\n override ngOnInit(): void {\n }\n\n digitarFormatado(event: any) {\n console.log(event);\n if ((event.keyCode >= 48 && event.keyCode <= 57)\n || (event.keyCode >= 96 && event.keyCode <= 105)\n || (event.keyCode == 8)\n || (event.keyCode == 9)\n || (event.keyCode == 39)\n || (event.keyCode == 37)\n || (event.keyCode == 46)) {\n\n //console.log(this.formControlName, this.form.get(this.formControlName).value);\n\n setTimeout(() => {\n if (this.form) {\n this.form.patchValue({\n [this.formControlName]: this.formataCampoValor(this.form.get(this.formControlName)?.value, this.formato ?? '', event)\n });\n } else {\n this.data = this.formataCampoValor(this.data ?? '', this.formato ?? '', event);\n this.writeValue(this.data);\n }\n }, 100);\n\n return true;\n }\n else {\n return false;\n }\n }\n\n onKeyEnter() {\n if (this.keyEnter != null) {\n this.keyEnter();\n } else {\n if (this.getResultados != null) {\n this.pesquisarClick();\n }\n }\n }\n\n onBlur() {\n if (this.form) {\n this.form.get(this.formControlName)?.markAsTouched();\n }\n if (this.blur) {\n this.blur.emit(this.blurArgs);\n }\n }\n\n formataCampoValor(valor: string, Mascara: string, evento: any) {\n console.log(valor);\n if (!valor)\n return null;\n //console.log(evento);\n\n //if (!this.keypressInteiro(evento))\n // return;\n\n var boleanoMascara;\n\n var Digitato = evento != null ? evento.keyCode : 0;\n let exp = /\\-|\\.|\\/|\\(|\\)| /g\n let campoSoNumeros = valor.replace(exp, \"\");\n\n var posicaoCampo = 0;\n var NovoValorCampo = \"\";\n var TamanhoMascara = campoSoNumeros.length;;\n\n if (Digitato != 8) { // backspace \n for (let i = 0; i <= TamanhoMascara; i++) {\n boleanoMascara = ((Mascara.charAt(i) == \"-\") || (Mascara.charAt(i) == \".\")\n || (Mascara.charAt(i) == \"/\"))\n boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == \"(\")\n || (Mascara.charAt(i) == \")\") || (Mascara.charAt(i) == \" \"))\n if (boleanoMascara) {\n NovoValorCampo += Mascara.charAt(i);\n TamanhoMascara++;\n } else {\n NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);\n posicaoCampo++;\n }\n }\n return NovoValorCampo;\n } else {\n return valor;\n }\n }\n\n pesquisarClick() {\n const cep = this.data;\n //se não estiver informado o cep, não fazer a pesquisa\n if (cep == null || cep == \"\") {\n return;\n }\n\n this.getEnderecoPeloCep(cep).subscribe({\n next: (result) => {\n console.log('result CEP', result);\n\n let cidadePesquisa: string = result.localidade;\n cidadePesquisa = this.converteCaracteresEspeciais(cidadePesquisa.toUpperCase());\n\n if (this.getResultados) {\n this.getResultados(result);\n }\n\n }, error: (error) => {\n\n }\n });\n }\n\n //substituição de caracteres\n converteCaracteresEspeciais(nome: string): string {\n var res = nome.replace(/Ã/g, \"A\");\n res = res.replace(/Á/g, \"A\");\n res = res.replace(/Ç/g, \"C\");\n res = res.replace(/É/g, \"E\");\n res = res.replace(/Â/g, \"A\");\n res = res.replace(/Ô/g, \"O\");\n res = res.replace(/Ó/g, \"O\");\n res = res.replace(/Ú/g, \"U\");\n res = res.replace(/Í/g, \"I\");\n return res;\n }\n\n getEnderecoPeloCep(cep: any): Observable<any> {\n return new Observable((x) => {\n var request = new XMLHttpRequest();\n request.open('get', `https://viacep.com.br/ws/${cep}/json/`, true);\n request.send();\n request.onload = function () {\n var data = JSON.parse(this.response);\n x.next(data)\n }\n })\n }\n}\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 } 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() form: boolean = false;\r\n @Input() showIcon: boolean = false;\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 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","<div style=\"text-align:center;\">\r\n <ion-button style=\"box-shadow: #4c8dff 0px 3px 3px 0.05px\" fill=\"outline\" size=\"normal\" color=\"primary\" \r\n (click)=\"showImageBrowser()\" expand=\"block\">\r\n <ion-icon *ngIf=\"showIcon\" class=\"ion-padding-end\" src=\"/assets/icon/image_primary_24dp.svg\"></ion-icon>\r\n {{ caption }}\r\n </ion-button>\r\n <input type=\"file\" id=\"upimgfile\" name=\"uploadfile\" #inputNome accept=\"image/*\" (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: 'app-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: 'app-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: 'app-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: 'app-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: 'app-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';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseInputComponent } from '../baseInputComponent';\n\n@Component({\n selector: 'kb-input-checkbox',\n templateUrl: './input-checkbox.component.html',\n styleUrls: ['./input-checkbox.component.scss', './../baseComponent.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputCheckboxComponent,\n multi: true\n }]\n})\nexport class InputCheckboxComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\n\n @Input() justify: string = \"start\";\n @Input() labelPlacement: string = \"end\";\n //control value acessor\n public data!: boolean | undefined;\n private onChange: Function = (data: string) => { };\n private onTouch: Function = () => { };\n private disabled: boolean = false;\n public console = console;\n\n writeValue(value?: any): void {\n console.log('write value', value);\n this.onChange(value);\n this.data = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = this.disabled;\n }\n constructor() {\n super();\n }\n\n \n\n override ngOnInit(): void {\n }\n}\n","<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\">\n <ion-checkbox #inputCheck\n [labelPlacement]=\"labelPlacement\" [justify]=\"justify\" \n [disabled]=\"readonly\"\n [checked]=\"data\"\n (ionChange)=\"writeValue(inputCheck.checked)\">\n {{ label }}\n </ion-checkbox>\n </ion-item>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseInputComponent } from '../baseInputComponent';\n\n@Component({\n selector: 'kb-input-radio',\n templateUrl: './input-radio.component.html',\n styleUrls: ['./input-radio.component.scss', './../baseComponent.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputRadioComponent,\n multi: true\n }]\n})\nexport class InputRadioComponent extends BaseInputComponent implements OnInit, ControlValueAccessor {\n @Input() itens: any[] = [];\n @Input() itemId: string = \"Id\";\n @Input() itemNome: string = \"Nome\";\n @Input() color: string = \"primary\";\n //control value acessor\n public data!: string | undefined;\n private onChange: Function = (data: string) => { };\n private onTouch: Function = () => { };\n private disabled: boolean = false;\n public console = console;\n\n writeValue(value?: any): void {\n //console.log('write value', value);\n this.onChange(value);\n this.data = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = this.disabled;\n }\n constructor() {\n super();\n }\n\n override ngOnInit(): void {\n }\n\n\n}\n","<div>\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent; padding-right: 0px;\" [class]=\"itemClass\"\n [style.opacity]=\"readonly ? '0.5' : '1'\">\n <ion-radio-group [disabled]=\"readonly\" #inputRadio \n [value]=\"data\"\n (ionChange)=\"writeValue(inputRadio.value)\">\n <span style=\"font-size: 13px\">\n {{ label }}\n </span>\n <ion-row>\n <ion-col *ngFor=\"let item of itens\">\n <ion-radio style=\"margin-right: 12px;\" [color]=\"color\" \n labelPlacement=\"end\" \n justify=\"start\"\n [value]=\"item[itemId]\">\n {{ item[itemNome] }}</ion-radio><br />\n </ion-col>\n </ion-row>\n </ion-radio-group>\n </ion-item>\n</div>","import { Component, Input, NgZone, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseModel, HtmlRow } from 'appproject-lib';\n\n@Component({\n selector: 'kb-entity-edit',\n //standalone: true,\n templateUrl: './entity-edit.component.html',\n styleUrl: './entity-edit.component.scss'\n})\nexport class EntityEditComponent<T extends BaseModel> implements OnInit {\n @Input() entidade: T; \n //entidade: any;\n /**\n * Vai receber montado do base cadastro\n */\n @Input() campos: HtmlRow[]; \n @Input() entidadeForm: FormGroup;\n @Input() validation_messages: any;\n constructor(private ngZone: NgZone) { \n \n }\n\n ngOnInit() {\n //this.getEntidadeCampos();\n }\n\n getEntidadeCampos() {\n //this.entidade = new this.entidadeTipo();\n \n // console.log(this.entidade);\n // this.ngZone.run(() => \n // this.campos = this.entidade.getHtmlForm()\n // );\n // console.log(this.campos);\n }\n\n emptyHandler() {\n \n }\n}\n","<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\n\n\n <ion-row *ngFor=\"let linha of campos\">\n <ng-container *ngFor=\"let campo of linha.Linha\">\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\">\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" placeholder=\"{{campo.Label ??campo.Nome}}...\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [type]=\"campo.TipoInput ?? 'text'\" \n [showSeePassword]=\"campo.TipoInput == 'password'\">\n </kb-input-text>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\">\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" placeholder=\"{{campo.Label ?? campo.Nome}}...\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\">\n </kb-input-area>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\">\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\">\n </kb-input-cep>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\">\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\">\n </kb-input-valor>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\">\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"''\">\n </kb-input-format>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\">\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\">\n\n </kb-input-checkbox>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\">\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\"\n [itemNome]=\"campo.ItemNome\" [validation_messages]=\"validation_messages[campo.Nome]\"\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\">\n </kb-input-select>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\">\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\">\n </kb-input-radio>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\">\n <kb-input-pesquisa #pesquisaCentroCustoPai [label]=\"campo.Label ?? campo.Nome\" [campoId]=\"campo.ItemId\"\n [formControlName]=\"campo.Nome\" placeholder=\"Pesquisar...\" [campoDisplay]=\"'Nome'\" [form]=\"entidadeForm\"\n tipo=\"Empresa\" urlItem=\"Empresa/<<ID>>\" max=\"50\" [url]=\"campo.UrlPesquisa\" [readonly]=\"campo.ReadOnly\"\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\">\n </kb-input-pesquisa>\n </ion-col>\n\n\n\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\n\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\n <ion-list lines=\"none\" class=\"ion-no-padding\">\n <ion-list-header color=\"primary\">\n <ion-label>{{ campo.Label }}</ion-label>\n </ion-list-header>\n </ion-list>\n </ion-col>\n </ng-container>\n </ion-row>\n\n <!--\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Totalizador</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\n </ion-item>\n </ion-col>\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Inativo</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\n </ion-item>\n </ion-col>\n -->\n</form>","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 { 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\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 ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IonicModule,\r\n ReactiveFormsModule\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 ],\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\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","i3","i4.InputTextComponent","i5.InputFormatComponent","i6.InputSelectComponent","i7.InputPesquisaComponent","i8.InputValorComponent","i9.InputAreaComponent","i10.InputCepComponent","i11.InputCheckboxComponent","i12.InputRadioComponent"],"mappings":"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"}
|