lib-portal-angular 0.0.58 → 0.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/components.module.mjs +27 -5
- package/esm2022/lib/components/imput/input.component.mjs +126 -52
- package/esm2022/lib/components/tab/tab.component.mjs +65 -0
- package/esm2022/lib/directive/cep-mask.directive.mjs +49 -0
- package/esm2022/lib/directive/cnpj-mask.directive.mjs +53 -0
- package/esm2022/lib/directive/cpf-mask.directive.mjs +52 -0
- package/esm2022/public-api.mjs +7 -1
- package/fesm2022/lib-portal-angular.mjs +411 -113
- package/fesm2022/lib-portal-angular.mjs.map +1 -1
- package/lib/components/components.module.d.ts +16 -12
- package/lib/components/imput/input.component.d.ts +16 -1
- package/lib/components/tab/tab.component.d.ts +21 -0
- package/lib/directive/cep-mask.directive.d.ts +12 -0
- package/lib/directive/cnpj-mask.directive.d.ts +12 -0
- package/lib/directive/cpf-mask.directive.d.ts +12 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
| @@ -1,21 +1,114 @@ | |
| 1 1 | 
             
            import * as i0 from '@angular/core';
         | 
| 2 | 
            -
            import { EventEmitter, Component, Input, Output,  | 
| 2 | 
            +
            import { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, HostListener, forwardRef, ViewChild, Directive, NgModule, createComponent } from '@angular/core';
         | 
| 3 | 
            +
            import * as i2 from '@angular/common';
         | 
| 4 | 
            +
            import { CommonModule } from '@angular/common';
         | 
| 3 5 | 
             
            import * as i1 from 'lucide-angular';
         | 
| 4 6 | 
             
            import { LucideAngularModule, icons } from 'lucide-angular';
         | 
| 5 | 
            -
            import * as i1$1 from '@angular/common';
         | 
| 6 | 
            -
            import { CommonModule } from '@angular/common';
         | 
| 7 7 | 
             
            import * as i4 from '@angular/forms';
         | 
| 8 8 | 
             
            import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
         | 
| 9 9 | 
             
            import hljs from 'highlight.js';
         | 
| 10 | 
            -
            import * as i1$ | 
| 10 | 
            +
            import * as i1$1 from '@ng-bootstrap/ng-bootstrap';
         | 
| 11 11 | 
             
            import { Subject, of, Subscription, Observable } from 'rxjs';
         | 
| 12 12 | 
             
            import { debounceTime, startWith, switchMap, map, catchError, takeUntil } from 'rxjs/operators';
         | 
| 13 | 
            -
            import * as i2 from '@angular/common/http';
         | 
| 13 | 
            +
            import * as i2$1 from '@angular/common/http';
         | 
| 14 14 | 
             
            import { HttpParams } from '@angular/common/http';
         | 
| 15 15 | 
             
            import * as i5 from '@ng-select/ng-select';
         | 
| 16 16 | 
             
            import { NgSelectModule } from '@ng-select/ng-select';
         | 
| 17 17 | 
             
            import * as CryptoJS from 'crypto-js';
         | 
| 18 18 |  | 
| 19 | 
            +
            class AuthService {
         | 
| 20 | 
            +
                constructor() {
         | 
| 21 | 
            +
                    this.userRoles = [];
         | 
| 22 | 
            +
                    this.loadUserRoles();
         | 
| 23 | 
            +
                }
         | 
| 24 | 
            +
                loadUserRoles() {
         | 
| 25 | 
            +
                    const storedUser = localStorage.getItem('user');
         | 
| 26 | 
            +
                    if (!storedUser) {
         | 
| 27 | 
            +
                        throw new Error('User not found in localStorage');
         | 
| 28 | 
            +
                    }
         | 
| 29 | 
            +
                    const { role } = JSON.parse(storedUser);
         | 
| 30 | 
            +
                    if (!role || !Array.isArray(role)) {
         | 
| 31 | 
            +
                        throw new Error('Roles not found or invalid in localStorage');
         | 
| 32 | 
            +
                    }
         | 
| 33 | 
            +
                    this.userRoles = role.map((r) => r.toString());
         | 
| 34 | 
            +
                }
         | 
| 35 | 
            +
                hasPermission(requiredPermissions) {
         | 
| 36 | 
            +
                    if (this.userRoles.length === 0) {
         | 
| 37 | 
            +
                        throw new Error('No roles found for the user');
         | 
| 38 | 
            +
                    }
         | 
| 39 | 
            +
                    return requiredPermissions.every(permission => this.userRoles.includes(permission));
         | 
| 40 | 
            +
                }
         | 
| 41 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 42 | 
            +
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, providedIn: 'root' }); }
         | 
| 43 | 
            +
            }
         | 
| 44 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, decorators: [{
         | 
| 45 | 
            +
                        type: Injectable,
         | 
| 46 | 
            +
                        args: [{
         | 
| 47 | 
            +
                                providedIn: 'root'
         | 
| 48 | 
            +
                            }]
         | 
| 49 | 
            +
                    }], ctorParameters: function () { return []; } });
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            class TabComponent {
         | 
| 52 | 
            +
                constructor(authService) {
         | 
| 53 | 
            +
                    this.authService = authService;
         | 
| 54 | 
            +
                    this.tabs = [];
         | 
| 55 | 
            +
                    this.activeTabIndex = 0;
         | 
| 56 | 
            +
                    this.tabChanged = new EventEmitter();
         | 
| 57 | 
            +
                }
         | 
| 58 | 
            +
                ngOnInit() {
         | 
| 59 | 
            +
                    if (this.hasComponentPermission() && this.tabs.length > 0) {
         | 
| 60 | 
            +
                        this.selectTab(this.activeTabIndex);
         | 
| 61 | 
            +
                    }
         | 
| 62 | 
            +
                }
         | 
| 63 | 
            +
                selectTab(index, event) {
         | 
| 64 | 
            +
                    if (event) {
         | 
| 65 | 
            +
                        event.preventDefault(); // Impede o comportamento padrão do link
         | 
| 66 | 
            +
                    }
         | 
| 67 | 
            +
                    if (this.hasPermission(this.tabs[index].permissions)) {
         | 
| 68 | 
            +
                        this.activeTabIndex = index;
         | 
| 69 | 
            +
                        this.tabChanged.emit(this.activeTabIndex);
         | 
| 70 | 
            +
                    }
         | 
| 71 | 
            +
                }
         | 
| 72 | 
            +
                hasPermission(requiredPermissions) {
         | 
| 73 | 
            +
                    if (!requiredPermissions || requiredPermissions.length === 0) {
         | 
| 74 | 
            +
                        return true;
         | 
| 75 | 
            +
                    }
         | 
| 76 | 
            +
                    try {
         | 
| 77 | 
            +
                        return this.authService.hasPermission(requiredPermissions);
         | 
| 78 | 
            +
                    }
         | 
| 79 | 
            +
                    catch (error) {
         | 
| 80 | 
            +
                        console.error('Permission error:', error);
         | 
| 81 | 
            +
                        return false;
         | 
| 82 | 
            +
                    }
         | 
| 83 | 
            +
                }
         | 
| 84 | 
            +
                hasComponentPermission() {
         | 
| 85 | 
            +
                    if (!this.componentPermissions || this.componentPermissions.length === 0) {
         | 
| 86 | 
            +
                        return true; // Se não há permissões necessárias, permite por padrão
         | 
| 87 | 
            +
                    }
         | 
| 88 | 
            +
                    try {
         | 
| 89 | 
            +
                        return this.authService.hasPermission(this.componentPermissions);
         | 
| 90 | 
            +
                    }
         | 
| 91 | 
            +
                    catch (error) {
         | 
| 92 | 
            +
                        console.error('Permission error:', error);
         | 
| 93 | 
            +
                        return false;
         | 
| 94 | 
            +
                    }
         | 
| 95 | 
            +
                }
         | 
| 96 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 97 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TabComponent, selector: "argenta-tab", inputs: { tabs: "tabs", activeTabIndex: "activeTabIndex", componentPermissions: "componentPermissions" }, outputs: { tabChanged: "tabChanged" }, ngImport: i0, template: "<ng-container *ngIf=\"hasComponentPermission()\">\n  <ul class=\"nav nav-tabs\">\n    <ng-container *ngFor=\"let tab of tabs; let i = index\">\n      <li class=\"nav-item\" *ngIf=\"hasPermission(tab.permissions)\">\n        <a\n          class=\"nav-link\"\n          [class.active]=\"i === activeTabIndex\"\n          (click)=\"selectTab(i, $event)\"\n          href=\"#\"\n          >{{ tab.label }}</a\n        >\n      </li>\n    </ng-container>\n  </ul>\n  <div class=\"tab-content\">\n    <div\n      *ngFor=\"let tab of tabs; let i = index\"\n      class=\"tab-pane fade\"\n      [ngClass]=\"{ 'show active': i === activeTabIndex }\"\n    >\n      <ng-container *ngTemplateOutlet=\"tab.content\"></ng-container>\n    </div>\n  </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.nav-tabs .nav-item .nav-link{cursor:pointer;font-family:Inter,Arial,sans-serif;border-top-left-radius:.3rem;border-top-right-radius:.3rem;font-size:14px;color:#00444c;border:1px solid #ddd;transition:background-color .3s ease,color .3s ease}.nav-tabs .nav-item .nav-link.active{background-color:#00444c;color:#fff;border-color:transparent}.nav-tabs .nav-item .nav-link:hover{background-color:#2ca58d;color:#fff}.tab-content .tab-pane{padding:1rem;border:1px solid #ddd;border-top:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 98 | 
            +
            }
         | 
| 99 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabComponent, decorators: [{
         | 
| 100 | 
            +
                        type: Component,
         | 
| 101 | 
            +
                        args: [{ selector: 'argenta-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"hasComponentPermission()\">\n  <ul class=\"nav nav-tabs\">\n    <ng-container *ngFor=\"let tab of tabs; let i = index\">\n      <li class=\"nav-item\" *ngIf=\"hasPermission(tab.permissions)\">\n        <a\n          class=\"nav-link\"\n          [class.active]=\"i === activeTabIndex\"\n          (click)=\"selectTab(i, $event)\"\n          href=\"#\"\n          >{{ tab.label }}</a\n        >\n      </li>\n    </ng-container>\n  </ul>\n  <div class=\"tab-content\">\n    <div\n      *ngFor=\"let tab of tabs; let i = index\"\n      class=\"tab-pane fade\"\n      [ngClass]=\"{ 'show active': i === activeTabIndex }\"\n    >\n      <ng-container *ngTemplateOutlet=\"tab.content\"></ng-container>\n    </div>\n  </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.nav-tabs .nav-item .nav-link{cursor:pointer;font-family:Inter,Arial,sans-serif;border-top-left-radius:.3rem;border-top-right-radius:.3rem;font-size:14px;color:#00444c;border:1px solid #ddd;transition:background-color .3s ease,color .3s ease}.nav-tabs .nav-item .nav-link.active{background-color:#00444c;color:#fff;border-color:transparent}.nav-tabs .nav-item .nav-link:hover{background-color:#2ca58d;color:#fff}.tab-content .tab-pane{padding:1rem;border:1px solid #ddd;border-top:none}\n"] }]
         | 
| 102 | 
            +
                    }], ctorParameters: function () { return [{ type: AuthService }]; }, propDecorators: { tabs: [{
         | 
| 103 | 
            +
                            type: Input
         | 
| 104 | 
            +
                        }], activeTabIndex: [{
         | 
| 105 | 
            +
                            type: Input
         | 
| 106 | 
            +
                        }], componentPermissions: [{
         | 
| 107 | 
            +
                            type: Input
         | 
| 108 | 
            +
                        }], tabChanged: [{
         | 
| 109 | 
            +
                            type: Output
         | 
| 110 | 
            +
                        }] } });
         | 
| 111 | 
            +
             | 
| 19 112 | 
             
            class SearchCustomerComponent {
         | 
| 20 113 | 
             
                constructor() {
         | 
| 21 114 | 
             
                    // Inputs
         | 
| @@ -51,38 +144,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 51 144 | 
             
                            type: Output
         | 
| 52 145 | 
             
                        }] } });
         | 
| 53 146 |  | 
| 54 | 
            -
            class AuthService {
         | 
| 55 | 
            -
                constructor() {
         | 
| 56 | 
            -
                    this.userRoles = [];
         | 
| 57 | 
            -
                    this.loadUserRoles();
         | 
| 58 | 
            -
                }
         | 
| 59 | 
            -
                loadUserRoles() {
         | 
| 60 | 
            -
                    const storedUser = localStorage.getItem('user');
         | 
| 61 | 
            -
                    if (!storedUser) {
         | 
| 62 | 
            -
                        throw new Error('User not found in localStorage');
         | 
| 63 | 
            -
                    }
         | 
| 64 | 
            -
                    const { role } = JSON.parse(storedUser);
         | 
| 65 | 
            -
                    if (!role || !Array.isArray(role)) {
         | 
| 66 | 
            -
                        throw new Error('Roles not found or invalid in localStorage');
         | 
| 67 | 
            -
                    }
         | 
| 68 | 
            -
                    this.userRoles = role.map((r) => r.toString());
         | 
| 69 | 
            -
                }
         | 
| 70 | 
            -
                hasPermission(requiredPermissions) {
         | 
| 71 | 
            -
                    if (this.userRoles.length === 0) {
         | 
| 72 | 
            -
                        throw new Error('No roles found for the user');
         | 
| 73 | 
            -
                    }
         | 
| 74 | 
            -
                    return requiredPermissions.every(permission => this.userRoles.includes(permission));
         | 
| 75 | 
            -
                }
         | 
| 76 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 77 | 
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, providedIn: 'root' }); }
         | 
| 78 | 
            -
            }
         | 
| 79 | 
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, decorators: [{
         | 
| 80 | 
            -
                        type: Injectable,
         | 
| 81 | 
            -
                        args: [{
         | 
| 82 | 
            -
                                providedIn: 'root'
         | 
| 83 | 
            -
                            }]
         | 
| 84 | 
            -
                    }], ctorParameters: function () { return []; } });
         | 
| 85 | 
            -
             | 
