lib-portal-angular 0.0.69 → 0.0.70

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"lib-portal-angular.mjs","sources":["../../../projects/lib-portal-angular/src/lib/service/auth-service.service.ts","../../../projects/lib-portal-angular/src/lib/components/accordion/accordion.component.ts","../../../projects/lib-portal-angular/src/lib/components/accordion/accordion.component.html","../../../projects/lib-portal-angular/src/lib/components/alert/alert.component.ts","../../../projects/lib-portal-angular/src/lib/components/alert/alert.component.html","../../../projects/lib-portal-angular/src/lib/components/app-background/app-background.component.ts","../../../projects/lib-portal-angular/src/lib/enum/ButtonClassesEnum.ts","../../../projects/lib-portal-angular/src/lib/components/badge/badge.component.ts","../../../projects/lib-portal-angular/src/lib/components/button/button.component.ts","../../../projects/lib-portal-angular/src/lib/components/basic-registration/basic-registration.component.ts","../../../projects/lib-portal-angular/src/lib/components/basic-registration/basic-registration.component.html","../../../projects/lib-portal-angular/src/lib/components/calendar-argenta/calendar-argenta.component.ts","../../../projects/lib-portal-angular/src/lib/components/calendar-argenta/calendar-argenta.component.html","../../../projects/lib-portal-angular/src/lib/components/card/card.component.ts","../../../projects/lib-portal-angular/src/lib/components/checkbox/checkbox.component.ts","../../../projects/lib-portal-angular/src/lib/components/code-highlight/code-highlight.component.ts","../../../projects/lib-portal-angular/src/lib/directive/autofocus-directive/autofocus.directive.ts","../../../projects/lib-portal-angular/src/lib/components/confirmation/confirmation.component.ts","../../../projects/lib-portal-angular/src/lib/components/confirmation/confirmation.component.html","../../../projects/lib-portal-angular/src/lib/components/custom-pagination/custom-pagination.component.ts","../../../projects/lib-portal-angular/src/lib/components/custom-pagination/custom-pagination.component.html","../../../projects/lib-portal-angular/src/lib/components/custom-switch/custom-switch.component.ts","../../../projects/lib-portal-angular/src/lib/components/custom-switch/custom-switch.component.html","../../../projects/lib-portal-angular/src/lib/components/file-upload/file-upload.component.ts","../../../projects/lib-portal-angular/src/lib/components/file-upload/file-upload.component.html","../../../projects/lib-portal-angular/src/lib/directive/cep-mask.directive.ts","../../../projects/lib-portal-angular/src/lib/directive/cnpj-mask.directive.ts","../../../projects/lib-portal-angular/src/lib/directive/cpf-mask.directive.ts","../../../projects/lib-portal-angular/src/lib/components/imput/input.component.ts","../../../projects/lib-portal-angular/src/lib/components/imput/input.component.html","../../../projects/lib-portal-angular/src/lib/components/multi-select/multi-select.component.ts","../../../projects/lib-portal-angular/src/lib/components/multi-select/multi-select.component.html","../../../projects/lib-portal-angular/src/lib/components/multi-select-category/multi-select-category.component.ts","../../../projects/lib-portal-angular/src/lib/components/multi-select-category/multi-select-category.component.html","../../../projects/lib-portal-angular/src/lib/components/radio/radio.component.ts","../../../projects/lib-portal-angular/src/lib/components/search-customer/search-customer.component.ts","../../../projects/lib-portal-angular/src/lib/components/search-customer/search-customer.component.html","../../../projects/lib-portal-angular/src/lib/components/search-input/search-input.component.ts","../../../projects/lib-portal-angular/src/lib/components/search-input/search-input.component.html","../../../projects/lib-portal-angular/src/lib/components/select/select.component.ts","../../../projects/lib-portal-angular/src/lib/components/tab/tab.component.ts","../../../projects/lib-portal-angular/src/lib/components/tab/tab.component.html","../../../projects/lib-portal-angular/src/lib/service/refresh-service.service.ts","../../../projects/lib-portal-angular/src/lib/components/tables/data-table.component.ts","../../../projects/lib-portal-angular/src/lib/components/tables/data-table.component.html","../../../projects/lib-portal-angular/src/lib/components/textarea/textarea.component.ts","../../../projects/lib-portal-angular/src/lib/components/tree-node/tree-node.component.ts","../../../projects/lib-portal-angular/src/lib/components/tree-node/tree-node.component.html","../../../projects/lib-portal-angular/src/lib/components/json-viewer/json-viewer.component.ts","../../../projects/lib-portal-angular/src/lib/components/json-viewer/json-viewer.component.html","../../../projects/lib-portal-angular/src/lib/components/modal/modal.component.ts","../../../projects/lib-portal-angular/src/lib/components/modal/modal.component.html","../../../projects/lib-portal-angular/src/lib/icons/lucide-icons.module.ts","../../../projects/lib-portal-angular/src/lib/components/components.module.ts","../../../projects/lib-portal-angular/src/lib/components/alert/notification.service.ts","../../../projects/lib-portal-angular/src/lib/components/confirmation/confirmation.service.ts","../../../projects/lib-portal-angular/src/lib/components/tables/data-paginate.service.ts","../../../projects/lib-portal-angular/src/lib/service/route-parameter.service.ts","../../../projects/lib-portal-angular/src/lib/lib-portal-angular.module.ts","../../../projects/lib-portal-angular/src/public-api.ts","../../../projects/lib-portal-angular/src/lib-portal-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n private userRoles: string[] = [];\n\n constructor() {\n this.loadUserRoles();\n }\n\n private loadUserRoles(): void {\n const storedUser = localStorage.getItem('user');\n if (!storedUser) {\n throw new Error('User not found in localStorage');\n }\n const { role } = JSON.parse(storedUser);\n if (!role || !Array.isArray(role)) {\n throw new Error('Roles not found or invalid in localStorage');\n }\n this.userRoles = role.map((r: string) => r.toString());\n }\n\n public hasPermission(requiredPermissions: string[]): boolean {\n if (this.userRoles.length === 0) {\n throw new Error('No roles found for the user');\n }\n return requiredPermissions.every(permission => this.userRoles.includes(permission));\n }\n}\n","\nimport { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class AccordionArgentaComponent {\n @Input() title: string = 'Accordion Title'; // Título do accordion\n @Input() isOpen: boolean = false; // Estado inicial do accordion\n @Input() permissions: string[] = []; // Permissões necessárias para exibir o accordion\n\n @Output() toggleEvent = new EventEmitter<boolean>(); // Evento emitido ao abrir/fechar o accordion\n\n constructor(private authService: AuthService) { }\n\n ngOnInit(): void {\n this.validatePermissions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['permissions']) {\n this.validatePermissions();\n }\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true; // Se não forem passadas permissões, o accordion será exibido por padrão\n }\n\n try {\n return this.authService.hasPermission(this.permissions); // Verifica se o usuário tem as permissões\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return false; // Se ocorrer um erro ou as permissões não forem válidas, o accordion não será exibido\n }\n }\n\n toggle() {\n this.isOpen = !this.isOpen;\n this.toggleEvent.emit(this.isOpen); // Emite o estado atual (aberto ou fechado)\n }\n\n private validatePermissions(): void {\n if (!Array.isArray(this.permissions)) {\n throw new Error(`Invalid permissions: ${this.permissions}. It should be an array of strings.`);\n }\n }\n}","<ng-container *ngIf=\"hasPermission()\">\n <div class=\"accordion\">\n <div class=\"accordion-header\" (click)=\"toggle()\" [class.open]=\"isOpen\">\n <h3>{{ title }}</h3>\n <!-- Ícone da seta -->\n <span class=\"accordion-icon\">▼</span>\n </div>\n <div class=\"accordion-content\" [class.open]=\"isOpen\">\n <ng-content></ng-content> <!-- Conteúdo do accordion -->\n </div>\n </div>\n</ng-container>\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { Alert } from './notification.service';\n\n@Component({\n selector: 'lib-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss']\n})\nexport class AlertComponent implements OnInit, AfterViewInit {\n @Input() alerts: Alert[] = [];\n private closeTimeouts: { [key: string]: any } = {}; // Armazena os temporizadores para cada alerta\n\n ngOnInit(): void {\n // Inicia o temporizador de fechamento para cada alerta quando a página é carregada\n this.alerts.forEach(alert => {\n this.closeTimeouts[alert.message] = setTimeout(() => {\n this.closeAlert(alert);\n }, 6000); // Fecha após 8 segundos\n });\n }\n\n ngAfterViewInit(): void {\n // Adiciona a classe 'show' após um curto atraso para acionar a animação\n setTimeout(() => {\n this.alerts.forEach(alert => {\n const element = document.getElementById(`alert-${alert.message}`);\n if (element) {\n element.classList.add('show');\n }\n });\n }, 10); // Pequeno atraso para garantir que o elemento esteja no DOM\n }\n\n closeAlert(alert: Alert) {\n const element = document.getElementById(`alert-${alert.message}`);\n if (element) {\n element.classList.remove('show');\n setTimeout(() => {\n this.alerts = this.alerts.filter(a => a !== alert);\n }, 500); // Duração da animação de saída\n } else {\n this.alerts = this.alerts.filter(a => a !== alert);\n }\n }\n\n getAlertClass(alert: Alert) {\n return {\n 'alert-container': true,\n 'alert-dismissible': true,\n [`alert-${alert.type}`]: true\n };\n }\n\n getAlertIconClass(alert: Alert) {\n switch (alert.type) {\n case 'success':\n return 'success-icon'; // Classe para o ícone de sucesso\n case 'info':\n return 'info-icon'; // Classe para o ícone de informação\n case 'warning':\n return 'warning-icon'; // Classe para o ícone de aviso\n case 'danger':\n return 'danger-icon'; // Classe para o ícone de erro\n default:\n return '';\n }\n }\n\n onMouseEnter(alert: Alert) {\n // Cancela o temporizador quando o mouse entra no alerta\n if (this.closeTimeouts[alert.message]) {\n clearTimeout(this.closeTimeouts[alert.message]);\n delete this.closeTimeouts[alert.message];\n }\n }\n\n onMouseLeave(alert: Alert) {\n // Inicia um novo temporizador para fechar o alerta após 2 segundos quando o mouse sai do alerta\n this.closeTimeouts[alert.message] = setTimeout(() => {\n this.closeAlert(alert);\n }, 2000); // Fechar após 2 segundos\n }\n}\n","<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\">&times;</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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'argenta-app-background',\n template: `\n <div class=\"row row-car\">\n <div class=\"card\">\n <div class=\"card-content\">\n <ng-content></ng-content>\n </div>\n </div> \n </div>\n `,\n styles: [` \n .card {\n border-radius: 10px;\n padding: 1rem;\n background-color: #FFFFFF; /* Cor de fundo ajustada */\n border: none; /* Remover borda */\n }\n .row-car{\n margin-left: -0.8rem;\n margin-right: -0.8rem;\n }\n `]\n})\nexport class AppBackgroundComponent { }\n","export enum ButtonClasses {\n Primary = 'btn-primary',\n Secondary = 'btn-secondary',\n Success = 'btn-success',\n Danger = 'btn-danger',\n Warning = 'btn-warning',\n Info = 'btn-info',\n Light = 'btn-light',\n Dark = 'btn-dark',\n Link = 'btn-link'\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { ButtonClasses } from '../../enum/ButtonClassesEnum';\n\n@Component({\n selector: 'sim-app-badge',\n template: `\n <button\n class=\"notification-button\"\n [ngStyle]=\"getDynamicStyles()\"\n (click)=\"onClick()\"\n [class.hovered]=\"isHovered\"\n [class.clicked]=\"isClicked\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (mouseleave)=\"onMouseLeave()\"\n (mouseenter)=\"onMouseEnter()\">\n {{ label }}\n <span class=\"badge\">{{ badgeContent }}</span>\n </button>\n `,\n styles: [`\n .notification-button {\n position: relative;\n display: inline-block;\n width: 155px;\n height: 58px;\n padding: 14px 29px 14px 36px;\n border-radius: 6px;\n border: none;\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n transition: opacity 0.3s;\n }\n .badge {\n position: absolute;\n width: 52px; /* Largura fixa */\n height: 32px; /* Altura fixa */\n top: -15px;\n right: -20px;\n background-color: #dc3545;\n color: #FFFFFF;\n border-radius: 16px; /* Arredondamento das bordas */\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n font-size: 14px;\n font-family: 'Inter', sans-serif;\n }\n .notification-button.hovered {\n opacity: 0.8;\n }\n .notification-button.clicked {\n opacity: 0.6;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BadgeComponent {\n @Input() label: string = 'Mensagem';\n @Input() badgeContent: string = '+45';\n @Input() marginTop: number = 0;\n @Input() marginBottom: number = 0;\n @Input() marginLeft: number = 0;\n @Input() marginRight: number = 0;\n @Input() btnClass: ButtonClasses = ButtonClasses.Primary;\n @Output() buttonClick: EventEmitter<void> = new EventEmitter<void>();\n\n isHovered: boolean = false;\n isClicked: boolean = false;\n isActive: boolean = false;\n\n getDynamicStyles() {\n let backgroundColor = '';\n let textColor = '#fff'; // Default text color\n let borderColor = '';\n\n switch (this.btnClass) {\n case ButtonClasses.Primary:\n backgroundColor = '#00444C';\n break;\n case ButtonClasses.Secondary:\n backgroundColor = '#2CA58D';\n break;\n case ButtonClasses.Success:\n backgroundColor = '#00C853';\n break;\n case ButtonClasses.Danger:\n backgroundColor = '#D32F2F';\n break;\n case ButtonClasses.Warning:\n backgroundColor = '#FFC107';\n break;\n case ButtonClasses.Info:\n backgroundColor = '#3EC9D6';\n break;\n case ButtonClasses.Light:\n backgroundColor = '#EEF2F6';\n textColor = '#00444C'; // Custom text color for Light\n break;\n case ButtonClasses.Dark:\n backgroundColor = '#111936';\n break;\n case ButtonClasses.Link:\n backgroundColor = 'transparent';\n borderColor = '#DDE5E9';\n textColor = '#00444C'; // Custom text color for Link\n break;\n default:\n backgroundColor = '#00444C';\n break;\n }\n\n const hoverFilter = this.isHovered ? 'brightness(80%)' : 'none'; // Adjusted hover brightness\n const activeFilter = this.isClicked ? 'brightness(60%)' : hoverFilter; // Adjusted active brightness\n\n return {\n 'margin-top': `${this.marginTop}rem`,\n 'margin-bottom': `${this.marginBottom}rem`,\n 'margin-left': `${this.marginLeft}rem`,\n 'margin-right': `${this.marginRight}rem`,\n 'background-color': backgroundColor,\n 'color': textColor,\n 'border': borderColor ? `1px solid ${borderColor}` : 'none',\n 'transition': 'background-color 0.3s, border-color 0.3s, filter 0.3s',\n 'filter': activeFilter\n };\n }\n\n onClick() {\n this.buttonClick.emit();\n }\n\n @HostListener('mouseenter')\n onMouseEnter() {\n this.isHovered = true;\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n this.isHovered = false;\n this.isClicked = false;\n }\n\n @HostListener('mousedown')\n onMouseDown() {\n this.isClicked = true;\n }\n\n @HostListener('mouseup')\n onMouseUp() {\n this.isClicked = false;\n }\n}\n","import { Component, EventEmitter, Input, Output, OnInit, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { ButtonClasses } from '../../enum/ButtonClassesEnum';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-button',\n template: `\n <ng-container *ngIf=\"hasPermission()\">\n <button [type]=\"type\"\n class=\"btn\"\n [ngClass]=\"btnClass\"\n [ngStyle]=\"dynamicStyles\"\n (click)=\"onClick($event)\"\n [disabled]=\"disabled\"\n [attr.autofocus]=\"autofocus ? true : null\"\n [attr.form]=\"form\"\n [attr.formaction]=\"formaction\"\n [attr.formenctype]=\"formenctype\"\n [attr.formmethod]=\"formmethod\"\n [attr.formnovalidate]=\"formnovalidate\"\n [attr.formtarget]=\"formtarget\"\n [attr.name]=\"name\"\n [attr.value]=\"value\">\n {{ label }}\n </button>\n </ng-container>\n `,\n styles: [`\n .btn {\n padding: 0.5rem 1rem;\n border-radius: 0.25rem;\n transition: background-color 0.3s, border-color 0.3s, filter 0.3s;\n font-family: 'Inter', sans-serif;\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n letter-spacing: 0.005em;\n text-align: left;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n @Input() type: string = 'button';\n @Input() label: string = 'Submit';\n @Input() btnClass: ButtonClasses = ButtonClasses.Primary;\n @Input() fontSize: string = '1rem';\n @Input() disabled: boolean = false;\n @Input() autofocus: boolean = false;\n @Input() form: string | null = null;\n @Input() formaction: string | null = null;\n @Input() formenctype: string | null = null;\n @Input() formmethod: string | null = null;\n @Input() formnovalidate: boolean = false;\n @Input() formtarget: string | null = null;\n @Input() name: string | null = null;\n @Input() value: string | null = null;\n @Input() permissions: string[] = [];\n\n @Output() onButtonClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n private isHovered: boolean = false;\n private isActive: boolean = false;\n\n constructor(private authService: AuthService) { }\n\n ngOnInit(): void {\n this.validateInputs();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes) {\n this.validateInputs();\n }\n }\n\n private validateInputs(): void {\n const validTypes = ['button', 'submit', 'reset'];\n const validClasses = Object.values(ButtonClasses);\n\n if (!validTypes.includes(this.type)) {\n throw new Error(`Invalid type: ${this.type}. Allowed values are: ${validTypes.join(', ')}`);\n }\n\n if (!validClasses.includes(this.btnClass)) {\n throw new Error(`Invalid btnClass: ${this.btnClass}. Allowed values are: ${validClasses.join(', ')}`);\n }\n\n if (typeof this.disabled !== 'boolean') {\n throw new Error(`Invalid disabled value: ${this.disabled}. It should be a boolean.`);\n }\n\n if (typeof this.autofocus !== 'boolean') {\n throw new Error(`Invalid autofocus value: ${this.autofocus}. It should be a boolean.`);\n }\n\n if (this.permissions && !Array.isArray(this.permissions)) {\n throw new Error(`Invalid permissions value: ${this.permissions}. It should be an array of strings.`);\n }\n }\n\n onClick(event: Event) {\n this.onButtonClick.emit(event);\n }\n\n get dynamicStyles() {\n return this.calculateDynamicStyles();\n }\n\n private calculateDynamicStyles() {\n let backgroundColor = '';\n let textColor = '#fff'; // Default text color\n let borderColor = '';\n\n switch (this.btnClass) {\n case ButtonClasses.Primary:\n backgroundColor = '#00444C';\n break;\n case ButtonClasses.Secondary:\n backgroundColor = '#2CA58D';\n break;\n case ButtonClasses.Success:\n backgroundColor = '#00C853';\n break;\n case ButtonClasses.Danger:\n backgroundColor = '#D32F2F';\n break;\n case ButtonClasses.Warning:\n backgroundColor = '#FFC107';\n break;\n case ButtonClasses.Info:\n backgroundColor = '#3EC9D6';\n break;\n case ButtonClasses.Light:\n backgroundColor = '#EEF2F6';\n textColor = '#00444C'; // Custom text color for Light\n break;\n case ButtonClasses.Dark:\n backgroundColor = '#111936';\n break;\n case ButtonClasses.Link:\n backgroundColor = 'transparent';\n borderColor = '#DDE5E9';\n textColor = '#00444C'; // Custom text color for Link\n break;\n default:\n backgroundColor = '#00444C';\n break;\n }\n\n const hoverFilter = this.isHovered ? 'brightness(80%)' : 'none'; // Adjusted hover brightness\n const activeFilter = this.isActive ? 'brightness(60%)' : hoverFilter; // Adjusted active brightness\n\n return {\n 'font-size': this.fontSize,\n 'background-color': backgroundColor,\n 'color': textColor,\n 'border': borderColor ? `1px solid ${borderColor}` : 'none',\n 'transition': 'background-color 0.3s, border-color 0.3s, filter 0.3s',\n 'filter': activeFilter\n };\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n onCancel(event: Event) {\n console.log('Cancel button clicked', event);\n // Lógica para o cancelamento\n }\n\n onSave(event: Event) {\n console.log('Save button clicked', event);\n // Lógica para salvar alterações\n }\n}\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { AuthService } from '../../service/auth-service.service';\nimport { ButtonClasses } from '../../enum/ButtonClassesEnum';\n\n@Component({\n selector: 'argenta-basic-registration',\n templateUrl: './basic-registration.component.html',\n styleUrls: ['./basic-registration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BasicRegistrationComponent {\n @Input() cancelLabel: string = 'Cancelar';\n @Input() saveLabel: string = 'Salvar';\n @Input() cancelPermissions: string[] = [];\n @Input() savePermissions: string[] = [];\n\n @Output() cancelClick: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() saveClick: EventEmitter<Event> = new EventEmitter<Event>();\n ButtonClasses = ButtonClasses;\n\n constructor(private authService: AuthService) { }\n\n hasPermission(permissions: string[]): boolean {\n if (!permissions || permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n handleCancel(event: Event) {\n this.cancelClick.emit(event);\n }\n\n handleSave(event: Event) {\n this.saveClick.emit(event);\n }\n}\n","<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ão de conteúdo dinâmico -->\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","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'argenta-calendar',\n templateUrl: './calendar-argenta.component.html',\n styleUrls: ['./calendar-argenta.component.scss'],\n})\nexport class CalendarArgentaComponent implements OnInit, OnChanges {\n @Input() id: string = 'argenta-calendar';\n @Input() placeholder: string = 'Select a date';\n @Input() label: string = 'Select a date';\n @Input() minDate: Date | null = null;\n @Input() maxDate: Date | null = null;\n @Input() locale: string = 'pt'; // Suporte para diferentes idiomas\n @Input() useTime: boolean = false; // Propriedade para definir se inclui hora\n @Input() initialDate: string | null = null; // Propriedade para receber a data inicial\n @Output() dateChange = new EventEmitter<string>();\n\n currentYear: number = new Date().getFullYear();\n currentMonth: number = new Date().getMonth();\n selectedDate: Date | null = null;\n isCalendarVisible: boolean = false;\n inputDate: string = '';\n invalidDate: boolean = false;\n\n locales: any = {\n en: {\n months: [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July',\n 'August', 'September', 'October', 'November', 'December'\n ],\n daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n invalidDateMessage: 'Invalid date. Please enter a date in the format dd/MM/yyyy'\n },\n pt: {\n months: [\n 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho',\n 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'\n ],\n daysOfWeek: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],\n invalidDateMessage: 'Data inválida. Por favor, insira uma data no formato dd/MM/yyyy'\n },\n es: {\n months: [\n 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio',\n 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'\n ],\n daysOfWeek: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],\n invalidDateMessage: 'Fecha inválida. Por favor, ingrese una fecha en el formato dd/MM/yyyy'\n }\n };\n\n ngOnInit(): void {\n if (this.initialDate) {\n // Se a initialDate for fornecida, usamos ela\n this.updateCalendar(this.initialDate);\n } else {\n // Caso contrário, usamos a data atual\n const today = new Date();\n this.selectedDate = today;\n this.inputDate = this.formatDateForDisplay(today);\n this.dateChange.emit(this.inputDate); // Emite a data inicial\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['initialDate'] && changes['initialDate'].currentValue) {\n this.updateCalendar(changes['initialDate'].currentValue);\n }\n }\n\n // Método para atualizar o calendário com a data passada\n updateCalendar(dateString: string): void {\n const parsedDate = this.parseDate(dateString);\n\n // Verifica se a data é válida\n if (parsedDate !== null && this.validateDate(dateString)) {\n this.selectedDate = parsedDate;\n this.currentYear = parsedDate.getFullYear();\n this.currentMonth = parsedDate.getMonth();\n this.inputDate = this.formatDateForDisplay(parsedDate);\n this.dateChange.emit(this.inputDate); // Emite a nova data\n this.invalidDate = false; // Remove o status de data inválida\n } else {\n this.invalidDate = true; // Marca a data como inválida\n this.dateChange.emit('Data ou hora inválida'); // Emite mensagem de erro\n console.log('Data ou hora inválida passada para o componente');\n }\n }\n\n onInputChange(event: any): void {\n const inputValue = event.target.value;\n this.inputDate = this.applyDateMask(inputValue);\n\n // Validação para obrigar a hora quando useTime for verdadeiro\n if (this.useTime) {\n // Se a entrada não tiver o comprimento correto para data + hora\n if (this.inputDate.length < 16) {\n this.invalidDate = true;\n this.dateChange.emit('Data ou hora inválida');\n return;\n }\n }\n\n // Somente validar a hora se o campo useTime estiver ativo e o formato estiver correto\n if (this.useTime && this.inputDate.length >= 14) {\n const [datePart, timePart] = this.inputDate.split(' ');\n if (timePart) {\n const [hourStr, minuteStr] = timePart.split(':');\n const hour = Number(hourStr);\n const minute = Number(minuteStr);\n\n // Corrige somente se a hora/minuto forem inválidos\n if (hour < 0 || hour > 23 || isNaN(hour)) {\n this.invalidDate = true;\n this.dateChange.emit('Hora inválida');\n return;\n } else if (minute < 0 || minute > 59 || isNaN(minute)) {\n this.invalidDate = true;\n this.dateChange.emit('Hora inválida');\n return;\n } else {\n this.invalidDate = false;\n }\n }\n }\n\n // Emitir a data quando for válida\n if ((this.useTime && this.inputDate.length === 16) || (!this.useTime && this.inputDate.length === 10)) {\n if (this.validateDate(this.inputDate)) {\n this.invalidDate = false;\n const parsedDate = this.parseDate(this.inputDate);\n\n // Verificar se parsedDate não é nulo antes de acessar suas propriedades\n if (parsedDate !== null) {\n this.currentYear = parsedDate.getFullYear();\n this.currentMonth = parsedDate.getMonth();\n this.selectedDate = parsedDate;\n\n // Formatar a data para dd/MM/yyyy - HH:mm\n const formattedDate = this.formatDateForEmit(parsedDate);\n\n this.dateChange.emit(formattedDate); // Emite a data válida com o hífen\n } else {\n console.log('Data inválida passada para o componente.');\n this.dateChange.emit('Data inválida');\n }\n } else {\n this.invalidDate = true;\n this.dateChange.emit('Data inválida'); // Emite o evento com mensagem de erro\n }\n }\n }\n\n // Formatar a data e hora com hífen\n formatDateForEmit(date: Date): string {\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n\n let formattedDate = `${day}/${month}/${year}`;\n\n if (this.useTime) {\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n // Adiciona o hífen entre a data e a hora\n formattedDate += ` - ${hours}:${minutes}`;\n }\n\n return formattedDate;\n }\n\n applyDateMask(inputValue: string): string {\n let digitsOnly = inputValue.replace(/\\D/g, '');\n\n // Limita os dígitos com base no uso de hora\n const maxLength = this.useTime ? 12 : 8;\n if (digitsOnly.length > maxLength) {\n digitsOnly = digitsOnly.substring(0, maxLength);\n }\n\n let day = digitsOnly.substring(0, 2);\n let month = digitsOnly.substring(2, 4);\n let year = digitsOnly.substring(4, 8);\n let hour = digitsOnly.substring(8, 10);\n let minute = digitsOnly.substring(10, 12);\n\n let maskedDate = `${day}/${month}/${year}`;\n if (this.useTime && hour && minute) {\n maskedDate += ` ${hour}:${minute}`;\n }\n\n return maskedDate;\n }\n\n validateDate(inputValue: string): boolean {\n const [datePart, timePart] = inputValue.split(' ');\n const [dayStr, monthStr, yearStr] = datePart.split('/');\n const day = Number(dayStr);\n const month = Number(monthStr);\n const year = Number(yearStr);\n\n // Validação de data\n if (month < 1 || month > 12 || yearStr.length !== 4 || isNaN(year)) {\n return false;\n }\n\n const lastDayOfMonth = new Date(year, month, 0).getDate();\n if (day < 1 || day > lastDayOfMonth) {\n return false;\n }\n\n // Validação de hora\n if (this.useTime && timePart) {\n const [hourStr, minuteStr] = timePart.split(':');\n const hour = Number(hourStr);\n const minute = Number(minuteStr);\n\n if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || isNaN(hour) || isNaN(minute)) {\n return false; // Hora ou minuto inválidos\n }\n }\n\n return true;\n }\n\n parseDate(dateStr: string): Date | null {\n const [datePart, timePart] = dateStr.split(' ');\n const [day, month, year] = datePart.split('/').map(Number);\n if (!day || !month || !year) {\n return null;\n }\n\n const date = new Date(year, month - 1, day);\n if (this.useTime && timePart) {\n const [hour, minute] = timePart.split(':').map(Number);\n date.setHours(hour || 0, minute || 0);\n }\n return date;\n }\n\n formatDateForDisplay(date: Date): string {\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n let formattedDate = `${day}/${month}/${year}`;\n\n if (this.useTime) {\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n formattedDate += ` ${hours}:${minutes}`;\n }\n\n return formattedDate;\n }\n\n toggleCalendar(): void {\n this.isCalendarVisible = !this.isCalendarVisible;\n }\n\n selectDate(day: number): void {\n const date = new Date(this.currentYear, this.currentMonth, day);\n this.inputDate = this.formatDateForDisplay(date);\n this.selectedDate = date; // Armazena a data selecionada\n this.dateChange.emit(this.inputDate); // Emite a data selecionada ao clicar no calendário\n this.isCalendarVisible = false; // Fecha o calendário após a seleção\n }\n\n handleKeyPress(event: KeyboardEvent): void {\n const charCode = event.key.charCodeAt(0);\n\n if (charCode < 48 || charCode > 57) {\n event.preventDefault();\n }\n\n if (this.inputDate.replace(/\\D/g, '').length >= (this.useTime ? 12 : 8)) {\n event.preventDefault();\n }\n }\n\n get daysInMonth(): any[] {\n const firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1).getDay(); // Dia da semana do primeiro dia do mês\n const totalDaysInMonth = new Date(this.currentYear, this.currentMonth + 1, 0).getDate(); // Total de dias no mês\n\n const daysArray = Array.from({ length: totalDaysInMonth }, (_, i) => i + 1); // Array com todos os dias do mês\n\n const leadingEmptyDays = Array(firstDayOfMonth).fill(null); // Dias vazios antes do primeiro dia do mês\n\n return [...leadingEmptyDays, ...daysArray]; // Retorna os dias vazios seguidos pelos dias do mês\n }\n\n\n\n get months(): string[] {\n return this.locales[this.locale]?.months || this.locales['en'].months;\n }\n\n get daysOfWeek(): string[] {\n return this.locales[this.locale]?.daysOfWeek || this.locales['en'].daysOfWeek;\n }\n\n prevMonth(): void {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.currentYear--;\n } else {\n this.currentMonth--;\n }\n }\n\n nextMonth(): void {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.currentYear++;\n } else {\n this.currentMonth++;\n }\n }\n\n isSelected(day: number): boolean {\n if (!this.selectedDate) return false;\n const selectedDay = this.selectedDate.getDate();\n const selectedMonth = this.selectedDate.getMonth();\n const selectedYear = this.selectedDate.getFullYear();\n\n return (\n selectedDay === day &&\n selectedMonth === this.currentMonth &&\n selectedYear === this.currentYear\n );\n }\n\n isToday(day: number): boolean {\n const today = new Date();\n return (\n today.getFullYear() === this.currentYear &&\n today.getMonth() === this.currentMonth &&\n today.getDate() === day\n );\n }\n\n isDateDisabled(day: number): boolean {\n const date = new Date(this.currentYear, this.currentMonth, day);\n if (this.minDate && date < this.minDate) return true;\n if (this.maxDate && date > this.maxDate) return true;\n return false;\n }\n}\n","<div class=\"form-group\">\n <label [for]=\"id\" [ngClass]=\"'label-styles'\">{{ label }}</label>\n <div class=\"input-wrapper\">\n <input\n id=\"{{ id }}\"\n type=\"text\"\n class=\"custom-input\"\n [attr.placeholder]=\"useTime ? 'dd/MM/yyyy HH:mm' : 'dd/MM/yyyy'\"\n [value]=\"inputDate\"\n (input)=\"onInputChange($event)\"\n (keypress)=\"handleKeyPress($event)\"\n (click)=\"toggleCalendar()\"\n />\n <!-- Ícone de calendário dentro do input -->\n <lucide-icon name=\"calendar\" class=\"calendar-icon\"></lucide-icon>\n </div>\n\n <!-- Mensagem de erro estilo balãozinho -->\n <div *ngIf=\"invalidDate\" class=\"error-message\">\n {{ locales[locale].invalidDateMessage }}\n <!-- Mostra a parte de 'HH:mm' apenas se useTime for verdadeiro -->\n <span *ngIf=\"useTime\"> HH:mm.</span>\n </div>\n\n <div class=\"calendar-wrapper\">\n <div class=\"calendar-container\" [ngClass]=\"{ open: isCalendarVisible }\">\n <div class=\"calendar\">\n <div class=\"calendar-header\">\n <button (click)=\"prevMonth()\">&#8249;</button>\n <span>{{ months[currentMonth] }} {{ currentYear }}</span>\n <button (click)=\"nextMonth()\">&#8250;</button>\n </div>\n\n <div class=\"calendar-body\">\n <div class=\"calendar-day-names\">\n <span *ngFor=\"let day of daysOfWeek\">{{ day }}</span>\n </div>\n\n <div class=\"calendar-days\">\n <span\n *ngFor=\"let day of daysInMonth; let i = index\"\n [class.today]=\"isToday(day)\"\n [class.selected]=\"isSelected(day)\"\n [class.disabled]=\"isDateDisabled(day)\"\n (click)=\"day ? selectDate(day) : null\"\n >\n <!-- Somente permite clique em dias válidos -->\n {{ day ? day : \"\" }}\n <!-- Exibe o dia se for válido, senão exibe vazio -->\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sim-app-card',\n template: `\n <div class=\"card mb-3\">\n <div class=\"card-header\">\n <h3>{{ cardTitle }}</h3>\n </div>\n <div class=\"card-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class CardComponent {\n @Input() cardTitle: string = 'Default Title';\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'sim-app-checkbox',\n template: `\n <div\n class=\"form-group form-check\"\n [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n }\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [id]=\"id\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n />\n <label class=\"form-check-label\" [for]=\"id\">{{ label }}</label>\n </div>\n `,\n styles: [`\n .form-check-input {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem; /* Define o tamanho padrão da fonte para o input */\n }\n .form-check-label {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem; /* Define o tamanho padrão da fonte para o label */\n font-weight: bold;\n }\n `],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() id: string = 'defaultCheckbox';\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Input() label: string = 'Check me out';\n\n @Input() marginTop: number = 0;\n @Input() marginBottom: number = 0;\n @Input() marginLeft: number = 0;\n @Input() marginRight: number = 0;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n private onChangeFn: (value: boolean) => void = () => { };\n private onTouchedFn: () => void = () => { };\n\n onChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.checked = input.checked;\n this.onChangeFn(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n writeValue(value: boolean): void {\n this.checked = value;\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport hljs from 'highlight.js';\n\n@Component({\n selector: 'app-code-highlight',\n template: `\n <div class=\"code-container\">\n <pre><code #codeElement [innerHTML]=\"highlightedCode\"></code></pre>\n <button (click)=\"copyCode()\">Copy</button>\n </div>\n `,\n styles: [`\n .code-container {\n position: relative;\n }\n pre {\n background-color: #2d2d2d;\n color: #f8f8f2;\n padding: 1rem;\n border-radius: 5px;\n overflow-x: auto;\n }\n button {\n position: absolute;\n top: 10px;\n right: 10px;\n background-color: #f8f8f2;\n border: none;\n padding: 0.5rem 1rem;\n cursor: pointer;\n border-radius: 5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n transition: background-color 0.3s, transform 0.2s, box-shadow 0.2s;\n }\n button:hover {\n background-color: #e0e0e0;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);\n }\n button:active {\n background-color: #d0d0d0;\n transform: scale(0.98);\n }\n `]\n})\nexport class CodeHighlightComponent implements AfterViewInit {\n @Input() code: string = ''; // Definindo um valor padrão\n @Input() language: string = 'typescript';\n @ViewChild('codeElement') codeElement!: ElementRef; // Usando operador de asserção não nula\n\n highlightedCode: string = '';\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.highlightCode();\n this.cdr.detectChanges();\n });\n }\n\n highlightCode() {\n const code = hljs.highlight(this.language, this.code).value;\n this.highlightedCode = code;\n }\n\n copyCode() {\n const codeElement = this.codeElement.nativeElement;\n navigator.clipboard.writeText(codeElement.innerText).then(() => {\n alert('Code copied to clipboard!');\n });\n }\n}\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[appAutofocus]'\n})\nexport class AutofocusDirective implements AfterViewInit {\n constructor(private elementRef: ElementRef) { }\n\n ngAfterViewInit() {\n this.elementRef.nativeElement.focus();\n }\n}\n","import { Component, Input, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-confirmation',\n templateUrl: './confirmation.component.html',\n styleUrls: ['./confirmation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ConfirmationComponent implements OnDestroy {\n @Input() title: string = 'Confirmação';\n @Input() message: string = 'Você tem certeza que deseja continuar?';\n @Input() confirmButtonText: string = 'Sim';\n @Input() cancelButtonText: string = 'Não';\n\n constructor(public activeModal: NgbActiveModal) { }\n\n confirm() {\n this.activeModal.close('confirm');\n }\n\n cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnDestroy() {\n // Clear any subscriptions if there were any\n }\n}\n","<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","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'custom-pagination',\n templateUrl: './custom-pagination.component.html',\n styleUrls: ['./custom-pagination.component.scss']\n})\nexport class CustomPaginationComponent implements OnDestroy {\n @Input() totalItems: number = 0;\n @Input() itemsPerPage: number = 10;\n @Input() currentPage: number = 1;\n @Input() showPageInfo: boolean = true; // Mostrar ou esconder a informação da página\n @Output() pageChange: EventEmitter<number> = new EventEmitter<number>();\n\n\n maxSize: number = 5; // Número máximo de botões de página visíveis\n\n private destroy$ = new Subject<void>();\n\n get totalPages(): number {\n return Math.ceil(this.totalItems / this.itemsPerPage);\n }\n\n changePage(page: number) {\n if (page >= 1 && page <= this.totalPages) {\n this.currentPage = page;\n this.pageChange.emit(this.currentPage);\n }\n }\n\n get pages(): number[] {\n const pages: number[] = [];\n const half = Math.floor(this.maxSize / 2);\n let start = Math.max(this.currentPage - half, 1);\n let end = start + this.maxSize - 1;\n\n if (end > this.totalPages) {\n end = this.totalPages;\n start = Math.max(end - this.maxSize + 1, 1);\n }\n\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n return pages;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<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)\">&laquo;&laquo;</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n <a class=\"page-link\" (click)=\"changePage(currentPage - 1)\">&laquo;</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)\">&raquo;</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n <a class=\"page-link\" (click)=\"changePage(totalPages)\">&raquo;&raquo;</a>\n </li>\n </ul>\n</nav>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-switch',\n templateUrl: './custom-switch.component.html',\n styleUrls: ['./custom-switch.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CustomSwitchComponent {\n @Input() checked: boolean = false;\n @Input() label: string = '';\n @Input() permissions: string[] = [];\n @Output() switchChange = new EventEmitter<boolean>();\n\n constructor(private authService: AuthService) { }\n\n toggleSwitch() {\n this.checked = !this.checked;\n this.switchChange.emit(this.checked);\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileUploadComponent implements OnDestroy {\n @Input() accept: string = '.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .txt, .jpg, .jpeg, .png, .gif, .bmp, .svg, .webp, .zip, .rar, .csv';\n @Input() multiple: boolean = false;\n @Input() maxFileSize: number = 2 * 1024 * 1024; // 2MB\n @Input() labelText: string = 'Select Files to Upload'; // Dynamic label text\n @Input() permissions: string[] | undefined; // Array of permissions\n\n @Output() fileUploaded = new EventEmitter<File[]>(); // Emits selected files\n private destroy$ = new Subject<void>();\n\n constructor(private authService: AuthService) { }\n\n onFileChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n\n if (input.files) {\n const files = Array.from(input.files);\n if (this.validateFiles(files)) {\n this.fileUploaded.emit(files); // Emit files for external handling\n } else {\n console.warn('One or more files exceed the maximum allowed size of 2MB.');\n }\n }\n }\n\n private validateFiles(files: File[]): boolean {\n return files.every(file => file.size <= this.maxFileSize);\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div *ngIf=\"hasPermission()\" class=\"file-upload-container\">\n <label for=\"fileUpload\" class=\"form-label\">{{ labelText }}</label> \n <input\n type=\"file\"\n id=\"fileUpload\"\n class=\"form-control\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"onFileChange($event)\" \n />\n</div>\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cepMask]',\n})\nexport class CepMaskDirective {\n @Input('cepMask') enabled: boolean = false; // Define como opcional e padrão desabilitado\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('input', ['$event'])\n onInputChange(event: any) {\n if (!this.enabled) return; // Não aplica a máscara se não estiver habilitada\n\n // Obtém o valor atual e remove todos os caracteres não numéricos\n let initialValue = this.el.nativeElement.value.replace(/\\D/g, '');\n\n // Limita o número de caracteres a 8 para CEP\n if (initialValue.length > 8) {\n initialValue = initialValue.slice(0, 8);\n }\n\n // Aplica a máscara de CEP\n const formattedValue = this.formatCep(initialValue);\n\n // Atualiza o valor do input se necessário\n if (formattedValue !== this.el.nativeElement.value) {\n this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);\n\n // Dispara um evento de input para atualizar o modelo\n if (event.target.dispatchEvent) {\n const newEvent = new Event('input', { bubbles: true });\n event.target.dispatchEvent(newEvent);\n }\n }\n }\n\n formatCep(value: string): string {\n // Aplica a formatação de CEP: 12345-678\n return value.replace(/(\\d{5})(\\d)/, '$1-$2');\n }\n}\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cnpjMask]',\n})\nexport class CnpjMaskDirective {\n @Input('cnpjMask') enabled: boolean = false; // Define como opcional e padrão desabilitado\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('input', ['$event'])\n onInputChange(event: any) {\n if (!this.enabled) return; // Não aplica a máscara se não estiver habilitada\n\n // Obtém o valor atual e remove todos os caracteres não numéricos\n let initialValue = this.el.nativeElement.value.replace(/\\D/g, '');\n\n // Limita o número de caracteres a 14 para CNPJ\n if (initialValue.length > 14) {\n initialValue = initialValue.slice(0, 14);\n }\n\n // Aplica a máscara de CNPJ\n const formattedValue = this.formatCnpj(initialValue);\n\n // Atualiza o valor do input se necessário\n if (formattedValue !== this.el.nativeElement.value) {\n this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);\n\n // Dispara um evento de input para atualizar o modelo\n if (event.target.dispatchEvent) {\n const newEvent = new Event('input', { bubbles: true });\n event.target.dispatchEvent(newEvent);\n }\n }\n }\n\n formatCnpj(value: string): string {\n // Aplica a formatação de CNPJ: 12.345.678/0001-00\n return value\n .replace(/(\\d{2})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d{4})(\\d)/, '$1/$2-$3')\n .replace(/(\\d{4})(\\d{2})$/, '$1-$2');\n }\n}\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cpfMask]',\n})\nexport class CpfMaskDirective {\n @Input('cpfMask') enabled: boolean = false; // Define como opcional e padrão desabilitado\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('input', ['$event'])\n onInputChange(event: any) {\n if (!this.enabled) return;\n\n // Obtém o valor atual e remove todos os caracteres não numéricos\n let initialValue = this.el.nativeElement.value.replace(/\\D/g, '');\n\n // Limita o número de caracteres a 11 para CPF\n if (initialValue.length > 11) {\n initialValue = initialValue.slice(0, 11);\n }\n\n // Aplica a máscara de CPF\n const formattedValue = this.formatCpf(initialValue);\n\n // Atualiza o valor do input se necessário\n if (formattedValue !== this.el.nativeElement.value) {\n this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);\n\n // Dispara um evento de input para atualizar o modelo\n if (event.target.dispatchEvent) {\n const newEvent = new Event('input', { bubbles: true });\n event.target.dispatchEvent(newEvent);\n }\n }\n }\n\n formatCpf(value: string): string {\n // Aplica a formatação de CPF: 123.456.789-00\n return value\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d{1,2})$/, '$1-$2');\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, OnDestroy, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-input',\n styleUrls: ['./input.component.scss'],\n templateUrl: './input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InputComponent implements ControlValueAccessor, OnDestroy {\n @Input() label: string = 'Default Label';\n @Input() placeholder: string = '';\n @Input() id: string = 'inputId';\n @Input() type: string = 'text';\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() maxlength: number | null = null;\n @Input() minlength: number | null = null;\n @Input() required: boolean = false;\n @Input() pattern: string | null = null;\n @Input() autofocus: boolean = false;\n @Input() useCpfMask: boolean = false;\n @Input() useCnpjMask: boolean = false;\n @Input() useCepMask: boolean = false;\n @Input() onlyNumbers: boolean = false;\n @Input() validateInput: boolean = false;\n @Input() labelFontWeight: number = 400;\n @Input() permissions: string[] | undefined;\n @Input() useMoneyMask: boolean = false; // Para ativar/desativar a máscara de moeda\n @Input() currencyCode: string = 'BRL'; // Código da moeda\n @Input() displayCurrencySymbol: boolean = true; // Exibir ou não o símbolo da moeda\n\n\n @Output() inputEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() changeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output() blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output() keyupEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n @Output() keydownEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n @Output() keypressEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n value: string = '';\n showErrorModal: boolean = false;\n errorMessage: string = '';\n\n private subscriptions: Subscription[] = [];\n\n constructor(private authService: AuthService) { }\n\n getInputType(): string {\n return this.onlyNumbers ? 'tel' : this.type;\n }\n\n onInput(event: Event) {\n const inputElement = event.target as HTMLInputElement;\n let inputValue = inputElement.value;\n\n // Aplica máscara de números se necessário\n if (this.onlyNumbers && !(this.useCpfMask || this.useCnpjMask || this.useCepMask || this.useMoneyMask)) {\n inputValue = inputValue.replace(/\\D/g, ''); // Remove todos os não numéricos\n }\n\n // Validação imediata para CPF, CNPJ ou CEP\n const numericValue = inputValue.replace(/\\D/g, ''); // Remove todos os caracteres não numéricos\n if (this.validateInput) {\n if (this.useCpfMask && numericValue.length === 11 && !this.validateCpf(numericValue)) {\n this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');\n } else if (this.useCnpjMask && numericValue.length === 14 && !this.validateCnpj(numericValue)) {\n this.clearAndShowValidationError('CNPJ inválido. Por favor, insira um CNPJ correto.');\n } else if (this.useCepMask && numericValue.length === 8 && !this.validateCep(numericValue)) {\n this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');\n }\n }\n\n // Máscara de moeda\n if (this.useMoneyMask) {\n const numericValue = inputValue.replace(/\\D/g, ''); // Remove todos os não numéricos\n const formattedValue = this.formatMoney(numericValue); // Formata como dinheiro ou número decimal\n inputElement.value = formattedValue;\n this.value = formattedValue;\n } else {\n this.value = inputValue;\n }\n\n // Atualiza o valor e emite o evento de mudança\n this.onChangeCallback(this.value);\n this.inputEvent.emit(event);\n }\n\n private formatMoney(value: string): string {\n if (!value) return ''; // Se o valor estiver vazio, retorna uma string vazia\n\n const numericValue = parseFloat(value) / 100;\n\n // Verifica se deve exibir o símbolo da moeda ou não\n if (this.displayCurrencySymbol) {\n // Formata como moeda\n return new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: this.currencyCode\n }).format(numericValue);\n } else {\n // Formata como número decimal, sem o símbolo da moeda\n return new Intl.NumberFormat('pt-BR', {\n style: 'decimal',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(numericValue);\n }\n }\n\n\n\n onKeyDown(event: KeyboardEvent) {\n if (this.onlyNumbers && !/^\\d$/.test(event.key) && event.key !== 'Backspace' && event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') {\n event.preventDefault();\n }\n }\n\n onChange(event: Event) {\n const numericValue = this.value.replace(/\\D/g, ''); // Remove todos os caracteres não numéricos\n // Validação também ocorre no blur para casos onde o input não está completo\n if (this.validateInput) {\n if (this.useCpfMask && !this.validateCpf(numericValue)) {\n this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');\n } else if (this.useCnpjMask && !this.validateCnpj(numericValue)) {\n this.clearAndShowValidationError('CNPJ inválido. Por favor, insira um CNPJ correto.');\n } else if (this.useCepMask && !this.validateCep(numericValue)) {\n this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');\n }\n }\n this.changeEvent.emit(event);\n }\n\n validateCpf(cpf: string): boolean {\n if (cpf.length !== 11 || /^(\\d)\\1+$/.test(cpf)) return false;\n let sum = 0, remainder;\n for (let i = 1; i <= 9; i++) sum += parseInt(cpf.substring(i - 1, i)) * (11 - i);\n remainder = (sum * 10) % 11;\n if (remainder === 10 || remainder === 11) remainder = 0;\n if (remainder !== parseInt(cpf.substring(9, 10))) return false;\n sum = 0;\n for (let i = 1; i <= 10; i++) sum += parseInt(cpf.substring(i - 1, i)) * (12 - i);\n remainder = (sum * 10) % 11;\n if (remainder === 10 || remainder === 11) remainder = 0;\n return remainder === parseInt(cpf.substring(10, 11));\n }\n\n validateCnpj(cnpj: string): boolean {\n if (cnpj.length !== 14) return false;\n let length = cnpj.length - 2;\n let numbers = cnpj.substring(0, length);\n let digits = cnpj.substring(length);\n let sum = 0, pos = length - 7;\n for (let i = length; i >= 1; i--) {\n sum += parseInt(numbers.charAt(length - i)) * pos--;\n if (pos < 2) pos = 9;\n }\n let result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (result !== parseInt(digits.charAt(0))) return false;\n length = length + 1;\n numbers = cnpj.substring(0, length);\n sum = 0;\n pos = length - 7;\n for (let i = length; i >= 1; i--) {\n sum += parseInt(numbers.charAt(length - i)) * pos--;\n if (pos < 2) pos = 9;\n }\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n return result === parseInt(digits.charAt(1));\n }\n\n validateCep(cep: string): boolean {\n return /^\\d{8}$/.test(cep); // Valida apenas números, sem considerar a máscara\n }\n\n clearAndShowValidationError(message: string) {\n this.value = ''; // Limpa o valor do ngModel\n this.onChangeCallback(this.value); // Atualiza o ngModel com o valor limpo\n this.errorMessage = message;\n this.showErrorModal = true;\n }\n\n closeModal() {\n this.showErrorModal = false;\n this.errorMessage = '';\n }\n\n onFocus(event: FocusEvent) {\n this.focusEvent.emit(event);\n }\n\n onBlur(event: FocusEvent) {\n this.onTouchedCallback();\n this.blurEvent.emit(event);\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n}\n","<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()\">&times;</span>\n <p>{{ errorMessage }}</p>\n <button class=\"btn-ok\" (click)=\"closeModal()\">OK</button>\n </div>\n </div>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, map, startWith, switchMap } from 'rxjs/operators';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-multi-select',\n templateUrl: './multi-select.component.html',\n styleUrls: ['./multi-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MultiSelectComponent implements ControlValueAccessor, OnInit, OnChanges {\n @Input() label: string = 'Multi Select';\n @Input() data: any[] = []; // Accepts an array of generic objects\n @Input() placeholder: string = 'Select items';\n @Input() selected: any; // The selected variable can be a single value or an array\n @Input() id: string = 'multiSelectId';\n @Input() bindLabel: string = ''; // Generic dynamic label\n @Input() bindValue: string = ''; // Generic dynamic value\n @Input() permissions: string[] | undefined; // Adding permissions as input\n @Input() closeOnSelect: boolean = false; // New property to control dropdown close behavior\n @Input() searchUrl: string = ''; // URL for backend search\n @Input() multiple: boolean = true; // New property to control single or multiple selection\n @Input() searchParams: { [key: string]: string } = {}; // Parâmetros de busca dinâmicos\n\n @Output() keyupEvent: EventEmitter<any> = new EventEmitter<any>();\n\n private backupData: any[] = []; // Backup of the initial data\n private allItems: any[] = []; // Store the combined list\n items: Observable<any[]> = of([]); // Initialization of the property\n filteredItems: Observable<any[]> = of([]); // Filtered items\n private searchTerms = new Subject<string>(); // For search debounce\n\n constructor(private authService: AuthService, private http: HttpClient) { }\n\n ngOnInit(): void {\n this.backupData = [...this.data]; // Backup initial data\n this.allItems = [...this.data]; // Initialize allItems with the initial data\n this.items = of(this.allItems);\n\n this.fetchInitialData().subscribe(data => {\n this.updateData(data);\n this.filteredItems = this.searchTerms.pipe(\n debounceTime(700),\n startWith(''), // Start with an empty search to load the original list\n switchMap(term => this.search(term))\n );\n\n // Adicionar itens selecionados à lista após buscar dados iniciais\n this.addSelectedItemsToData();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selected'] && !changes['selected'].isFirstChange()) {\n this.addSelectedItemsToData();\n }\n }\n\n private fetchInitialData(): Observable<any[]> {\n return this.http.get<any>(this.searchUrl).pipe(\n map((response: any) => {\n if (response && response.length > 0) {\n return response.map((item: any) => ({\n [this.bindValue]: item[this.bindValue],\n [this.bindLabel]: item[this.bindLabel]\n }));\n }\n return [];\n }),\n catchError((error: any) => {\n console.error('Error fetching initial data from backend:', error);\n return of([]);\n })\n );\n }\n\n private updateData(newData: any[]): void {\n newData.forEach((item: any) => {\n const existsInList = this.allItems.some(listItem => this.compareFn(listItem, item));\n if (!existsInList) {\n this.allItems.push(item);\n }\n });\n this.items = of(this.allItems);\n }\n\n private addSelectedItemsToData(): void {\n if (this.selected) {\n const selectedItems = this.multiple ? this.selected : [this.selected];\n selectedItems.forEach((item: any) => {\n const existsInList = this.allItems.some(listItem => this.compareFn(listItem, item));\n if (!existsInList) {\n const newItem = {\n [this.bindValue]: item[this.bindValue] || item,\n [this.bindLabel]: item[this.bindLabel] || item\n };\n this.data.push(newItem);\n this.allItems.push(newItem);\n }\n });\n\n this.items = of(this.allItems);\n }\n }\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n isCourseEntered = false;\n\n onFocus() {\n this.isCourseEntered = true;\n }\n\n onBlur() {\n this.isCourseEntered = false;\n }\n\n onKeyUp(event: KeyboardEvent): void {\n this.keyupEvent.emit(event);\n }\n\n onSelectedChange(event: any): void {\n const previousSelected = this.selected;\n\n if (this.multiple) {\n this.selected = event;\n } else {\n this.selected = event ? event : null;\n }\n\n this.onChangeCallback(this.selected);\n\n // Verificar se um item foi removido\n if (previousSelected && Array.isArray(previousSelected) && previousSelected.length > event.length) {\n const removedItems = previousSelected.filter(item => !event.includes(item));\n removedItems.forEach(item => {\n const existsInData = this.data.some(dataItem => this.compareFn(dataItem, item));\n if (!existsInData) {\n this.data.push(item);\n this.allItems.push(item); // Adicionar de volta aos itens disponíveis\n }\n });\n }\n }\n\n onInputChange(event: any): void {\n const input = event.target.value;\n this.searchTerms.next(input);\n }\n\n search(term: string): Observable<any[]> {\n if (!term.trim()) {\n // Se o termo de busca estiver vazio, retorna a lista completa\n return of(this.allItems);\n }\n\n // Filtra os itens localmente\n const filtered = this.allItems.filter((item: any) =>\n item[this.bindLabel].toLowerCase().includes(term.toLowerCase())\n );\n\n if (filtered.length > 0) {\n console.log('Items filtered locally.');\n return of(filtered);\n } else if (this.searchUrl) {\n // Construir os parâmetros de busca dinamicamente\n const params = new URLSearchParams(this.searchParams);\n params.append('term', term);\n\n return this.http.get<any[]>(`${this.searchUrl}?${params.toString()}`).pipe(\n map((response: any[]) => {\n if (response && response.length > 0) {\n // Transforma os itens do backend para o formato esperado pelo componente\n const transformedItems = response.map((item: any) => ({\n [this.bindValue]: item[this.bindValue],\n [this.bindLabel]: item[this.bindLabel]\n }));\n\n // Atualiza os dados com os novos itens buscados\n this.updateData(transformedItems);\n\n return this.allItems;\n } else {\n console.log('No items found in the backend search.');\n return this.allItems;\n }\n }),\n catchError((error: any) => {\n console.error('Error fetching from backend:', error);\n return of(this.allItems);\n })\n );\n } else {\n console.log('No search URL provided and no items found locally.');\n return of(this.allItems);\n }\n }\n\n writeValue(value: any): void {\n if (this.multiple) {\n this.selected = value || [];\n } else {\n this.selected = value || null;\n }\n\n this.addSelectedItemsToData();\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n // No implementation needed for this example\n }\n\n compareFn = (item1: any, item2: any): boolean => {\n return item1 && item2 ? item1[this.bindValue] === item2[this.bindValue] : item1 === item2;\n };\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n}\n","<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","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'argenta-multi-select-category',\n templateUrl: './multi-select-category.component.html',\n styleUrls: ['./multi-select-category.component.scss']\n})\nexport class MultiSelectCategoryComponent implements OnInit {\n\n // Inputs para receber dados dinâmicos de diferentes categorias\n @Input() unidadesOrganizacionais: any[] = [];\n @Input() clientes: any[] = [];\n @Input() empresas: any[] = [];\n @Input() usuarios: any[] = [];\n\n // Inputs para permissões específicas de cada categoria\n @Input() permissoesUnidades: string[] = [];\n @Input() permissoesClientes: string[] = [];\n @Input() permissoesEmpresas: string[] = [];\n @Input() permissoesUsuarios: string[] = [];\n\n constructor() { }\n\n ngOnInit(): void { }\n}\n","<div class=\"multi-select-category\">\n <div class=\"row\">\n <!-- Primeira linha: Usuário e Cliente -->\n <div class=\"col\">\n <argenta-custom-multi-select\n label=\"Usuários\"\n [data]=\"usuarios\"\n bindLabel=\"nome\"\n bindValue=\"id\"\n [permissions]=\"permissoesUsuarios\"\n placeholder=\"Selecione Usuários\">\n </argenta-custom-multi-select>\n </div>\n\n <div class=\"col\">\n <argenta-custom-multi-select\n label=\"Clientes\"\n [data]=\"clientes\"\n bindLabel=\"nome\"\n bindValue=\"id\"\n [permissions]=\"permissoesClientes\"\n placeholder=\"Selecione Clientes\">\n </argenta-custom-multi-select>\n </div>\n </div>\n\n <div class=\"row\">\n <!-- Segunda linha: Empresa e Unidade Organizacional -->\n <div class=\"col\">\n <argenta-custom-multi-select\n label=\"Empresas\"\n [data]=\"empresas\"\n bindLabel=\"nome\"\n bindValue=\"id\"\n [permissions]=\"permissoesEmpresas\"\n placeholder=\"Selecione Empresas\">\n </argenta-custom-multi-select>\n </div>\n\n <div class=\"col\">\n <argenta-custom-multi-select\n label=\"Unidades Organizacionais\"\n [data]=\"unidadesOrganizacionais\"\n bindLabel=\"nome\"\n bindValue=\"id\"\n [permissions]=\"permissoesUnidades\"\n placeholder=\"Selecione Unidades Organizacionais\">\n </argenta-custom-multi-select>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'sim-app-radio',\n template: `\n <div class=\"form-check\" [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n }\">\n <input class=\"form-check-input\"\n type=\"radio\"\n [name]=\"name\"\n [id]=\"id\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"handleRadioChange($event)\"\n [disabled]=\"disabled\">\n <label class=\"form-check-label\" [for]=\"id\">{{ label }}</label>\n </div>\n `,\n styles: [`\n .form-check {\n font-family: Arial, sans-serif;\n font-size: 1rem; /* Define o tamanho padrão da fonte */\n }\n .form-check-input {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem;\n margin-right: 0.5rem;\n }\n .form-check-label {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem;\n font-weight: bold;\n }\n `],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RadioComponent implements ControlValueAccessor {\n @Input() name: string = 'defaultRadio';\n @Input() id: string = 'radioId';\n @Input() value: string = 'default';\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Input() label: string = 'Radio label';\n\n @Input() marginTop: number = 0;\n @Input() marginBottom: number = 0;\n @Input() marginLeft: number = 0;\n @Input() marginRight: number = 0;\n\n @Output() changeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n handleRadioChange(event: Event) {\n const inputElement = event.target as HTMLInputElement;\n this.checked = inputElement.checked;\n this.onChangeCallback(this.checked);\n this.changeEvent.emit(event);\n }\n\n writeValue(value: any): void {\n this.checked = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'argenta-search-customer',\n templateUrl: './search-customer.component.html',\n styleUrls: ['./search-customer.component.scss']\n})\nexport class SearchCustomerComponent {\n // Inputs\n @Input() placeholder: string = 'Search';\n @Input() id: string = '';\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() autofocus: boolean = false;\n\n // Output\n @Output() searchTerm = new EventEmitter<string>();\n\n onSearch(event: Event): void {\n const inputElement = event.target as HTMLInputElement;\n this.searchTerm.emit(inputElement.value);\n }\n}\n","<div class=\"search-container\">\n <span class=\"search-icon\">\n <lucide-icon name=\"search\" [size]=\"16\" color=\"#2CA58D\"></lucide-icon>\n </span>\n <input \n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [autofocus]=\"autofocus\"\n (input)=\"onSearch($event)\" \n class=\"search-input custom-input\"\n />\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, forwardRef } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'argenta-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SearchInputComponent),\n multi: true\n }\n ]\n})\nexport class SearchInputComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() id: string = '';\n @Input() label: string = 'Search';\n @Input() type: string = 'text';\n @Input() placeholder: string = 'Type to search...';\n @Input() value: string = '';\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() autofocus: boolean = false;\n @Input() maxlength: number | null = null;\n @Input() minlength: number | null = null;\n @Input() required: boolean = false;\n @Input() pattern: string | null = null;\n @Input() debounceTime: number = 700; // Valor padrão\n\n @Output() search = new EventEmitter<string>();\n @Output() inputChange = new EventEmitter<string>();\n @Output() change = new EventEmitter<Event>();\n @Output() focus = new EventEmitter<Event>();\n @Output() blur = new EventEmitter<Event>();\n @Output() keyup = new EventEmitter<KeyboardEvent>();\n @Output() keydown = new EventEmitter<KeyboardEvent>();\n @Output() keypress = new EventEmitter<KeyboardEvent>();\n\n private searchSubject: Subject<string> = new Subject<string>();\n private searchSubscription: Subscription = new Subscription();\n\n constructor() { }\n\n ngOnInit(): void {\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTime)\n ).subscribe((searchText) => {\n this.search.emit(searchText);\n });\n }\n\n onInput(event: Event): void {\n const inputElement = event.target as HTMLInputElement;\n const value = inputElement.value;\n this.value = value;\n this.inputChange.emit(value); // Emite o valor de input imediatamente\n this.searchSubject.next(value);\n this.onChangeFn(value); // Chame onChangeFn para notificar o Angular Forms sobre a mudança\n }\n\n onChange(event: Event): void {\n this.change.emit(event);\n }\n\n onFocus(event: Event): void {\n this.focus.emit(event);\n }\n\n onBlur(event: Event): void {\n this.blur.emit(event);\n this.onTouchedFn(); // Chame onTouchedFn para notificar o Angular Forms sobre o blur\n }\n\n onKeyup(event: KeyboardEvent): void {\n this.keyup.emit(event);\n }\n\n onKeydown(event: KeyboardEvent): void {\n this.keydown.emit(event);\n }\n\n onKeypress(event: KeyboardEvent): void {\n this.keypress.emit(event);\n }\n\n ngOnDestroy(): void {\n this.searchSubscription.unsubscribe();\n }\n\n getLabelStyles() {\n return {\n fontFamily: 'Inter',\n fontSize: '16px',\n lineHeight: '19.36px',\n };\n }\n\n // ControlValueAccessor interface implementation\n onChangeFn: (value: string) => void = () => { };\n onTouchedFn: () => void = () => { };\n\n writeValue(value: string): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, OnDestroy, OnChanges, SimpleChanges, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-select',\n styleUrls: ['./select.component.scss'],\n template: `\n <div *ngIf=\"hasPermission()\" class=\"form-group\">\n <label [for]=\"id\" [ngClass]=\"'label-styles'\">{{ label }}</label>\n <div class=\"select-container\">\n <select class=\"form-control custom-select\"\n [id]=\"id\"\n [value]=\"value\"\n (change)=\"onSelectChange($event)\"\n [disabled]=\"disabled\">\n <option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.label }}</option>\n </select>\n <lucide-icon name=\"chevron-down\" [size]=\"16\" color=\"#5E6366\" [strokeWidth]=\"1.75\"></lucide-icon>\n </div>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SelectComponent implements ControlValueAccessor, OnDestroy, OnChanges {\n @Input() label: string = 'Default Label';\n @Input() id: string = 'selectId';\n @Input() disabled: boolean = false;\n @Input() options: { value: any, label: string }[] = [];\n @Input() permissions: string[] | undefined;\n\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n value: any;\n private destroy$ = new Subject<void>();\n\n constructor(private authService: AuthService) { }\n\n onSelectChange(event: Event) {\n const selectElement = event.target as HTMLSelectElement;\n this.value = selectElement.value;\n this.onChangeCallback(this.value);\n this.changeEvent.emit(this.value);\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options'] && changes['options'].currentValue !== changes['options'].previousValue) {\n this.updateOptions(changes['options'].currentValue);\n }\n }\n\n updateOptions(newOptions: { value: any, label: string }[]): void {\n this.options = newOptions;\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-tab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabComponent implements OnInit {\n @Input() tabs: { label: string; content: any; permissions?: string[] }[] = [];\n @Input() activeTabIndex: number = 0;\n @Input() componentPermissions?: string[]; // Permissões para o componente como um todo\n @Output() tabChanged: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(private authService: AuthService) { }\n\n ngOnInit(): void {\n if (this.hasComponentPermission() && this.tabs.length > 0) {\n this.selectTab(this.activeTabIndex);\n }\n }\n\n selectTab(index: number, event?: MouseEvent): void {\n if (event) {\n event.preventDefault(); // Impede o comportamento padrão do link\n }\n if (this.hasPermission(this.tabs[index].permissions)) {\n this.activeTabIndex = index;\n this.tabChanged.emit(this.activeTabIndex);\n }\n }\n\n hasPermission(requiredPermissions?: string[]): boolean {\n if (!requiredPermissions || requiredPermissions.length === 0) {\n return true;\n }\n try {\n return this.authService.hasPermission(requiredPermissions);\n } catch (error: unknown) {\n console.error('Permission error:', error);\n return false;\n }\n }\n\n hasComponentPermission(): boolean {\n if (!this.componentPermissions || this.componentPermissions.length === 0) {\n return true; // Se não há permissões necessárias, permite por padrão\n }\n try {\n return this.authService.hasPermission(this.componentPermissions);\n } catch (error: unknown) {\n console.error('Permission error:', error);\n return false;\n }\n }\n}\n","<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","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RefreshService {\n private refreshSubject = new Subject<void>();\n\n get refresh$(): Observable<void> {\n return this.refreshSubject.asObservable();\n }\n\n refresh() {\n this.refreshSubject.next();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { ButtonClasses } from '../../enum/ButtonClassesEnum'; // Importando o enum\nimport { AuthService } from '../../service/auth-service.service'\nimport { RefreshService } from '../../service/refresh-service.service'\nimport { IDataIndexPaginate, IPaginateResult } from './data-paginate.service'\n\n@Component({\n selector: 'argenta-list-data-table',\n templateUrl: './data-table.component.html',\n styleUrls: ['./data-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTableComponent implements OnInit, OnChanges, OnDestroy {\n @Input() columns: { label: string, prop: string }[] = [];\n @Input() hiddenColumns: string[] = [];\n @Input() defaultItemsPerPage: number = 10;\n @Input() itemsPerPageLabel: string = 'Items per page:';\n @Input() showActionColumn: boolean = false;\n @Input() actionColumnLabel: string = 'Actions';\n @Input() totalItems: number = 0;\n @Input() fetchDataFunction: (params: IDataIndexPaginate) => Observable<IPaginateResult<any>> = () => {\n return new Observable(subscriber => subscriber.error('Implement the fetchDataFunction to fetch paginated data from the back-end.'));\n };\n @Input() editPermissions: string[] = [];\n @Input() deletePermissions: string[] = [];\n @Input() viewPermissions: string[] = [];\n @Input() showPageInfo: boolean = true;\n @Input() pageText: string = 'Page';\n @Input() ofText: string = 'of';\n @Input() filterDescription: string = '';\n\n @Input() buttonLabel: string = ''; // Adicionando o Input para o label do botão\n\n @Output() sortChange: EventEmitter<any> = new EventEmitter();\n @Output() pageChange: EventEmitter<number> = new EventEmitter();\n @Output() itemsPerPageChange: EventEmitter<number> = new EventEmitter();\n @Output() onEditTable: EventEmitter<any> = new EventEmitter();\n @Output() onDeleteTable: EventEmitter<any> = new EventEmitter();\n @Output() onViewTable: EventEmitter<any> = new EventEmitter();\n @Output() onButtonClick: EventEmitter<void> = new EventEmitter(); // Novo evento\n\n itemsPerPageOptions: number[] = [5, 10, 15, 25];\n currentPage: number = 1;\n sortColumn: string = '';\n sortDirection: 'asc' | 'desc' = 'asc';\n pagedData: any[] = [];\n isLoading = false;\n private destroy$ = new Subject<void>();\n private isInitialized = false; // Flag para evitar chamadas duplas\n ButtonClasses = ButtonClasses;\n\n labelStyle = {\n 'font-family': 'Inter, Arial, sans-serif',\n 'font-size': '14px',\n 'color': '#000'\n };\n\n constructor(private cdr: ChangeDetectorRef, private authService: AuthService, private refreshService: RefreshService) { }\n\n ngOnInit() {\n this.fetchData();\n this.refreshService.refresh$\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isInitialized) {\n this.refreshData();\n }\n });\n this.isInitialized = true;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['totalItems'] || changes['defaultItemsPerPage'] || changes['currentPage'] || changes['fetchDataFunction'] || changes['filterDescription']) {\n this.fetchData();\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n protected getNestedProperty(obj: any, path: string): any {\n return path.split('.').reduce((acc, part) => acc && acc[part], obj);\n }\n\n fetchData() {\n if (this.fetchDataFunction) {\n this.isLoading = true;\n const params: IDataIndexPaginate = {\n filterDescription: this.filterDescription,\n pageNumber: this.currentPage,\n pageSize: this.defaultItemsPerPage,\n sortColumn: this.sortColumn,\n sortDirection: this.sortDirection\n };\n this.fetchDataFunction(params).pipe(\n takeUntil(this.destroy$)\n ).subscribe({\n next: (result) => {\n this.pagedData = result.items;\n this.totalItems = result.totalItems;\n this.isLoading = false;\n this.cdr.markForCheck();\n },\n error: (error) => {\n console.error('Error fetching data:', error);\n this.isLoading = false;\n }\n });\n }\n }\n\n refreshData() {\n this.fetchData();\n }\n\n onSort(column: string) {\n this.sortColumn = column;\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n this.sortChange.emit({ column, direction: this.sortDirection });\n this.fetchData();\n }\n\n onPageChange(page: number) {\n this.currentPage = page;\n this.pageChange.emit(page);\n this.fetchData();\n }\n\n onItemsPerPageChange() {\n this.currentPage = 1;\n this.itemsPerPageChange.emit(this.defaultItemsPerPage);\n this.fetchData();\n }\n\n handleAction(action: string, item: any, index: number) {\n switch (action) {\n case 'edit':\n if (this.hasPermission(this.editPermissions)) {\n this.onEditTable.emit({ item, index });\n }\n break;\n case 'delete':\n if (this.hasPermission(this.deletePermissions)) {\n this.onDeleteTable.emit({ item, index });\n }\n break;\n case 'view':\n if (this.hasPermission(this.viewPermissions)) {\n this.onViewTable.emit({ item, index });\n }\n break;\n }\n }\n\n hasPermission(requiredPermissions: string[]): boolean {\n if (!requiredPermissions || requiredPermissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(requiredPermissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n isColumnHidden(columnProp: string): boolean {\n return this.hiddenColumns.includes(columnProp);\n }\n\n onSearch(searchText: string) {\n this.filterDescription = searchText;\n this.currentPage = 1; // Resetar para a primeira página\n this.fetchData();\n }\n\n onNewButtonClick() {\n this.onButtonClick.emit(); // Emitindo o evento\n }\n}\n","<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 *ngIf=\"buttonLabel && buttonLabel.length > 0\" 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 {{ getNestedProperty(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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'sim-app-textarea',\n template: `\n <div class=\"form-group\" [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n }\">\n <label [for]=\"id\" class=\"form-label\">{{ label }}</label>\n <textarea class=\"form-control custom-textarea\"\n [id]=\"id\"\n [rows]=\"rows\"\n [placeholder]=\"placeholder\"\n [value]=\"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 [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [autofocus]=\"autofocus\"></textarea>\n </div>\n `,\n styles: [`\n .form-group {\n margin-bottom: 1rem;\n }\n .form-label {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem;\n font-weight: bold;\n }\n `],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextareaComponent implements ControlValueAccessor {\n @Input() label: string = 'Default Label';\n @Input() placeholder: string = 'Default Placeholder';\n @Input() id: string = 'textareaId';\n @Input() rows: number = 3;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() maxlength: number | null = null;\n @Input() minlength: number | null = null;\n @Input() required: boolean = false;\n @Input() autofocus: boolean = false;\n\n @Input() marginTop: number = 0;\n @Input() marginBottom: number = 0;\n @Input() marginLeft: number = 0;\n @Input() marginRight: number = 0;\n\n @Output() inputEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() changeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output() blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output() keyupEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n @Output() keydownEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n @Output() keypressEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n value: string = '';\n\n onInput(event: Event) {\n const inputElement = event.target as HTMLTextAreaElement;\n this.value = inputElement.value;\n this.onChangeCallback(this.value);\n this.inputEvent.emit(event);\n }\n\n onChange(event: Event) {\n this.changeEvent.emit(event);\n }\n\n onFocus(event: FocusEvent) {\n this.focusEvent.emit(event);\n }\n\n onBlur(event: FocusEvent) {\n this.onTouchedCallback();\n this.blurEvent.emit(event);\n }\n\n onKeyup(event: KeyboardEvent) {\n this.keyupEvent.emit(event);\n }\n\n onKeydown(event: KeyboardEvent) {\n this.keydownEvent.emit(event);\n }\n\n onKeypress(event: KeyboardEvent) {\n this.keypressEvent.emit(event);\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ITreeNode } from './Itree-node';\n\n@Component({\n selector: 'argenta-custom-tree-node',\n templateUrl: './tree-node.component.html',\n styleUrls: ['./tree-node.component.scss']\n})\nexport class TreeNodeComponent implements OnInit {\n @Input() title: string = '';\n @Input() nodes: ITreeNode[] = [];\n @Input() isRoot: boolean = true;\n @Output() nodeSelected = new EventEmitter<ITreeNode>();\n\n ngOnInit() {\n if (this.isRoot && !this.title) {\n this.title = 'Tree Node';\n }\n }\n\n onNodeSelected(node: ITreeNode, event: any) {\n node.selected = event.target.checked;\n if (node.children) {\n this.toggleChildren(node.children, node.selected);\n }\n this.updateParentSelection(this.nodes);\n this.nodeSelected.emit(node);\n }\n\n toggleChildren(children: ITreeNode[], selected: boolean) {\n children.forEach(child => {\n child.selected = selected;\n if (child.children) {\n this.toggleChildren(child.children, selected);\n }\n });\n }\n\n onChildNodeSelected(node: ITreeNode) {\n this.updateParentSelection(this.nodes);\n this.nodeSelected.emit(node);\n }\n\n updateParentSelection(nodes: ITreeNode[]) {\n nodes.forEach(node => {\n if (node.children) {\n const anyChildSelected = node.children.some(child => child.selected);\n if (anyChildSelected) {\n node.selected = true;\n }\n // Recursive call for nested parents\n this.updateParentSelection(node.children);\n }\n });\n }\n\n toggleCollapse(node: ITreeNode) {\n node.collapsed = !node.collapsed;\n }\n}\n","<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 <!-- Exibir a seta apenas se o nó tiver filhos não vazios -->\n <span *ngIf=\"node.children && node.children.length > 0\" class=\"toggle-icon\" (click)=\"toggleCollapse(node)\"\n [ngClass]=\"{'collapsed-icon': node.collapsed, 'expanded-icon': !node.collapsed}\">\n {{ node.collapsed ? '▶' : '▼' }}\n </span>\n <!-- Exibir a bolinha cinza se o nó não tiver filhos -->\n <span *ngIf=\"!node.children || node.children.length === 0\" class=\"dot\"></span>\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 <!-- Renderizar recursivamente apenas se o nó tiver filhos não vazios e não estiver colapsado -->\n <argenta-custom-tree-node *ngIf=\"node.children && node.children.length > 0 && !node.collapsed\" [nodes]=\"node.children\" [isRoot]=\"false\" (nodeSelected)=\"onChildNodeSelected(node)\"></argenta-custom-tree-node>\n </li>\n</ul>\n","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'argenta-json-viewer',\n templateUrl: './json-viewer.component.html',\n styleUrls: ['./json-viewer.component.scss']\n})\nexport class JsonViewerComponent {\n @Input() jsonData: any;\n @Input() isRoot: boolean = true;\n @Input() copyLabel!: string\n @Input() showLabel!: string\n @Input() hideLabel!: string\n\n allExpanded: boolean = true;\n expandedMap: Map<string, boolean> = new Map();\n\n toggleAll() {\n this.allExpanded = !this.allExpanded;\n this.expandedMap.clear();\n }\n\n toggleExpand(key: string) {\n const currentState = this.isExpanded(key);\n this.expandedMap.set(key, !currentState);\n }\n\n isObject(val: any): boolean {\n return val !== null && typeof val === 'object';\n }\n\n objectKeys(obj: any): string[] {\n return Object.keys(obj);\n }\n\n isExpanded(key: string): boolean {\n return this.expandedMap.has(key) ? this.expandedMap.get(key)! : this.allExpanded;\n }\n\n copyJson() {\n const jsonString = JSON.stringify(this.jsonData, null, 2);\n navigator.clipboard.writeText(jsonString).then(() => {\n alert('JSON copiado com sucesso!');\n }).catch(err => {\n console.error('Error copying JSON to clipboard:', err);\n });\n }\n}\n","<div class=\"json-viewer-box\">\n <div class=\"toolbar\">\n <button\n *ngIf=\"isRoot\"\n class=\"action-button copy-button\"\n (click)=\"copyJson()\"\n >\n {{ copyLabel }}\n </button>\n <button\n *ngIf=\"isRoot\"\n class=\"action-button toggle-button\"\n (click)=\"toggleAll()\"\n >\n {{ allExpanded ? \"▼ \" + hideLabel : \"► \" + showLabel }}\n </button>\n </div>\n\n <div class=\"json-content\">\n <div *ngIf=\"isObject(jsonData)\">\n <div class=\"json-pair\" *ngFor=\"let key of objectKeys(jsonData)\">\n <span class=\"key\">\n {{ key }}:\n <button class=\"minimal-toggle-button\" (click)=\"toggleExpand(key)\">\n {{ isExpanded(key) ? \"▼\" : \"►\" }}\n </button>\n </span>\n\n <div class=\"nested-json\" *ngIf=\"isExpanded(key)\">\n <argenta-json-viewer\n [jsonData]=\"jsonData[key]\"\n [isRoot]=\"false\"\n ></argenta-json-viewer>\n </div>\n <span *ngIf=\"!isExpanded(key) && isObject(jsonData[key])\">[...]</span>\n </div>\n </div>\n <span *ngIf=\"!isObject(jsonData)\">\n {{ jsonData }}\n </span>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core'\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'\n\n@Component({\n selector: 'argenta-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent {\n @Input() title!: string;\n @Input() component!: any;\n @Input() closeButtonLabel!: string\n @Input() buttonLabel?: string\n @Output() onButtonClick: EventEmitter<void> = new EventEmitter(); // Novo evento\n\n @ViewChild('dynamicComponent', { read: ViewContainerRef, static: true }) dynamicComponent!: ViewContainerRef;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit() {\n // Dynamically insert the provided component into the modal body\n this.dynamicComponent.createComponent(this.component);\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n buttonClicked() {\n this.onButtonClick.emit(); // Emitindo o evento\n }\n}\n","<div class=\"modal-header custom-modal-header\">\n <h4 class=\"modal-title\">{{ title }}</h4>\n <p class=\"float-right close-modal\" (click)=\"closeModal()\">X</p>\n</div>\n<div class=\"modal-body\">\n <ng-container #dynamicComponent></ng-container>\n</div>\n<div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"closeModal()\">\n {{ closeButtonLabel }}\n </button>\n <button *ngIf=\"buttonLabel\" class=\"btn btn-custom\" (click)=\"buttonClicked()\">\n {{ buttonLabel }}\n </button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { icons, LucideAngularModule } from 'lucide-angular';\n\n// Select some icons (use an object, not an array)\n@NgModule({\n imports: [LucideAngularModule.pick(icons)],\n exports: [LucideAngularModule],\n})\nexport class LucideIconsModule { }\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { NgSelectModule } from '@ng-select/ng-select'\nimport { AutofocusDirective } from '../directive/autofocus-directive/autofocus.directive'\nimport { CepMaskDirective } from '../directive/cep-mask.directive'\nimport { CnpjMaskDirective } from '../directive/cnpj-mask.directive'\nimport { CpfMaskDirective } from '../directive/cpf-mask.directive'\nimport { LucideIconsModule } from '../icons/lucide-icons.module'\nimport { AccordionArgentaComponent } from './accordion/accordion.component'\nimport { AlertComponent } from './alert/alert.component'\nimport { AppBackgroundComponent } from './app-background/app-background.component'\nimport { BadgeComponent } from './badge/badge.component'\nimport { BasicRegistrationComponent } from './basic-registration/basic-registration.component'\nimport { ButtonComponent } from './button/button.component'\nimport { CalendarArgentaComponent } from './calendar-argenta/calendar-argenta.component'\nimport { CardComponent } from './card/card.component'\nimport { CheckboxComponent } from './checkbox/checkbox.component'\nimport { CodeHighlightComponent } from './code-highlight/code-highlight.component'\nimport { ConfirmationComponent } from './confirmation/confirmation.component'\nimport { CustomPaginationComponent } from './custom-pagination/custom-pagination.component'\nimport { CustomSwitchComponent } from './custom-switch/custom-switch.component'\nimport { FileUploadComponent } from './file-upload/file-upload.component'\nimport { InputComponent } from './imput/input.component'\nimport { JsonViewerComponent } from './json-viewer/json-viewer.component'\nimport { ModalComponent } from './modal/modal.component'\nimport { MultiSelectCategoryComponent } from './multi-select-category/multi-select-category.component'\nimport { MultiSelectComponent } from './multi-select/multi-select.component'\nimport { RadioComponent } from './radio/radio.component'\nimport { SearchCustomerComponent } from './search-customer/search-customer.component'\nimport { SearchInputComponent } from './search-input/search-input.component'\nimport { SelectComponent } from './select/select.component'\nimport { TabComponent } from './tab/tab.component'\nimport { DataTableComponent } from './tables/data-table.component'\nimport { TextareaComponent } from './textarea/textarea.component'\nimport { TreeNodeComponent } from './tree-node/tree-node.component'\n@NgModule({\n declarations: [\n ButtonComponent,\n CardComponent,\n InputComponent,\n CheckboxComponent,\n TextareaComponent,\n SelectComponent,\n RadioComponent,\n MultiSelectComponent,\n DataTableComponent,\n CodeHighlightComponent,\n BadgeComponent,\n AlertComponent,\n ConfirmationComponent,\n AutofocusDirective,\n CepMaskDirective,\n CnpjMaskDirective,\n CpfMaskDirective,\n CustomPaginationComponent,\n TreeNodeComponent,\n SearchInputComponent,\n AppBackgroundComponent,\n BasicRegistrationComponent,\n CustomSwitchComponent,\n SearchCustomerComponent,\n TabComponent,\n FileUploadComponent,\n MultiSelectCategoryComponent,\n CalendarArgentaComponent,\n AccordionArgentaComponent,\n JsonViewerComponent,\n ModalComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgSelectModule,\n LucideIconsModule,\n ],\n exports: [\n ButtonComponent,\n CardComponent,\n InputComponent,\n CheckboxComponent,\n TextareaComponent,\n SelectComponent,\n RadioComponent,\n MultiSelectComponent,\n FormsModule,\n ReactiveFormsModule,\n NgSelectModule,\n DataTableComponent,\n CodeHighlightComponent,\n BadgeComponent,\n AlertComponent,\n ConfirmationComponent,\n AutofocusDirective,\n CepMaskDirective,\n CnpjMaskDirective,\n CpfMaskDirective,\n CustomPaginationComponent,\n TreeNodeComponent,\n SearchInputComponent,\n LucideIconsModule,\n AppBackgroundComponent,\n BasicRegistrationComponent,\n CustomSwitchComponent,\n SearchCustomerComponent,\n TabComponent,\n FileUploadComponent,\n MultiSelectCategoryComponent,\n CalendarArgentaComponent,\n AccordionArgentaComponent,\n JsonViewerComponent,\n ModalComponent,\n ],\n})\nexport class ComponentsModule { }\n","import { ApplicationRef, ComponentRef, createComponent, Injectable, Injector } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AlertComponent } from './alert.component';\n\nexport interface Alert {\n type: 'success' | 'info' | 'warning' | 'danger';\n title: string;\n message: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n private alertsSubject = new Subject<Alert>();\n alerts$ = this.alertsSubject.asObservable();\n\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector\n ) { }\n\n showAlert(type: 'success' | 'info' | 'warning' | 'danger', title: string, message: string) {\n const alert: Alert = { type, title, message };\n this.alertsSubject.next(alert);\n\n // Create the alert component dynamically\n const componentRef: ComponentRef<AlertComponent> = createComponent(AlertComponent, { environmentInjector: this.appRef.injector });\n componentRef.instance.alerts = [alert];\n\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as any).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n \n \n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { ConfirmationComponent } from './confirmation.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmationService implements OnDestroy {\n private modalRef: NgbModalRef | null = null;\n\n constructor(private modalService: NgbModal) { }\n\n confirm(\n title: string,\n message: string,\n confirmButtonText: string = 'Sim',\n cancelButtonText: string = 'Não'\n ): Promise<boolean> {\n this.modalRef = this.modalService.open(ConfirmationComponent, { backdrop: 'static', keyboard: false });\n this.modalRef.componentInstance.title = title;\n this.modalRef.componentInstance.message = message;\n this.modalRef.componentInstance.confirmButtonText = confirmButtonText;\n this.modalRef.componentInstance.cancelButtonText = cancelButtonText;\n\n return this.modalRef.result.then((result) => {\n return result === 'confirm';\n }, () => {\n return false;\n }).finally(() => {\n this.modalRef = null; // Clear the reference after the modal is closed\n });\n }\n\n ngOnDestroy() {\n if (this.modalRef) {\n this.modalRef.dismiss();\n this.modalRef = null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport interface IDataIndexPaginate {\n filterDescription?: string;\n pageNumber: number;\n pageSize: number;\n sortColumn: string;\n sortDirection: 'asc' | 'desc';\n}\n\nexport interface IPaginateResult<T> {\n items: T[];\n totalItems: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataPaginateService {\n constructor(private http: HttpClient) { }\n\n fetchData<T>(url: string, params: IDataIndexPaginate): Observable<IPaginateResult<T>> {\n let httpParams = new HttpParams()\n .set('page', params.pageNumber.toString())\n .set('limit', params.pageSize.toString())\n .set('sort', params.sortColumn)\n .set('order', params.sortDirection);\n\n if (params.filterDescription) {\n httpParams = httpParams.set('description', params.filterDescription);\n }\n\n return this.http.get<{ meta: { total: number }, data: T[] }>(url, { params: httpParams }).pipe(\n map(response => {\n const items = response.data || [];\n const totalItems = response.meta.total || 0;\n return {\n items,\n totalItems\n };\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RouterParameterService {\n private secretKey = '9db3589f$h86115&@b457bdff422c232e0e04c!ibe14374970aef0fe0ba054618f!='\n setParameter(data: string): string {\n return CryptoJS.AES.encrypt(data, this.secretKey).toString();\n }\n\n getParameter(data: string): string {\n const bytes = CryptoJS.AES.decrypt(data, this.secretKey);\n return bytes.toString(CryptoJS.enc.Utf8);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NotificationService } from './components/alert/notification.service';\nimport { ComponentsModule } from './components/components.module';\nimport { ConfirmationService } from './components/confirmation/confirmation.service';\nimport { DataPaginateService } from './components/tables/data-paginate.service';\nimport { RefreshService } from './service/refresh-service.service';\nimport { RouterParameterService } from './service/route-parameter.service';\n\n@NgModule({\n imports: [\n ComponentsModule,\n \n ],\n exports: [\n ComponentsModule, \n ],\n providers: [\n NotificationService,\n ConfirmationService,\n DataPaginateService,\n RefreshService,\n RouterParameterService,\n ],\n})\nexport class LibPortalAngularModule { }\n","/*\n * Public API Surface of sim-lib\n *\n * Este arquivo exporta todos os componentes, enums e módulos necessários\n * para que os consumidores da biblioteca possam utilizá-los em suas aplicações.\n */\n\n// Componentes\nexport * from './lib/components/accordion/accordion.component';\nexport * from './lib/components/alert/alert.component';\nexport * from './lib/components/app-background/app-background.component';\nexport * from './lib/components/badge/badge.component';\nexport * from './lib/components/basic-registration/basic-registration.component';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/calendar-argenta/calendar-argenta.component';\nexport * from './lib/components/card/card.component';\nexport * from './lib/components/checkbox/checkbox.component';\nexport * from './lib/components/code-highlight/code-highlight.component';\nexport * from './lib/components/confirmation/confirmation.component';\nexport * from './lib/components/custom-pagination/custom-pagination.component';\nexport * from './lib/components/custom-switch/custom-switch.component';\nexport * from './lib/components/file-upload/file-upload.component';\nexport * from './lib/components/imput/input.component';\nexport * from './lib/components/multi-select-category/multi-select-category.component';\nexport * from './lib/components/multi-select/multi-select.component';\nexport * from './lib/components/radio/radio.component';\nexport * from './lib/components/search-customer/search-customer.component';\nexport * from './lib/components/search-input/search-input.component';\nexport * from './lib/components/select/select.component';\nexport * from './lib/components/tab/tab.component';\nexport * from './lib/components/tables/data-table.component';\nexport * from './lib/components/textarea/textarea.component';\nexport * from './lib/components/tree-node/tree-node.component';\nexport * from './lib/components/alert/alert.component'\nexport * from './lib/components/app-background/app-background.component'\nexport * from './lib/components/badge/badge.component'\nexport * from './lib/components/basic-registration/basic-registration.component'\nexport * from './lib/components/button/button.component'\nexport * from './lib/components/card/card.component'\nexport * from './lib/components/checkbox/checkbox.component'\nexport * from './lib/components/code-highlight/code-highlight.component'\nexport * from './lib/components/confirmation/confirmation.component'\nexport * from './lib/components/custom-pagination/custom-pagination.component'\nexport * from './lib/components/custom-switch/custom-switch.component'\nexport * from './lib/components/file-upload/file-upload.component'\nexport * from './lib/components/imput/input.component'\nexport * from './lib/components/json-viewer/json-viewer.component'\nexport * from './lib/components/modal/modal.component'\nexport * from './lib/components/multi-select-category/multi-select-category.component'\nexport * from './lib/components/multi-select/multi-select.component'\nexport * from './lib/components/radio/radio.component'\nexport * from './lib/components/search-customer/search-customer.component'\nexport * from './lib/components/search-input/search-input.component'\nexport * from './lib/components/select/select.component'\nexport * from './lib/components/tab/tab.component'\nexport * from './lib/components/tables/data-table.component'\nexport * from './lib/components/textarea/textarea.component'\nexport * from './lib/components/tree-node/tree-node.component'\n\n// Diretivas\nexport * from './lib/directive/autofocus-directive/autofocus.directive'\nexport * from './lib/directive/cep-mask.directive'\nexport * from './lib/directive/cnpj-mask.directive'\nexport * from './lib/directive/cpf-mask.directive'\n\n// Enums\nexport * from './lib/enum/ButtonClassesEnum'\n\n// Módulos\nexport * from './lib/components/components.module'\nexport * from './lib/icons/lucide-icons.module'\nexport * from './lib/lib-portal-angular.module'\n\n\n// Service\nexport * from './lib/components/alert/notification.service'\nexport * from './lib/components/confirmation/confirmation.service'\nexport * from './lib/components/tables/data-paginate.service'\nexport * from './lib/service/refresh-service.service'\nexport * from './lib/service/route-parameter.service'\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AuthService","i2","i3.ButtonComponent","i1","i2.AutofocusDirective","i3","i4.CepMaskDirective","i5.CnpjMaskDirective","i6.CpfMaskDirective","i1.MultiSelectComponent","i4","i2.RefreshService","i5","i6.CustomPaginationComponent","i7.SearchInputComponent"],"mappings":"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"}
1
+ {"version":3,"file":"lib-portal-angular.mjs","sources":["../../../projects/lib-portal-angular/src/lib/service/auth-service.service.ts","../../../projects/lib-portal-angular/src/lib/components/accordion/accordion.component.ts","../../../projects/lib-portal-angular/src/lib/components/accordion/accordion.component.html","../../../projects/lib-portal-angular/src/lib/components/alert/alert.component.ts","../../../projects/lib-portal-angular/src/lib/components/alert/alert.component.html","../../../projects/lib-portal-angular/src/lib/components/app-background/app-background.component.ts","../../../projects/lib-portal-angular/src/lib/enum/ButtonClassesEnum.ts","../../../projects/lib-portal-angular/src/lib/components/badge/badge.component.ts","../../../projects/lib-portal-angular/src/lib/components/button/button.component.ts","../../../projects/lib-portal-angular/src/lib/components/basic-registration/basic-registration.component.ts","../../../projects/lib-portal-angular/src/lib/components/basic-registration/basic-registration.component.html","../../../projects/lib-portal-angular/src/lib/components/calendar-argenta/calendar-argenta.component.ts","../../../projects/lib-portal-angular/src/lib/components/calendar-argenta/calendar-argenta.component.html","../../../projects/lib-portal-angular/src/lib/components/card/card.component.ts","../../../projects/lib-portal-angular/src/lib/components/checkbox/checkbox.component.ts","../../../projects/lib-portal-angular/src/lib/components/code-highlight/code-highlight.component.ts","../../../projects/lib-portal-angular/src/lib/directive/autofocus-directive/autofocus.directive.ts","../../../projects/lib-portal-angular/src/lib/components/confirmation/confirmation.component.ts","../../../projects/lib-portal-angular/src/lib/components/confirmation/confirmation.component.html","../../../projects/lib-portal-angular/src/lib/components/custom-pagination/custom-pagination.component.ts","../../../projects/lib-portal-angular/src/lib/components/custom-pagination/custom-pagination.component.html","../../../projects/lib-portal-angular/src/lib/components/custom-switch/custom-switch.component.ts","../../../projects/lib-portal-angular/src/lib/components/custom-switch/custom-switch.component.html","../../../projects/lib-portal-angular/src/lib/components/file-upload/file-upload.component.ts","../../../projects/lib-portal-angular/src/lib/components/file-upload/file-upload.component.html","../../../projects/lib-portal-angular/src/lib/directive/cep-mask.directive.ts","../../../projects/lib-portal-angular/src/lib/directive/cnpj-mask.directive.ts","../../../projects/lib-portal-angular/src/lib/directive/cpf-mask.directive.ts","../../../projects/lib-portal-angular/src/lib/components/imput/input.component.ts","../../../projects/lib-portal-angular/src/lib/components/imput/input.component.html","../../../projects/lib-portal-angular/src/lib/components/multi-select/multi-select.component.ts","../../../projects/lib-portal-angular/src/lib/components/multi-select/multi-select.component.html","../../../projects/lib-portal-angular/src/lib/components/multi-select-category/multi-select-category.component.ts","../../../projects/lib-portal-angular/src/lib/components/multi-select-category/multi-select-category.component.html","../../../projects/lib-portal-angular/src/lib/components/radio/radio.component.ts","../../../projects/lib-portal-angular/src/lib/components/search-customer/search-customer.component.ts","../../../projects/lib-portal-angular/src/lib/components/search-customer/search-customer.component.html","../../../projects/lib-portal-angular/src/lib/components/search-input/search-input.component.ts","../../../projects/lib-portal-angular/src/lib/components/search-input/search-input.component.html","../../../projects/lib-portal-angular/src/lib/components/select/select.component.ts","../../../projects/lib-portal-angular/src/lib/components/tab/tab.component.ts","../../../projects/lib-portal-angular/src/lib/components/tab/tab.component.html","../../../projects/lib-portal-angular/src/lib/service/refresh-service.service.ts","../../../projects/lib-portal-angular/src/lib/components/tables/data-table.component.ts","../../../projects/lib-portal-angular/src/lib/components/tables/data-table.component.html","../../../projects/lib-portal-angular/src/lib/components/textarea/textarea.component.ts","../../../projects/lib-portal-angular/src/lib/components/tree-node/tree-node.component.ts","../../../projects/lib-portal-angular/src/lib/components/tree-node/tree-node.component.html","../../../projects/lib-portal-angular/src/lib/components/json-viewer/json-viewer.component.ts","../../../projects/lib-portal-angular/src/lib/components/json-viewer/json-viewer.component.html","../../../projects/lib-portal-angular/src/lib/components/modal/modal.component.ts","../../../projects/lib-portal-angular/src/lib/components/modal/modal.component.html","../../../projects/lib-portal-angular/src/lib/icons/lucide-icons.module.ts","../../../projects/lib-portal-angular/src/lib/components/components.module.ts","../../../projects/lib-portal-angular/src/lib/components/alert/notification.service.ts","../../../projects/lib-portal-angular/src/lib/components/confirmation/confirmation.service.ts","../../../projects/lib-portal-angular/src/lib/components/tables/data-paginate.service.ts","../../../projects/lib-portal-angular/src/lib/service/route-parameter.service.ts","../../../projects/lib-portal-angular/src/lib/lib-portal-angular.module.ts","../../../projects/lib-portal-angular/src/public-api.ts","../../../projects/lib-portal-angular/src/lib-portal-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n private userRoles: string[] = [];\n\n constructor() {\n this.loadUserRoles();\n }\n\n private loadUserRoles(): void {\n const storedUser = localStorage.getItem('user');\n if (!storedUser) {\n throw new Error('User not found in localStorage');\n }\n const { role } = JSON.parse(storedUser);\n if (!role || !Array.isArray(role)) {\n throw new Error('Roles not found or invalid in localStorage');\n }\n this.userRoles = role.map((r: string) => r.toString());\n }\n\n public hasPermission(requiredPermissions: string[]): boolean {\n if (this.userRoles.length === 0) {\n throw new Error('No roles found for the user');\n }\n return requiredPermissions.every(permission => this.userRoles.includes(permission));\n }\n}\n","\nimport { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class AccordionArgentaComponent {\n @Input() title: string = 'Accordion Title'; // Título do accordion\n @Input() isOpen: boolean = false; // Estado inicial do accordion\n @Input() permissions: string[] = []; // Permissões necessárias para exibir o accordion\n\n @Output() toggleEvent = new EventEmitter<boolean>(); // Evento emitido ao abrir/fechar o accordion\n\n constructor(private authService: AuthService) { }\n\n ngOnInit(): void {\n this.validatePermissions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['permissions']) {\n this.validatePermissions();\n }\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true; // Se não forem passadas permissões, o accordion será exibido por padrão\n }\n\n try {\n return this.authService.hasPermission(this.permissions); // Verifica se o usuário tem as permissões\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return false; // Se ocorrer um erro ou as permissões não forem válidas, o accordion não será exibido\n }\n }\n\n toggle() {\n this.isOpen = !this.isOpen;\n this.toggleEvent.emit(this.isOpen); // Emite o estado atual (aberto ou fechado)\n }\n\n private validatePermissions(): void {\n if (!Array.isArray(this.permissions)) {\n throw new Error(`Invalid permissions: ${this.permissions}. It should be an array of strings.`);\n }\n }\n}","<ng-container *ngIf=\"hasPermission()\">\n <div class=\"accordion\">\n <div class=\"accordion-header\" (click)=\"toggle()\" [class.open]=\"isOpen\">\n <h3>{{ title }}</h3>\n <!-- Ícone da seta -->\n <span class=\"accordion-icon\">▼</span>\n </div>\n <div class=\"accordion-content\" [class.open]=\"isOpen\">\n <ng-content></ng-content> <!-- Conteúdo do accordion -->\n </div>\n </div>\n</ng-container>\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { Alert } from './notification.service';\n\n@Component({\n selector: 'lib-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss']\n})\nexport class AlertComponent implements OnInit, AfterViewInit {\n @Input() alerts: Alert[] = [];\n private closeTimeouts: { [key: string]: any } = {}; // Armazena os temporizadores para cada alerta\n\n ngOnInit(): void {\n // Inicia o temporizador de fechamento para cada alerta quando a página é carregada\n this.alerts.forEach(alert => {\n this.closeTimeouts[alert.message] = setTimeout(() => {\n this.closeAlert(alert);\n }, 6000); // Fecha após 8 segundos\n });\n }\n\n ngAfterViewInit(): void {\n // Adiciona a classe 'show' após um curto atraso para acionar a animação\n setTimeout(() => {\n this.alerts.forEach(alert => {\n const element = document.getElementById(`alert-${alert.message}`);\n if (element) {\n element.classList.add('show');\n }\n });\n }, 10); // Pequeno atraso para garantir que o elemento esteja no DOM\n }\n\n closeAlert(alert: Alert) {\n const element = document.getElementById(`alert-${alert.message}`);\n if (element) {\n element.classList.remove('show');\n setTimeout(() => {\n this.alerts = this.alerts.filter(a => a !== alert);\n }, 500); // Duração da animação de saída\n } else {\n this.alerts = this.alerts.filter(a => a !== alert);\n }\n }\n\n getAlertClass(alert: Alert) {\n return {\n 'alert-container': true,\n 'alert-dismissible': true,\n [`alert-${alert.type}`]: true\n };\n }\n\n getAlertIconClass(alert: Alert) {\n switch (alert.type) {\n case 'success':\n return 'success-icon'; // Classe para o ícone de sucesso\n case 'info':\n return 'info-icon'; // Classe para o ícone de informação\n case 'warning':\n return 'warning-icon'; // Classe para o ícone de aviso\n case 'danger':\n return 'danger-icon'; // Classe para o ícone de erro\n default:\n return '';\n }\n }\n\n onMouseEnter(alert: Alert) {\n // Cancela o temporizador quando o mouse entra no alerta\n if (this.closeTimeouts[alert.message]) {\n clearTimeout(this.closeTimeouts[alert.message]);\n delete this.closeTimeouts[alert.message];\n }\n }\n\n onMouseLeave(alert: Alert) {\n // Inicia um novo temporizador para fechar o alerta após 2 segundos quando o mouse sai do alerta\n this.closeTimeouts[alert.message] = setTimeout(() => {\n this.closeAlert(alert);\n }, 2000); // Fechar após 2 segundos\n }\n}\n","<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\">&times;</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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'argenta-app-background',\n template: `\n <div class=\"row row-car\">\n <div class=\"card\">\n <div class=\"card-content\">\n <ng-content></ng-content>\n </div>\n </div> \n </div>\n `,\n styles: [` \n .card {\n border-radius: 10px;\n padding: 1rem;\n background-color: #FFFFFF; /* Cor de fundo ajustada */\n border: none; /* Remover borda */\n }\n .row-car{\n margin-left: -0.8rem;\n margin-right: -0.8rem;\n }\n `]\n})\nexport class AppBackgroundComponent { }\n","export enum ButtonClasses {\n Primary = 'btn-primary',\n Secondary = 'btn-secondary',\n Success = 'btn-success',\n Danger = 'btn-danger',\n Warning = 'btn-warning',\n Info = 'btn-info',\n Light = 'btn-light',\n Dark = 'btn-dark',\n Link = 'btn-link'\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { ButtonClasses } from '../../enum/ButtonClassesEnum';\n\n@Component({\n selector: 'sim-app-badge',\n template: `\n <button\n class=\"notification-button\"\n [ngStyle]=\"getDynamicStyles()\"\n (click)=\"onClick()\"\n [class.hovered]=\"isHovered\"\n [class.clicked]=\"isClicked\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (mouseleave)=\"onMouseLeave()\"\n (mouseenter)=\"onMouseEnter()\">\n {{ label }}\n <span class=\"badge\">{{ badgeContent }}</span>\n </button>\n `,\n styles: [`\n .notification-button {\n position: relative;\n display: inline-block;\n width: 155px;\n height: 58px;\n padding: 14px 29px 14px 36px;\n border-radius: 6px;\n border: none;\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n transition: opacity 0.3s;\n }\n .badge {\n position: absolute;\n width: 52px; /* Largura fixa */\n height: 32px; /* Altura fixa */\n top: -15px;\n right: -20px;\n background-color: #dc3545;\n color: #FFFFFF;\n border-radius: 16px; /* Arredondamento das bordas */\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n font-size: 14px;\n font-family: 'Inter', sans-serif;\n }\n .notification-button.hovered {\n opacity: 0.8;\n }\n .notification-button.clicked {\n opacity: 0.6;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BadgeComponent {\n @Input() label: string = 'Mensagem';\n @Input() badgeContent: string = '+45';\n @Input() marginTop: number = 0;\n @Input() marginBottom: number = 0;\n @Input() marginLeft: number = 0;\n @Input() marginRight: number = 0;\n @Input() btnClass: ButtonClasses = ButtonClasses.Primary;\n @Output() buttonClick: EventEmitter<void> = new EventEmitter<void>();\n\n isHovered: boolean = false;\n isClicked: boolean = false;\n isActive: boolean = false;\n\n getDynamicStyles() {\n let backgroundColor = '';\n let textColor = '#fff'; // Default text color\n let borderColor = '';\n\n switch (this.btnClass) {\n case ButtonClasses.Primary:\n backgroundColor = '#00444C';\n break;\n case ButtonClasses.Secondary:\n backgroundColor = '#2CA58D';\n break;\n case ButtonClasses.Success:\n backgroundColor = '#00C853';\n break;\n case ButtonClasses.Danger:\n backgroundColor = '#D32F2F';\n break;\n case ButtonClasses.Warning:\n backgroundColor = '#FFC107';\n break;\n case ButtonClasses.Info:\n backgroundColor = '#3EC9D6';\n break;\n case ButtonClasses.Light:\n backgroundColor = '#EEF2F6';\n textColor = '#00444C'; // Custom text color for Light\n break;\n case ButtonClasses.Dark:\n backgroundColor = '#111936';\n break;\n case ButtonClasses.Link:\n backgroundColor = 'transparent';\n borderColor = '#DDE5E9';\n textColor = '#00444C'; // Custom text color for Link\n break;\n default:\n backgroundColor = '#00444C';\n break;\n }\n\n const hoverFilter = this.isHovered ? 'brightness(80%)' : 'none'; // Adjusted hover brightness\n const activeFilter = this.isClicked ? 'brightness(60%)' : hoverFilter; // Adjusted active brightness\n\n return {\n 'margin-top': `${this.marginTop}rem`,\n 'margin-bottom': `${this.marginBottom}rem`,\n 'margin-left': `${this.marginLeft}rem`,\n 'margin-right': `${this.marginRight}rem`,\n 'background-color': backgroundColor,\n 'color': textColor,\n 'border': borderColor ? `1px solid ${borderColor}` : 'none',\n 'transition': 'background-color 0.3s, border-color 0.3s, filter 0.3s',\n 'filter': activeFilter\n };\n }\n\n onClick() {\n this.buttonClick.emit();\n }\n\n @HostListener('mouseenter')\n onMouseEnter() {\n this.isHovered = true;\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n this.isHovered = false;\n this.isClicked = false;\n }\n\n @HostListener('mousedown')\n onMouseDown() {\n this.isClicked = true;\n }\n\n @HostListener('mouseup')\n onMouseUp() {\n this.isClicked = false;\n }\n}\n","import { Component, EventEmitter, Input, Output, OnInit, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { ButtonClasses } from '../../enum/ButtonClassesEnum';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-button',\n template: `\n <ng-container *ngIf=\"hasPermission()\">\n <button [type]=\"type\"\n class=\"btn\"\n [ngClass]=\"btnClass\"\n [ngStyle]=\"dynamicStyles\"\n (click)=\"onClick($event)\"\n [disabled]=\"disabled\"\n [attr.autofocus]=\"autofocus ? true : null\"\n [attr.form]=\"form\"\n [attr.formaction]=\"formaction\"\n [attr.formenctype]=\"formenctype\"\n [attr.formmethod]=\"formmethod\"\n [attr.formnovalidate]=\"formnovalidate\"\n [attr.formtarget]=\"formtarget\"\n [attr.name]=\"name\"\n [attr.value]=\"value\">\n {{ label }}\n </button>\n </ng-container>\n `,\n styles: [`\n .btn {\n padding: 0.5rem 1rem;\n border-radius: 0.25rem;\n transition: background-color 0.3s, border-color 0.3s, filter 0.3s;\n font-family: 'Inter', sans-serif;\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n letter-spacing: 0.005em;\n text-align: left;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n @Input() type: string = 'button';\n @Input() label: string = 'Submit';\n @Input() btnClass: ButtonClasses = ButtonClasses.Primary;\n @Input() fontSize: string = '1rem';\n @Input() disabled: boolean = false;\n @Input() autofocus: boolean = false;\n @Input() form: string | null = null;\n @Input() formaction: string | null = null;\n @Input() formenctype: string | null = null;\n @Input() formmethod: string | null = null;\n @Input() formnovalidate: boolean = false;\n @Input() formtarget: string | null = null;\n @Input() name: string | null = null;\n @Input() value: string | null = null;\n @Input() permissions: string[] = [];\n\n @Output() onButtonClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n private isHovered: boolean = false;\n private isActive: boolean = false;\n\n constructor(private authService: AuthService) { }\n\n ngOnInit(): void {\n this.validateInputs();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes) {\n this.validateInputs();\n }\n }\n\n private validateInputs(): void {\n const validTypes = ['button', 'submit', 'reset'];\n const validClasses = Object.values(ButtonClasses);\n\n if (!validTypes.includes(this.type)) {\n throw new Error(`Invalid type: ${this.type}. Allowed values are: ${validTypes.join(', ')}`);\n }\n\n if (!validClasses.includes(this.btnClass)) {\n throw new Error(`Invalid btnClass: ${this.btnClass}. Allowed values are: ${validClasses.join(', ')}`);\n }\n\n if (typeof this.disabled !== 'boolean') {\n throw new Error(`Invalid disabled value: ${this.disabled}. It should be a boolean.`);\n }\n\n if (typeof this.autofocus !== 'boolean') {\n throw new Error(`Invalid autofocus value: ${this.autofocus}. It should be a boolean.`);\n }\n\n if (this.permissions && !Array.isArray(this.permissions)) {\n throw new Error(`Invalid permissions value: ${this.permissions}. It should be an array of strings.`);\n }\n }\n\n onClick(event: Event) {\n this.onButtonClick.emit(event);\n }\n\n get dynamicStyles() {\n return this.calculateDynamicStyles();\n }\n\n private calculateDynamicStyles() {\n let backgroundColor = '';\n let textColor = '#fff'; // Default text color\n let borderColor = '';\n\n switch (this.btnClass) {\n case ButtonClasses.Primary:\n backgroundColor = '#00444C';\n break;\n case ButtonClasses.Secondary:\n backgroundColor = '#2CA58D';\n break;\n case ButtonClasses.Success:\n backgroundColor = '#00C853';\n break;\n case ButtonClasses.Danger:\n backgroundColor = '#D32F2F';\n break;\n case ButtonClasses.Warning:\n backgroundColor = '#FFC107';\n break;\n case ButtonClasses.Info:\n backgroundColor = '#3EC9D6';\n break;\n case ButtonClasses.Light:\n backgroundColor = '#EEF2F6';\n textColor = '#00444C'; // Custom text color for Light\n break;\n case ButtonClasses.Dark:\n backgroundColor = '#111936';\n break;\n case ButtonClasses.Link:\n backgroundColor = 'transparent';\n borderColor = '#DDE5E9';\n textColor = '#00444C'; // Custom text color for Link\n break;\n default:\n backgroundColor = '#00444C';\n break;\n }\n\n const hoverFilter = this.isHovered ? 'brightness(80%)' : 'none'; // Adjusted hover brightness\n const activeFilter = this.isActive ? 'brightness(60%)' : hoverFilter; // Adjusted active brightness\n\n return {\n 'font-size': this.fontSize,\n 'background-color': backgroundColor,\n 'color': textColor,\n 'border': borderColor ? `1px solid ${borderColor}` : 'none',\n 'transition': 'background-color 0.3s, border-color 0.3s, filter 0.3s',\n 'filter': activeFilter\n };\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n onCancel(event: Event) {\n console.log('Cancel button clicked', event);\n // Lógica para o cancelamento\n }\n\n onSave(event: Event) {\n console.log('Save button clicked', event);\n // Lógica para salvar alterações\n }\n}\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { AuthService } from '../../service/auth-service.service';\nimport { ButtonClasses } from '../../enum/ButtonClassesEnum';\n\n@Component({\n selector: 'argenta-basic-registration',\n templateUrl: './basic-registration.component.html',\n styleUrls: ['./basic-registration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BasicRegistrationComponent {\n @Input() cancelLabel: string = 'Cancelar';\n @Input() saveLabel: string = 'Salvar';\n @Input() cancelPermissions: string[] = [];\n @Input() savePermissions: string[] = [];\n\n @Output() cancelClick: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() saveClick: EventEmitter<Event> = new EventEmitter<Event>();\n ButtonClasses = ButtonClasses;\n\n constructor(private authService: AuthService) { }\n\n hasPermission(permissions: string[]): boolean {\n if (!permissions || permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n handleCancel(event: Event) {\n this.cancelClick.emit(event);\n }\n\n handleSave(event: Event) {\n this.saveClick.emit(event);\n }\n}\n","<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ão de conteúdo dinâmico -->\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","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'argenta-calendar',\n templateUrl: './calendar-argenta.component.html',\n styleUrls: ['./calendar-argenta.component.scss'],\n})\nexport class CalendarArgentaComponent implements OnInit, OnChanges {\n @Input() id: string = 'argenta-calendar';\n @Input() placeholder: string = 'Select a date';\n @Input() label: string = 'Select a date';\n @Input() minDate: Date | null = null;\n @Input() maxDate: Date | null = null;\n @Input() locale: string = 'pt';\n @Input() useTime: boolean = false; // Incluir ou não a hora\n @Input() initialDate: string | null = null; // Data inicial no modo de data única\n @Input() rangeMode: boolean = false; // Ativa o modo de intervalo de datas\n @Input() startDate: string | null = null; // Data de início do intervalo\n @Input() endDate: string | null = null; // Data de fim do intervalo\n @Input() closeButtonLabel: string = 'Fechar'; // Texto do botão de fechar\n @Output() rangeChange = new EventEmitter<{ start: string, end: string }>(); // Evento que emite data única ou intervalo\n\n currentYear: number = new Date().getFullYear();\n currentMonth: number = new Date().getMonth();\n selectedDate: Date | null = null;\n selectedStartDate: Date | null = null;\n selectedEndDate: Date | null = null;\n isCalendarVisible: boolean = false;\n inputDate: string = '';\n invalidDate: boolean = false;\n isSelectingStart: boolean = true; // Controla se estamos selecionando a data inicial ou final\n startTime: string = '';\n endTime: string = '';\n selectedTime: string = '';\n\n locales: any = {\n en: {\n months: [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'\n ],\n daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n invalidDateMessage: 'Invalid date. Please enter a date in the format dd/MM/yyyy',\n startTimeLabel: 'Start Time', \n endTimeLabel: 'End Time',\n },\n pt: {\n months: [\n 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'\n ],\n daysOfWeek: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],\n invalidDateMessage: 'Data inválida. Por favor, insira uma data no formato dd/MM/yyyy',\n startTimeLabel: 'Hora de Início', \n endTimeLabel: 'Hora de Fim',\n },\n es: {\n months: [\n 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'\n ],\n daysOfWeek: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],\n invalidDateMessage: 'Fecha inválida. Por favor, ingrese una fecha en el formato dd/MM/yyyy',\n startTimeLabel: 'Hora de Inicio', \n endTimeLabel: 'Hora de Fin', \n }\n };\n\n ngOnInit(): void {\n if (this.rangeMode) {\n if (this.startDate) {\n this.selectedStartDate = this.parseDate(this.startDate);\n this.startTime = this.formatTimeForDisplay(this.selectedStartDate);\n }\n if (this.endDate) {\n this.selectedEndDate = this.parseDate(this.endDate);\n this.endTime = this.formatTimeForDisplay(this.selectedEndDate);\n }\n this.updateInputForRange(); // Atualiza o input no modo range com horas\n } else {\n if (this.initialDate) {\n this.updateCalendar(this.initialDate); // Atualiza o input único com a data inicial\n this.selectedTime = this.formatTimeForDisplay(this.selectedDate);\n }\n }\n }\n \n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['initialDate'] && changes['initialDate'].currentValue) {\n this.updateCalendar(changes['initialDate'].currentValue);\n }\n }\n\n // Atualiza o calendário para exibir a data única e a hora\n updateCalendar(dateString: string): void {\n const parsedDate = this.parseDate(dateString);\n if (parsedDate && this.validateDate(dateString)) {\n this.selectedDate = parsedDate;\n this.currentYear = parsedDate.getFullYear();\n this.currentMonth = parsedDate.getMonth();\n this.inputDate = this.formatDateForDisplay(parsedDate); // Inclui a hora no input principal\n this.emitSingleOrRange(); // Emite data única ou intervalo\n this.invalidDate = false;\n } else {\n this.invalidDate = true;\n }\n }\n\n onInputChange(event: any): void {\n const inputValue = event.target.value;\n this.inputDate = this.applyDateMask(inputValue);\n\n if (this.rangeMode) {\n const dateParts = this.inputDate.split(' - ');\n if (dateParts.length === 2) {\n const [startDate, endDate] = dateParts;\n\n // Valida as duas partes do intervalo\n if (this.validateDate(startDate) && this.validateDate(endDate)) {\n this.invalidDate = false;\n const parsedStartDate = this.parseDate(startDate);\n const parsedEndDate = this.parseDate(endDate);\n\n if (parsedStartDate && parsedEndDate) {\n this.selectedStartDate = parsedStartDate;\n this.selectedEndDate = parsedEndDate;\n this.emitSingleOrRange(); // Emite o intervalo atualizado\n }\n } else {\n this.invalidDate = true;\n }\n }\n } else {\n // Valida data única\n if ((this.useTime && this.inputDate.length === 16) || (!this.useTime && this.inputDate.length === 10)) {\n if (this.validateDate(this.inputDate)) {\n this.invalidDate = false;\n const parsedDate = this.parseDate(this.inputDate);\n if (parsedDate) {\n this.selectedDate = parsedDate;\n this.emitSingleOrRange(); // Emite a data única atualizada\n }\n } else {\n this.invalidDate = true;\n }\n }\n }\n }\n\n\n // Atualiza o input no modo intervalo\n updateInputForRange(): void {\n if (this.selectedStartDate && this.selectedEndDate) {\n const formattedStart = this.formatDateForDisplay(this.selectedStartDate);\n const formattedEnd = this.formatDateForDisplay(this.selectedEndDate);\n this.inputDate = `${formattedStart} - ${formattedEnd}`;\n } else if (this.selectedStartDate) {\n this.inputDate = this.formatDateForDisplay(this.selectedStartDate);\n }\n }\n\n\n /// Emite data única ou intervalo, incluindo horas\n emitSingleOrRange(): void {\n if (this.rangeMode) {\n const formattedStart = this.selectedStartDate ? this.formatDateForDisplay(this.selectedStartDate) : '';\n const formattedEnd = this.selectedEndDate ? this.formatDateForDisplay(this.selectedEndDate) : '';\n this.inputDate = `${formattedStart} - ${formattedEnd}`; // Atualiza o input principal com o range e horas\n this.rangeChange.emit({ start: formattedStart, end: formattedEnd });\n } else {\n const formattedDate = this.selectedDate ? this.formatDateForDisplay(this.selectedDate) : '';\n this.inputDate = formattedDate; // Atualiza o input principal com a data única e hora\n this.rangeChange.emit({ start: formattedDate, end: '' });\n }\n }\n // Função para tratar mudanças nas horas\n onTimeChange(type: string): void {\n if (type === 'start') {\n if (this.selectedStartDate) {\n const [hours, minutes] = this.startTime ? this.startTime.split(':') : ['00', '00'];\n this.selectedStartDate.setHours(+hours, +minutes);\n }\n } else if (type === 'end') {\n if (this.selectedEndDate) {\n const [hours, minutes] = this.endTime ? this.endTime.split(':') : ['00', '00'];\n this.selectedEndDate.setHours(+hours, +minutes);\n }\n } else if (type === 'single') {\n if (this.selectedDate) {\n const [hours, minutes] = this.selectedTime ? this.selectedTime.split(':') : ['00', '00'];\n this.selectedDate.setHours(+hours, +minutes);\n }\n }\n this.emitSingleOrRange(); // Atualiza o valor no input principal\n }\n\n\n\n // Função para formatação da hora no input de hora\n formatTimeForDisplay(date: Date | null): string {\n if (!date) return '';\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n return `${hours}:${minutes}`;\n }\n\n\n // Método para selecionar uma data no calendário\n selectDate(day: number): void {\n const date = new Date(this.currentYear, this.currentMonth, day);\n\n if (this.rangeMode) {\n // Lógica para rangeMode\n if (this.isSelectingStart) {\n this.selectedStartDate = date;\n if (this.startTime) {\n const [hours, minutes] = this.startTime.split(':');\n this.selectedStartDate.setHours(+hours, +minutes);\n } else {\n this.selectedStartDate.setHours(0, 0);\n this.startTime = '00:00';\n }\n this.isSelectingStart = false;\n } else {\n this.selectedEndDate = date;\n if (this.endTime) {\n const [hours, minutes] = this.endTime.split(':');\n this.selectedEndDate.setHours(+hours, +minutes);\n } else {\n this.selectedEndDate.setHours(0, 0);\n this.endTime = '00:00';\n }\n this.isSelectingStart = true;\n this.emitSingleOrRange();\n }\n this.updateInputForRange();\n // O calendário só será fechado ao clicar no botão \"Fechar\"\n } else {\n // Lógica para quando não está em rangeMode\n this.selectedDate = date;\n if (this.selectedTime) {\n const [hours, minutes] = this.selectedTime.split(':');\n this.selectedDate.setHours(+hours, +minutes);\n } else {\n this.selectedDate.setHours(0, 0);\n this.selectedTime = '00:00';\n }\n this.inputDate = this.formatDateForDisplay(date);\n this.emitSingleOrRange();\n\n // **Fechar o calendário apenas se `useTime` for false**\n if (!this.useTime) {\n this.isCalendarVisible = false; // Fecha o calendário automaticamente se `useTime` for false\n }\n // Se `useTime` for true, o calendário permanece aberto para inserir a hora\n }\n }\n\n\n\n applyDateMask(inputValue: string): string {\n // Remove qualquer caractere que não seja numérico\n let digitsOnly = inputValue.replace(/\\D/g, '');\n\n if (this.rangeMode) {\n const maxLength = this.useTime ? 28 : 17; // Ajusta o comprimento máximo para intervalo com ou sem tempo\n\n // Certifica-se de que a entrada não excede o comprimento permitido\n if (digitsOnly.length > maxLength) {\n digitsOnly = digitsOnly.substring(0, maxLength);\n }\n\n // Primeiro intervalo (start date)\n let day1 = digitsOnly.substring(0, 2);\n let month1 = digitsOnly.substring(2, 4);\n let year1 = digitsOnly.substring(4, 8);\n let hour1 = digitsOnly.substring(8, 10);\n let minute1 = digitsOnly.substring(10, 12);\n\n // Cria a data formatada para a primeira parte (start date)\n let maskedDate = `${day1}/${month1}/${year1}`;\n if (this.useTime && hour1 && minute1) {\n maskedDate += ` ${hour1}:${minute1}`;\n }\n\n // Adiciona o separador ' - ' se houver dados para o segundo intervalo\n if (digitsOnly.length > 12) {\n maskedDate += ' - ';\n }\n\n // Segundo intervalo (end date)\n let day2 = digitsOnly.substring(12, 14);\n let month2 = digitsOnly.substring(14, 16);\n let year2 = digitsOnly.substring(16, 20);\n let hour2 = digitsOnly.substring(20, 22);\n let minute2 = digitsOnly.substring(22, 24);\n\n let endDatePart = `${day2}/${month2}/${year2}`;\n if (this.useTime && hour2 && minute2) {\n endDatePart += ` ${hour2}:${minute2}`;\n }\n\n // Adiciona a segunda parte (end date) ao input, se aplicável\n if (digitsOnly.length > 12) {\n maskedDate += endDatePart;\n }\n\n return maskedDate;\n } else {\n const maxLength = this.useTime ? 16 : 10;\n if (digitsOnly.length > maxLength) {\n digitsOnly = digitsOnly.substring(0, maxLength);\n }\n\n let day = digitsOnly.substring(0, 2);\n let month = digitsOnly.substring(2, 4);\n let year = digitsOnly.substring(4, 8);\n let hour = digitsOnly.substring(8, 10);\n let minute = digitsOnly.substring(10, 12);\n\n let maskedDate = `${day}/${month}/${year}`;\n if (this.useTime && hour && minute) {\n maskedDate += ` ${hour}:${minute}`;\n }\n\n return maskedDate;\n }\n }\n\n\n\n // Validação da data\n validateDate(inputValue: string): boolean {\n const [datePart, timePart] = inputValue.split(' ');\n const [dayStr, monthStr, yearStr] = datePart.split('/');\n const day = Number(dayStr);\n const month = Number(monthStr);\n const year = Number(yearStr);\n\n if (month < 1 || month > 12 || yearStr.length !== 4 || isNaN(year)) {\n return false;\n }\n\n const lastDayOfMonth = new Date(year, month, 0).getDate();\n if (day < 1 || day > lastDayOfMonth) {\n return false;\n }\n\n if (this.useTime && timePart) {\n const [hourStr, minuteStr] = timePart.split(':');\n const hour = Number(hourStr);\n const minute = Number(minuteStr);\n if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || isNaN(hour) || isNaN(minute)) {\n return false;\n }\n }\n\n return true;\n }\n\n handleKeyPress(event: KeyboardEvent): void {\n const charCode = event.key.charCodeAt(0);\n\n // Permitir apenas números e barra \"/\"\n if ((charCode < 48 || charCode > 57) && charCode !== 47) {\n event.preventDefault(); // Bloqueia a inserção de caracteres não permitidos\n }\n\n // Limita o tamanho da entrada conforme o tipo de dado (com ou sem hora)\n if (this.inputDate.replace(/\\D/g, '').length >= (this.useTime ? 12 : 8)) {\n event.preventDefault(); // Limita o número de caracteres permitidos\n }\n }\n\n\n // Fecha o calendário\n closeCalendar(): void {\n this.isCalendarVisible = false;\n }\n\n // Alterna a visibilidade do calendário\n toggleCalendar(): void {\n this.isCalendarVisible = !this.isCalendarVisible;\n }\n\n // Formata a data e hora para exibição no input principal\n formatDateForDisplay(date: Date): string {\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n let formattedDate = `${day}/${month}/${year}`;\n\n if (this.useTime) {\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n formattedDate += ` ${hours}:${minutes}`;\n }\n\n return formattedDate;\n }\n\n\n // Formata a data para emitir no evento\n formatDateForEmit(date: Date): string {\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n let formattedDate = `${day}/${month}/${year}`;\n if (this.useTime) {\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n formattedDate += ` - ${hours}:${minutes}`;\n }\n return formattedDate;\n }\n\n // Função para parsing de string para Date\n parseDate(dateStr: string): Date | null {\n const [datePart, timePart] = dateStr.split(' ');\n const [day, month, year] = datePart.split('/').map(Number);\n if (!day || !month || !year) {\n return null;\n }\n\n const date = new Date(year, month - 1, day);\n if (this.useTime && timePart) {\n const [hour, minute] = timePart.split(':').map(Number);\n date.setHours(hour || 0, minute || 0);\n }\n return date;\n }\n\n // Gera a lista de dias no mês atual\n get daysInMonth(): any[] {\n const firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1).getDay();\n const totalDaysInMonth = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();\n const daysArray = Array.from({ length: totalDaysInMonth }, (_, i) => i + 1);\n const leadingEmptyDays = Array(firstDayOfMonth).fill(null); // Dias vazios antes do primeiro dia do mês\n return [...leadingEmptyDays, ...daysArray];\n }\n\n // Verifica se um dia está selecionado\n isSelected(day: number): boolean {\n if (!this.selectedDate) return false;\n const selectedDay = this.selectedDate.getDate();\n const selectedMonth = this.selectedDate.getMonth();\n const selectedYear = this.selectedDate.getFullYear();\n return selectedDay === day && selectedMonth === this.currentMonth && selectedYear === this.currentYear;\n }\n\n // Verifica se o dia é hoje\n isToday(day: number): boolean {\n const today = new Date();\n return today.getFullYear() === this.currentYear && today.getMonth() === this.currentMonth && today.getDate() === day;\n }\n\n // Verifica se a data está desabilitada\n isDateDisabled(day: number): boolean {\n const date = new Date(this.currentYear, this.currentMonth, day);\n if (this.minDate && date < this.minDate) return true;\n if (this.maxDate && date > this.maxDate) return true;\n return false;\n }\n\n // Verifica se um dia está no intervalo selecionado\n isInRange(day: number): boolean {\n if (!this.selectedStartDate || !this.selectedEndDate) return false;\n const date = new Date(this.currentYear, this.currentMonth, day);\n return date >= this.selectedStartDate && date <= this.selectedEndDate;\n }\n\n // Avança para o próximo mês\n nextMonth(): void {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.currentYear++;\n } else {\n this.currentMonth++;\n }\n }\n\n // Retrocede para o mês anterior\n prevMonth(): void {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.currentYear--;\n } else {\n this.currentMonth--;\n }\n }\n\n // Retorna a lista de meses de acordo com o locale\n get months(): string[] {\n return this.locales[this.locale]?.months || this.locales['en'].months;\n }\n\n // Retorna a lista de dias da semana de acordo com o locale\n get daysOfWeek(): string[] {\n return this.locales[this.locale]?.daysOfWeek || this.locales['en'].daysOfWeek;\n }\n\n \n\n}\n","<div class=\"form-group\">\n <label [for]=\"id\" [ngClass]=\"'label-styles'\">{{ label }}</label>\n <div class=\"input-wrapper\">\n <input\n id=\"{{ id }}\"\n type=\"text\"\n class=\"custom-input\"\n [attr.placeholder]=\"rangeMode && useTime ? 'dd/MM/yyyy HH:mm - dd/MM/yyyy HH:mm' : \n rangeMode && !useTime ? 'dd/MM/yyyy - dd/MM/yyyy' :(!rangeMode && useTime ? 'dd/MM/yyyy HH:mm' : 'dd/MM/yyyy')\"\n [value]=\"inputDate\"\n (input)=\"onInputChange($event)\"\n (keypress)=\"handleKeyPress($event)\"\n (click)=\"toggleCalendar()\"\n />\n <lucide-icon name=\"calendar\" class=\"calendar-icon\"></lucide-icon>\n </div>\n\n <div *ngIf=\"invalidDate\" class=\"error-message\">\n {{ locales[locale].invalidDateMessage }}\n <span *ngIf=\"useTime\"> HH:mm.</span>\n </div>\n\n <div class=\"calendar-wrapper\">\n <div class=\"calendar-container\" [ngClass]=\"{ open: isCalendarVisible }\">\n <div class=\"calendar\">\n <div class=\"calendar-header\">\n <button (click)=\"prevMonth()\">&#8249;</button>\n <span>{{ months[currentMonth] }} {{ currentYear }}</span>\n <button (click)=\"nextMonth()\">&#8250;</button>\n </div>\n\n <div class=\"calendar-body\">\n <div class=\"calendar-day-names\">\n <span *ngFor=\"let day of daysOfWeek\">{{ day }}</span>\n </div>\n\n <div class=\"calendar-days\">\n <span\n *ngFor=\"let day of daysInMonth; let i = index\"\n [class.today]=\"isToday(day)\"\n [class.selected]=\"isSelected(day)\"\n [class.in-range]=\"isInRange(day)\"\n [class.disabled]=\"isDateDisabled(day)\"\n (click)=\"day ? selectDate(day) : null\"\n >\n {{ day ? day : \"\" }}\n </span>\n </div>\n </div>\n\n <!-- Inputs para inserção das horas -->\n <div *ngIf=\"useTime\" class=\"time-inputs\">\n <!-- Campo de hora de início -->\n <div *ngIf=\"rangeMode\" class=\"time-input\">\n <label>{{ locales[locale]?.startTimeLabel || 'Hora de Início' }}</label> <!-- Usando tradução -->\n <input type=\"time\" [(ngModel)]=\"startTime\" (change)=\"onTimeChange('start')\" />\n </div>\n\n <!-- Campo de hora de fim -->\n <div *ngIf=\"rangeMode\" class=\"time-input\">\n <label>{{ locales[locale]?.endTimeLabel || 'Hora de Fim' }}</label> <!-- Usando tradução -->\n <input type=\"time\" [(ngModel)]=\"endTime\" (change)=\"onTimeChange('end')\" />\n </div>\n\n <!-- Campo de hora única (se não for range) -->\n <div *ngIf=\"!rangeMode\" class=\"time-input\">\n <label>{{ locales[locale]?.startTimeLabel || 'Hora' }}</label> <!-- Usando o label de início -->\n <input type=\"time\" [(ngModel)]=\"selectedTime\" (change)=\"onTimeChange('single')\" />\n </div>\n </div>\n\n <!-- Botão de fechar o calendário -->\n <button class=\"close-button\" (click)=\"closeCalendar()\">{{ closeButtonLabel }}</button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sim-app-card',\n template: `\n <div class=\"card mb-3\">\n <div class=\"card-header\">\n <h3>{{ cardTitle }}</h3>\n </div>\n <div class=\"card-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class CardComponent {\n @Input() cardTitle: string = 'Default Title';\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'sim-app-checkbox',\n template: `\n <div\n class=\"form-group form-check\"\n [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n }\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [id]=\"id\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n />\n <label class=\"form-check-label\" [for]=\"id\">{{ label }}</label>\n </div>\n `,\n styles: [`\n .form-check-input {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem; /* Define o tamanho padrão da fonte para o input */\n }\n .form-check-label {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem; /* Define o tamanho padrão da fonte para o label */\n font-weight: bold;\n }\n `],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() id: string = 'defaultCheckbox';\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Input() label: string = 'Check me out';\n\n @Input() marginTop: number = 0;\n @Input() marginBottom: number = 0;\n @Input() marginLeft: number = 0;\n @Input() marginRight: number = 0;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n private onChangeFn: (value: boolean) => void = () => { };\n private onTouchedFn: () => void = () => { };\n\n onChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.checked = input.checked;\n this.onChangeFn(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n writeValue(value: boolean): void {\n this.checked = value;\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport hljs from 'highlight.js';\n\n@Component({\n selector: 'app-code-highlight',\n template: `\n <div class=\"code-container\">\n <pre><code #codeElement [innerHTML]=\"highlightedCode\"></code></pre>\n <button (click)=\"copyCode()\">Copy</button>\n </div>\n `,\n styles: [`\n .code-container {\n position: relative;\n }\n pre {\n background-color: #2d2d2d;\n color: #f8f8f2;\n padding: 1rem;\n border-radius: 5px;\n overflow-x: auto;\n }\n button {\n position: absolute;\n top: 10px;\n right: 10px;\n background-color: #f8f8f2;\n border: none;\n padding: 0.5rem 1rem;\n cursor: pointer;\n border-radius: 5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n transition: background-color 0.3s, transform 0.2s, box-shadow 0.2s;\n }\n button:hover {\n background-color: #e0e0e0;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);\n }\n button:active {\n background-color: #d0d0d0;\n transform: scale(0.98);\n }\n `]\n})\nexport class CodeHighlightComponent implements AfterViewInit {\n @Input() code: string = ''; // Definindo um valor padrão\n @Input() language: string = 'typescript';\n @ViewChild('codeElement') codeElement!: ElementRef; // Usando operador de asserção não nula\n\n highlightedCode: string = '';\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.highlightCode();\n this.cdr.detectChanges();\n });\n }\n\n highlightCode() {\n const code = hljs.highlight(this.language, this.code).value;\n this.highlightedCode = code;\n }\n\n copyCode() {\n const codeElement = this.codeElement.nativeElement;\n navigator.clipboard.writeText(codeElement.innerText).then(() => {\n alert('Code copied to clipboard!');\n });\n }\n}\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[appAutofocus]'\n})\nexport class AutofocusDirective implements AfterViewInit {\n constructor(private elementRef: ElementRef) { }\n\n ngAfterViewInit() {\n this.elementRef.nativeElement.focus();\n }\n}\n","import { Component, Input, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-confirmation',\n templateUrl: './confirmation.component.html',\n styleUrls: ['./confirmation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ConfirmationComponent implements OnDestroy {\n @Input() title: string = 'Confirmação';\n @Input() message: string = 'Você tem certeza que deseja continuar?';\n @Input() confirmButtonText: string = 'Sim';\n @Input() cancelButtonText: string = 'Não';\n\n constructor(public activeModal: NgbActiveModal) { }\n\n confirm() {\n this.activeModal.close('confirm');\n }\n\n cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnDestroy() {\n // Clear any subscriptions if there were any\n }\n}\n","<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","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'custom-pagination',\n templateUrl: './custom-pagination.component.html',\n styleUrls: ['./custom-pagination.component.scss']\n})\nexport class CustomPaginationComponent implements OnDestroy {\n @Input() totalItems: number = 0;\n @Input() itemsPerPage: number = 10;\n @Input() currentPage: number = 1;\n @Input() showPageInfo: boolean = true; // Mostrar ou esconder a informação da página\n @Output() pageChange: EventEmitter<number> = new EventEmitter<number>();\n\n\n maxSize: number = 5; // Número máximo de botões de página visíveis\n\n private destroy$ = new Subject<void>();\n\n get totalPages(): number {\n return Math.ceil(this.totalItems / this.itemsPerPage);\n }\n\n changePage(page: number) {\n if (page >= 1 && page <= this.totalPages) {\n this.currentPage = page;\n this.pageChange.emit(this.currentPage);\n }\n }\n\n get pages(): number[] {\n const pages: number[] = [];\n const half = Math.floor(this.maxSize / 2);\n let start = Math.max(this.currentPage - half, 1);\n let end = start + this.maxSize - 1;\n\n if (end > this.totalPages) {\n end = this.totalPages;\n start = Math.max(end - this.maxSize + 1, 1);\n }\n\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n return pages;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<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)\">&laquo;&laquo;</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n <a class=\"page-link\" (click)=\"changePage(currentPage - 1)\">&laquo;</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)\">&raquo;</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n <a class=\"page-link\" (click)=\"changePage(totalPages)\">&raquo;&raquo;</a>\n </li>\n </ul>\n</nav>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-switch',\n templateUrl: './custom-switch.component.html',\n styleUrls: ['./custom-switch.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CustomSwitchComponent {\n @Input() checked: boolean = false;\n @Input() label: string = '';\n @Input() permissions: string[] = [];\n @Output() switchChange = new EventEmitter<boolean>();\n\n constructor(private authService: AuthService) { }\n\n toggleSwitch() {\n this.checked = !this.checked;\n this.switchChange.emit(this.checked);\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileUploadComponent implements OnDestroy {\n @Input() accept: string = '.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .txt, .jpg, .jpeg, .png, .gif, .bmp, .svg, .webp, .zip, .rar, .csv';\n @Input() multiple: boolean = false;\n @Input() maxFileSize: number = 2 * 1024 * 1024; // 2MB\n @Input() labelText: string = 'Select Files to Upload'; // Dynamic label text\n @Input() permissions: string[] | undefined; // Array of permissions\n\n @Output() fileUploaded = new EventEmitter<File[]>(); // Emits selected files\n private destroy$ = new Subject<void>();\n\n constructor(private authService: AuthService) { }\n\n onFileChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n\n if (input.files) {\n const files = Array.from(input.files);\n if (this.validateFiles(files)) {\n this.fileUploaded.emit(files); // Emit files for external handling\n } else {\n console.warn('One or more files exceed the maximum allowed size of 2MB.');\n }\n }\n }\n\n private validateFiles(files: File[]): boolean {\n return files.every(file => file.size <= this.maxFileSize);\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div *ngIf=\"hasPermission()\" class=\"file-upload-container\">\n <label for=\"fileUpload\" class=\"form-label\">{{ labelText }}</label> \n <input\n type=\"file\"\n id=\"fileUpload\"\n class=\"form-control\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"onFileChange($event)\" \n />\n</div>\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cepMask]',\n})\nexport class CepMaskDirective {\n @Input('cepMask') enabled: boolean = false; // Define como opcional e padrão desabilitado\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('input', ['$event'])\n onInputChange(event: any) {\n if (!this.enabled) return; // Não aplica a máscara se não estiver habilitada\n\n // Obtém o valor atual e remove todos os caracteres não numéricos\n let initialValue = this.el.nativeElement.value.replace(/\\D/g, '');\n\n // Limita o número de caracteres a 8 para CEP\n if (initialValue.length > 8) {\n initialValue = initialValue.slice(0, 8);\n }\n\n // Aplica a máscara de CEP\n const formattedValue = this.formatCep(initialValue);\n\n // Atualiza o valor do input se necessário\n if (formattedValue !== this.el.nativeElement.value) {\n this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);\n\n // Dispara um evento de input para atualizar o modelo\n if (event.target.dispatchEvent) {\n const newEvent = new Event('input', { bubbles: true });\n event.target.dispatchEvent(newEvent);\n }\n }\n }\n\n formatCep(value: string): string {\n // Aplica a formatação de CEP: 12345-678\n return value.replace(/(\\d{5})(\\d)/, '$1-$2');\n }\n}\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cnpjMask]',\n})\nexport class CnpjMaskDirective {\n @Input('cnpjMask') enabled: boolean = false; // Define como opcional e padrão desabilitado\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('input', ['$event'])\n onInputChange(event: any) {\n if (!this.enabled) return; // Não aplica a máscara se não estiver habilitada\n\n // Obtém o valor atual e remove todos os caracteres não numéricos\n let initialValue = this.el.nativeElement.value.replace(/\\D/g, '');\n\n // Limita o número de caracteres a 14 para CNPJ\n if (initialValue.length > 14) {\n initialValue = initialValue.slice(0, 14);\n }\n\n // Aplica a máscara de CNPJ\n const formattedValue = this.formatCnpj(initialValue);\n\n // Atualiza o valor do input se necessário\n if (formattedValue !== this.el.nativeElement.value) {\n this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);\n\n // Dispara um evento de input para atualizar o modelo\n if (event.target.dispatchEvent) {\n const newEvent = new Event('input', { bubbles: true });\n event.target.dispatchEvent(newEvent);\n }\n }\n }\n\n formatCnpj(value: string): string {\n // Aplica a formatação de CNPJ: 12.345.678/0001-00\n return value\n .replace(/(\\d{2})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d{4})(\\d)/, '$1/$2-$3')\n .replace(/(\\d{4})(\\d{2})$/, '$1-$2');\n }\n}\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cpfMask]',\n})\nexport class CpfMaskDirective {\n @Input('cpfMask') enabled: boolean = false; // Define como opcional e padrão desabilitado\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('input', ['$event'])\n onInputChange(event: any) {\n if (!this.enabled) return;\n\n // Obtém o valor atual e remove todos os caracteres não numéricos\n let initialValue = this.el.nativeElement.value.replace(/\\D/g, '');\n\n // Limita o número de caracteres a 11 para CPF\n if (initialValue.length > 11) {\n initialValue = initialValue.slice(0, 11);\n }\n\n // Aplica a máscara de CPF\n const formattedValue = this.formatCpf(initialValue);\n\n // Atualiza o valor do input se necessário\n if (formattedValue !== this.el.nativeElement.value) {\n this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);\n\n // Dispara um evento de input para atualizar o modelo\n if (event.target.dispatchEvent) {\n const newEvent = new Event('input', { bubbles: true });\n event.target.dispatchEvent(newEvent);\n }\n }\n }\n\n formatCpf(value: string): string {\n // Aplica a formatação de CPF: 123.456.789-00\n return value\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d)/, '$1.$2')\n .replace(/(\\d{3})(\\d{1,2})$/, '$1-$2');\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, OnDestroy, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-input',\n styleUrls: ['./input.component.scss'],\n templateUrl: './input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InputComponent implements ControlValueAccessor, OnDestroy {\n @Input() label: string = 'Default Label';\n @Input() placeholder: string = '';\n @Input() id: string = 'inputId';\n @Input() type: string = 'text';\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() maxlength: number | null = null;\n @Input() minlength: number | null = null;\n @Input() required: boolean = false;\n @Input() pattern: string | null = null;\n @Input() autofocus: boolean = false;\n @Input() useCpfMask: boolean = false;\n @Input() useCnpjMask: boolean = false;\n @Input() useCepMask: boolean = false;\n @Input() onlyNumbers: boolean = false;\n @Input() validateInput: boolean = false;\n @Input() labelFontWeight: number = 400;\n @Input() permissions: string[] | undefined;\n @Input() useMoneyMask: boolean = false; // Para ativar/desativar a máscara de moeda\n @Input() currencyCode: string = 'BRL'; // Código da moeda\n @Input() displayCurrencySymbol: boolean = true; // Exibir ou não o símbolo da moeda\n\n\n @Output() inputEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() changeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output() blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output() keyupEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n @Output() keydownEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n @Output() keypressEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n value: string = '';\n showErrorModal: boolean = false;\n errorMessage: string = '';\n\n private subscriptions: Subscription[] = [];\n\n constructor(private authService: AuthService) { }\n\n getInputType(): string {\n return this.onlyNumbers ? 'tel' : this.type;\n }\n\n onInput(event: Event) {\n const inputElement = event.target as HTMLInputElement;\n let inputValue = inputElement.value;\n\n // Aplica máscara de números se necessário\n if (this.onlyNumbers && !(this.useCpfMask || this.useCnpjMask || this.useCepMask || this.useMoneyMask)) {\n inputValue = inputValue.replace(/\\D/g, ''); // Remove todos os não numéricos\n }\n\n // Validação imediata para CPF, CNPJ ou CEP\n const numericValue = inputValue.replace(/\\D/g, ''); // Remove todos os caracteres não numéricos\n if (this.validateInput) {\n if (this.useCpfMask && numericValue.length === 11 && !this.validateCpf(numericValue)) {\n this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');\n } else if (this.useCnpjMask && numericValue.length === 14 && !this.validateCnpj(numericValue)) {\n this.clearAndShowValidationError('CNPJ inválido. Por favor, insira um CNPJ correto.');\n } else if (this.useCepMask && numericValue.length === 8 && !this.validateCep(numericValue)) {\n this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');\n }\n }\n\n // Máscara de moeda\n if (this.useMoneyMask) {\n const numericValue = inputValue.replace(/\\D/g, ''); // Remove todos os não numéricos\n const formattedValue = this.formatMoney(numericValue); // Formata como dinheiro ou número decimal\n inputElement.value = formattedValue;\n this.value = formattedValue;\n } else {\n this.value = inputValue;\n }\n\n // Atualiza o valor e emite o evento de mudança\n this.onChangeCallback(this.value);\n this.inputEvent.emit(event);\n }\n\n private formatMoney(value: string): string {\n if (!value) return ''; // Se o valor estiver vazio, retorna uma string vazia\n\n const numericValue = parseFloat(value) / 100;\n\n // Verifica se deve exibir o símbolo da moeda ou não\n if (this.displayCurrencySymbol) {\n // Formata como moeda\n return new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: this.currencyCode\n }).format(numericValue);\n } else {\n // Formata como número decimal, sem o símbolo da moeda\n return new Intl.NumberFormat('pt-BR', {\n style: 'decimal',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(numericValue);\n }\n }\n\n\n\n onKeyDown(event: KeyboardEvent) {\n if (this.onlyNumbers && !/^\\d$/.test(event.key) && event.key !== 'Backspace' && event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') {\n event.preventDefault();\n }\n }\n\n onChange(event: Event) {\n const numericValue = this.value.replace(/\\D/g, ''); // Remove todos os caracteres não numéricos\n // Validação também ocorre no blur para casos onde o input não está completo\n if (this.validateInput) {\n if (this.useCpfMask && !this.validateCpf(numericValue)) {\n this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');\n } else if (this.useCnpjMask && !this.validateCnpj(numericValue)) {\n this.clearAndShowValidationError('CNPJ inválido. Por favor, insira um CNPJ correto.');\n } else if (this.useCepMask && !this.validateCep(numericValue)) {\n this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');\n }\n }\n this.changeEvent.emit(event);\n }\n\n validateCpf(cpf: string): boolean {\n if (cpf.length !== 11 || /^(\\d)\\1+$/.test(cpf)) return false;\n let sum = 0, remainder;\n for (let i = 1; i <= 9; i++) sum += parseInt(cpf.substring(i - 1, i)) * (11 - i);\n remainder = (sum * 10) % 11;\n if (remainder === 10 || remainder === 11) remainder = 0;\n if (remainder !== parseInt(cpf.substring(9, 10))) return false;\n sum = 0;\n for (let i = 1; i <= 10; i++) sum += parseInt(cpf.substring(i - 1, i)) * (12 - i);\n remainder = (sum * 10) % 11;\n if (remainder === 10 || remainder === 11) remainder = 0;\n return remainder === parseInt(cpf.substring(10, 11));\n }\n\n validateCnpj(cnpj: string): boolean {\n if (cnpj.length !== 14) return false;\n let length = cnpj.length - 2;\n let numbers = cnpj.substring(0, length);\n let digits = cnpj.substring(length);\n let sum = 0, pos = length - 7;\n for (let i = length; i >= 1; i--) {\n sum += parseInt(numbers.charAt(length - i)) * pos--;\n if (pos < 2) pos = 9;\n }\n let result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (result !== parseInt(digits.charAt(0))) return false;\n length = length + 1;\n numbers = cnpj.substring(0, length);\n sum = 0;\n pos = length - 7;\n for (let i = length; i >= 1; i--) {\n sum += parseInt(numbers.charAt(length - i)) * pos--;\n if (pos < 2) pos = 9;\n }\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n return result === parseInt(digits.charAt(1));\n }\n\n validateCep(cep: string): boolean {\n return /^\\d{8}$/.test(cep); // Valida apenas números, sem considerar a máscara\n }\n\n clearAndShowValidationError(message: string) {\n this.value = ''; // Limpa o valor do ngModel\n this.onChangeCallback(this.value); // Atualiza o ngModel com o valor limpo\n this.errorMessage = message;\n this.showErrorModal = true;\n }\n\n closeModal() {\n this.showErrorModal = false;\n this.errorMessage = '';\n }\n\n onFocus(event: FocusEvent) {\n this.focusEvent.emit(event);\n }\n\n onBlur(event: FocusEvent) {\n this.onTouchedCallback();\n this.blurEvent.emit(event);\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n}\n","<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()\">&times;</span>\n <p>{{ errorMessage }}</p>\n <button class=\"btn-ok\" (click)=\"closeModal()\">OK</button>\n </div>\n </div>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, map, startWith, switchMap } from 'rxjs/operators';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-multi-select',\n templateUrl: './multi-select.component.html',\n styleUrls: ['./multi-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MultiSelectComponent implements ControlValueAccessor, OnInit, OnChanges {\n @Input() label: string = 'Multi Select';\n @Input() data: any[] = []; // Accepts an array of generic objects\n @Input() placeholder: string = 'Select items';\n @Input() selected: any; // The selected variable can be a single value or an array\n @Input() id: string = 'multiSelectId';\n @Input() bindLabel: string = ''; // Generic dynamic label\n @Input() bindValue: string = ''; // Generic dynamic value\n @Input() permissions: string[] | undefined; // Adding permissions as input\n @Input() closeOnSelect: boolean = false; // New property to control dropdown close behavior\n @Input() searchUrl: string = ''; // URL for backend search\n @Input() multiple: boolean = true; // New property to control single or multiple selection\n @Input() searchParams: { [key: string]: string } = {}; // Parâmetros de busca dinâmicos\n\n @Output() keyupEvent: EventEmitter<any> = new EventEmitter<any>();\n\n private backupData: any[] = []; // Backup of the initial data\n private allItems: any[] = []; // Store the combined list\n items: Observable<any[]> = of([]); // Initialization of the property\n filteredItems: Observable<any[]> = of([]); // Filtered items\n private searchTerms = new Subject<string>(); // For search debounce\n\n constructor(private authService: AuthService, private http: HttpClient) { }\n\n ngOnInit(): void {\n this.backupData = [...this.data]; // Backup initial data\n this.allItems = [...this.data]; // Initialize allItems with the initial data\n this.items = of(this.allItems);\n\n this.fetchInitialData().subscribe(data => {\n this.updateData(data);\n this.filteredItems = this.searchTerms.pipe(\n debounceTime(700),\n startWith(''), // Start with an empty search to load the original list\n switchMap(term => this.search(term))\n );\n\n // Adicionar itens selecionados à lista após buscar dados iniciais\n this.addSelectedItemsToData();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selected'] && !changes['selected'].isFirstChange()) {\n this.addSelectedItemsToData();\n }\n }\n\n private fetchInitialData(): Observable<any[]> {\n return this.http.get<any>(this.searchUrl).pipe(\n map((response: any) => {\n if (response && response.length > 0) {\n return response.map((item: any) => ({\n [this.bindValue]: item[this.bindValue],\n [this.bindLabel]: item[this.bindLabel]\n }));\n }\n return [];\n }),\n catchError((error: any) => {\n console.error('Error fetching initial data from backend:', error);\n return of([]);\n })\n );\n }\n\n private updateData(newData: any[]): void {\n newData.forEach((item: any) => {\n const existsInList = this.allItems.some(listItem => this.compareFn(listItem, item));\n if (!existsInList) {\n this.allItems.push(item);\n }\n });\n this.items = of(this.allItems);\n }\n\n private addSelectedItemsToData(): void {\n if (this.selected) {\n const selectedItems = this.multiple ? this.selected : [this.selected];\n selectedItems.forEach((item: any) => {\n const existsInList = this.allItems.some(listItem => this.compareFn(listItem, item));\n if (!existsInList) {\n const newItem = {\n [this.bindValue]: item[this.bindValue] || item,\n [this.bindLabel]: item[this.bindLabel] || item\n };\n this.data.push(newItem);\n this.allItems.push(newItem);\n }\n });\n\n this.items = of(this.allItems);\n }\n }\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n isCourseEntered = false;\n\n onFocus() {\n this.isCourseEntered = true;\n }\n\n onBlur() {\n this.isCourseEntered = false;\n }\n\n onKeyUp(event: KeyboardEvent): void {\n this.keyupEvent.emit(event);\n }\n\n onSelectedChange(event: any): void {\n const previousSelected = this.selected;\n\n if (this.multiple) {\n this.selected = event;\n } else {\n this.selected = event ? event : null;\n }\n\n this.onChangeCallback(this.selected);\n\n // Verificar se um item foi removido\n if (previousSelected && Array.isArray(previousSelected) && previousSelected.length > event.length) {\n const removedItems = previousSelected.filter(item => !event.includes(item));\n removedItems.forEach(item => {\n const existsInData = this.data.some(dataItem => this.compareFn(dataItem, item));\n if (!existsInData) {\n this.data.push(item);\n this.allItems.push(item); // Adicionar de volta aos itens disponíveis\n }\n });\n }\n }\n\n onInputChange(event: any): void {\n const input = event.target.value;\n this.searchTerms.next(input);\n }\n\n search(term: string): Observable<any[]> {\n if (!term.trim()) {\n // Se o termo de busca estiver vazio, retorna a lista completa\n return of(this.allItems);\n }\n\n // Filtra os itens localmente\n const filtered = this.allItems.filter((item: any) =>\n item[this.bindLabel].toLowerCase().includes(term.toLowerCase())\n );\n\n if (filtered.length > 0) {\n console.log('Items filtered locally.');\n return of(filtered);\n } else if (this.searchUrl) {\n // Construir os parâmetros de busca dinamicamente\n const params = new URLSearchParams(this.searchParams);\n params.append('term', term);\n\n return this.http.get<any[]>(`${this.searchUrl}?${params.toString()}`).pipe(\n map((response: any[]) => {\n if (response && response.length > 0) {\n // Transforma os itens do backend para o formato esperado pelo componente\n const transformedItems = response.map((item: any) => ({\n [this.bindValue]: item[this.bindValue],\n [this.bindLabel]: item[this.bindLabel]\n }));\n\n // Atualiza os dados com os novos itens buscados\n this.updateData(transformedItems);\n\n return this.allItems;\n } else {\n console.log('No items found in the backend search.');\n return this.allItems;\n }\n }),\n catchError((error: any) => {\n console.error('Error fetching from backend:', error);\n return of(this.allItems);\n })\n );\n } else {\n console.log('No search URL provided and no items found locally.');\n return of(this.allItems);\n }\n }\n\n writeValue(value: any): void {\n if (this.multiple) {\n this.selected = value || [];\n } else {\n this.selected = value || null;\n }\n\n this.addSelectedItemsToData();\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n // No implementation needed for this example\n }\n\n compareFn = (item1: any, item2: any): boolean => {\n return item1 && item2 ? item1[this.bindValue] === item2[this.bindValue] : item1 === item2;\n };\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n}\n","<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","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'argenta-multi-select-category',\n templateUrl: './multi-select-category.component.html',\n styleUrls: ['./multi-select-category.component.scss']\n})\nexport class MultiSelectCategoryComponent implements OnInit {\n\n // Inputs para receber dados dinâmicos de diferentes categorias\n @Input() unidadesOrganizacionais: any[] = [];\n @Input() clientes: any[] = [];\n @Input() empresas: any[] = [];\n @Input() usuarios: any[] = [];\n\n // Inputs para permissões específicas de cada categoria\n @Input() permissoesUnidades: string[] = [];\n @Input() permissoesClientes: string[] = [];\n @Input() permissoesEmpresas: string[] = [];\n @Input() permissoesUsuarios: string[] = [];\n\n constructor() { }\n\n ngOnInit(): void { }\n}\n","<div class=\"multi-select-category\">\n <div class=\"row\">\n <!-- Primeira linha: Usuário e Cliente -->\n <div class=\"col\">\n <argenta-custom-multi-select\n label=\"Usuários\"\n [data]=\"usuarios\"\n bindLabel=\"nome\"\n bindValue=\"id\"\n [permissions]=\"permissoesUsuarios\"\n placeholder=\"Selecione Usuários\">\n </argenta-custom-multi-select>\n </div>\n\n <div class=\"col\">\n <argenta-custom-multi-select\n label=\"Clientes\"\n [data]=\"clientes\"\n bindLabel=\"nome\"\n bindValue=\"id\"\n [permissions]=\"permissoesClientes\"\n placeholder=\"Selecione Clientes\">\n </argenta-custom-multi-select>\n </div>\n </div>\n\n <div class=\"row\">\n <!-- Segunda linha: Empresa e Unidade Organizacional -->\n <div class=\"col\">\n <argenta-custom-multi-select\n label=\"Empresas\"\n [data]=\"empresas\"\n bindLabel=\"nome\"\n bindValue=\"id\"\n [permissions]=\"permissoesEmpresas\"\n placeholder=\"Selecione Empresas\">\n </argenta-custom-multi-select>\n </div>\n\n <div class=\"col\">\n <argenta-custom-multi-select\n label=\"Unidades Organizacionais\"\n [data]=\"unidadesOrganizacionais\"\n bindLabel=\"nome\"\n bindValue=\"id\"\n [permissions]=\"permissoesUnidades\"\n placeholder=\"Selecione Unidades Organizacionais\">\n </argenta-custom-multi-select>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'sim-app-radio',\n template: `\n <div class=\"form-check\" [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n }\">\n <input class=\"form-check-input\"\n type=\"radio\"\n [name]=\"name\"\n [id]=\"id\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"handleRadioChange($event)\"\n [disabled]=\"disabled\">\n <label class=\"form-check-label\" [for]=\"id\">{{ label }}</label>\n </div>\n `,\n styles: [`\n .form-check {\n font-family: Arial, sans-serif;\n font-size: 1rem; /* Define o tamanho padrão da fonte */\n }\n .form-check-input {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem;\n margin-right: 0.5rem;\n }\n .form-check-label {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem;\n font-weight: bold;\n }\n `],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RadioComponent implements ControlValueAccessor {\n @Input() name: string = 'defaultRadio';\n @Input() id: string = 'radioId';\n @Input() value: string = 'default';\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Input() label: string = 'Radio label';\n\n @Input() marginTop: number = 0;\n @Input() marginBottom: number = 0;\n @Input() marginLeft: number = 0;\n @Input() marginRight: number = 0;\n\n @Output() changeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n handleRadioChange(event: Event) {\n const inputElement = event.target as HTMLInputElement;\n this.checked = inputElement.checked;\n this.onChangeCallback(this.checked);\n this.changeEvent.emit(event);\n }\n\n writeValue(value: any): void {\n this.checked = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'argenta-search-customer',\n templateUrl: './search-customer.component.html',\n styleUrls: ['./search-customer.component.scss']\n})\nexport class SearchCustomerComponent {\n // Inputs\n @Input() placeholder: string = 'Search';\n @Input() id: string = '';\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() autofocus: boolean = false;\n\n // Output\n @Output() searchTerm = new EventEmitter<string>();\n\n onSearch(event: Event): void {\n const inputElement = event.target as HTMLInputElement;\n this.searchTerm.emit(inputElement.value);\n }\n}\n","<div class=\"search-container\">\n <span class=\"search-icon\">\n <lucide-icon name=\"search\" [size]=\"16\" color=\"#2CA58D\"></lucide-icon>\n </span>\n <input \n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [autofocus]=\"autofocus\"\n (input)=\"onSearch($event)\" \n class=\"search-input custom-input\"\n />\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, forwardRef } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'argenta-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SearchInputComponent),\n multi: true\n }\n ]\n})\nexport class SearchInputComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() id: string = '';\n @Input() label: string = 'Search';\n @Input() type: string = 'text';\n @Input() placeholder: string = 'Type to search...';\n @Input() value: string = '';\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() autofocus: boolean = false;\n @Input() maxlength: number | null = null;\n @Input() minlength: number | null = null;\n @Input() required: boolean = false;\n @Input() pattern: string | null = null;\n @Input() debounceTime: number = 700; // Valor padrão\n\n @Output() search = new EventEmitter<string>();\n @Output() inputChange = new EventEmitter<string>();\n @Output() change = new EventEmitter<Event>();\n @Output() focus = new EventEmitter<Event>();\n @Output() blur = new EventEmitter<Event>();\n @Output() keyup = new EventEmitter<KeyboardEvent>();\n @Output() keydown = new EventEmitter<KeyboardEvent>();\n @Output() keypress = new EventEmitter<KeyboardEvent>();\n\n private searchSubject: Subject<string> = new Subject<string>();\n private searchSubscription: Subscription = new Subscription();\n\n constructor() { }\n\n ngOnInit(): void {\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTime)\n ).subscribe((searchText) => {\n this.search.emit(searchText);\n });\n }\n\n onInput(event: Event): void {\n const inputElement = event.target as HTMLInputElement;\n const value = inputElement.value;\n this.value = value;\n this.inputChange.emit(value); // Emite o valor de input imediatamente\n this.searchSubject.next(value);\n this.onChangeFn(value); // Chame onChangeFn para notificar o Angular Forms sobre a mudança\n }\n\n onChange(event: Event): void {\n this.change.emit(event);\n }\n\n onFocus(event: Event): void {\n this.focus.emit(event);\n }\n\n onBlur(event: Event): void {\n this.blur.emit(event);\n this.onTouchedFn(); // Chame onTouchedFn para notificar o Angular Forms sobre o blur\n }\n\n onKeyup(event: KeyboardEvent): void {\n this.keyup.emit(event);\n }\n\n onKeydown(event: KeyboardEvent): void {\n this.keydown.emit(event);\n }\n\n onKeypress(event: KeyboardEvent): void {\n this.keypress.emit(event);\n }\n\n ngOnDestroy(): void {\n this.searchSubscription.unsubscribe();\n }\n\n getLabelStyles() {\n return {\n fontFamily: 'Inter',\n fontSize: '16px',\n lineHeight: '19.36px',\n };\n }\n\n // ControlValueAccessor interface implementation\n onChangeFn: (value: string) => void = () => { };\n onTouchedFn: () => void = () => { };\n\n writeValue(value: string): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<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","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, OnDestroy, OnChanges, SimpleChanges, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-custom-select',\n styleUrls: ['./select.component.scss'],\n template: `\n <div *ngIf=\"hasPermission()\" class=\"form-group\">\n <label [for]=\"id\" [ngClass]=\"'label-styles'\">{{ label }}</label>\n <div class=\"select-container\">\n <select class=\"form-control custom-select\"\n [id]=\"id\"\n [value]=\"value\"\n (change)=\"onSelectChange($event)\"\n [disabled]=\"disabled\">\n <option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.label }}</option>\n </select>\n <lucide-icon name=\"chevron-down\" [size]=\"16\" color=\"#5E6366\" [strokeWidth]=\"1.75\"></lucide-icon>\n </div>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SelectComponent implements ControlValueAccessor, OnDestroy, OnChanges {\n @Input() label: string = 'Default Label';\n @Input() id: string = 'selectId';\n @Input() disabled: boolean = false;\n @Input() options: { value: any, label: string }[] = [];\n @Input() permissions: string[] | undefined;\n\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n value: any;\n private destroy$ = new Subject<void>();\n\n constructor(private authService: AuthService) { }\n\n onSelectChange(event: Event) {\n const selectElement = event.target as HTMLSelectElement;\n this.value = selectElement.value;\n this.onChangeCallback(this.value);\n this.changeEvent.emit(this.value);\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options'] && changes['options'].currentValue !== changes['options'].previousValue) {\n this.updateOptions(changes['options'].currentValue);\n }\n }\n\n updateOptions(newOptions: { value: any, label: string }[]): void {\n this.options = newOptions;\n }\n\n hasPermission(): boolean {\n if (!this.permissions || this.permissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(this.permissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { AuthService } from '../../service/auth-service.service';\n\n@Component({\n selector: 'argenta-tab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabComponent implements OnInit {\n @Input() tabs: { label: string; content: any; permissions?: string[] }[] = [];\n @Input() activeTabIndex: number = 0;\n @Input() componentPermissions?: string[]; // Permissões para o componente como um todo\n @Output() tabChanged: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(private authService: AuthService) { }\n\n ngOnInit(): void {\n if (this.hasComponentPermission() && this.tabs.length > 0) {\n this.selectTab(this.activeTabIndex);\n }\n }\n\n selectTab(index: number, event?: MouseEvent): void {\n if (event) {\n event.preventDefault(); // Impede o comportamento padrão do link\n }\n if (this.hasPermission(this.tabs[index].permissions)) {\n this.activeTabIndex = index;\n this.tabChanged.emit(this.activeTabIndex);\n }\n }\n\n hasPermission(requiredPermissions?: string[]): boolean {\n if (!requiredPermissions || requiredPermissions.length === 0) {\n return true;\n }\n try {\n return this.authService.hasPermission(requiredPermissions);\n } catch (error: unknown) {\n console.error('Permission error:', error);\n return false;\n }\n }\n\n hasComponentPermission(): boolean {\n if (!this.componentPermissions || this.componentPermissions.length === 0) {\n return true; // Se não há permissões necessárias, permite por padrão\n }\n try {\n return this.authService.hasPermission(this.componentPermissions);\n } catch (error: unknown) {\n console.error('Permission error:', error);\n return false;\n }\n }\n}\n","<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","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RefreshService {\n private refreshSubject = new Subject<void>();\n\n get refresh$(): Observable<void> {\n return this.refreshSubject.asObservable();\n }\n\n refresh() {\n this.refreshSubject.next();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { ButtonClasses } from '../../enum/ButtonClassesEnum'; // Importando o enum\nimport { AuthService } from '../../service/auth-service.service'\nimport { RefreshService } from '../../service/refresh-service.service'\nimport { IDataIndexPaginate, IPaginateResult } from './data-paginate.service'\n\n@Component({\n selector: 'argenta-list-data-table',\n templateUrl: './data-table.component.html',\n styleUrls: ['./data-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTableComponent implements OnInit, OnChanges, OnDestroy {\n @Input() columns: { label: string, prop: string }[] = [];\n @Input() hiddenColumns: string[] = [];\n @Input() defaultItemsPerPage: number = 10;\n @Input() itemsPerPageLabel: string = 'Items per page:';\n @Input() showActionColumn: boolean = false;\n @Input() actionColumnLabel: string = 'Actions';\n @Input() totalItems: number = 0;\n @Input() fetchDataFunction: (params: IDataIndexPaginate) => Observable<IPaginateResult<any>> = () => {\n return new Observable(subscriber => subscriber.error('Implement the fetchDataFunction to fetch paginated data from the back-end.'));\n };\n @Input() editPermissions: string[] = [];\n @Input() deletePermissions: string[] = [];\n @Input() viewPermissions: string[] = [];\n @Input() showPageInfo: boolean = true;\n @Input() pageText: string = 'Page';\n @Input() ofText: string = 'of';\n @Input() filterDescription: string = '';\n\n @Input() buttonLabel: string = ''; // Adicionando o Input para o label do botão\n\n @Output() sortChange: EventEmitter<any> = new EventEmitter();\n @Output() pageChange: EventEmitter<number> = new EventEmitter();\n @Output() itemsPerPageChange: EventEmitter<number> = new EventEmitter();\n @Output() onEditTable: EventEmitter<any> = new EventEmitter();\n @Output() onDeleteTable: EventEmitter<any> = new EventEmitter();\n @Output() onViewTable: EventEmitter<any> = new EventEmitter();\n @Output() onButtonClick: EventEmitter<void> = new EventEmitter(); // Novo evento\n\n itemsPerPageOptions: number[] = [5, 10, 15, 25];\n currentPage: number = 1;\n sortColumn: string = '';\n sortDirection: 'asc' | 'desc' = 'asc';\n pagedData: any[] = [];\n isLoading = false;\n private destroy$ = new Subject<void>();\n private isInitialized = false; // Flag para evitar chamadas duplas\n ButtonClasses = ButtonClasses;\n\n labelStyle = {\n 'font-family': 'Inter, Arial, sans-serif',\n 'font-size': '14px',\n 'color': '#000'\n };\n\n constructor(private cdr: ChangeDetectorRef, private authService: AuthService, private refreshService: RefreshService) { }\n\n ngOnInit() {\n this.fetchData();\n this.refreshService.refresh$\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isInitialized) {\n this.refreshData();\n }\n });\n this.isInitialized = true;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['totalItems'] || changes['defaultItemsPerPage'] || changes['currentPage'] || changes['fetchDataFunction'] || changes['filterDescription']) {\n this.fetchData();\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n protected getNestedProperty(obj: any, path: string): any {\n return path.split('.').reduce((acc, part) => acc && acc[part], obj);\n }\n\n fetchData() {\n if (this.fetchDataFunction) {\n this.isLoading = true;\n const params: IDataIndexPaginate = {\n filterDescription: this.filterDescription,\n pageNumber: this.currentPage,\n pageSize: this.defaultItemsPerPage,\n sortColumn: this.sortColumn,\n sortDirection: this.sortDirection\n };\n this.fetchDataFunction(params).pipe(\n takeUntil(this.destroy$)\n ).subscribe({\n next: (result) => {\n this.pagedData = result.items;\n this.totalItems = result.totalItems;\n this.isLoading = false;\n this.cdr.markForCheck();\n },\n error: (error) => {\n console.error('Error fetching data:', error);\n this.isLoading = false;\n }\n });\n }\n }\n\n refreshData() {\n this.fetchData();\n }\n\n onSort(column: string) {\n this.sortColumn = column;\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n this.sortChange.emit({ column, direction: this.sortDirection });\n this.fetchData();\n }\n\n onPageChange(page: number) {\n this.currentPage = page;\n this.pageChange.emit(page);\n this.fetchData();\n }\n\n onItemsPerPageChange() {\n this.currentPage = 1;\n this.itemsPerPageChange.emit(this.defaultItemsPerPage);\n this.fetchData();\n }\n\n handleAction(action: string, item: any, index: number) {\n switch (action) {\n case 'edit':\n if (this.hasPermission(this.editPermissions)) {\n this.onEditTable.emit({ item, index });\n }\n break;\n case 'delete':\n if (this.hasPermission(this.deletePermissions)) {\n this.onDeleteTable.emit({ item, index });\n }\n break;\n case 'view':\n if (this.hasPermission(this.viewPermissions)) {\n this.onViewTable.emit({ item, index });\n }\n break;\n }\n }\n\n hasPermission(requiredPermissions: string[]): boolean {\n if (!requiredPermissions || requiredPermissions.length === 0) {\n return true;\n }\n\n try {\n return this.authService.hasPermission(requiredPermissions);\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Permission error:', error.message);\n } else {\n console.error('Unknown error occurred during permission check');\n }\n return true;\n }\n }\n\n isColumnHidden(columnProp: string): boolean {\n return this.hiddenColumns.includes(columnProp);\n }\n\n onSearch(searchText: string) {\n this.filterDescription = searchText;\n this.currentPage = 1; // Resetar para a primeira página\n this.fetchData();\n }\n\n onNewButtonClick() {\n this.onButtonClick.emit(); // Emitindo o evento\n }\n}\n","<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 *ngIf=\"buttonLabel && buttonLabel.length > 0\" 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 {{ getNestedProperty(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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'sim-app-textarea',\n template: `\n <div class=\"form-group\" [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n }\">\n <label [for]=\"id\" class=\"form-label\">{{ label }}</label>\n <textarea class=\"form-control custom-textarea\"\n [id]=\"id\"\n [rows]=\"rows\"\n [placeholder]=\"placeholder\"\n [value]=\"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 [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [autofocus]=\"autofocus\"></textarea>\n </div>\n `,\n styles: [`\n .form-group {\n margin-bottom: 1rem;\n }\n .form-label {\n font-family: Arial, sans-serif;\n color: #333;\n font-size: 1rem;\n font-weight: bold;\n }\n `],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextareaComponent implements ControlValueAccessor {\n @Input() label: string = 'Default Label';\n @Input() placeholder: string = 'Default Placeholder';\n @Input() id: string = 'textareaId';\n @Input() rows: number = 3;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() maxlength: number | null = null;\n @Input() minlength: number | null = null;\n @Input() required: boolean = false;\n @Input() autofocus: boolean = false;\n\n @Input() marginTop: number = 0;\n @Input() marginBottom: number = 0;\n @Input() marginLeft: number = 0;\n @Input() marginRight: number = 0;\n\n @Output() inputEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() changeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output() blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output() keyupEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n @Output() keydownEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n @Output() keypressEvent: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n private onChangeCallback: (_: any) => void = () => { };\n private onTouchedCallback: () => void = () => { };\n\n value: string = '';\n\n onInput(event: Event) {\n const inputElement = event.target as HTMLTextAreaElement;\n this.value = inputElement.value;\n this.onChangeCallback(this.value);\n this.inputEvent.emit(event);\n }\n\n onChange(event: Event) {\n this.changeEvent.emit(event);\n }\n\n onFocus(event: FocusEvent) {\n this.focusEvent.emit(event);\n }\n\n onBlur(event: FocusEvent) {\n this.onTouchedCallback();\n this.blurEvent.emit(event);\n }\n\n onKeyup(event: KeyboardEvent) {\n this.keyupEvent.emit(event);\n }\n\n onKeydown(event: KeyboardEvent) {\n this.keydownEvent.emit(event);\n }\n\n onKeypress(event: KeyboardEvent) {\n this.keypressEvent.emit(event);\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ITreeNode } from './Itree-node';\n\n@Component({\n selector: 'argenta-custom-tree-node',\n templateUrl: './tree-node.component.html',\n styleUrls: ['./tree-node.component.scss']\n})\nexport class TreeNodeComponent implements OnInit {\n @Input() title: string = '';\n @Input() nodes: ITreeNode[] = [];\n @Input() isRoot: boolean = true;\n @Output() nodeSelected = new EventEmitter<ITreeNode>();\n\n ngOnInit() {\n if (this.isRoot && !this.title) {\n this.title = 'Tree Node';\n }\n }\n\n onNodeSelected(node: ITreeNode, event: any) {\n node.selected = event.target.checked;\n if (node.children) {\n this.toggleChildren(node.children, node.selected);\n }\n this.updateParentSelection(this.nodes);\n this.nodeSelected.emit(node);\n }\n\n toggleChildren(children: ITreeNode[], selected: boolean) {\n children.forEach(child => {\n child.selected = selected;\n if (child.children) {\n this.toggleChildren(child.children, selected);\n }\n });\n }\n\n onChildNodeSelected(node: ITreeNode) {\n this.updateParentSelection(this.nodes);\n this.nodeSelected.emit(node);\n }\n\n updateParentSelection(nodes: ITreeNode[]) {\n nodes.forEach(node => {\n if (node.children) {\n const anyChildSelected = node.children.some(child => child.selected);\n if (anyChildSelected) {\n node.selected = true;\n }\n // Recursive call for nested parents\n this.updateParentSelection(node.children);\n }\n });\n }\n\n toggleCollapse(node: ITreeNode) {\n node.collapsed = !node.collapsed;\n }\n}\n","<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 <!-- Exibir a seta apenas se o nó tiver filhos não vazios -->\n <span *ngIf=\"node.children && node.children.length > 0\" class=\"toggle-icon\" (click)=\"toggleCollapse(node)\"\n [ngClass]=\"{'collapsed-icon': node.collapsed, 'expanded-icon': !node.collapsed}\">\n {{ node.collapsed ? '▶' : '▼' }}\n </span>\n <!-- Exibir a bolinha cinza se o nó não tiver filhos -->\n <span *ngIf=\"!node.children || node.children.length === 0\" class=\"dot\"></span>\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 <!-- Renderizar recursivamente apenas se o nó tiver filhos não vazios e não estiver colapsado -->\n <argenta-custom-tree-node *ngIf=\"node.children && node.children.length > 0 && !node.collapsed\" [nodes]=\"node.children\" [isRoot]=\"false\" (nodeSelected)=\"onChildNodeSelected(node)\"></argenta-custom-tree-node>\n </li>\n</ul>\n","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'argenta-json-viewer',\n templateUrl: './json-viewer.component.html',\n styleUrls: ['./json-viewer.component.scss']\n})\nexport class JsonViewerComponent {\n @Input() jsonData: any;\n @Input() isRoot: boolean = true;\n @Input() copyLabel!: string\n @Input() showLabel!: string\n @Input() hideLabel!: string\n\n allExpanded: boolean = true;\n expandedMap: Map<string, boolean> = new Map();\n\n toggleAll() {\n this.allExpanded = !this.allExpanded;\n this.expandedMap.clear();\n }\n\n toggleExpand(key: string) {\n const currentState = this.isExpanded(key);\n this.expandedMap.set(key, !currentState);\n }\n\n isObject(val: any): boolean {\n return val !== null && typeof val === 'object';\n }\n\n objectKeys(obj: any): string[] {\n return Object.keys(obj);\n }\n\n isExpanded(key: string): boolean {\n return this.expandedMap.has(key) ? this.expandedMap.get(key)! : this.allExpanded;\n }\n\n copyJson() {\n const jsonString = JSON.stringify(this.jsonData, null, 2);\n navigator.clipboard.writeText(jsonString).then(() => {\n alert('JSON copiado com sucesso!');\n }).catch(err => {\n console.error('Error copying JSON to clipboard:', err);\n });\n }\n}\n","<div class=\"json-viewer-box\">\n <div class=\"toolbar\">\n <button\n *ngIf=\"isRoot\"\n class=\"action-button copy-button\"\n (click)=\"copyJson()\"\n >\n {{ copyLabel }}\n </button>\n <button\n *ngIf=\"isRoot\"\n class=\"action-button toggle-button\"\n (click)=\"toggleAll()\"\n >\n {{ allExpanded ? \"▼ \" + hideLabel : \"► \" + showLabel }}\n </button>\n </div>\n\n <div class=\"json-content\">\n <div *ngIf=\"isObject(jsonData)\">\n <div class=\"json-pair\" *ngFor=\"let key of objectKeys(jsonData)\">\n <span class=\"key\">\n {{ key }}:\n <button class=\"minimal-toggle-button\" (click)=\"toggleExpand(key)\">\n {{ isExpanded(key) ? \"▼\" : \"►\" }}\n </button>\n </span>\n\n <div class=\"nested-json\" *ngIf=\"isExpanded(key)\">\n <argenta-json-viewer\n [jsonData]=\"jsonData[key]\"\n [isRoot]=\"false\"\n ></argenta-json-viewer>\n </div>\n <span *ngIf=\"!isExpanded(key) && isObject(jsonData[key])\">[...]</span>\n </div>\n </div>\n <span *ngIf=\"!isObject(jsonData)\">\n {{ jsonData }}\n </span>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core'\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'\n\n@Component({\n selector: 'argenta-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent {\n @Input() title!: string;\n @Input() component!: any;\n @Input() closeButtonLabel!: string\n @Input() buttonLabel?: string\n @Output() onButtonClick: EventEmitter<void> = new EventEmitter(); // Novo evento\n\n @ViewChild('dynamicComponent', { read: ViewContainerRef, static: true }) dynamicComponent!: ViewContainerRef;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit() {\n // Dynamically insert the provided component into the modal body\n this.dynamicComponent.createComponent(this.component);\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n buttonClicked() {\n this.onButtonClick.emit(); // Emitindo o evento\n }\n}\n","<div class=\"modal-header custom-modal-header\">\n <h4 class=\"modal-title\">{{ title }}</h4>\n <p class=\"float-right close-modal\" (click)=\"closeModal()\">X</p>\n</div>\n<div class=\"modal-body\">\n <ng-container #dynamicComponent></ng-container>\n</div>\n<div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"closeModal()\">\n {{ closeButtonLabel }}\n </button>\n <button *ngIf=\"buttonLabel\" class=\"btn btn-custom\" (click)=\"buttonClicked()\">\n {{ buttonLabel }}\n </button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { icons, LucideAngularModule } from 'lucide-angular';\n\n// Select some icons (use an object, not an array)\n@NgModule({\n imports: [LucideAngularModule.pick(icons)],\n exports: [LucideAngularModule],\n})\nexport class LucideIconsModule { }\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { NgSelectModule } from '@ng-select/ng-select'\nimport { AutofocusDirective } from '../directive/autofocus-directive/autofocus.directive'\nimport { CepMaskDirective } from '../directive/cep-mask.directive'\nimport { CnpjMaskDirective } from '../directive/cnpj-mask.directive'\nimport { CpfMaskDirective } from '../directive/cpf-mask.directive'\nimport { LucideIconsModule } from '../icons/lucide-icons.module'\nimport { AccordionArgentaComponent } from './accordion/accordion.component'\nimport { AlertComponent } from './alert/alert.component'\nimport { AppBackgroundComponent } from './app-background/app-background.component'\nimport { BadgeComponent } from './badge/badge.component'\nimport { BasicRegistrationComponent } from './basic-registration/basic-registration.component'\nimport { ButtonComponent } from './button/button.component'\nimport { CalendarArgentaComponent } from './calendar-argenta/calendar-argenta.component'\nimport { CardComponent } from './card/card.component'\nimport { CheckboxComponent } from './checkbox/checkbox.component'\nimport { CodeHighlightComponent } from './code-highlight/code-highlight.component'\nimport { ConfirmationComponent } from './confirmation/confirmation.component'\nimport { CustomPaginationComponent } from './custom-pagination/custom-pagination.component'\nimport { CustomSwitchComponent } from './custom-switch/custom-switch.component'\nimport { FileUploadComponent } from './file-upload/file-upload.component'\nimport { InputComponent } from './imput/input.component'\nimport { JsonViewerComponent } from './json-viewer/json-viewer.component'\nimport { ModalComponent } from './modal/modal.component'\nimport { MultiSelectCategoryComponent } from './multi-select-category/multi-select-category.component'\nimport { MultiSelectComponent } from './multi-select/multi-select.component'\nimport { RadioComponent } from './radio/radio.component'\nimport { SearchCustomerComponent } from './search-customer/search-customer.component'\nimport { SearchInputComponent } from './search-input/search-input.component'\nimport { SelectComponent } from './select/select.component'\nimport { TabComponent } from './tab/tab.component'\nimport { DataTableComponent } from './tables/data-table.component'\nimport { TextareaComponent } from './textarea/textarea.component'\nimport { TreeNodeComponent } from './tree-node/tree-node.component'\n@NgModule({\n declarations: [\n ButtonComponent,\n CardComponent,\n InputComponent,\n CheckboxComponent,\n TextareaComponent,\n SelectComponent,\n RadioComponent,\n MultiSelectComponent,\n DataTableComponent,\n CodeHighlightComponent,\n BadgeComponent,\n AlertComponent,\n ConfirmationComponent,\n AutofocusDirective,\n CepMaskDirective,\n CnpjMaskDirective,\n CpfMaskDirective,\n CustomPaginationComponent,\n TreeNodeComponent,\n SearchInputComponent,\n AppBackgroundComponent,\n BasicRegistrationComponent,\n CustomSwitchComponent,\n SearchCustomerComponent,\n TabComponent,\n FileUploadComponent,\n MultiSelectCategoryComponent,\n CalendarArgentaComponent,\n AccordionArgentaComponent,\n JsonViewerComponent,\n ModalComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgSelectModule,\n LucideIconsModule,\n ],\n exports: [\n ButtonComponent,\n CardComponent,\n InputComponent,\n CheckboxComponent,\n TextareaComponent,\n SelectComponent,\n RadioComponent,\n MultiSelectComponent,\n FormsModule,\n ReactiveFormsModule,\n NgSelectModule,\n DataTableComponent,\n CodeHighlightComponent,\n BadgeComponent,\n AlertComponent,\n ConfirmationComponent,\n AutofocusDirective,\n CepMaskDirective,\n CnpjMaskDirective,\n CpfMaskDirective,\n CustomPaginationComponent,\n TreeNodeComponent,\n SearchInputComponent,\n LucideIconsModule,\n AppBackgroundComponent,\n BasicRegistrationComponent,\n CustomSwitchComponent,\n SearchCustomerComponent,\n TabComponent,\n FileUploadComponent,\n MultiSelectCategoryComponent,\n CalendarArgentaComponent,\n AccordionArgentaComponent,\n JsonViewerComponent,\n ModalComponent,\n ],\n})\nexport class ComponentsModule { }\n","import { ApplicationRef, ComponentRef, createComponent, Injectable, Injector } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AlertComponent } from './alert.component';\n\nexport interface Alert {\n type: 'success' | 'info' | 'warning' | 'danger';\n title: string;\n message: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n private alertsSubject = new Subject<Alert>();\n alerts$ = this.alertsSubject.asObservable();\n\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector\n ) { }\n\n showAlert(type: 'success' | 'info' | 'warning' | 'danger', title: string, message: string) {\n const alert: Alert = { type, title, message };\n this.alertsSubject.next(alert);\n\n // Create the alert component dynamically\n const componentRef: ComponentRef<AlertComponent> = createComponent(AlertComponent, { environmentInjector: this.appRef.injector });\n componentRef.instance.alerts = [alert];\n\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as any).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n \n \n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { ConfirmationComponent } from './confirmation.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmationService implements OnDestroy {\n private modalRef: NgbModalRef | null = null;\n\n constructor(private modalService: NgbModal) { }\n\n confirm(\n title: string,\n message: string,\n confirmButtonText: string = 'Sim',\n cancelButtonText: string = 'Não'\n ): Promise<boolean> {\n this.modalRef = this.modalService.open(ConfirmationComponent, { backdrop: 'static', keyboard: false });\n this.modalRef.componentInstance.title = title;\n this.modalRef.componentInstance.message = message;\n this.modalRef.componentInstance.confirmButtonText = confirmButtonText;\n this.modalRef.componentInstance.cancelButtonText = cancelButtonText;\n\n return this.modalRef.result.then((result) => {\n return result === 'confirm';\n }, () => {\n return false;\n }).finally(() => {\n this.modalRef = null; // Clear the reference after the modal is closed\n });\n }\n\n ngOnDestroy() {\n if (this.modalRef) {\n this.modalRef.dismiss();\n this.modalRef = null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport interface IDataIndexPaginate {\n filterDescription?: string;\n pageNumber: number;\n pageSize: number;\n sortColumn: string;\n sortDirection: 'asc' | 'desc';\n}\n\nexport interface IPaginateResult<T> {\n items: T[];\n totalItems: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataPaginateService {\n constructor(private http: HttpClient) { }\n\n fetchData<T>(url: string, params: IDataIndexPaginate): Observable<IPaginateResult<T>> {\n let httpParams = new HttpParams()\n .set('page', params.pageNumber.toString())\n .set('limit', params.pageSize.toString())\n .set('sort', params.sortColumn)\n .set('order', params.sortDirection);\n\n if (params.filterDescription) {\n httpParams = httpParams.set('description', params.filterDescription);\n }\n\n return this.http.get<{ meta: { total: number }, data: T[] }>(url, { params: httpParams }).pipe(\n map(response => {\n const items = response.data || [];\n const totalItems = response.meta.total || 0;\n return {\n items,\n totalItems\n };\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RouterParameterService {\n private secretKey = '9db3589f$h86115&@b457bdff422c232e0e04c!ibe14374970aef0fe0ba054618f!='\n setParameter(data: string): string {\n return CryptoJS.AES.encrypt(data, this.secretKey).toString();\n }\n\n getParameter(data: string): string {\n const bytes = CryptoJS.AES.decrypt(data, this.secretKey);\n return bytes.toString(CryptoJS.enc.Utf8);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NotificationService } from './components/alert/notification.service';\nimport { ComponentsModule } from './components/components.module';\nimport { ConfirmationService } from './components/confirmation/confirmation.service';\nimport { DataPaginateService } from './components/tables/data-paginate.service';\nimport { RefreshService } from './service/refresh-service.service';\nimport { RouterParameterService } from './service/route-parameter.service';\n\n@NgModule({\n imports: [\n ComponentsModule,\n \n ],\n exports: [\n ComponentsModule, \n ],\n providers: [\n NotificationService,\n ConfirmationService,\n DataPaginateService,\n RefreshService,\n RouterParameterService,\n ],\n})\nexport class LibPortalAngularModule { }\n","/*\n * Public API Surface of sim-lib\n *\n * Este arquivo exporta todos os componentes, enums e módulos necessários\n * para que os consumidores da biblioteca possam utilizá-los em suas aplicações.\n */\n\n// Componentes\nexport * from './lib/components/accordion/accordion.component';\nexport * from './lib/components/alert/alert.component';\nexport * from './lib/components/app-background/app-background.component';\nexport * from './lib/components/badge/badge.component';\nexport * from './lib/components/basic-registration/basic-registration.component';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/calendar-argenta/calendar-argenta.component';\nexport * from './lib/components/card/card.component';\nexport * from './lib/components/checkbox/checkbox.component';\nexport * from './lib/components/code-highlight/code-highlight.component';\nexport * from './lib/components/confirmation/confirmation.component';\nexport * from './lib/components/custom-pagination/custom-pagination.component';\nexport * from './lib/components/custom-switch/custom-switch.component';\nexport * from './lib/components/file-upload/file-upload.component';\nexport * from './lib/components/imput/input.component';\nexport * from './lib/components/multi-select-category/multi-select-category.component';\nexport * from './lib/components/multi-select/multi-select.component';\nexport * from './lib/components/radio/radio.component';\nexport * from './lib/components/search-customer/search-customer.component';\nexport * from './lib/components/search-input/search-input.component';\nexport * from './lib/components/select/select.component';\nexport * from './lib/components/tab/tab.component';\nexport * from './lib/components/tables/data-table.component';\nexport * from './lib/components/textarea/textarea.component';\nexport * from './lib/components/tree-node/tree-node.component';\nexport * from './lib/components/alert/alert.component'\nexport * from './lib/components/app-background/app-background.component'\nexport * from './lib/components/badge/badge.component'\nexport * from './lib/components/basic-registration/basic-registration.component'\nexport * from './lib/components/button/button.component'\nexport * from './lib/components/card/card.component'\nexport * from './lib/components/checkbox/checkbox.component'\nexport * from './lib/components/code-highlight/code-highlight.component'\nexport * from './lib/components/confirmation/confirmation.component'\nexport * from './lib/components/custom-pagination/custom-pagination.component'\nexport * from './lib/components/custom-switch/custom-switch.component'\nexport * from './lib/components/file-upload/file-upload.component'\nexport * from './lib/components/imput/input.component'\nexport * from './lib/components/json-viewer/json-viewer.component'\nexport * from './lib/components/modal/modal.component'\nexport * from './lib/components/multi-select-category/multi-select-category.component'\nexport * from './lib/components/multi-select/multi-select.component'\nexport * from './lib/components/radio/radio.component'\nexport * from './lib/components/search-customer/search-customer.component'\nexport * from './lib/components/search-input/search-input.component'\nexport * from './lib/components/select/select.component'\nexport * from './lib/components/tab/tab.component'\nexport * from './lib/components/tables/data-table.component'\nexport * from './lib/components/textarea/textarea.component'\nexport * from './lib/components/tree-node/tree-node.component'\n\n// Diretivas\nexport * from './lib/directive/autofocus-directive/autofocus.directive'\nexport * from './lib/directive/cep-mask.directive'\nexport * from './lib/directive/cnpj-mask.directive'\nexport * from './lib/directive/cpf-mask.directive'\n\n// Enums\nexport * from './lib/enum/ButtonClassesEnum'\n\n// Módulos\nexport * from './lib/components/components.module'\nexport * from './lib/icons/lucide-icons.module'\nexport * from './lib/lib-portal-angular.module'\n\n\n// Service\nexport * from './lib/components/alert/notification.service'\nexport * from './lib/components/confirmation/confirmation.service'\nexport * from './lib/components/tables/data-paginate.service'\nexport * from './lib/service/refresh-service.service'\nexport * from './lib/service/route-parameter.service'\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AuthService","i2","i3.ButtonComponent","i3","i1","i2.AutofocusDirective","i4.CepMaskDirective","i5.CnpjMaskDirective","i6.CpfMaskDirective","i4","i1.MultiSelectComponent","i2.RefreshService","i5","i6.CustomPaginationComponent","i7.SearchInputComponent"],"mappings":"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"}