| 86 147 | 
             
            class CustomSwitchComponent {
         | 
| 87 148 | 
             
                constructor(authService) {
         | 
| 88 149 | 
             
                    this.authService = authService;
         | 
| @@ -113,7 +174,7 @@ class CustomSwitchComponent { | |
| 113 174 | 
             
                    }
         | 
| 114 175 | 
             
                }
         | 
| 115 176 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomSwitchComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 116 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomSwitchComponent, selector: "argenta-custom-switch", inputs: { checked: "checked", label: "label", permissions: "permissions" }, outputs: { switchChange: "switchChange" }, ngImport: i0, template: "<ng-container *ngIf=\"hasPermission()\">\n  <div class=\"form-check form-switch\">\n    <input \n      class=\"form-check-input\" \n      type=\"checkbox\" \n      [checked]=\"checked\" \n      (change)=\"toggleSwitch()\" \n      id=\"flexSwitchCheckDefault\" \n    />\n    <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n      {{ label }}\n    </label>\n  </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:60px;height:34px;margin-right:10px;cursor:pointer;position:relative;appearance:none;background-color:#e5e5e5;border:2px solid #00444C;border-radius:34px;outline:none;transition:background-color .3s,border-color .3s}.form-check-input:focus{outline:none;box-shadow:none}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:before{content:\"\";position:absolute;width:26px;height:26px;background-color:#00444c;border-radius:50%;top:3px;left:3px;transition:transform .3s,background-color .3s}.form-check-input:checked:before{transform:translate(26px);background-color:#fff}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"], dependencies: [{ kind: "directive", type:  | 
| 177 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomSwitchComponent, selector: "argenta-custom-switch", inputs: { checked: "checked", label: "label", permissions: "permissions" }, outputs: { switchChange: "switchChange" }, ngImport: i0, template: "<ng-container *ngIf=\"hasPermission()\">\n  <div class=\"form-check form-switch\">\n    <input \n      class=\"form-check-input\" \n      type=\"checkbox\" \n      [checked]=\"checked\" \n      (change)=\"toggleSwitch()\" \n      id=\"flexSwitchCheckDefault\" \n    />\n    <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n      {{ label }}\n    </label>\n  </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:60px;height:34px;margin-right:10px;cursor:pointer;position:relative;appearance:none;background-color:#e5e5e5;border:2px solid #00444C;border-radius:34px;outline:none;transition:background-color .3s,border-color .3s}.form-check-input:focus{outline:none;box-shadow:none}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:before{content:\"\";position:absolute;width:26px;height:26px;background-color:#00444c;border-radius:50%;top:3px;left:3px;transition:transform .3s,background-color .3s}.form-check-input:checked:before{transform:translate(26px);background-color:#fff}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 117 178 | 
             
            }
         | 
| 118 179 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomSwitchComponent, decorators: [{
         | 
| 119 180 | 
             
                        type: Component,
         | 
| @@ -199,7 +260,7 @@ class AlertComponent { | |
| 199 260 | 
             
                    }, 2000); // Fechar após 2 segundos
         | 
| 200 261 | 
             
                }
         | 
| 201 262 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 202 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AlertComponent, selector: "lib-alert", inputs: { alerts: "alerts" }, ngImport: i0, template: "<div *ngFor=\"let alert of alerts\" \n     [ngClass]=\"getAlertClass(alert)\" \n     role=\"alert\" \n     [id]=\"'alert-' + alert.message\"\n     (mouseenter)=\"onMouseEnter(alert)\" \n     (mouseleave)=\"onMouseLeave(alert)\">\n  <button type=\"button\" class=\"close\" (click)=\"closeAlert(alert)\" aria-label=\"Close\">\n    <span aria-hidden=\"true\">×</span>\n  </button>\n  <div class=\"alert-header\">\n    <span [ngClass]=\"getAlertIconClass(alert)\" class=\"alert-icon\"></span>\n    <strong>{{ alert.title }}</strong>\n  </div>\n  <div class=\"alert-body\">\n    {{ alert.message }}\n  </div>\n</div>\n", styles: ["@charset \"UTF-8\";.alert-container{position:fixed;top:20px;right:20px;max-width:400px;margin:10px auto;padding:15px;border-radius:4px;background-color:#f8d7da;color:#721c24;word-wrap:break-word;opacity:0;transform:translateY(-20px);transition:opacity .5s ease,transform .5s ease;display:flex;flex-direction:column;align-items:flex-start;z-index:9999}.alert-container.show{opacity:1;transform:translateY(0)}.alert-container .close{position:absolute;top:10px;right:10px;background:none;border:none;font-size:20px;color:#000;opacity:.5;cursor:pointer;outline:none}.alert-container .close:hover{opacity:1}.alert-container .alert-header{display:flex;align-items:center;margin-bottom:5px}.alert-container .alert-icon{margin-right:10px;font-size:20px}.alert-container .alert-body{margin-left:30px}.alert-container .alert-icon.success-icon:before{content:\"\\2714\\fe0f\"}.alert-container .alert-icon.info-icon:before{content:\"\\2139\\fe0f\"}.alert-container .alert-icon.warning-icon:before{content:\"\\26a0\\fe0f\"}.alert-container .alert-icon.danger-icon:before{content:\"\\274c\"}.alert-success{background-color:#d4edda;color:#155724}.alert-info{background-color:#d8f4f7;color:#0c5460}.alert-warning{background-color:#fff3cd;color:#856404}.alert-danger{background-color:#fdd9d7;color:#721c24}\n"], dependencies: [{ kind: "directive", type:  | 
| 263 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AlertComponent, selector: "lib-alert", inputs: { alerts: "alerts" }, ngImport: i0, template: "<div *ngFor=\"let alert of alerts\" \n     [ngClass]=\"getAlertClass(alert)\" \n     role=\"alert\" \n     [id]=\"'alert-' + alert.message\"\n     (mouseenter)=\"onMouseEnter(alert)\" \n     (mouseleave)=\"onMouseLeave(alert)\">\n  <button type=\"button\" class=\"close\" (click)=\"closeAlert(alert)\" aria-label=\"Close\">\n    <span aria-hidden=\"true\">×</span>\n  </button>\n  <div class=\"alert-header\">\n    <span [ngClass]=\"getAlertIconClass(alert)\" class=\"alert-icon\"></span>\n    <strong>{{ alert.title }}</strong>\n  </div>\n  <div class=\"alert-body\">\n    {{ alert.message }}\n  </div>\n</div>\n", styles: ["@charset \"UTF-8\";.alert-container{position:fixed;top:20px;right:20px;max-width:400px;margin:10px auto;padding:15px;border-radius:4px;background-color:#f8d7da;color:#721c24;word-wrap:break-word;opacity:0;transform:translateY(-20px);transition:opacity .5s ease,transform .5s ease;display:flex;flex-direction:column;align-items:flex-start;z-index:9999}.alert-container.show{opacity:1;transform:translateY(0)}.alert-container .close{position:absolute;top:10px;right:10px;background:none;border:none;font-size:20px;color:#000;opacity:.5;cursor:pointer;outline:none}.alert-container .close:hover{opacity:1}.alert-container .alert-header{display:flex;align-items:center;margin-bottom:5px}.alert-container .alert-icon{margin-right:10px;font-size:20px}.alert-container .alert-body{margin-left:30px}.alert-container .alert-icon.success-icon:before{content:\"\\2714\\fe0f\"}.alert-container .alert-icon.info-icon:before{content:\"\\2139\\fe0f\"}.alert-container .alert-icon.warning-icon:before{content:\"\\26a0\\fe0f\"}.alert-container .alert-icon.danger-icon:before{content:\"\\274c\"}.alert-success{background-color:#d4edda;color:#155724}.alert-info{background-color:#d8f4f7;color:#0c5460}.alert-warning{background-color:#fff3cd;color:#856404}.alert-danger{background-color:#fdd9d7;color:#721c24}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
         | 
| 203 264 | 
             
            }
         | 
| 204 265 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AlertComponent, decorators: [{
         | 
| 205 266 | 
             
                        type: Component,
         | 
| @@ -344,7 +405,7 @@ class BadgeComponent { | |
| 344 405 | 
             
                  {{ label }}
         | 
| 345 406 | 
             
                  <span class="badge">{{ badgeContent }}</span>
         | 
| 346 407 | 
             
                </button>
         | 
| 347 | 
            -
              `, isInline: true, styles: [".notification-button{position:relative;display:inline-block;width:155px;height:58px;padding:14px 29px 14px 36px;border-radius:6px;border:none;font-size:16px;font-weight:700;text-align:center;transition:opacity .3s}.badge{position:absolute;width:52px;height:32px;top:-15px;right:-20px;background-color:#dc3545;color:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;font-family:Inter,sans-serif}.notification-button.hovered{opacity:.8}.notification-button.clicked{opacity:.6}\n"], dependencies: [{ kind: "directive", type:  | 
| 408 | 
            +
              `, isInline: true, styles: [".notification-button{position:relative;display:inline-block;width:155px;height:58px;padding:14px 29px 14px 36px;border-radius:6px;border:none;font-size:16px;font-weight:700;text-align:center;transition:opacity .3s}.badge{position:absolute;width:52px;height:32px;top:-15px;right:-20px;background-color:#dc3545;color:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;font-family:Inter,sans-serif}.notification-button.hovered{opacity:.8}.notification-button.clicked{opacity:.6}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 348 409 | 
             
            }
         | 
| 349 410 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, decorators: [{
         | 
| 350 411 | 
             
                        type: Component,
         | 
| @@ -544,7 +605,7 @@ class ButtonComponent { | |
| 544 605 | 
             
                    {{ label }}
         | 
| 545 606 | 
             
                  </button>
         | 
| 546 607 | 
             
                </ng-container>
         | 
| 547 | 
            -
              `, isInline: true, styles: [".btn{padding:.5rem 1rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:24px;letter-spacing:.005em;text-align:left}\n"], dependencies: [{ kind: "directive", type:  | 
| 608 | 
            +
              `, isInline: true, styles: [".btn{padding:.5rem 1rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:24px;letter-spacing:.005em;text-align:left}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 548 609 | 
             
            }
         | 
| 549 610 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
         | 
| 550 611 | 
             
                        type: Component,
         | 
| @@ -638,7 +699,7 @@ class BasicRegistrationComponent { | |
| 638 699 | 
             
                    this.saveClick.emit(event);
         | 
| 639 700 | 
             
                }
         | 
| 640 701 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BasicRegistrationComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 641 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BasicRegistrationComponent, selector: "argenta-basic-registration", inputs: { cancelLabel: "cancelLabel", saveLabel: "saveLabel", cancelPermissions: "cancelPermissions", savePermissions: "savePermissions" }, outputs: { cancelClick: "cancelClick", saveClick: "saveClick" }, ngImport: i0, template: "<div class=\"row row-car\">\n  <div class=\"card\">\n    <div class=\"card-content\" style=\"margin-top: 2.5rem;\">\n      <ng-content></ng-content> <!-- Permite a inclus\u00E3o de conte\u00FAdo din\u00E2mico -->\n    </div>\n    <div class=\"card-footer\">\n      <div class=\"button-group\">\n        <argenta-custom-button\n          *ngIf=\"hasPermission(cancelPermissions)\"\n          [type]=\"'button'\"\n          [label]=\"cancelLabel\"\n          [btnClass]=\"ButtonClasses.Light\"\n          (onButtonClick)=\"handleCancel($event)\"\n          class=\"argenta-custom-button\">\n        </argenta-custom-button>\n        <argenta-custom-button\n          *ngIf=\"hasPermission(savePermissions)\"\n          [type]=\"'submit'\"\n          [label]=\"saveLabel\"\n          [btnClass]=\"ButtonClasses.Primary\"\n          (onButtonClick)=\"handleSave($event)\"\n          class=\"argenta-custom-button\">\n        </argenta-custom-button>\n      </div>\n    </div>\n  </div>      \n</div>\n", styles: ["@charset \"UTF-8\";.card{border-radius:10px;padding:1rem;background-color:#fff;border:none}.card-footer{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-radius:.25rem}.button-group{display:flex;gap:1rem;height:3rem}.argenta-custom-button{height:100%}.row-car{margin-left:-.8rem;margin-right:-.8rem}\n"], dependencies: [{ kind: "directive", type:  | 
| 702 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BasicRegistrationComponent, selector: "argenta-basic-registration", inputs: { cancelLabel: "cancelLabel", saveLabel: "saveLabel", cancelPermissions: "cancelPermissions", savePermissions: "savePermissions" }, outputs: { cancelClick: "cancelClick", saveClick: "saveClick" }, ngImport: i0, template: "<div class=\"row row-car\">\n  <div class=\"card\">\n    <div class=\"card-content\" style=\"margin-top: 2.5rem;\">\n      <ng-content></ng-content> <!-- Permite a inclus\u00E3o de conte\u00FAdo din\u00E2mico -->\n    </div>\n    <div class=\"card-footer\">\n      <div class=\"button-group\">\n        <argenta-custom-button\n          *ngIf=\"hasPermission(cancelPermissions)\"\n          [type]=\"'button'\"\n          [label]=\"cancelLabel\"\n          [btnClass]=\"ButtonClasses.Light\"\n          (onButtonClick)=\"handleCancel($event)\"\n          class=\"argenta-custom-button\">\n        </argenta-custom-button>\n        <argenta-custom-button\n          *ngIf=\"hasPermission(savePermissions)\"\n          [type]=\"'submit'\"\n          [label]=\"saveLabel\"\n          [btnClass]=\"ButtonClasses.Primary\"\n          (onButtonClick)=\"handleSave($event)\"\n          class=\"argenta-custom-button\">\n        </argenta-custom-button>\n      </div>\n    </div>\n  </div>      \n</div>\n", styles: ["@charset \"UTF-8\";.card{border-radius:10px;padding:1rem;background-color:#fff;border:none}.card-footer{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-radius:.25rem}.button-group{display:flex;gap:1rem;height:3rem}.argenta-custom-button{height:100%}.row-car{margin-left:-.8rem;margin-right:-.8rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "argenta-custom-button", inputs: ["type", "label", "btnClass", "fontSize", "disabled", "autofocus", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "name", "value", "permissions"], outputs: ["onButtonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 642 703 | 
             
            }
         | 
| 643 704 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BasicRegistrationComponent, decorators: [{
         | 
| 644 705 | 
             
                        type: Component,
         | 
| @@ -750,7 +811,7 @@ class CheckboxComponent { | |
| 750 811 | 
             
                  />
         | 
| 751 812 | 
             
                  <label class="form-check-label" [for]="id">{{ label }}</label>
         | 
| 752 813 | 
             
                </div>
         | 
| 753 | 
            -
              `, isInline: true, styles: [".form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type:  | 
| 814 | 
            +
              `, isInline: true, styles: [".form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 754 815 | 
             
            }
         | 
| 755 816 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, decorators: [{
         | 
| 756 817 | 
             
                        type: Component,
         | 
| @@ -882,13 +943,13 @@ class ConfirmationComponent { | |
| 882 943 | 
             
                ngOnDestroy() {
         | 
| 883 944 | 
             
                    // Clear any subscriptions if there were any
         | 
| 884 945 | 
             
                }
         | 
| 885 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationComponent, deps: [{ token: i1$ | 
| 946 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationComponent, deps: [{ token: i1$1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 886 947 | 
             
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmationComponent, selector: "app-confirmation", inputs: { title: "title", message: "message", confirmButtonText: "confirmButtonText", cancelButtonText: "cancelButtonText" }, ngImport: i0, template: "<div class=\"modal-header\">\n  <h5 class=\"modal-title\" id=\"confirmationModalLabel\">{{ title }}</h5>\n</div>\n<div class=\"modal-body\">\n  <p>{{ message }}</p>\n</div>\n<div class=\"modal-footer d-flex justify-content-end\">\n  <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\">{{ cancelButtonText }}</button>\n  <button type=\"button\" class=\"btn btn-primary ms-2\" (click)=\"confirm()\" appAutofocus>{{ confirmButtonText }}</button>\n</div>\n", styles: ["@charset \"UTF-8\";.modal-header{border-bottom:none}.modal-footer{border-top:none;padding-top:0;padding-bottom:15px;display:flex;justify-content:flex-end}.modal-title{font-family:Inter,sans-serif;color:#151920;font-size:19px}.modal-body{text-align:left}.modal-body p{color:#15192080;font-family:Inter,sans-serif;font-size:14px}.btn-primary{font-family:Inter,sans-serif;background-color:#00444c;border:1px solid #00444C;border-radius:8px;width:130px;height:42px;color:#fff;transition:opacity .3s,transform .1s}.btn-primary:hover{opacity:.8}.btn-primary:active{transform:scale(.98);background-color:#00444c;border:1px solid #00444C}.btn-secondary{font-family:Inter,sans-serif;background-color:transparent;border-radius:8px;width:96px;height:42px;border:1px solid rgba(21,25,32,.5019607843);color:#15192080;transition:opacity .3s,transform .1s;margin-right:8px}.btn-secondary:hover{opacity:.8}.btn-secondary:active{transform:scale(.98)}.ms-2{margin-left:8px}\n"], dependencies: [{ kind: "directive", type: AutofocusDirective, selector: "[appAutofocus]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 887 948 | 
             
            }
         | 
| 888 949 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationComponent, decorators: [{
         | 
| 889 950 | 
             
                        type: Component,
         | 
| 890 951 | 
             
                        args: [{ selector: 'app-confirmation', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal-header\">\n  <h5 class=\"modal-title\" id=\"confirmationModalLabel\">{{ title }}</h5>\n</div>\n<div class=\"modal-body\">\n  <p>{{ message }}</p>\n</div>\n<div class=\"modal-footer d-flex justify-content-end\">\n  <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\">{{ cancelButtonText }}</button>\n  <button type=\"button\" class=\"btn btn-primary ms-2\" (click)=\"confirm()\" appAutofocus>{{ confirmButtonText }}</button>\n</div>\n", styles: ["@charset \"UTF-8\";.modal-header{border-bottom:none}.modal-footer{border-top:none;padding-top:0;padding-bottom:15px;display:flex;justify-content:flex-end}.modal-title{font-family:Inter,sans-serif;color:#151920;font-size:19px}.modal-body{text-align:left}.modal-body p{color:#15192080;font-family:Inter,sans-serif;font-size:14px}.btn-primary{font-family:Inter,sans-serif;background-color:#00444c;border:1px solid #00444C;border-radius:8px;width:130px;height:42px;color:#fff;transition:opacity .3s,transform .1s}.btn-primary:hover{opacity:.8}.btn-primary:active{transform:scale(.98);background-color:#00444c;border:1px solid #00444C}.btn-secondary{font-family:Inter,sans-serif;background-color:transparent;border-radius:8px;width:96px;height:42px;border:1px solid rgba(21,25,32,.5019607843);color:#15192080;transition:opacity .3s,transform .1s;margin-right:8px}.btn-secondary:hover{opacity:.8}.btn-secondary:active{transform:scale(.98)}.ms-2{margin-left:8px}\n"] }]
         | 
| 891 | 
            -
                    }], ctorParameters: function () { return [{ type: i1$ | 
| 952 | 
            +
                    }], ctorParameters: function () { return [{ type: i1$1.NgbActiveModal }]; }, propDecorators: { title: [{
         | 
| 892 953 | 
             
                            type: Input
         | 
| 893 954 | 
             
                        }], message: [{
         | 
| 894 955 | 
             
                            type: Input
         | 
| @@ -936,7 +997,7 @@ class CustomPaginationComponent { | |
| 936 997 | 
             
                    this.destroy$.complete();
         | 
| 937 998 | 
             
                }
         | 
| 938 999 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 939 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomPaginationComponent, selector: "custom-pagination", inputs: { totalItems: "totalItems", itemsPerPage: "itemsPerPage", currentPage: "currentPage", showPageInfo: "showPageInfo" }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav *ngIf=\"totalPages > 0\">\n  <ul class=\"pagination\">\n    <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n      <a class=\"page-link\" (click)=\"changePage(1)\">««</a>\n    </li>\n    <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n      <a class=\"page-link\" (click)=\"changePage(currentPage - 1)\">«</a>\n    </li>\n    <li class=\"page-item\" *ngFor=\"let page of pages\" [class.active]=\"page === currentPage\">\n      <a class=\"page-link\" (click)=\"changePage(page)\">{{ page }}</a>\n    </li>\n    <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n      <a class=\"page-link\" (click)=\"changePage(currentPage + 1)\">»</a>\n    </li>\n    <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n      <a class=\"page-link\" (click)=\"changePage(totalPages)\">»»</a>\n    </li>\n  </ul>\n</nav>\n", styles: ["@charset \"UTF-8\";.pagination{display:flex;list-style:none;padding:0;margin:1rem 0;justify-content:center;align-items:center}.page-item{margin:0 .25rem}.page-item.disabled .page-link{cursor:not-allowed;opacity:.5}.page-item.active .page-link{background-color:#00444c;color:#fff}.page-item .page-link{padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:.25rem;text-decoration:none;color:#00444c;cursor:pointer;transition:background-color .2s}.page-item .page-link:hover{background-color:#e5e5e5}.page-info{margin-left:1rem;font-size:1rem;color:#00444c;font-weight:700}\n"], dependencies: [{ kind: "directive", type:  | 
| 1000 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomPaginationComponent, selector: "custom-pagination", inputs: { totalItems: "totalItems", itemsPerPage: "itemsPerPage", currentPage: "currentPage", showPageInfo: "showPageInfo" }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav *ngIf=\"totalPages > 0\">\n  <ul class=\"pagination\">\n    <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n      <a class=\"page-link\" (click)=\"changePage(1)\">««</a>\n    </li>\n    <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n      <a class=\"page-link\" (click)=\"changePage(currentPage - 1)\">«</a>\n    </li>\n    <li class=\"page-item\" *ngFor=\"let page of pages\" [class.active]=\"page === currentPage\">\n      <a class=\"page-link\" (click)=\"changePage(page)\">{{ page }}</a>\n    </li>\n    <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n      <a class=\"page-link\" (click)=\"changePage(currentPage + 1)\">»</a>\n    </li>\n    <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n      <a class=\"page-link\" (click)=\"changePage(totalPages)\">»»</a>\n    </li>\n  </ul>\n</nav>\n", styles: ["@charset \"UTF-8\";.pagination{display:flex;list-style:none;padding:0;margin:1rem 0;justify-content:center;align-items:center}.page-item{margin:0 .25rem}.page-item.disabled .page-link{cursor:not-allowed;opacity:.5}.page-item.active .page-link{background-color:#00444c;color:#fff}.page-item .page-link{padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:.25rem;text-decoration:none;color:#00444c;cursor:pointer;transition:background-color .2s}.page-item .page-link:hover{background-color:#e5e5e5}.page-info{margin-left:1rem;font-size:1rem;color:#00444c;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
         | 
| 940 1001 | 
             
            }
         | 
| 941 1002 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomPaginationComponent, decorators: [{
         | 
| 942 1003 | 
             
                        type: Component,
         | 
| @@ -953,6 +1014,154 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 953 1014 | 
             
                            type: Output
         | 
| 954 1015 | 
             
                        }] } });
         | 
| 955 1016 |  | 
| 1017 | 
            +
            class CepMaskDirective {
         | 
| 1018 | 
            +
                constructor(el, renderer) {
         | 
| 1019 | 
            +
                    this.el = el;
         | 
| 1020 | 
            +
                    this.renderer = renderer;
         | 
| 1021 | 
            +
                    this.enabled = false; // Define como opcional e padrão desabilitado
         | 
| 1022 | 
            +
                }
         | 
| 1023 | 
            +
                onInputChange(event) {
         | 
| 1024 | 
            +
                    if (!this.enabled)
         | 
| 1025 | 
            +
                        return; // Não aplica a máscara se não estiver habilitada
         | 
| 1026 | 
            +
                    // Obtém o valor atual e remove todos os caracteres não numéricos
         | 
| 1027 | 
            +
                    let initialValue = this.el.nativeElement.value.replace(/\D/g, '');
         | 
| 1028 | 
            +
                    // Limita o número de caracteres a 8 para CEP
         | 
| 1029 | 
            +
                    if (initialValue.length > 8) {
         | 
| 1030 | 
            +
                        initialValue = initialValue.slice(0, 8);
         | 
| 1031 | 
            +
                    }
         | 
| 1032 | 
            +
                    // Aplica a máscara de CEP
         | 
| 1033 | 
            +
                    const formattedValue = this.formatCep(initialValue);
         | 
| 1034 | 
            +
                    // Atualiza o valor do input se necessário
         | 
| 1035 | 
            +
                    if (formattedValue !== this.el.nativeElement.value) {
         | 
| 1036 | 
            +
                        this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);
         | 
| 1037 | 
            +
                        // Dispara um evento de input para atualizar o modelo
         | 
| 1038 | 
            +
                        if (event.target.dispatchEvent) {
         | 
| 1039 | 
            +
                            const newEvent = new Event('input', { bubbles: true });
         | 
| 1040 | 
            +
                            event.target.dispatchEvent(newEvent);
         | 
| 1041 | 
            +
                        }
         | 
| 1042 | 
            +
                    }
         | 
| 1043 | 
            +
                }
         | 
| 1044 | 
            +
                formatCep(value) {
         | 
| 1045 | 
            +
                    // Aplica a formatação de CEP: 12345-678
         | 
| 1046 | 
            +
                    return value.replace(/(\d{5})(\d)/, '$1-$2');
         | 
| 1047 | 
            +
                }
         | 
| 1048 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CepMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
         | 
| 1049 | 
            +
                static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CepMaskDirective, selector: "[cepMask]", inputs: { enabled: ["cepMask", "enabled"] }, host: { listeners: { "input": "onInputChange($event)" } }, ngImport: i0 }); }
         | 
| 1050 | 
            +
            }
         | 
| 1051 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CepMaskDirective, decorators: [{
         | 
| 1052 | 
            +
                        type: Directive,
         | 
| 1053 | 
            +
                        args: [{
         | 
| 1054 | 
            +
                                selector: '[cepMask]',
         | 
| 1055 | 
            +
                            }]
         | 
| 1056 | 
            +
                    }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { enabled: [{
         | 
| 1057 | 
            +
                            type: Input,
         | 
| 1058 | 
            +
                            args: ['cepMask']
         | 
| 1059 | 
            +
                        }], onInputChange: [{
         | 
| 1060 | 
            +
                            type: HostListener,
         | 
| 1061 | 
            +
                            args: ['input', ['$event']]
         | 
| 1062 | 
            +
                        }] } });
         | 
| 1063 | 
            +
             | 
| 1064 | 
            +
            class CnpjMaskDirective {
         | 
| 1065 | 
            +
                constructor(el, renderer) {
         | 
| 1066 | 
            +
                    this.el = el;
         | 
| 1067 | 
            +
                    this.renderer = renderer;
         | 
| 1068 | 
            +
                    this.enabled = false; // Define como opcional e padrão desabilitado
         | 
| 1069 | 
            +
                }
         | 
| 1070 | 
            +
                onInputChange(event) {
         | 
| 1071 | 
            +
                    if (!this.enabled)
         | 
| 1072 | 
            +
                        return; // Não aplica a máscara se não estiver habilitada
         | 
| 1073 | 
            +
                    // Obtém o valor atual e remove todos os caracteres não numéricos
         | 
| 1074 | 
            +
                    let initialValue = this.el.nativeElement.value.replace(/\D/g, '');
         | 
| 1075 | 
            +
                    // Limita o número de caracteres a 14 para CNPJ
         | 
| 1076 | 
            +
                    if (initialValue.length > 14) {
         | 
| 1077 | 
            +
                        initialValue = initialValue.slice(0, 14);
         | 
| 1078 | 
            +
                    }
         | 
| 1079 | 
            +
                    // Aplica a máscara de CNPJ
         | 
| 1080 | 
            +
                    const formattedValue = this.formatCnpj(initialValue);
         | 
| 1081 | 
            +
                    // Atualiza o valor do input se necessário
         | 
| 1082 | 
            +
                    if (formattedValue !== this.el.nativeElement.value) {
         | 
| 1083 | 
            +
                        this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);
         | 
| 1084 | 
            +
                        // Dispara um evento de input para atualizar o modelo
         | 
| 1085 | 
            +
                        if (event.target.dispatchEvent) {
         | 
| 1086 | 
            +
                            const newEvent = new Event('input', { bubbles: true });
         | 
| 1087 | 
            +
                            event.target.dispatchEvent(newEvent);
         | 
| 1088 | 
            +
                        }
         | 
| 1089 | 
            +
                    }
         | 
| 1090 | 
            +
                }
         | 
| 1091 | 
            +
                formatCnpj(value) {
         | 
| 1092 | 
            +
                    // Aplica a formatação de CNPJ: 12.345.678/0001-00
         | 
| 1093 | 
            +
                    return value
         | 
| 1094 | 
            +
                        .replace(/(\d{2})(\d)/, '$1.$2')
         | 
| 1095 | 
            +
                        .replace(/(\d{3})(\d)/, '$1.$2')
         | 
| 1096 | 
            +
                        .replace(/(\d{3})(\d{4})(\d)/, '$1/$2-$3')
         | 
| 1097 | 
            +
                        .replace(/(\d{4})(\d{2})$/, '$1-$2');
         | 
| 1098 | 
            +
                }
         | 
| 1099 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CnpjMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
         | 
| 1100 | 
            +
                static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CnpjMaskDirective, selector: "[cnpjMask]", inputs: { enabled: ["cnpjMask", "enabled"] }, host: { listeners: { "input": "onInputChange($event)" } }, ngImport: i0 }); }
         | 
| 1101 | 
            +
            }
         | 
| 1102 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CnpjMaskDirective, decorators: [{
         | 
| 1103 | 
            +
                        type: Directive,
         | 
| 1104 | 
            +
                        args: [{
         | 
| 1105 | 
            +
                                selector: '[cnpjMask]',
         | 
| 1106 | 
            +
                            }]
         | 
| 1107 | 
            +
                    }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { enabled: [{
         | 
| 1108 | 
            +
                            type: Input,
         | 
| 1109 | 
            +
                            args: ['cnpjMask']
         | 
| 1110 | 
            +
                        }], onInputChange: [{
         | 
| 1111 | 
            +
                            type: HostListener,
         | 
| 1112 | 
            +
                            args: ['input', ['$event']]
         | 
| 1113 | 
            +
                        }] } });
         | 
| 1114 | 
            +
             | 
| 1115 | 
            +
            class CpfMaskDirective {
         | 
| 1116 | 
            +
                constructor(el, renderer) {
         | 
| 1117 | 
            +
                    this.el = el;
         | 
| 1118 | 
            +
                    this.renderer = renderer;
         | 
| 1119 | 
            +
                    this.enabled = false; // Define como opcional e padrão desabilitado
         | 
| 1120 | 
            +
                }
         | 
| 1121 | 
            +
                onInputChange(event) {
         | 
| 1122 | 
            +
                    if (!this.enabled)
         | 
| 1123 | 
            +
                        return;
         | 
| 1124 | 
            +
                    // Obtém o valor atual e remove todos os caracteres não numéricos
         | 
| 1125 | 
            +
                    let initialValue = this.el.nativeElement.value.replace(/\D/g, '');
         | 
| 1126 | 
            +
                    // Limita o número de caracteres a 11 para CPF
         | 
| 1127 | 
            +
                    if (initialValue.length > 11) {
         | 
| 1128 | 
            +
                        initialValue = initialValue.slice(0, 11);
         | 
| 1129 | 
            +
                    }
         | 
| 1130 | 
            +
                    // Aplica a máscara de CPF
         | 
| 1131 | 
            +
                    const formattedValue = this.formatCpf(initialValue);
         | 
| 1132 | 
            +
                    // Atualiza o valor do input se necessário
         | 
| 1133 | 
            +
                    if (formattedValue !== this.el.nativeElement.value) {
         | 
| 1134 | 
            +
                        this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);
         | 
| 1135 | 
            +
                        // Dispara um evento de input para atualizar o modelo
         | 
| 1136 | 
            +
                        if (event.target.dispatchEvent) {
         | 
| 1137 | 
            +
                            const newEvent = new Event('input', { bubbles: true });
         | 
| 1138 | 
            +
                            event.target.dispatchEvent(newEvent);
         | 
| 1139 | 
            +
                        }
         | 
| 1140 | 
            +
                    }
         | 
| 1141 | 
            +
                }
         | 
| 1142 | 
            +
                formatCpf(value) {
         | 
| 1143 | 
            +
                    // Aplica a formatação de CPF: 123.456.789-00
         | 
| 1144 | 
            +
                    return value
         | 
| 1145 | 
            +
                        .replace(/(\d{3})(\d)/, '$1.$2')
         | 
| 1146 | 
            +
                        .replace(/(\d{3})(\d)/, '$1.$2')
         | 
| 1147 | 
            +
                        .replace(/(\d{3})(\d{1,2})$/, '$1-$2');
         | 
| 1148 | 
            +
                }
         | 
| 1149 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CpfMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
         | 
| 1150 | 
            +
                static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CpfMaskDirective, selector: "[cpfMask]", inputs: { enabled: ["cpfMask", "enabled"] }, host: { listeners: { "input": "onInputChange($event)" } }, ngImport: i0 }); }
         | 
| 1151 | 
            +
            }
         | 
| 1152 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CpfMaskDirective, decorators: [{
         | 
| 1153 | 
            +
                        type: Directive,
         | 
| 1154 | 
            +
                        args: [{
         | 
| 1155 | 
            +
                                selector: '[cpfMask]',
         | 
| 1156 | 
            +
                            }]
         | 
| 1157 | 
            +
                    }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { enabled: [{
         | 
| 1158 | 
            +
                            type: Input,
         | 
| 1159 | 
            +
                            args: ['cpfMask']
         | 
| 1160 | 
            +
                        }], onInputChange: [{
         | 
| 1161 | 
            +
                            type: HostListener,
         | 
| 1162 | 
            +
                            args: ['input', ['$event']]
         | 
| 1163 | 
            +
                        }] } });
         | 
| 1164 | 
            +
             | 
| 956 1165 | 
             
            class InputComponent {
         | 
| 957 1166 | 
             
                constructor(authService) {
         | 
| 958 1167 | 
             
                    this.authService = authService;
         | 
| @@ -967,6 +1176,12 @@ class InputComponent { | |
| 967 1176 | 
             
                    this.required = false;
         | 
| 968 1177 | 
             
                    this.pattern = null;
         | 
| 969 1178 | 
             
                    this.autofocus = false;
         | 
| 1179 | 
            +
                    this.useCpfMask = false;
         | 
| 1180 | 
            +
                    this.useCnpjMask = false;
         | 
| 1181 | 
            +
                    this.useCepMask = false;
         | 
| 1182 | 
            +
                    this.removeNonNumeric = false;
         | 
| 1183 | 
            +
                    this.onlyNumbers = false;
         | 
| 1184 | 
            +
                    this.validateInput = false;
         | 
| 970 1185 | 
             
                    this.labelFontWeight = 400;
         | 
| 971 1186 | 
             
                    this.inputEvent = new EventEmitter();
         | 
| 972 1187 | 
             
                    this.changeEvent = new EventEmitter();
         | 
| @@ -978,17 +1193,116 @@ class InputComponent { | |
| 978 1193 | 
             
                    this.onChangeCallback = () => { };
         | 
| 979 1194 | 
             
                    this.onTouchedCallback = () => { };
         | 
| 980 1195 | 
             
                    this.value = '';
         | 
| 1196 | 
            +
                    this.showErrorModal = false;
         | 
| 1197 | 
            +
                    this.errorMessage = '';
         | 
| 981 1198 | 
             
                    this.subscriptions = [];
         | 
| 982 1199 | 
             
                }
         | 
| 1200 | 
            +
                getInputType() {
         | 
| 1201 | 
            +
                    return this.onlyNumbers ? 'tel' : this.type;
         | 
| 1202 | 
            +
                }
         | 
| 983 1203 | 
             
                onInput(event) {
         | 
| 984 1204 | 
             
                    const inputElement = event.target;
         | 
| 985 | 
            -
                     | 
| 1205 | 
            +
                    let inputValue = inputElement.value;
         | 
| 1206 | 
            +
                    if (this.removeNonNumeric || this.onlyNumbers) {
         | 
| 1207 | 
            +
                        inputValue = inputValue.replace(/\D/g, '');
         | 
| 1208 | 
            +
                    }
         | 
| 1209 | 
            +
                    this.value = inputValue;
         | 
| 986 1210 | 
             
                    this.onChangeCallback(this.value);
         | 
| 987 1211 | 
             
                    this.inputEvent.emit(event);
         | 
| 1212 | 
            +
                    // Validar imediatamente após o último caractere numérico para CPF, CNPJ ou CEP
         | 
| 1213 | 
            +
                    const numericValue = this.value.replace(/\D/g, ''); // Remove todos os caracteres não numéricos
         | 
| 1214 | 
            +
                    if (this.validateInput) {
         | 
| 1215 | 
            +
                        if (this.useCpfMask && numericValue.length === 11 && !this.validateCpf(numericValue)) {
         | 
| 1216 | 
            +
                            this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');
         | 
| 1217 | 
            +
                        }
         | 
| 1218 | 
            +
                        else if (this.useCnpjMask && numericValue.length === 14 && !this.validateCnpj(numericValue)) {
         | 
| 1219 | 
            +
                            this.clearAndShowValidationError('CNPJ inválido. Por favor, insira um CNPJ correto.');
         | 
| 1220 | 
            +
                        }
         | 
| 1221 | 
            +
                        else if (this.useCepMask && numericValue.length === 8 && !this.validateCep(numericValue)) {
         | 
| 1222 | 
            +
                            this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');
         | 
| 1223 | 
            +
                        }
         | 
| 1224 | 
            +
                    }
         | 
| 1225 | 
            +
                }
         | 
| 1226 | 
            +
                onKeyDown(event) {
         | 
| 1227 | 
            +
                    if (this.onlyNumbers && !/^\d$/.test(event.key) && event.key !== 'Backspace' && event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') {
         | 
| 1228 | 
            +
                        event.preventDefault();
         | 
| 1229 | 
            +
                    }
         | 
| 988 1230 | 
             
                }
         | 
| 989 1231 | 
             
                onChange(event) {
         | 
| 1232 | 
            +
                    const numericValue = this.value.replace(/\D/g, ''); // Remove todos os caracteres não numéricos
         | 
| 1233 | 
            +
                    // Validação também ocorre no blur para casos onde o input não está completo
         | 
| 1234 | 
            +
                    if (this.validateInput) {
         | 
| 1235 | 
            +
                        if (this.useCpfMask && !this.validateCpf(numericValue)) {
         | 
| 1236 | 
            +
                            this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');
         | 
| 1237 | 
            +
                        }
         | 
| 1238 | 
            +
                        else if (this.useCnpjMask && !this.validateCnpj(numericValue)) {
         | 
| 1239 | 
            +
                            this.clearAndShowValidationError('CNPJ inválido. Por favor, insira um CNPJ correto.');
         | 
| 1240 | 
            +
                        }
         | 
| 1241 | 
            +
                        else if (this.useCepMask && !this.validateCep(numericValue)) {
         | 
| 1242 | 
            +
                            this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');
         | 
| 1243 | 
            +
                        }
         | 
| 1244 | 
            +
                    }
         | 
| 990 1245 | 
             
                    this.changeEvent.emit(event);
         | 
| 991 1246 | 
             
                }
         | 
| 1247 | 
            +
                validateCpf(cpf) {
         | 
| 1248 | 
            +
                    if (cpf.length !== 11 || /^(\d)\1+$/.test(cpf))
         | 
| 1249 | 
            +
                        return false;
         | 
| 1250 | 
            +
                    let sum = 0, remainder;
         | 
| 1251 | 
            +
                    for (let i = 1; i <= 9; i++)
         | 
| 1252 | 
            +
                        sum += parseInt(cpf.substring(i - 1, i)) * (11 - i);
         | 
| 1253 | 
            +
                    remainder = (sum * 10) % 11;
         | 
| 1254 | 
            +
                    if (remainder === 10 || remainder === 11)
         | 
| 1255 | 
            +
                        remainder = 0;
         | 
| 1256 | 
            +
                    if (remainder !== parseInt(cpf.substring(9, 10)))
         | 
| 1257 | 
            +
                        return false;
         | 
| 1258 | 
            +
                    sum = 0;
         | 
| 1259 | 
            +
                    for (let i = 1; i <= 10; i++)
         | 
| 1260 | 
            +
                        sum += parseInt(cpf.substring(i - 1, i)) * (12 - i);
         | 
| 1261 | 
            +
                    remainder = (sum * 10) % 11;
         | 
| 1262 | 
            +
                    if (remainder === 10 || remainder === 11)
         | 
| 1263 | 
            +
                        remainder = 0;
         | 
| 1264 | 
            +
                    return remainder === parseInt(cpf.substring(10, 11));
         | 
| 1265 | 
            +
                }
         | 
| 1266 | 
            +
                validateCnpj(cnpj) {
         | 
| 1267 | 
            +
                    if (cnpj.length !== 14)
         | 
| 1268 | 
            +
                        return false;
         | 
| 1269 | 
            +
                    let length = cnpj.length - 2;
         | 
| 1270 | 
            +
                    let numbers = cnpj.substring(0, length);
         | 
| 1271 | 
            +
                    let digits = cnpj.substring(length);
         | 
| 1272 | 
            +
                    let sum = 0, pos = length - 7;
         | 
| 1273 | 
            +
                    for (let i = length; i >= 1; i--) {
         | 
| 1274 | 
            +
                        sum += parseInt(numbers.charAt(length - i)) * pos--;
         | 
| 1275 | 
            +
                        if (pos < 2)
         | 
| 1276 | 
            +
                            pos = 9;
         | 
| 1277 | 
            +
                    }
         | 
| 1278 | 
            +
                    let result = sum % 11 < 2 ? 0 : 11 - sum % 11;
         | 
| 1279 | 
            +
                    if (result !== parseInt(digits.charAt(0)))
         | 
| 1280 | 
            +
                        return false;
         | 
| 1281 | 
            +
                    length = length + 1;
         | 
| 1282 | 
            +
                    numbers = cnpj.substring(0, length);
         | 
| 1283 | 
            +
                    sum = 0;
         | 
| 1284 | 
            +
                    pos = length - 7;
         | 
| 1285 | 
            +
                    for (let i = length; i >= 1; i--) {
         | 
| 1286 | 
            +
                        sum += parseInt(numbers.charAt(length - i)) * pos--;
         | 
| 1287 | 
            +
                        if (pos < 2)
         | 
| 1288 | 
            +
                            pos = 9;
         | 
| 1289 | 
            +
                    }
         | 
| 1290 | 
            +
                    result = sum % 11 < 2 ? 0 : 11 - sum % 11;
         | 
| 1291 | 
            +
                    return result === parseInt(digits.charAt(1));
         | 
| 1292 | 
            +
                }
         | 
| 1293 | 
            +
                validateCep(cep) {
         | 
| 1294 | 
            +
                    return /^\d{8}$/.test(cep); // Valida apenas números, sem considerar a máscara
         | 
| 1295 | 
            +
                }
         | 
| 1296 | 
            +
                clearAndShowValidationError(message) {
         | 
| 1297 | 
            +
                    this.value = ''; // Limpa o valor do ngModel
         | 
| 1298 | 
            +
                    this.onChangeCallback(this.value); // Atualiza o ngModel com o valor limpo
         | 
| 1299 | 
            +
                    this.errorMessage = message;
         | 
| 1300 | 
            +
                    this.showErrorModal = true;
         | 
| 1301 | 
            +
                }
         | 
| 1302 | 
            +
                closeModal() {
         | 
| 1303 | 
            +
                    this.showErrorModal = false;
         | 
| 1304 | 
            +
                    this.errorMessage = '';
         | 
| 1305 | 
            +
                }
         | 
| 992 1306 | 
             
                onFocus(event) {
         | 
| 993 1307 | 
             
                    this.focusEvent.emit(event);
         | 
| 994 1308 | 
             
                }
         | 
| @@ -1029,69 +1343,23 @@ class InputComponent { | |
| 1029 1343 | 
             
                    this.subscriptions.forEach(sub => sub.unsubscribe());
         | 
| 1030 1344 | 
             
                }
         | 
| 1031 1345 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 1032 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "argenta-custom-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", labelFontWeight: "labelFontWeight", permissions: "permissions" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
         | 
| 1346 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "argenta-custom-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", useCpfMask: "useCpfMask", useCnpjMask: "useCnpjMask", useCepMask: "useCepMask", removeNonNumeric: "removeNonNumeric", onlyNumbers: "onlyNumbers", validateInput: "validateInput", labelFontWeight: "labelFontWeight", permissions: "permissions" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
         | 
| 1033 1347 | 
             
                        {
         | 
| 1034 1348 | 
             
                            provide: NG_VALUE_ACCESSOR,
         | 
| 1035 1349 | 
             
                            useExisting: forwardRef(() => InputComponent),
         | 
| 1036 1350 | 
             
                            multi: true
         | 
| 1037 1351 | 
             
                        }
         | 
| 1038 | 
            -
                    ], ngImport: i0, template:  | 
| 1039 | 
            -
                <div *ngIf="hasPermission()" class="form-group">
         | 
| 1040 | 
            -
                  <label [for]="id" [ngClass]="'label-styles'">{{ label }}</label>
         | 
| 1041 | 
            -
                  <input [type]="type"
         | 
| 1042 | 
            -
                         class="form-control custom-input"
         | 
| 1043 | 
            -
                         [id]="id"
         | 
| 1044 | 
            -
                         [placeholder]="placeholder"
         | 
| 1045 | 
            -
                         [(ngModel)]="value"
         | 
| 1046 | 
            -
                         (input)="onInput($event)"
         | 
| 1047 | 
            -
                         (change)="onChange($event)"
         | 
| 1048 | 
            -
                         (focus)="onFocus($event)"
         | 
| 1049 | 
            -
                         (blur)="onBlur($event)"
         | 
| 1050 | 
            -
                         (keyup)="keyupEvent.emit($event)"
         | 
| 1051 | 
            -
                         (keydown)="keydownEvent.emit($event)"
         | 
| 1052 | 
            -
                         (keypress)="keypressEvent.emit($event)"
         | 
| 1053 | 
            -
                         [disabled]="disabled"
         | 
| 1054 | 
            -
                         [readonly]="readonly"
         | 
| 1055 | 
            -
                         [attr.maxlength]="maxlength"
         | 
| 1056 | 
            -
                         [attr.minlength]="minlength"
         | 
| 1057 | 
            -
                         [required]="required"
         | 
| 1058 | 
            -
                         [attr.pattern]="pattern"
         | 
| 1059 | 
            -
                         [autofocus]="autofocus">
         | 
| 1060 | 
            -
                </div>
         | 
| 1061 | 
            -
              `, isInline: true, styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 1352 | 
            +
                    ], ngImport: i0, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n  <label [for]=\"id\" [ngClass]=\"'label-styles'\">{{ label }}</label>\n  <input [type]=\"getInputType()\"\n         class=\"form-control custom-input\"\n         [id]=\"id\"\n         [placeholder]=\"placeholder\"\n         [(ngModel)]=\"value\"\n         (input)=\"onInput($event)\"\n         (change)=\"onChange($event)\"\n         (focus)=\"onFocus($event)\"\n         (blur)=\"onBlur($event)\"\n         (keyup)=\"keyupEvent.emit($event)\"\n         (keydown)=\"onKeyDown($event)\"\n         (keypress)=\"keypressEvent.emit($event)\"\n         [disabled]=\"disabled\"\n         [readonly]=\"readonly\"\n         [attr.maxlength]=\"maxlength\"\n         [attr.minlength]=\"minlength\"\n         [required]=\"required\"\n         [attr.pattern]=\"pattern\"\n         [autofocus]=\"autofocus\"\n         [cpfMask]=\"useCpfMask\"  \n         [cnpjMask]=\"useCnpjMask\" \n         [cepMask]=\"useCepMask\">\n\n  <!-- Modal para exibir mensagens de erro -->\n  <div class=\"modal-overlay\" *ngIf=\"showErrorModal\">\n    <div class=\"modal-content\">\n      <span class=\"close\" (click)=\"closeModal()\">×</span>\n      <p>{{ errorMessage }}</p>\n      <button class=\"btn-ok\" (click)=\"closeModal()\">OK</button>\n    </div>\n  </div>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:25px 30px;border-radius:8px;width:360px;text-align:center;position:relative;box-shadow:0 4px 12px #0003}.close{position:absolute;top:10px;right:15px;cursor:pointer;font-size:20px;color:#555;transition:color .3s}.close:hover{color:#f44336}.btn-ok{margin-top:20px;padding:8px 20px;border:none;background-color:#00444c;color:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s,transform .2s}.btn-ok:hover{background-color:#00363d;transform:scale(1.05)}.btn-ok:active{transform:scale(.98)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CepMaskDirective, selector: "[cepMask]", inputs: ["cepMask"] }, { kind: "directive", type: CnpjMaskDirective, selector: "[cnpjMask]", inputs: ["cnpjMask"] }, { kind: "directive", type: CpfMaskDirective, selector: "[cpfMask]", inputs: ["cpfMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 1062 1353 | 
             
            }
         | 
| 1063 1354 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, decorators: [{
         | 
| 1064 1355 | 
             
                        type: Component,
         | 
| 1065 | 
            -
                        args: [{ selector: 'argenta-custom-input',  | 
| 1066 | 
            -
                <div *ngIf="hasPermission()" class="form-group">
         | 
| 1067 | 
            -
                  <label [for]="id" [ngClass]="'label-styles'">{{ label }}</label>
         | 
| 1068 | 
            -
                  <input [type]="type"
         | 
| 1069 | 
            -
                         class="form-control custom-input"
         | 
| 1070 | 
            -
                         [id]="id"
         | 
| 1071 | 
            -
                         [placeholder]="placeholder"
         | 
| 1072 | 
            -
                         [(ngModel)]="value"
         | 
| 1073 | 
            -
                         (input)="onInput($event)"
         | 
| 1074 | 
            -
                         (change)="onChange($event)"
         | 
| 1075 | 
            -
                         (focus)="onFocus($event)"
         | 
| 1076 | 
            -
                         (blur)="onBlur($event)"
         | 
| 1077 | 
            -
                         (keyup)="keyupEvent.emit($event)"
         | 
| 1078 | 
            -
                         (keydown)="keydownEvent.emit($event)"
         | 
| 1079 | 
            -
                         (keypress)="keypressEvent.emit($event)"
         | 
| 1080 | 
            -
                         [disabled]="disabled"
         | 
| 1081 | 
            -
                         [readonly]="readonly"
         | 
| 1082 | 
            -
                         [attr.maxlength]="maxlength"
         | 
| 1083 | 
            -
                         [attr.minlength]="minlength"
         | 
| 1084 | 
            -
                         [required]="required"
         | 
| 1085 | 
            -
                         [attr.pattern]="pattern"
         | 
| 1086 | 
            -
                         [autofocus]="autofocus">
         | 
| 1087 | 
            -
                </div>
         | 
| 1088 | 
            -
              `, providers: [
         | 
| 1356 | 
            +
                        args: [{ selector: 'argenta-custom-input', providers: [
         | 
| 1089 1357 | 
             
                                    {
         | 
| 1090 1358 | 
             
                                        provide: NG_VALUE_ACCESSOR,
         | 
| 1091 1359 | 
             
                                        useExisting: forwardRef(() => InputComponent),
         | 
| 1092 1360 | 
             
                                        multi: true
         | 
| 1093 1361 | 
             
                                    }
         | 
| 1094 | 
            -
                                ], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}\n"] }]
         | 
| 1362 | 
            +
                                ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n  <label [for]=\"id\" [ngClass]=\"'label-styles'\">{{ label }}</label>\n  <input [type]=\"getInputType()\"\n         class=\"form-control custom-input\"\n         [id]=\"id\"\n         [placeholder]=\"placeholder\"\n         [(ngModel)]=\"value\"\n         (input)=\"onInput($event)\"\n         (change)=\"onChange($event)\"\n         (focus)=\"onFocus($event)\"\n         (blur)=\"onBlur($event)\"\n         (keyup)=\"keyupEvent.emit($event)\"\n         (keydown)=\"onKeyDown($event)\"\n         (keypress)=\"keypressEvent.emit($event)\"\n         [disabled]=\"disabled\"\n         [readonly]=\"readonly\"\n         [attr.maxlength]=\"maxlength\"\n         [attr.minlength]=\"minlength\"\n         [required]=\"required\"\n         [attr.pattern]=\"pattern\"\n         [autofocus]=\"autofocus\"\n         [cpfMask]=\"useCpfMask\"  \n         [cnpjMask]=\"useCnpjMask\" \n         [cepMask]=\"useCepMask\">\n\n  <!-- Modal para exibir mensagens de erro -->\n  <div class=\"modal-overlay\" *ngIf=\"showErrorModal\">\n    <div class=\"modal-content\">\n      <span class=\"close\" (click)=\"closeModal()\">×</span>\n      <p>{{ errorMessage }}</p>\n      <button class=\"btn-ok\" (click)=\"closeModal()\">OK</button>\n    </div>\n  </div>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:25px 30px;border-radius:8px;width:360px;text-align:center;position:relative;box-shadow:0 4px 12px #0003}.close{position:absolute;top:10px;right:15px;cursor:pointer;font-size:20px;color:#555;transition:color .3s}.close:hover{color:#f44336}.btn-ok{margin-top:20px;padding:8px 20px;border:none;background-color:#00444c;color:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s,transform .2s}.btn-ok:hover{background-color:#00363d;transform:scale(1.05)}.btn-ok:active{transform:scale(.98)}\n"] }]
         | 
| 1095 1363 | 
             
                    }], ctorParameters: function () { return [{ type: AuthService }]; }, propDecorators: { label: [{
         | 
| 1096 1364 | 
             
                            type: Input
         | 
| 1097 1365 | 
             
                        }], placeholder: [{
         | 
| @@ -1114,6 +1382,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 1114 1382 | 
             
                            type: Input
         | 
| 1115 1383 | 
             
                        }], autofocus: [{
         | 
| 1116 1384 | 
             
                            type: Input
         | 
| 1385 | 
            +
                        }], useCpfMask: [{
         | 
| 1386 | 
            +
                            type: Input
         | 
| 1387 | 
            +
                        }], useCnpjMask: [{
         | 
| 1388 | 
            +
                            type: Input
         | 
| 1389 | 
            +
                        }], useCepMask: [{
         | 
| 1390 | 
            +
                            type: Input
         | 
| 1391 | 
            +
                        }], removeNonNumeric: [{
         | 
| 1392 | 
            +
                            type: Input
         | 
| 1393 | 
            +
                        }], onlyNumbers: [{
         | 
| 1394 | 
            +
                            type: Input
         | 
| 1395 | 
            +
                        }], validateInput: [{
         | 
| 1396 | 
            +
                            type: Input
         | 
| 1117 1397 | 
             
                        }], labelFontWeight: [{
         | 
| 1118 1398 | 
             
                            type: Input
         | 
| 1119 1399 | 
             
                        }], permissions: [{
         | 
| @@ -1327,14 +1607,14 @@ class MultiSelectComponent { | |
| 1327 1607 | 
             
                        return true;
         | 
| 1328 1608 | 
             
                    }
         | 
| 1329 1609 | 
             
                }
         | 
| 1330 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: AuthService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 1610 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: AuthService }, { token: i2$1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 1331 1611 | 
             
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, selector: "argenta-custom-multi-select", inputs: { label: "label", data: "data", placeholder: "placeholder", selected: "selected", id: "id", bindLabel: "bindLabel", bindValue: "bindValue", permissions: "permissions", closeOnSelect: "closeOnSelect", searchUrl: "searchUrl", multiple: "multiple", searchParams: "searchParams" }, outputs: { keyupEvent: "keyupEvent" }, providers: [
         | 
| 1332 1612 | 
             
                        {
         | 
| 1333 1613 | 
             
                            provide: NG_VALUE_ACCESSOR,
         | 
| 1334 1614 | 
             
                            useExisting: forwardRef(() => MultiSelectComponent),
         | 
| 1335 1615 | 
             
                            multi: true
         | 
| 1336 1616 | 
             
                        }
         | 
| 1337 | 
            -
                    ], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n  <label [for]=\"id\" class=\"form-label\" style=\"margin-top: 1rem;\">{{ label }}</label>\n  <ng-select\n    [class.course-entry]=\"isCourseEntered\"\n    class=\"ng-select custom-ng-select\"\n    [items]=\"filteredItems | async\"\n    [multiple]=\"multiple\"\n    [closeOnSelect]=\"closeOnSelect\"\n    [hideSelected]=\"true\"\n    [bindLabel]=\"bindLabel\"\n    [bindValue]=\"bindValue\"\n    [(ngModel)]=\"selected\"\n    [compareWith]=\"compareFn\"\n    (change)=\"onSelectedChange($event)\"\n    (keyup)=\"onKeyUp($event)\"\n    (input)=\"onInputChange($event)\"\n    [id]=\"id\"\n    [placeholder]=\"selected && (multiple ? selected.length === 0 : !selected) ? placeholder : ''\"\n    (focus)=\"onFocus()\"\n    (blur)=\"onBlur()\">\n    <ng-template ng-option-tmp let-item=\"item\">\n      {{ item[bindLabel] }}\n    </ng-template>\n  </ng-select>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;font-weight:400;border:1px solid #ccc;border-radius:4px;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2rem;background-image:none;background-repeat:no-repeat;background-position:right .5rem center;height:46px}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.2rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}.ng-select{display:block;width:100%;font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.ng-select .ng-select-container{display:flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:.5rem;background-color:#fff;color:#333}.ng-select .ng-select-container .ng-value-container{display:flex;align-items:center;flex-grow:1}.ng-select .ng-select-container .ng-clear{display:none}.ng-select .ng-select-container .ng-input{flex-grow:1;border:none;outline:none}.custom-ng-select.ng-select .ng-select-container .ng-input>input{box-sizing:border-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:.5rem!important;cursor:default;width:100%}.ng-select .ng-dropdown-panel{border:1px solid #ccc;border-radius:4px;background-color:#fff;color:#333;box-shadow:0 2px 4px #0000001a}.ng-select .ng-dropdown-panel .ng-option{padding:8px;cursor:pointer}.ng-select .ng-dropdown-panel .ng-option:hover{background-color:#f1f1f1}.ng-select .ng-dropdown-panel .ng-option.selected{background-color:#007bff;color:#fff}\n"], dependencies: [{ kind: "directive", type:  | 
| 1617 | 
            +
                    ], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n  <label [for]=\"id\" class=\"form-label\" style=\"margin-top: 1rem;\">{{ label }}</label>\n  <ng-select\n    [class.course-entry]=\"isCourseEntered\"\n    class=\"ng-select custom-ng-select\"\n    [items]=\"filteredItems | async\"\n    [multiple]=\"multiple\"\n    [closeOnSelect]=\"closeOnSelect\"\n    [hideSelected]=\"true\"\n    [bindLabel]=\"bindLabel\"\n    [bindValue]=\"bindValue\"\n    [(ngModel)]=\"selected\"\n    [compareWith]=\"compareFn\"\n    (change)=\"onSelectedChange($event)\"\n    (keyup)=\"onKeyUp($event)\"\n    (input)=\"onInputChange($event)\"\n    [id]=\"id\"\n    [placeholder]=\"selected && (multiple ? selected.length === 0 : !selected) ? placeholder : ''\"\n    (focus)=\"onFocus()\"\n    (blur)=\"onBlur()\">\n    <ng-template ng-option-tmp let-item=\"item\">\n      {{ item[bindLabel] }}\n    </ng-template>\n  </ng-select>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;font-weight:400;border:1px solid #ccc;border-radius:4px;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2rem;background-image:none;background-repeat:no-repeat;background-position:right .5rem center;height:46px}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.2rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}.ng-select{display:block;width:100%;font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.ng-select .ng-select-container{display:flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:.5rem;background-color:#fff;color:#333}.ng-select .ng-select-container .ng-value-container{display:flex;align-items:center;flex-grow:1}.ng-select .ng-select-container .ng-clear{display:none}.ng-select .ng-select-container .ng-input{flex-grow:1;border:none;outline:none}.custom-ng-select.ng-select .ng-select-container .ng-input>input{box-sizing:border-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:.5rem!important;cursor:default;width:100%}.ng-select .ng-dropdown-panel{border:1px solid #ccc;border-radius:4px;background-color:#fff;color:#333;box-shadow:0 2px 4px #0000001a}.ng-select .ng-dropdown-panel .ng-option{padding:8px;cursor:pointer}.ng-select .ng-dropdown-panel .ng-option:hover{background-color:#f1f1f1}.ng-select .ng-dropdown-panel .ng-option.selected{background-color:#007bff;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 1338 1618 | 
             
            }
         | 
| 1339 1619 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
         | 
| 1340 1620 | 
             
                        type: Component,
         | 
| @@ -1345,7 +1625,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 1345 1625 | 
             
                                        multi: true
         | 
| 1346 1626 | 
             
                                    }
         | 
| 1347 1627 | 
             
                                ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n  <label [for]=\"id\" class=\"form-label\" style=\"margin-top: 1rem;\">{{ label }}</label>\n  <ng-select\n    [class.course-entry]=\"isCourseEntered\"\n    class=\"ng-select custom-ng-select\"\n    [items]=\"filteredItems | async\"\n    [multiple]=\"multiple\"\n    [closeOnSelect]=\"closeOnSelect\"\n    [hideSelected]=\"true\"\n    [bindLabel]=\"bindLabel\"\n    [bindValue]=\"bindValue\"\n    [(ngModel)]=\"selected\"\n    [compareWith]=\"compareFn\"\n    (change)=\"onSelectedChange($event)\"\n    (keyup)=\"onKeyUp($event)\"\n    (input)=\"onInputChange($event)\"\n    [id]=\"id\"\n    [placeholder]=\"selected && (multiple ? selected.length === 0 : !selected) ? placeholder : ''\"\n    (focus)=\"onFocus()\"\n    (blur)=\"onBlur()\">\n    <ng-template ng-option-tmp let-item=\"item\">\n      {{ item[bindLabel] }}\n    </ng-template>\n  </ng-select>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;font-weight:400;border:1px solid #ccc;border-radius:4px;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2rem;background-image:none;background-repeat:no-repeat;background-position:right .5rem center;height:46px}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.2rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}.ng-select{display:block;width:100%;font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.ng-select .ng-select-container{display:flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:.5rem;background-color:#fff;color:#333}.ng-select .ng-select-container .ng-value-container{display:flex;align-items:center;flex-grow:1}.ng-select .ng-select-container .ng-clear{display:none}.ng-select .ng-select-container .ng-input{flex-grow:1;border:none;outline:none}.custom-ng-select.ng-select .ng-select-container .ng-input>input{box-sizing:border-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:.5rem!important;cursor:default;width:100%}.ng-select .ng-dropdown-panel{border:1px solid #ccc;border-radius:4px;background-color:#fff;color:#333;box-shadow:0 2px 4px #0000001a}.ng-select .ng-dropdown-panel .ng-option{padding:8px;cursor:pointer}.ng-select .ng-dropdown-panel .ng-option:hover{background-color:#f1f1f1}.ng-select .ng-dropdown-panel .ng-option.selected{background-color:#007bff;color:#fff}\n"] }]
         | 
| 1348 | 
            -
                    }], ctorParameters: function () { return [{ type: AuthService }, { type: i2.HttpClient }]; }, propDecorators: { label: [{
         | 
| 1628 | 
            +
                    }], ctorParameters: function () { return [{ type: AuthService }, { type: i2$1.HttpClient }]; }, propDecorators: { label: [{
         | 
| 1349 1629 | 
             
                            type: Input
         | 
| 1350 1630 | 
             
                        }], data: [{
         | 
| 1351 1631 | 
             
                            type: Input
         | 
| @@ -1431,7 +1711,7 @@ class RadioComponent { | |
| 1431 1711 | 
             
                         [disabled]="disabled">
         | 
| 1432 1712 | 
             
                  <label class="form-check-label" [for]="id">{{ label }}</label>
         | 
| 1433 1713 | 
             
                </div>
         | 
| 1434 | 
            -
              `, isInline: true, styles: [".form-check{font-family:Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem;margin-right:.5rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type:  | 
| 1714 | 
            +
              `, isInline: true, styles: [".form-check{font-family:Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem;margin-right:.5rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 1435 1715 | 
             
            }
         | 
| 1436 1716 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioComponent, decorators: [{
         | 
| 1437 1717 | 
             
                        type: Component,
         | 
| @@ -1573,7 +1853,7 @@ class SearchInputComponent { | |
| 1573 1853 | 
             
                            useExisting: forwardRef(() => SearchInputComponent),
         | 
| 1574 1854 | 
             
                            multi: true
         | 
| 1575 1855 | 
             
                        }
         | 
| 1576 | 
            -
                    ], ngImport: i0, template: "<div class=\"form-group\">\n  <label [for]=\"id\" [ngStyle]=\"getLabelStyles()\">{{ label }}</label>\n  <input [type]=\"type\"\n         class=\"form-control custom-input\"\n         [id]=\"id\"\n         [placeholder]=\"placeholder\"\n         [(ngModel)]=\"value\"\n         (input)=\"onInput($event)\"\n         (change)=\"onChange($event)\"\n         (focus)=\"onFocus($event)\"\n         (blur)=\"onBlur($event)\"\n         (keyup)=\"onKeyup($event)\"\n         (keydown)=\"onKeydown($event)\"\n         (keypress)=\"onKeypress($event)\"\n         [disabled]=\"disabled\"\n         [readonly]=\"readonly\"\n         [attr.maxlength]=\"maxlength\"\n         [attr.minlength]=\"minlength\"\n         [required]=\"required\"\n         [attr.pattern]=\"pattern\"\n         [autofocus]=\"autofocus\">\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;width:227px;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}label{font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}\n"], dependencies: [{ kind: "directive", type:  | 
| 1856 | 
            +
                    ], ngImport: i0, template: "<div class=\"form-group\">\n  <label [for]=\"id\" [ngStyle]=\"getLabelStyles()\">{{ label }}</label>\n  <input [type]=\"type\"\n         class=\"form-control custom-input\"\n         [id]=\"id\"\n         [placeholder]=\"placeholder\"\n         [(ngModel)]=\"value\"\n         (input)=\"onInput($event)\"\n         (change)=\"onChange($event)\"\n         (focus)=\"onFocus($event)\"\n         (blur)=\"onBlur($event)\"\n         (keyup)=\"onKeyup($event)\"\n         (keydown)=\"onKeydown($event)\"\n         (keypress)=\"onKeypress($event)\"\n         [disabled]=\"disabled\"\n         [readonly]=\"readonly\"\n         [attr.maxlength]=\"maxlength\"\n         [attr.minlength]=\"minlength\"\n         [required]=\"required\"\n         [attr.pattern]=\"pattern\"\n         [autofocus]=\"autofocus\">\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;width:227px;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}label{font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
         | 
| 1577 1857 | 
             
            }
         | 
| 1578 1858 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchInputComponent, decorators: [{
         | 
| 1579 1859 | 
             
                        type: Component,
         | 
| @@ -1708,7 +1988,7 @@ class SelectComponent { | |
| 1708 1988 | 
             
                    <lucide-icon name="chevron-down" [size]="16" color="#5E6366" [strokeWidth]="1.75"></lucide-icon>
         | 
| 1709 1989 | 
             
                  </div>
         | 
| 1710 1990 | 
             
                </div>
         | 
| 1711 | 
            -
              `, isInline: true, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}\n"], dependencies: [{ kind: "directive", type:  | 
| 1991 | 
            +
              `, isInline: true, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 1712 1992 | 
             
            }
         | 
| 1713 1993 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, decorators: [{
         | 
| 1714 1994 | 
             
                        type: Component,
         | 
| @@ -1923,7 +2203,7 @@ class DataTableComponent { | |
| 1923 2203 | 
             
                    this.onButtonClick.emit(); // Emitindo o evento
         | 
| 1924 2204 | 
             
                }
         | 
| 1925 2205 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: AuthService }, { token: RefreshService }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 1926 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataTableComponent, selector: "argenta-list-data-table", inputs: { columns: "columns", hiddenColumns: "hiddenColumns", defaultItemsPerPage: "defaultItemsPerPage", itemsPerPageLabel: "itemsPerPageLabel", showActionColumn: "showActionColumn", actionColumnLabel: "actionColumnLabel", totalItems: "totalItems", fetchDataFunction: "fetchDataFunction", editPermissions: "editPermissions", deletePermissions: "deletePermissions", viewPermissions: "viewPermissions", showPageInfo: "showPageInfo", pageText: "pageText", ofText: "ofText", filterDescription: "filterDescription", buttonLabel: "buttonLabel" }, outputs: { sortChange: "sortChange", pageChange: "pageChange", itemsPerPageChange: "itemsPerPageChange", onEditTable: "onEditTable", onDeleteTable: "onDeleteTable", onViewTable: "onViewTable", onButtonClick: "onButtonClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"data-table-header\" style=\"margin-top: 2.5rem;\">\n  <div class=\"left-section\">\n    <div class=\"form-group\">\n      <label for=\"itemsPerPageSelect\" class=\"items-per-page-label\">{{ itemsPerPageLabel }}</label>\n      <select\n        id=\"itemsPerPageSelect\"\n        class=\"form-control form-control-sm d-inline-block w-auto custom-select\"\n        [(ngModel)]=\"defaultItemsPerPage\"\n        (ngModelChange)=\"onItemsPerPageChange()\">\n        <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">{{ option }}</option>\n      </select>\n    </div>\n  </div>\n   <div class=\"right-section\">\n    <button class=\"custom-button\" (click)=\"onNewButtonClick()\">\n      <lucide-icon name=\"plus\" [size]=\"28\" [strokeWidth]=\"1.75\"></lucide-icon>\n      {{ buttonLabel }}\n    </button>\n  </div>\n</div>\n\n<div class=\"search-input-container\">\n  <argenta-search-input id=\"search\" label=\"\" placeholder=\"Buscar\" [(ngModel)]=\"filterDescription\" (search)=\"onSearch($event)\"></argenta-search-input>\n</div>\n\n<div class=\"table-responsive\" style=\"margin-top: 1rem;\">\n  <table class=\"table table-hover\">\n    <thead>\n      <tr>\n        <ng-container *ngFor=\"let column of columns\">\n          <th *ngIf=\"!isColumnHidden(column.prop)\" (click)=\"onSort(column.prop)\">\n            {{ column.label }}\n          </th>\n        </ng-container>\n        <th *ngIf=\"showActionColumn\" class=\"text-end\" style=\"padding-right: 6.3rem;\">{{ actionColumnLabel }}</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr *ngFor=\"let item of pagedData; let i = index\">\n        <ng-container *ngFor=\"let column of columns\">\n          <td *ngIf=\"!isColumnHidden(column.prop)\">\n            {{ item[column.prop] }}\n          </td>\n        </ng-container>\n        <td *ngIf=\"showActionColumn\" class=\"text-end\">\n          <div class=\"d-flex justify-content-end\">\n            <div *ngIf=\"hasPermission(editPermissions) && onEditTable.observers.length > 0\" (click)=\"handleAction('edit', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n              <lucide-icon name=\"square-pen\" [size]=\"20\" color=\"#2CA58D\" [strokeWidth]=\"1.75\"></lucide-icon>\n            </div>\n            <div *ngIf=\"hasPermission(viewPermissions) && onViewTable.observers.length > 0\" (click)=\"handleAction('view', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n              <lucide-icon name=\"user-round\" [size]=\"20\" color=\"#2CA58D\" [strokeWidth]=\"1.75\"></lucide-icon>\n            </div>\n            <div *ngIf=\"hasPermission(deletePermissions) && onDeleteTable.observers.length > 0\" (click)=\"handleAction('delete', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n              <i-lucide name=\"trash-2\" [size]=\"20\" color=\"#F26E6E\" [strokeWidth]=\"1.75\"></i-lucide>\n            </div>\n          </div>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n\n<div class=\"text-center pagination-controls\">\n  <custom-pagination\n    [totalItems]=\"totalItems\"\n    [itemsPerPage]=\"defaultItemsPerPage\"\n    [currentPage]=\"currentPage\"\n    [showPageInfo]=\"showPageInfo\"\n    (pageChange)=\"onPageChange($event)\">\n  </custom-pagination>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.clickable-icon{cursor:pointer}:host{font-family:Inter,Arial,sans-serif}.data-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:-.2rem}.left-section,.right-section{display:flex;align-items:center}.search-input-container{display:flex;justify-content:flex-start}.left-section .form-group{display:flex;align-items:center}.items-per-page-label{font-family:Inter,Arial,sans-serif;font-size:14px;color:#666;margin-right:.2rem}.custom-select{font-family:Inter,Arial,sans-serif;font-size:14px;color:#666;background:#fff url('data:image/svg+xml;charset=US-ASCII,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 4 5\"><path fill=\"#666\" d=\"M2 0L0 2h4L2 0zM2 5l2-2H0l2 2z\"/></svg>') no-repeat right .75rem center/8px 10px;border:1px solid #ccc;border-radius:.25rem;padding:.375rem 1.75rem .375rem .75rem;appearance:none;-webkit-appearance:none;-moz-appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem #007bff40}.table{font-family:Inter,Arial,sans-serif;font-size:var(--table-font-size, 14px);color:var(--table-font-color, #737B7B);border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden}.table thead tr{height:60px}.table thead th{background-color:#00444c;color:#fff;font-family:Inter,Arial,sans-serif;font-size:13px;font-weight:600;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center;line-height:2.5}.table thead th:first-child{text-align:left;padding-left:1.4rem}.table tbody td{font-family:Inter,Arial,sans-serif;font-size:14px;color:#737b7b;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center}.table tbody td:first-child{text-align:left;padding-left:1.4rem}.table tbody tr:last-child td{border-bottom:.1rem solid #dcdcdc}.table tbody td{border-right:none;border-left:none}.table thead th:first-child{border-top-left-radius:0}.table thead th:last-child{border-top-right-radius:0}.table tbody tr:last-child td:first-child{border-bottom-left-radius:0}.table tbody tr:last-child td:last-child{border-bottom-right-radius:0}.btn-icon{width:24px;height:24px;background-size:cover;display:inline-block;cursor:pointer;margin-right:16px}.pagination-controls{display:flex;justify-content:center;align-items:center;margin-top:1rem}.custom-button{display:flex;align-items:center;padding:.5rem 1rem .5rem .5rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:40px;letter-spacing:.005em;text-align:left;color:#fff;background-color:#2ca58d;border:none;cursor:pointer}.custom-button lucide-icon{margin-right:.5rem}.custom-button:hover{background-color:#217d6b}.custom-button:active{background-color:#3acaae}.custom-button:focus{outline:none;box-shadow:0 0 0 .2rem #2ca58d40}\n"], dependencies: [{ kind: "directive", type:  | 
| 2206 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataTableComponent, selector: "argenta-list-data-table", inputs: { columns: "columns", hiddenColumns: "hiddenColumns", defaultItemsPerPage: "defaultItemsPerPage", itemsPerPageLabel: "itemsPerPageLabel", showActionColumn: "showActionColumn", actionColumnLabel: "actionColumnLabel", totalItems: "totalItems", fetchDataFunction: "fetchDataFunction", editPermissions: "editPermissions", deletePermissions: "deletePermissions", viewPermissions: "viewPermissions", showPageInfo: "showPageInfo", pageText: "pageText", ofText: "ofText", filterDescription: "filterDescription", buttonLabel: "buttonLabel" }, outputs: { sortChange: "sortChange", pageChange: "pageChange", itemsPerPageChange: "itemsPerPageChange", onEditTable: "onEditTable", onDeleteTable: "onDeleteTable", onViewTable: "onViewTable", onButtonClick: "onButtonClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"data-table-header\" style=\"margin-top: 2.5rem;\">\n  <div class=\"left-section\">\n    <div class=\"form-group\">\n      <label for=\"itemsPerPageSelect\" class=\"items-per-page-label\">{{ itemsPerPageLabel }}</label>\n      <select\n        id=\"itemsPerPageSelect\"\n        class=\"form-control form-control-sm d-inline-block w-auto custom-select\"\n        [(ngModel)]=\"defaultItemsPerPage\"\n        (ngModelChange)=\"onItemsPerPageChange()\">\n        <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">{{ option }}</option>\n      </select>\n    </div>\n  </div>\n   <div class=\"right-section\">\n    <button class=\"custom-button\" (click)=\"onNewButtonClick()\">\n      <lucide-icon name=\"plus\" [size]=\"28\" [strokeWidth]=\"1.75\"></lucide-icon>\n      {{ buttonLabel }}\n    </button>\n  </div>\n</div>\n\n<div class=\"search-input-container\">\n  <argenta-search-input id=\"search\" label=\"\" placeholder=\"Buscar\" [(ngModel)]=\"filterDescription\" (search)=\"onSearch($event)\"></argenta-search-input>\n</div>\n\n<div class=\"table-responsive\" style=\"margin-top: 1rem;\">\n  <table class=\"table table-hover\">\n    <thead>\n      <tr>\n        <ng-container *ngFor=\"let column of columns\">\n          <th *ngIf=\"!isColumnHidden(column.prop)\" (click)=\"onSort(column.prop)\">\n            {{ column.label }}\n          </th>\n        </ng-container>\n        <th *ngIf=\"showActionColumn\" class=\"text-end\" style=\"padding-right: 6.3rem;\">{{ actionColumnLabel }}</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr *ngFor=\"let item of pagedData; let i = index\">\n        <ng-container *ngFor=\"let column of columns\">\n          <td *ngIf=\"!isColumnHidden(column.prop)\">\n            {{ item[column.prop] }}\n          </td>\n        </ng-container>\n        <td *ngIf=\"showActionColumn\" class=\"text-end\">\n          <div class=\"d-flex justify-content-end\">\n            <div *ngIf=\"hasPermission(editPermissions) && onEditTable.observers.length > 0\" (click)=\"handleAction('edit', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n              <lucide-icon name=\"square-pen\" [size]=\"20\" color=\"#2CA58D\" [strokeWidth]=\"1.75\"></lucide-icon>\n            </div>\n            <div *ngIf=\"hasPermission(viewPermissions) && onViewTable.observers.length > 0\" (click)=\"handleAction('view', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n              <lucide-icon name=\"user-round\" [size]=\"20\" color=\"#2CA58D\" [strokeWidth]=\"1.75\"></lucide-icon>\n            </div>\n            <div *ngIf=\"hasPermission(deletePermissions) && onDeleteTable.observers.length > 0\" (click)=\"handleAction('delete', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n              <i-lucide name=\"trash-2\" [size]=\"20\" color=\"#F26E6E\" [strokeWidth]=\"1.75\"></i-lucide>\n            </div>\n          </div>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n\n<div class=\"text-center pagination-controls\">\n  <custom-pagination\n    [totalItems]=\"totalItems\"\n    [itemsPerPage]=\"defaultItemsPerPage\"\n    [currentPage]=\"currentPage\"\n    [showPageInfo]=\"showPageInfo\"\n    (pageChange)=\"onPageChange($event)\">\n  </custom-pagination>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.clickable-icon{cursor:pointer}:host{font-family:Inter,Arial,sans-serif}.data-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:-.2rem}.left-section,.right-section{display:flex;align-items:center}.search-input-container{display:flex;justify-content:flex-start}.left-section .form-group{display:flex;align-items:center}.items-per-page-label{font-family:Inter,Arial,sans-serif;font-size:14px;color:#666;margin-right:.2rem}.custom-select{font-family:Inter,Arial,sans-serif;font-size:14px;color:#666;background:#fff url('data:image/svg+xml;charset=US-ASCII,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 4 5\"><path fill=\"#666\" d=\"M2 0L0 2h4L2 0zM2 5l2-2H0l2 2z\"/></svg>') no-repeat right .75rem center/8px 10px;border:1px solid #ccc;border-radius:.25rem;padding:.375rem 1.75rem .375rem .75rem;appearance:none;-webkit-appearance:none;-moz-appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem #007bff40}.table{font-family:Inter,Arial,sans-serif;font-size:var(--table-font-size, 14px);color:var(--table-font-color, #737B7B);border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden}.table thead tr{height:60px}.table thead th{background-color:#00444c;color:#fff;font-family:Inter,Arial,sans-serif;font-size:13px;font-weight:600;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center;line-height:2.5}.table thead th:first-child{text-align:left;padding-left:1.4rem}.table tbody td{font-family:Inter,Arial,sans-serif;font-size:14px;color:#737b7b;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center}.table tbody td:first-child{text-align:left;padding-left:1.4rem}.table tbody tr:last-child td{border-bottom:.1rem solid #dcdcdc}.table tbody td{border-right:none;border-left:none}.table thead th:first-child{border-top-left-radius:0}.table thead th:last-child{border-top-right-radius:0}.table tbody tr:last-child td:first-child{border-bottom-left-radius:0}.table tbody tr:last-child td:last-child{border-bottom-right-radius:0}.btn-icon{width:24px;height:24px;background-size:cover;display:inline-block;cursor:pointer;margin-right:16px}.pagination-controls{display:flex;justify-content:center;align-items:center;margin-top:1rem}.custom-button{display:flex;align-items:center;padding:.5rem 1rem .5rem .5rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:40px;letter-spacing:.005em;text-align:left;color:#fff;background-color:#2ca58d;border:none;cursor:pointer}.custom-button lucide-icon{margin-right:.5rem}.custom-button:hover{background-color:#217d6b}.custom-button:active{background-color:#3acaae}.custom-button:focus{outline:none;box-shadow:0 0 0 .2rem #2ca58d40}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "component", type: CustomPaginationComponent, selector: "custom-pagination", inputs: ["totalItems", "itemsPerPage", "currentPage", "showPageInfo"], outputs: ["pageChange"] }, { kind: "component", type: SearchInputComponent, selector: "argenta-search-input", inputs: ["id", "label", "type", "placeholder", "value", "disabled", "readonly", "autofocus", "maxlength", "minlength", "required", "pattern", "debounceTime"], outputs: ["search", "inputChange", "change", "focus", "blur", "keyup", "keydown", "keypress"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 1927 2207 | 
             
            }
         | 
| 1928 2208 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, decorators: [{
         | 
| 1929 2209 | 
             
                        type: Component,
         | 
| @@ -2074,7 +2354,7 @@ class TextareaComponent { | |
| 2074 2354 | 
             
                            [readonly]="readonly"
         | 
| 2075 2355 | 
             
                            [autofocus]="autofocus"></textarea>
         | 
| 2076 2356 | 
             
                </div>
         | 
| 2077 | 
            -
              `, isInline: true, styles: [".form-group{margin-bottom:1rem}.form-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type:  | 
| 2357 | 
            +
              `, isInline: true, styles: [".form-group{margin-bottom:1rem}.form-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         | 
| 2078 2358 | 
             
            }
         | 
| 2079 2359 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TextareaComponent, decorators: [{
         | 
| 2080 2360 | 
             
                        type: Component,
         | 
| @@ -2204,7 +2484,7 @@ class TreeNodeComponent { | |
| 2204 2484 | 
             
                    node.collapsed = !node.collapsed;
         | 
| 2205 2485 | 
             
                }
         | 
| 2206 2486 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 2207 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TreeNodeComponent, selector: "argenta-custom-tree-node", inputs: { title: "title", nodes: "nodes", isRoot: "isRoot" }, outputs: { nodeSelected: "nodeSelected" }, ngImport: i0, template: "<div *ngIf=\"isRoot\" class=\"tree-title\">{{ title || 'Tree Node' }}</div>\n<ul class=\"tree\">\n  <li *ngFor=\"let node of nodes\">\n    <div class=\"node-content\">\n      <span *ngIf=\"node.children\" class=\"toggle-icon\" (click)=\"toggleCollapse(node)\"\n        [ngClass]=\"{'collapsed-icon': node.collapsed, 'expanded-icon': !node.collapsed}\">\n        {{ node.collapsed ? '\u25B6' : '\u25BC' }}\n      </span>\n      <span *ngIf=\"!node.children\" class=\"dot\"></span> <!-- Bolinha cinza para n\u00F3s sem filhos -->\n      <label class=\"custom-checkbox\">\n        <input type=\"checkbox\" [checked]=\"node.selected\" (change)=\"onNodeSelected(node, $event)\" />\n        <span class=\"checkmark\"></span>\n      </label>\n      <label class=\"node-label\">{{ node.name }}</label>\n    </div>\n    <argenta-custom-tree-node *ngIf=\"node.children && !node.collapsed\" [nodes]=\"node.children\" [isRoot]=\"false\" (nodeSelected)=\"onChildNodeSelected(node)\"></argenta-custom-tree-node>\n  </li>\n</ul>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap\";.tree{list-style-type:none;margin:0;padding:0;position:relative;font-family:Inter,sans-serif}.tree li{margin:0;padding:0 0 0 2em;line-height:2em;position:relative;font-size:14px;transition:all .3s ease}.tree li:before{content:\"\";position:absolute;top:0;left:0;border-left:1px solid #ccc;bottom:.75em;transition:border-color .3s ease}.tree li:after{content:\"\";position:absolute;top:1em;left:0;border-top:1px solid #ccc;width:1em;transition:border-color .3s ease}.tree li:last-child:before{height:1em}.node-content{display:flex;align-items:center;color:#333;transition:color .3s ease}.node-content:hover .node-label{color:#00444c;box-shadow:0 4px 8px #0000001a}.toggle-icon{cursor:pointer;margin-right:.5em;font-size:1em;transition:transform .3s ease,color .3s ease}.collapsed-icon{color:orange}.expanded-icon{color:green}.node-content input[type=checkbox]{display:none}.custom-checkbox{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.checkmark{position:relative;height:14px;width:14px;background-color:#fff;border:2px solid #00444C;border-radius:3px;transition:background-color .3s ease,border-color .3s ease}.custom-checkbox input:checked+.checkmark{background-color:#00444c;border-color:#00444c;transition:background-color .3s ease,border-color .3s ease}.custom-checkbox .checkmark:after{content:\"\";position:absolute;display:none;left:4px;top:1px;width:3px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .3s ease}.custom-checkbox input:checked+.checkmark:after{display:block}.node-label{margin-left:.5em;transition:color .3s ease,box-shadow .3s ease}.node-content input{margin-right:.5em;transition:transform .3s ease}.tree-title{font-weight:600;margin-bottom:10px;font-size:18px;color:#00444c;transition:color .3s ease}.dot{width:8px;height:8px;background-color:#828282;border-radius:50%;margin-right:8px;opacity:1}\n"], dependencies: [{ kind: "directive", type:  | 
| 2487 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TreeNodeComponent, selector: "argenta-custom-tree-node", inputs: { title: "title", nodes: "nodes", isRoot: "isRoot" }, outputs: { nodeSelected: "nodeSelected" }, ngImport: i0, template: "<div *ngIf=\"isRoot\" class=\"tree-title\">{{ title || 'Tree Node' }}</div>\n<ul class=\"tree\">\n  <li *ngFor=\"let node of nodes\">\n    <div class=\"node-content\">\n      <span *ngIf=\"node.children\" class=\"toggle-icon\" (click)=\"toggleCollapse(node)\"\n        [ngClass]=\"{'collapsed-icon': node.collapsed, 'expanded-icon': !node.collapsed}\">\n        {{ node.collapsed ? '\u25B6' : '\u25BC' }}\n      </span>\n      <span *ngIf=\"!node.children\" class=\"dot\"></span> <!-- Bolinha cinza para n\u00F3s sem filhos -->\n      <label class=\"custom-checkbox\">\n        <input type=\"checkbox\" [checked]=\"node.selected\" (change)=\"onNodeSelected(node, $event)\" />\n        <span class=\"checkmark\"></span>\n      </label>\n      <label class=\"node-label\">{{ node.name }}</label>\n    </div>\n    <argenta-custom-tree-node *ngIf=\"node.children && !node.collapsed\" [nodes]=\"node.children\" [isRoot]=\"false\" (nodeSelected)=\"onChildNodeSelected(node)\"></argenta-custom-tree-node>\n  </li>\n</ul>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap\";.tree{list-style-type:none;margin:0;padding:0;position:relative;font-family:Inter,sans-serif}.tree li{margin:0;padding:0 0 0 2em;line-height:2em;position:relative;font-size:14px;transition:all .3s ease}.tree li:before{content:\"\";position:absolute;top:0;left:0;border-left:1px solid #ccc;bottom:.75em;transition:border-color .3s ease}.tree li:after{content:\"\";position:absolute;top:1em;left:0;border-top:1px solid #ccc;width:1em;transition:border-color .3s ease}.tree li:last-child:before{height:1em}.node-content{display:flex;align-items:center;color:#333;transition:color .3s ease}.node-content:hover .node-label{color:#00444c;box-shadow:0 4px 8px #0000001a}.toggle-icon{cursor:pointer;margin-right:.5em;font-size:1em;transition:transform .3s ease,color .3s ease}.collapsed-icon{color:orange}.expanded-icon{color:green}.node-content input[type=checkbox]{display:none}.custom-checkbox{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.checkmark{position:relative;height:14px;width:14px;background-color:#fff;border:2px solid #00444C;border-radius:3px;transition:background-color .3s ease,border-color .3s ease}.custom-checkbox input:checked+.checkmark{background-color:#00444c;border-color:#00444c;transition:background-color .3s ease,border-color .3s ease}.custom-checkbox .checkmark:after{content:\"\";position:absolute;display:none;left:4px;top:1px;width:3px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .3s ease}.custom-checkbox input:checked+.checkmark:after{display:block}.node-label{margin-left:.5em;transition:color .3s ease,box-shadow .3s ease}.node-content input{margin-right:.5em;transition:transform .3s ease}.tree-title{font-weight:600;margin-bottom:10px;font-size:18px;color:#00444c;transition:color .3s ease}.dot{width:8px;height:8px;background-color:#828282;border-radius:50%;margin-right:8px;opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TreeNodeComponent, selector: "argenta-custom-tree-node", inputs: ["title", "nodes", "isRoot"], outputs: ["nodeSelected"] }] }); }
         | 
| 2208 2488 | 
             
            }
         | 
| 2209 2489 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeNodeComponent, decorators: [{
         | 
| 2210 2490 | 
             
                        type: Component,
         | 
| @@ -2249,13 +2529,17 @@ class ComponentsModule { | |
| 2249 2529 | 
             
                        AlertComponent,
         | 
| 2250 2530 | 
             
                        ConfirmationComponent,
         | 
| 2251 2531 | 
             
                        AutofocusDirective,
         | 
| 2532 | 
            +
                        CepMaskDirective,
         | 
| 2533 | 
            +
                        CnpjMaskDirective,
         | 
| 2534 | 
            +
                        CpfMaskDirective,
         | 
| 2252 2535 | 
             
                        CustomPaginationComponent,
         | 
| 2253 2536 | 
             
                        TreeNodeComponent,
         | 
| 2254 2537 | 
             
                        SearchInputComponent,
         | 
| 2255 2538 | 
             
                        AppBackgroundComponent,
         | 
| 2256 2539 | 
             
                        BasicRegistrationComponent,
         | 
| 2257 2540 | 
             
                        CustomSwitchComponent,
         | 
| 2258 | 
            -
                        SearchCustomerComponent | 
| 2541 | 
            +
                        SearchCustomerComponent,
         | 
| 2542 | 
            +
                        TabComponent], imports: [CommonModule,
         | 
| 2259 2543 | 
             
                        FormsModule,
         | 
| 2260 2544 | 
             
                        ReactiveFormsModule,
         | 
| 2261 2545 | 
             
                        NgSelectModule,
         | 
| @@ -2275,6 +2559,10 @@ class ComponentsModule { | |
| 2275 2559 | 
             
                        BadgeComponent,
         | 
| 2276 2560 | 
             
                        AlertComponent,
         | 
| 2277 2561 | 
             
                        ConfirmationComponent,
         | 
| 2562 | 
            +
                        AutofocusDirective,
         | 
| 2563 | 
            +
                        CepMaskDirective,
         | 
| 2564 | 
            +
                        CnpjMaskDirective,
         | 
| 2565 | 
            +
                        CpfMaskDirective,
         | 
| 2278 2566 | 
             
                        CustomPaginationComponent,
         | 
| 2279 2567 | 
             
                        TreeNodeComponent,
         | 
| 2280 2568 | 
             
                        SearchInputComponent,
         | 
| @@ -2282,7 +2570,8 @@ class ComponentsModule { | |
| 2282 2570 | 
             
                        AppBackgroundComponent,
         | 
| 2283 2571 | 
             
                        BasicRegistrationComponent,
         | 
| 2284 2572 | 
             
                        CustomSwitchComponent,
         | 
| 2285 | 
            -
                        SearchCustomerComponent | 
| 2573 | 
            +
                        SearchCustomerComponent,
         | 
| 2574 | 
            +
                        TabComponent] }); }
         | 
| 2286 2575 | 
             
                static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
         | 
| 2287 2576 | 
             
                        FormsModule,
         | 
| 2288 2577 | 
             
                        ReactiveFormsModule,
         | 
| @@ -2310,6 +2599,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 2310 2599 | 
             
                                    AlertComponent,
         | 
| 2311 2600 | 
             
                                    ConfirmationComponent,
         | 
| 2312 2601 | 
             
                                    AutofocusDirective,
         | 
| 2602 | 
            +
                                    CepMaskDirective,
         | 
| 2603 | 
            +
                                    CnpjMaskDirective,
         | 
| 2604 | 
            +
                                    CpfMaskDirective,
         | 
| 2313 2605 | 
             
                                    CustomPaginationComponent,
         | 
| 2314 2606 | 
             
                                    TreeNodeComponent,
         | 
| 2315 2607 | 
             
                                    SearchInputComponent,
         | 
| @@ -2317,6 +2609,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 2317 2609 | 
             
                                    BasicRegistrationComponent,
         | 
| 2318 2610 | 
             
                                    CustomSwitchComponent,
         | 
| 2319 2611 | 
             
                                    SearchCustomerComponent,
         | 
| 2612 | 
            +
                                    TabComponent,
         | 
| 2320 2613 | 
             
                                ],
         | 
| 2321 2614 | 
             
                                imports: [
         | 
| 2322 2615 | 
             
                                    CommonModule,
         | 
| @@ -2342,6 +2635,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 2342 2635 | 
             
                                    BadgeComponent,
         | 
| 2343 2636 | 
             
                                    AlertComponent,
         | 
| 2344 2637 | 
             
                                    ConfirmationComponent,
         | 
| 2638 | 
            +
                                    AutofocusDirective,
         | 
| 2639 | 
            +
                                    CepMaskDirective,
         | 
| 2640 | 
            +
                                    CnpjMaskDirective,
         | 
| 2641 | 
            +
                                    CpfMaskDirective,
         | 
| 2345 2642 | 
             
                                    CustomPaginationComponent,
         | 
| 2346 2643 | 
             
                                    TreeNodeComponent,
         | 
| 2347 2644 | 
             
                                    SearchInputComponent,
         | 
| @@ -2350,6 +2647,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 2350 2647 | 
             
                                    BasicRegistrationComponent,
         | 
| 2351 2648 | 
             
                                    CustomSwitchComponent,
         | 
| 2352 2649 | 
             
                                    SearchCustomerComponent,
         | 
| 2650 | 
            +
                                    TabComponent,
         | 
| 2353 2651 | 
             
                                ],
         | 
| 2354 2652 | 
             
                            }]
         | 
| 2355 2653 | 
             
                    }] });
         | 
| @@ -2406,7 +2704,7 @@ class ConfirmationService { | |
| 2406 2704 | 
             
                        this.modalRef = null;
         | 
| 2407 2705 | 
             
                    }
         | 
| 2408 2706 | 
             
                }
         | 
| 2409 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationService, deps: [{ token: i1$ | 
| 2707 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationService, deps: [{ token: i1$1.NgbModal }], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 2410 2708 | 
             
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationService, providedIn: 'root' }); }
         | 
| 2411 2709 | 
             
            }
         | 
| 2412 2710 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationService, decorators: [{
         | 
| @@ -2414,7 +2712,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 2414 2712 | 
             
                        args: [{
         | 
| 2415 2713 | 
             
                                providedIn: 'root'
         | 
| 2416 2714 | 
             
                            }]
         | 
| 2417 | 
            -
                    }], ctorParameters: function () { return [{ type: i1$ | 
| 2715 | 
            +
                    }], ctorParameters: function () { return [{ type: i1$1.NgbModal }]; } });
         | 
| 2418 2716 |  | 
| 2419 2717 | 
             
            class DataPaginateService {
         | 
| 2420 2718 | 
             
                constructor(http) {
         | 
| @@ -2438,7 +2736,7 @@ class DataPaginateService { | |
| 2438 2736 | 
             
                        };
         | 
| 2439 2737 | 
             
                    }));
         | 
| 2440 2738 | 
             
                }
         | 
| 2441 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataPaginateService, deps: [{ token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 2739 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataPaginateService, deps: [{ token: i2$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 2442 2740 | 
             
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataPaginateService, providedIn: 'root' }); }
         | 
| 2443 2741 | 
             
            }
         | 
| 2444 2742 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataPaginateService, decorators: [{
         | 
| @@ -2446,7 +2744,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 2446 2744 | 
             
                        args: [{
         | 
| 2447 2745 | 
             
                                providedIn: 'root'
         | 
| 2448 2746 | 
             
                            }]
         | 
| 2449 | 
            -
                    }], ctorParameters: function () { return [{ type: i2.HttpClient }]; } });
         | 
| 2747 | 
            +
                    }], ctorParameters: function () { return [{ type: i2$1.HttpClient }]; } });
         | 
| 2450 2748 |  | 
| 2451 2749 | 
             
            class RouterParameterService {
         | 
| 2452 2750 | 
             
                constructor() {
         | 
| @@ -2511,5 +2809,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo | |
| 2511 2809 | 
             
             * Generated bundle index. Do not edit.
         | 
| 2512 2810 | 
             
             */
         | 
| 2513 2811 |  | 
| 2514 | 
            -
            export { AlertComponent, AppBackgroundComponent, BadgeComponent, BasicRegistrationComponent, ButtonClasses, ButtonComponent, CardComponent, CheckboxComponent, CodeHighlightComponent, ComponentsModule, ConfirmationComponent, ConfirmationService, CustomPaginationComponent, CustomSwitchComponent, DataPaginateService, DataTableComponent, InputComponent, LibPortalAngularModule, LucideIconsModule, MultiSelectComponent, NotificationService, RadioComponent, RefreshService, RouterParameterService, SearchCustomerComponent, SearchInputComponent, SelectComponent, TextareaComponent, TreeNodeComponent };
         | 
| 2812 | 
            +
            export { AlertComponent, AppBackgroundComponent, AutofocusDirective, BadgeComponent, BasicRegistrationComponent, ButtonClasses, ButtonComponent, CardComponent, CepMaskDirective, CheckboxComponent, CnpjMaskDirective, CodeHighlightComponent, ComponentsModule, ConfirmationComponent, ConfirmationService, CpfMaskDirective, CustomPaginationComponent, CustomSwitchComponent, DataPaginateService, DataTableComponent, InputComponent, LibPortalAngularModule, LucideIconsModule, MultiSelectComponent, NotificationService, RadioComponent, RefreshService, RouterParameterService, SearchCustomerComponent, SearchInputComponent, SelectComponent, TabComponent, TextareaComponent, TreeNodeComponent };
         | 
| 2515 2813 | 
             
            //# sourceMappingURL=lib-portal-angular.mjs.map
         |