{"version":3,"file":"ngx-vector-components.mjs","sources":["../../../projects/ngx-vector-components/src/lib/models/app-name.enum.ts","../../../projects/ngx-vector-components/src/lib/models/boolean-type.enum.ts","../../../projects/ngx-vector-components/src/lib/models/crud-history.model.ts","../../../projects/ngx-vector-components/src/lib/models/crud-mode.enum.ts","../../../projects/ngx-vector-components/src/lib/models/data-table.model.ts","../../../projects/ngx-vector-components/src/lib/models/document-type.enum.ts","../../../projects/ngx-vector-components/src/lib/models/message-status.enum.ts","../../../projects/ngx-vector-components/src/lib/models/profile.model.ts","../../../projects/ngx-vector-components/src/lib/models/role.enum.ts","../../../projects/ngx-vector-components/src/lib/models/status.enum.ts","../../../projects/ngx-vector-components/src/lib/models/view.enum.ts","../../../projects/ngx-vector-components/src/lib/components/badge/badge.component.ts","../../../projects/ngx-vector-components/src/lib/components/badge/badge.component.html","../../../projects/ngx-vector-components/src/lib/pipes/currency-brl.pipe.ts","../../../projects/ngx-vector-components/src/lib/utils/cpf-cnpj-validator.util.ts","../../../projects/ngx-vector-components/src/lib/utils/file.util.ts","../../../projects/ngx-vector-components/src/lib/utils/mask.util.ts","../../../projects/ngx-vector-components/src/lib/utils/object.util.ts","../../../projects/ngx-vector-components/src/lib/utils/string.util.ts","../../../projects/ngx-vector-components/src/lib/utils/validation.util.ts","../../../projects/ngx-vector-components/src/lib/utils/window.util.ts","../../../projects/ngx-vector-components/src/lib/pipes/format-document.pipe.ts","../../../projects/ngx-vector-components/src/lib/pipes/mask.pipe.ts","../../../projects/ngx-vector-components/src/lib/pipes/not-hidden.pipe.ts","../../../projects/ngx-vector-components/src/lib/pipes/only-active.pipe.ts","../../../projects/ngx-vector-components/src/lib/pipes/remove-last-child.pipe.ts","../../../projects/ngx-vector-components/src/lib/pipes/unread-notifications.pipe.ts","../../../projects/ngx-vector-components/src/lib/pipes/pipes.module.ts","../../../projects/ngx-vector-components/src/lib/shared/shared.module.ts","../../../projects/ngx-vector-components/src/lib/components/badge/badge.module.ts","../../../projects/ngx-vector-components/src/lib/injections/index.ts","../../../projects/ngx-vector-components/src/lib/services/breadcrumb.service.ts","../../../projects/ngx-vector-components/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/ngx-vector-components/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/ngx-vector-components/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../projects/ngx-vector-components/src/lib/components/crud-base/crud-base.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/button/button.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/button/button.component.html","../../../projects/ngx-vector-components/src/lib/components/crud-footer/crud-footer.component.ts","../../../projects/ngx-vector-components/src/lib/components/crud-footer/crud-footer.component.html","../../../projects/ngx-vector-components/src/lib/components/panel/panel.component.ts","../../../projects/ngx-vector-components/src/lib/components/panel/panel.component.html","../../../projects/ngx-vector-components/src/lib/components/panel/panel.module.ts","../../../projects/ngx-vector-components/src/lib/components/score/score.component.ts","../../../projects/ngx-vector-components/src/lib/components/score/score.component.html","../../../projects/ngx-vector-components/src/lib/components/score/score.module.ts","../../../projects/ngx-vector-components/src/lib/services/storage.service.ts","../../../projects/ngx-vector-components/src/lib/services/analytics.service.ts","../../../projects/ngx-vector-components/src/lib/services/auth.service.ts","../../../projects/ngx-vector-components/src/lib/services/crud-base.service.ts","../../../projects/ngx-vector-components/src/lib/services/enum.service.ts","../../../projects/ngx-vector-components/src/lib/services/error-message.service.ts","../../../projects/ngx-vector-components/src/lib/services/geolocation.service.ts","../../../projects/ngx-vector-components/src/lib/services/loading.service.ts","../../../projects/ngx-vector-components/src/lib/services/profile.service.ts","../../../projects/ngx-vector-components/src/lib/services/menu.service.ts","../../../projects/ngx-vector-components/src/lib/services/modal.service.ts","../../../projects/ngx-vector-components/src/lib/services/notifications.service.ts","../../../projects/ngx-vector-components/src/lib/components/fields/field-error-message/field-error-message.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/field-error-message/field-error-message.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/calendar-field/calendar-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/calendar-field/calendar-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/checkbox-field/checkbox-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/checkbox-field/checkbox-field.component.html","../../../projects/ngx-vector-components/src/lib/models/currency.enum.ts","../../../projects/ngx-vector-components/src/lib/models/locale.enum.ts","../../../projects/ngx-vector-components/src/lib/components/fields/currency-field/currency-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/currency-field/currency-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/text-field/text-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/text-field/text-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/multiselect-field/multiselect-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/multiselect-field/multiselect-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/dropdown-field/dropdown-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/dropdown-field/dropdown-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/select-button-field/select-button-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/select-button-field/select-button-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/filters/filters.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/filters/filters.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/data-table/data-table.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/data-table/data-table.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/input-file/input-file.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/input-file/input-file.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/input-number-field/input-number-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/input-number-field/input-number-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/input-otp/input-otp.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/input-otp/input-otp.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/input-switch-field/input-switch-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/input-switch-field/input-switch-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/percentage-field/percentage-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/percentage-field/percentage-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/radio-button-field/radio-button-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/radio-button-field/radio-button-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/range-value/range-value.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/range-value/range-value.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/search-field/search-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/search-field/search-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/textarea-field/textarea-field.component.ts","../../../projects/ngx-vector-components/src/lib/components/fields/textarea-field/textarea-field.component.html","../../../projects/ngx-vector-components/src/lib/components/fields/fields.module.ts","../../../projects/ngx-vector-components/src/lib/components/crud-footer/crud-footer.module.ts","../../../projects/ngx-vector-components/src/lib/components/crud-header/crud-header.component.ts","../../../projects/ngx-vector-components/src/lib/components/crud-header/crud-header.component.html","../../../projects/ngx-vector-components/src/lib/components/crud-header/crud-header.module.ts","../../../projects/ngx-vector-components/src/lib/components/crud-history/crud-history.component.ts","../../../projects/ngx-vector-components/src/lib/components/crud-history/crud-history.component.html","../../../projects/ngx-vector-components/src/lib/components/crud-history/crud-history.module.ts","../../../projects/ngx-vector-components/src/lib/components/drawer/drawer.component.ts","../../../projects/ngx-vector-components/src/lib/components/drawer/drawer.component.html","../../../projects/ngx-vector-components/src/lib/components/drawer/drawer.module.ts","../../../projects/ngx-vector-components/src/lib/components/generic-error-modal/generic-error-modal.component.ts","../../../projects/ngx-vector-components/src/lib/components/generic-error-modal/generic-error-modal.component.html","../../../projects/ngx-vector-components/src/lib/components/generic-error-modal/generic-error-modal.module.ts","../../../projects/ngx-vector-components/src/lib/components/generic-modal/generic-modal.component.ts","../../../projects/ngx-vector-components/src/lib/components/generic-modal/generic-modal.component.html","../../../projects/ngx-vector-components/src/lib/components/generic-modal/generic-modal.module.ts","../../../projects/ngx-vector-components/src/lib/components/menu/menu.component.ts","../../../projects/ngx-vector-components/src/lib/components/menu/menu.component.html","../../../projects/ngx-vector-components/src/lib/components/menu/sub-menus-list/sub-menus-list.component.ts","../../../projects/ngx-vector-components/src/lib/components/menu/sub-menus-list/sub-menus-list.component.html","../../../projects/ngx-vector-components/src/lib/components/menu/menu.module.ts","../../../projects/ngx-vector-components/src/lib/components/snackbar/snackbar.component.ts","../../../projects/ngx-vector-components/src/lib/components/snackbar/snackbar.component.html","../../../projects/ngx-vector-components/src/lib/components/snackbar/snackbar.module.ts","../../../projects/ngx-vector-components/src/lib/components/stepper/stepper.component.ts","../../../projects/ngx-vector-components/src/lib/components/stepper/stepper.component.html","../../../projects/ngx-vector-components/src/lib/components/stepper/stepper.module.ts","../../../projects/ngx-vector-components/src/lib/components/top-bar/top-bar.component.ts","../../../projects/ngx-vector-components/src/lib/components/top-bar/top-bar.component.html","../../../projects/ngx-vector-components/src/lib/components/top-bar/top-bar.module.ts","../../../projects/ngx-vector-components/src/lib/config/index.ts","../../../projects/ngx-vector-components/src/lib/guards/crud-list-has-items.guard.ts","../../../projects/ngx-vector-components/src/lib/guards/get-token-by-guid.guard.ts","../../../projects/ngx-vector-components/src/lib/guards/has-permission.guard.ts","../../../projects/ngx-vector-components/src/lib/guards/role.guard.ts","../../../projects/ngx-vector-components/src/lib/guards/token-is-present.guard.ts","../../../projects/ngx-vector-components/src/lib/interceptors/http-interceptor.ts","../../../projects/ngx-vector-components/src/lib/resolvers/get-selected-crud-item.resolver.ts","../../../projects/ngx-vector-components/src/ngx-vector-components.ts"],"sourcesContent":["export enum AppName {\n  PORTAL = 'PORTAL',\n  FINTECH = 'FINTECH',\n  MARKETPLACE = 'MARKETPLACE',\n  LOGTECH = 'LOGTECH',\n  SURVEY = 'SURVEY',\n  PRODUCER_PORTAL = 'PRODUCER_PORTAL',\n}\n","export enum BooleanType {\n  YES = 'YES',\n  NO = 'NO',\n}\n","export class CrudHistory<T> {\n  auditId?: number;\n  dataAuditDelta?: DataAuditDelta[];\n  dateTime?: Date;\n  entityType?: number;\n  eventType?: string;\n  modifierName?: string;\n  typeOfModification?: string;\n  modifiedFromWeb?: boolean;\n}\n\nexport type DataAuditDelta = {\n  fieldName?: string;\n  newValue?: string;\n  oldValue?: string;\n  type?: number | string;\n  typeDescription?: string;\n};\n","export enum CrudMode {\n  NEW,\n  EDIT,\n  VIEW,\n}\n","import { MenuItem } from 'primeng/api';\nimport type { ButtonType } from '../components/fields/button/button.component';\nimport { ListItem } from './list-item.model';\nimport { Status } from './status.enum';\n\nexport type DataTableBaseItem = {\n  actions?: MenuItem[];\n};\n\nexport enum TableColumnType {\n  TEXT = 'TEXT',\n  BOOLEAN = 'BOOLEAN',\n  DATE = 'DATE',\n  DATETIME = 'DATETIME',\n  ENUM = 'ENUM',\n  STATUS_BADGE = 'STATUS_BADGE',\n  ACTIVE_BOOLEAN_BADGE = 'ACTIVE_BOOLEAN_BADGE',\n  BUTTON = 'BUTTON',\n  CUSTOM_STYLE = 'CUSTOM_STYLE',\n  MASK = 'MASK',\n  TEXT_BADGE = 'TEXT_BADGE',\n  STACK_BADGE = 'STACK_BADGE',\n  CURRENCY = 'CURRENCY',\n  SCORE = 'SCORE',\n}\n\nexport type TableColumn = {\n  header: string;\n  field: string;\n  width?: string;\n  type?: TableColumnType;\n  textFieldClass?: string;\n  getEnumTranslated?: (enumVal: any) => string;\n  getStatus?: (value: any) => Status;\n  clickFunction?: Function;\n  icon?: string | ((rowData: any) => string);\n  notSortable?: boolean;\n  mask?: string;\n  currencyType?: 'USD' | 'BRL';\n  hidden?: boolean;\n  cellEdit?: CellEditConfig;\n};\n\nexport type CellEditConfig = {\n  editType?: 'number' | 'text';\n  editMin?: number;\n  editMax?: number;\n  editSuffix?: string;\n  editMaxFractionDigits?: number;\n};\n\nexport type DataTableLazyLoadEvent = {\n  start: number;\n  length: number;\n  draw: number;\n  page: number;\n  order: { column: number; dir: 'asc' | 'desc' }[];\n  columns: {\n    data: string;\n    name: string;\n    orderable: boolean;\n    search: { value: string; regex: boolean };\n    searchable: boolean;\n  }[];\n  search: { value: string; regex: boolean };\n  tab: ListItem;\n};\n\nexport enum SelectionType {\n  CHECKBOX = 'checkbox',\n  RADIOBUTTON = 'radiobutton',\n}\n\nexport type AddItemButtonConfig = {\n  type?: ButtonType;\n  icon?: string;\n  iconPosition?: 'left' | 'right';\n  disabled?: boolean;\n};\n\nexport type DataTableCustomButton = {\n  label: string;\n  clickFunction: Function;\n  disabled?: boolean;\n  type?: ButtonType;\n  icon?: string;\n  iconPosition?: 'left' | 'right';\n};\n","export enum DocumentType {\n  CPF,\n  CNPJ,\n}\n","export enum MessageStatus {\n  SUCCESS = 'success',\n  INFO = 'info',\n  WARN = 'warn',\n  ERROR = 'error',\n}\n","import { DataTableBaseItem } from './data-table.model';\n\nexport type Profile = {\n  id: number;\n  name: string;\n  profileTypeId: number;\n  ProfileTypeName: string;\n  modules: ProfileModule[];\n  active: boolean;\n} & DataTableBaseItem;\n\nexport enum ProfileTypeEnum {\n  SHIPPER = 1,\n  SUPER_USER,\n  CARRIER,\n  DRIVER,\n  SHIPPER_INTEGRATION,\n  BATCHES,\n  SUPPLIER,\n}\n\nexport type ProfileModule = {\n  menu: string;\n  actions: ProfileModuleAction[];\n} & ProfileModuleBase;\n\nexport type ProfileModuleGroupedByMenu = {\n  menu: string;\n  modules: ProfileModule[];\n  children?: ProfileModuleGroupedByMenu[];\n};\n\nexport type ProfileModuleAction = {} & ProfileModuleBase;\n\nexport type ProfileModuleBase = {\n  id: number;\n  name: string;\n  isAvailable?: boolean;\n};\n\nexport enum ProfileModuleType {\n  OPERATIONAL_EVALUATION = 'OperationalEvaluation',\n  ADMIN_SURVEYS = 'AdminSurveys',\n  DIGITAL_DISCHARGE = 'Quitação Digital',\n  REGISTER_OPERATION = 'RegisterOperation',\n  REGISTER_PRODUCTS = 'RegisterProduct',\n  ADMIN_NPS = 'NPS',\n  COCKPIT = 'Cockpit',\n  VALIDATIONS_CARGO_MATCH = 'ValidationsCargoMatch',\n  PAYMENT_FREIGHT = 'Pagamento De Frete',\n  FREIGHT_ADJUST = 'FreightAdjust',\n  PUBLISH_FREIGHT = 'PublishFreight',\n  APPROVE_FREIGHT = 'ApproveFreight',\n  REGISTER_JUSTICATIVE = 'RegisterJustificative',\n  BANK_EXTERNAL = 'BancoExterno',\n  PAYMENT_DASHBOARD = 'PaymentDashboard',\n  PAYMENT_SCHEDULING = 'Agendamento De Pagamento',\n  DICHARGE_CONTROL_PANEL = 'DischargeControlPanel',\n  CARD_CONTROL = 'Cartão digital',\n  VECTOR_PAY_STATEMENT = 'VectorPayStatement',\n  BUNGE_REFUND = 'BungeEstorno',\n  FINTECH_ADMIN = 'Financeiro',\n  FOB_REPORT = 'FOB Report',\n  POWER_BI = 'PowerBi',\n  TRACKER_REPORT = 'TrackerReport',\n  OPERATIONAL_REPORT = 'OperationalReport',\n  BI_ADMIN = 'BiAdmin',\n  RELATORIO = 'Relatorio',\n  VIAGEM_AMIGA = 'Viagem Amiga',\n  GDV = 'GDV',\n  OBSERVACOES = 'Observações',\n  LOADING_FRONTS = 'Loading Fronts',\n  LOAD_AND_UNLOAD = 'Load and Unload',\n  SUPPLIER = 'Supplier',\n  DRIVERS = 'Drivers',\n  VEHICLES = 'Vehicles',\n  PROFILES = 'Profiles',\n  CARRIERS = 'Carriers',\n  LOCATION = 'Location',\n  GROUPS = 'Groups',\n  CONTRATOS_HAZMAT = 'Contratos hazmat',\n  ROTAS_HAZMAT = 'Rotas hazmat',\n  GEOCERCAS_HAZMAT = 'Geocercas hazmat',\n  BLOCK_HAZMAT = 'Block hazmat',\n  TRANSPORTADORA_DIGITAL = 'Transportadora Digital',\n  GENERAL_PANEL = 'GeneralPanel',\n  MONITORING_ETCD = 'MonitoringETCD',\n  REGISTER_PARAMETERS = 'RegisterParameters',\n  GENERAL_PARAMETERS = 'GeneralParameters',\n  PRODUCT_PARAMETERS = 'ProductParameters',\n  TELEMETRIA = 'Telemetria',\n  CUSTOMIZATIONS = 'Customizations',\n  PAYMENT_GREATER_FREIGHT = 'PaymentGreaterFreight',\n  RELEASE_PAYMENT_FREIGHT = 'ReleasePaymentFreight',\n  APPROVE_RELEASE_PAYMENT_FREIGHT = 'ApproveReleasePaymentFreight',\n  RELEASE_ADVANCE_FREIGHT = 'ReleaseAdvanceFreight',\n  RELEASE_ADVANCE_FREIGHT_PAYMENT = 'ReleaseAdvanceFreightPayment',\n  BANK_S3 = 'BankS3',\n  BREAK_ALLOWANCE_MODULE = 'Solicitação de Abono',\n  FINANCIAL_DISPUTE_MODULE = 'Disputa Financeira',\n  PAYMENT_AUTHORIZATION_MODULE = 'Autorização de pagamento',\n  COURTYARD_MANAGEMENT = 'Courtyard Management',\n  DOCK_BUILDINGS = 'Dock Buildings',\n  S3_BANK_RETURN = 'S3BankReturn',\n  MONITORING_PANEL_ETCD = 'MonitoringPanelETCD',\n  BOARD = 'Board',\n  OCURRENCES = 'Ocurrences',\n  EVENTS = 'Events',\n  LOG_ERROR_ACCEPT_TRIP = 'LogErrorAcceptTrip',\n  PRODUCTS = 'Products',\n  LOCATION_GROUP = 'Location Group',\n  SOLICITACOES = 'Solicitações',\n  SOLICITACOES_ETCD = 'Solicitações ETCD',\n  CARD_DELIVERY_TOLL_CARD = 'Card Delivery Toll Card',\n  CREDIT_MANAGEMENT = 'CreditManagement',\n  FINTECH_BANK = 'Fintech Bank',\n  BLOCK = 'Block',\n  USER = 'User',\n  TRIPS = 'Trips',\n  PAINEL = 'Painel',\n  SHOW_DRIVERS_MAP_BY_LAT_LNG = 'ShowDriversMapByLatLng',\n  VECTOR_CLUB = 'Vector Club',\n  BROADCAST_MANAGEMENT = 'BroadcastManagement',\n  LOTS = 'Lots',\n  POOL_OFFERTS = 'PoolOfferts',\n  SHOW_APPROVAL_AUTHORITY = 'ShowApprovalAuthority',\n  GESTAO_DE_PEDAGIO = 'Gestão de Pedagio',\n  VECTOR_PAY = 'VectorPay',\n  BROADCAST_WAVES = 'BroadcastWaves',\n  MENSAGENS = 'Mensagens',\n  TEX = 'TEX',\n  ANTECIPACAO_DE_RECEBIVEIS = 'Antecipação de recebíveis',\n  VEHICLE_CONFIGURATION = 'VehicleConfiguration',\n  SHIPPERS_VEHICLE_CONFIGURATIONS = 'ShippersVehicleConfigurations',\n  MINIMUM_FREIGHT_FLOOR = 'MinimumFreightFloor',\n  REGISTRATION_VALIDATION = 'RegistrationValidation',\n  B3 = 'B3',\n  ETCD_PARAMETERS = 'ETCDParameters',\n  CHECKLIST = 'Checklist',\n  MARKETPLACE = 'Marketplace',\n  FINTECH = 'Fintech',\n  SHIPPER = 'shipper',\n  NEWS = 'News',\n  TRIP_OFFERS = 'TripOffers',\n  IMPORT_DATA = 'ImportData',\n  ROUTES = 'Routes',\n  GEOFENCE_PARAMETERS = 'GeofenceParameters',\n  MOVIMENTATION_HISTORIC = 'MovimentationHistoric',\n  MESSAGE_CUSTOM = 'Message Custom',\n  TRAINING = 'Training',\n  TOMADA_DE_PRECO = 'Tomada de preço',\n  RISK_MANAGEMENT = 'Risk Management',\n  GR_MANAGEMENT = 'Gr Management',\n  BC_CORREIOS = 'BC Correios',\n  FREIGHT_AGENT_REPORT = 'FreightAgentReport',\n  TAX_INCOMING = 'ImpostoDeRenda',\n  CHATBOT = 'Chatbot',\n  BLOCK_CARRIER = 'Block Carrier',\n  TRAINING_NEW = 'Treinamento',\n  CTE_COMPLEMENT = 'Cte Complementar',\n}\n\nexport enum ProfileModuleActionType {\n  ADD_VEHICLE = 'Add Vehicle',\n  EDIT_VEHICLE = 'Edit Vehicle',\n  DELETE_VEHICLE = 'Delete Vehicle',\n  SHOW_VEHICLE = 'Show Vehicle',\n  ADD_DRIVER = 'Add Driver',\n  EDIT_DRIVER = 'Edit Driver',\n  DELETE_DRIVER = 'Delete Driver',\n  SHOW_DRIVER = 'Show Driver',\n  SHOW_DRIVER_NEW = 'Show Driver New',\n  ADD_CARRIER = 'Add Carrier',\n  DOCUMENTAL_HAZMAT = 'Documental Hazmat',\n  EDIT_CARRIER = 'Edit Carrier',\n  DELETE_CARRIER = 'Delete Carrier',\n  SHOW_CARRIER = 'Show Carrier',\n  SHOW_CARRIER_PREPEX = 'Show Carrier Prepex',\n  ADD_CARRIER_PREPEX = 'Add Carrier Prepex',\n  EDIT_CARRIER_PREPEX = 'Edit Carrier Prepex',\n  SHOW_ACCREDITED = 'Show Accredited',\n  ADD_PROFILE = 'Add Profile',\n  EDIT_PROFILE = 'Edit Profile',\n  DELETE_PROFILE = 'Delete Profile',\n  SHOW_PROFILE = 'Show Profile',\n  EDIT_BROADCAST_VALUES = 'Edit Broadcast Values',\n  ADD_WAVE = 'Add Wave',\n  EDIT_WAVE = 'Edit Wave',\n  SHOW_WAVE = 'Show Wave',\n  HISTORICAL_CHANGES_VEHICLE = 'Historical Changes Vehicle',\n  HISTORICAL_CHANGES_DRIVER = 'Historical Changes Driver',\n  HISTORICAL_CHANGES_CARRIER = 'Historical Changes Carrier',\n  HISTORICAL_CHANGES_TRIP = 'Historical Changes Trip',\n  HISTORICAL_CHANGES_USER = 'Historical Changes User',\n  CANCEL_TRIPS = 'Cancel Trips',\n  CANCEL_TRIPSPA = 'Cancel Trips PA',\n  MANUAL_UPLOAD_DOCUMENTS = 'Manual Upload Documents',\n  HISTORICAL_CHANGES_LOTS = 'Historical Changes Lots',\n  ADD_LOCATION = 'Add Location',\n  EDIT_LOCATION = 'Edit Location',\n  SHOW_LOCATION = 'Show Location',\n  SHOW_DISCOUNT_SPLIT = 'Show Discount Split',\n  EDIT_DISCOUNT_SPLIT = 'Edit Discount Split',\n  ADD_RESTRICTIONS = 'Add Restrictions',\n  EDIT_RESTRICTIONS = 'Edit Restrictions',\n  SHOW_RESTRICTIONS = 'Show Restrictions',\n  DELETE_RESTRICTIONS = 'Delete Restrictions',\n  DELETE_LOCATION = 'Delete Location',\n  SHOW_MESSAGES = 'Show Messages',\n  EDIT_MESSAGES = 'Edit Messages',\n  DELETE_MESSAGES = 'Delete Messages',\n  ADD_MESSAGES = 'Add Messages',\n  ADD_LOT = 'Add Lot',\n  EDIT_LOT = 'Edit Lot',\n  DELETE_LOT = 'Delete Lot',\n  SHOW_LOT = 'Show Lot',\n  ENABLED_RESET_LOT_TRIP_IMAGEM = 'Enabled Reset Lot Trip Imagem',\n  ACCEPT_CREDIT = 'Accept Credit',\n  SHOW_CREDIT = 'Show Credit',\n  ADD_VEHICLE_CONFIGURATION = 'Add Vehicle Configuration',\n  EDIT_VEHICLE_CONFIGURATION = 'Edit Vehicle Configuration',\n  SHOW_VEHICLE_CONFIGURATION = 'Show Vehicle Configuration',\n  ADD_SCHEDULING = 'Add Scheduling',\n  EDIT_SCHEDULING = 'Edit Scheduling',\n  DELETE_SCHEDULING = 'Delete Scheduling',\n  ADD_VEHICLE_CONFIGURATION_SHIPPER = 'Add Vehicle Configuration Shipper',\n  EDIT_VEHICLE_CONFIGURATION_SHIPPER = 'Edit Vehicle Configuration Shipper',\n  SHOW_VEHICLE_CONFIGURATION_SHIPPER = 'Show Vehicle Configuration Shipper',\n  EDIT_TRIP_BUNGE = 'Edit trip Bunge',\n  EDIT_TRIP_COFCO = 'Edit trip Cofco',\n  SHOW_MINIMUM_TRANSPORT_PRICE_TABLE = 'Show Minimum Transport Price Table',\n  EDIT_MINIMUM_TRANSPORT_PRICE_TABLE = 'Edit Minimum Transport Price Table',\n  HISTORICAL_CHANGES_CREDITS = 'Historical Changes Credits',\n  INTEGRAÇÃO_PAGBEM = 'Integração Pagbem',\n  VALIDATION_CARRIER = 'Validation Carrier',\n  VALIDATION_DRIVER = 'Validation Driver',\n  VALIDATION_VEHICLE = 'Validation Vehicle',\n  EDIT_TRIP_STATUS = 'Edit trip status',\n  REGISTRATION_VALIDATION = 'Registration Validation',\n  B3_OPERATION = 'B3 Operation',\n  SHOW_CARRIER_DETAIL_INTEGRATION = 'Show Carrier Detail Integration',\n  SHOW_DRIVER_DETAIL_INTEGRATION = 'Show Driver Detail Integration',\n  FUELS_SHOW_DISTRIBUTION_CENTER = 'Fuels show distribution center',\n  FUELS_ADD_DISTRIBUTION_CENTER = 'Fuels add distribution center',\n  FUELS_EDIT_DISTRIBUTION_CENTER = 'Fuels edit distribution center',\n  FUELS_DELETE_DISTRIBUTION_CENTER = 'Fuels delete distribution center',\n  FUELS_SHOW_DISTRIBUTION_POINT = 'Fuels show distribution point',\n  FUELS_ADD_DISTRIBUTION_POINT = 'Fuels add distribution point',\n  FUELS_EDIT_DISTRIBUTION_POINT = 'Fuels edit distribution point',\n  FUELS_DELETE_DISTRIBUTION_POINT = 'Fuels delete distribution point',\n  FUELS_SHOW_DISTRIBUTION_POST = 'Fuels show distribution post',\n  FUELS_ADD_DISTRIBUTION_POST = 'Fuels add distribution post',\n  FUELS_EDIT_DISTRIBUTION_POST = 'Fuels edit distribution post',\n  FUELS_DELETE_DISTRIBUTION_POST = 'Fuels delete distribution post',\n  FUELS_SHOW_MARKETPLACE_PRODUCT = 'Fuels show marketplace product',\n  FUELS_ADD_MARKETPLACE_PRODUCT = 'Fuels add marketplace product',\n  FUELS_EDIT_MARKETPLACE_PRODUCT = 'Fuels edit marketplace product',\n  FUELS_DELETE_MARKETPLACE_PRODUCT = 'Fuels delete marketplace product',\n  FUELS_SHOW_STOCK_UPDATE = 'Fuels show stock update',\n  FUELS_ADD_STOCK_UPDATE = 'Fuels add stock update',\n  SHOW_MARKETPLACES = 'Show marketplaces',\n  FUELS_SHOW_DEPOSIT = 'Fuels show deposit',\n  FUELS_ADD_DEPOSIT = 'Fuels add deposit',\n  FUELS_EDIT_DEPOSIT = 'Fuels edit deposit',\n  FUELS_DELETE_DEPOSIT = 'Fuels delete deposit',\n  FUELS_SHOW_SUPPLY_OFFER = 'Fuels show supply offer',\n  FUELS_ADD_SUPPLY_OFFER = 'Fuels add supply offer',\n  FUELS_EDIT_SUPPLY_OFFER = 'Fuels edit supply offer',\n  FUELS_SHOW_OPERATOR = 'Fuels show operator',\n  FUELS_ADD_OPERATOR = 'Fuels add operator',\n  FUELS_EDIT_OPERATOR = 'Fuels edit operator',\n  FUELS_DELETE_OPERATOR = 'Fuels delete operator',\n  FINTECH_BANK_ADMIN = 'Fintech Bank Admin',\n  FINTECH_BANK_USER = 'Fintech Bank User',\n  FINTECH_PIX_PAYMENT_REVERSAL = 'Pix Payment Reversal',\n  FINTECH_CREDIT_ADMIN = 'Fintech Credit Admin',\n  FINTECH_CREDIT_USER = 'Fintech Credit User',\n  FINTECH_BANK_ADMIN_ACCOUNTS_VIEW = 'Fintech Bank Admin - Accounts View',\n  FINTECH_CREDIT_ADMIN_PROPOSAL_NOT_CONFIRMED = 'Fintech Credit Admin - Proposal Not Confirmed',\n  FINTECH_CREDIT_ADMIN_CONTRACTS_FOLLOW_UP = 'Fintech Credit Admin - Contracts Follow-Up',\n  ADMIN_MARKEPLACE = 'Admin Markeplace',\n  APPROVE_REQUEST = 'Approve Request',\n  REPROVE_REQUEST = 'Reprove Request',\n  SHOW_REQUEST = 'Show Request',\n  SHOW_USER = 'Show User',\n  ADD_USER = 'Add User',\n  EDIT_USER = 'Edit User',\n  DELETE_USER = 'Delete User',\n  ADD_REGION = 'Add Region',\n  SHOW_REGION = 'Show Region',\n  EDIT_REGION = 'Edit Region',\n  ADD_LOCATION_SHIPPER = 'Add LocationShipper',\n  EDIT_LOCATION_SHIPPER = 'Edit LocationShipper',\n  SHOW_LOCATION_SHIPPER = 'Show LocationShipper',\n  DELETE_LOCATION_SHIPPER = 'Delete LocationShipper',\n  ADD_SCHEDULE = 'Add Schedule',\n  EDIT_SCHEDULE = 'Edit Schedule',\n  SHOW_SCHEDULE = 'Show Schedule',\n  ADD_VACANCIES_LOGISTIC = 'Add Vacancies Logistic',\n  ADD_VACANCIES_COMMERCIAL = 'Add Vacancies Commercial',\n  SHOW_VACANCIES_COMPLETE = 'Show Vacancies Complete',\n  ADD_SCHEDULE_OFF = 'Add Schedule Off',\n  SHOW_NEWS = 'Show News',\n  ADD_NEWS = 'Add News',\n  EDIT_NEWS = 'Edit News',\n  DELETE_NEWS = 'Delete News',\n  HISTORICAL_CHANGES_NEWS = 'Historical Changes News',\n  ADD_DISTRIBUTION_CENTER_COMPANY_CREDIT = 'Add DistributionCentersCompanyCredit',\n  EDIT_DISTRIBUTION_CENTER_COMPANY_CREDIT = 'Edit DistributionCentersCompanyCredit',\n  SHOW_DISTRIBUTION_CENTER_COMPANY_CREDIT = 'Show DistributionCentersCompanyCredit',\n  DELETE_DISTRIBUTION_CENTER_COMPANY_CREDIT = 'Delete DistributionCentersCompanyCredit',\n  ADD_DISTRIBUTION_CENTER_COMPANY_CREDIT_UNIT = 'Add DistributionCentersCompanyUnitCredit',\n  EDIT_DISTRIBUTION_CENTER_COMPANY_CREDIT_UNIT = 'Edit DistributionCentersCompanyUnitCredit',\n  SHOW_DISTRIBUTION_CENTER_COMPANY_CREDIT_UNIT = 'Show DistributionCentersCompanyUnitCredit',\n  DELETE_DISTRIBUTION_CENTER_COMPANY_CREDIT_UNIT = 'Delete DistributionCentersCompanyUnitCredit',\n  APPROVE_VECTOR = 'ApproveVector',\n  APPROVE_ETCD = 'ApproveETCD',\n  APPROVE_CARRIER = 'ApproveEmbarcador',\n  DELETE_PARAMETERS_ETCD = 'Delete Parameters',\n  SHOW_RECEPTION_PRODUCT = 'Show Reception Product',\n  EDIT_RECEPTION_PRODUCT = 'Edit Reception Product',\n  DELETE_RECEPTION_PRODUCT = 'Delete Reception Product',\n  ADD_RECEPTION_PRODUCT = 'Add Reception Product',\n  SHOW_DIGITAL_DISCHARGE = 'Show Digital Discharge',\n  SHOW_DIGITAL_DISCHARGE_FILES = 'Show Digital Discharge Files',\n  SHOW_DIGITAL_TRANSPORTATION = 'Show Digital Transportation',\n  FULL_ACCESS_DIGITAL_DISCHARGE = 'Full Acess Digital Discharge',\n  SHOW_ETCD = 'Show ETCD',\n  EDIT_ETCD = 'Edit ETCD',\n  DELETE_ETCD = 'Delete ETCD',\n  ADD_ETCD = 'Add ETCD',\n  SHOW_REGIONAL_ETCD = 'Show Regional ETCD',\n  SHOW_VIRTUAL_BRANCH = 'Show Virtual Branch',\n  EDIT_VIRTUAL_BRANCH = 'Edit Virtual Branch',\n  ADD_VIRTUAL_BRANCH = 'Add Virtual Branch',\n  DELETE_VIRTUAL_BRANCH = 'Delete Virtual Branch',\n  SHOW_PHYSICAL_BRANCH = 'Show Physical Branch',\n  EDIT_PHYSICAL_BRANCH = 'Edit Physical Branch',\n  ADD_PHYSICAL_BRANCH = 'Add Physical Branch',\n  DELETE_PHYSICAL_BRANCH = 'Delete Physical Branch',\n  SHOW_FISCAL_BRANCH = 'Show Fiscal Branch',\n  EDIT_FISCAL_BRANCH = 'Edit Fiscal Branch',\n  ADD_FISCAL_BRANCH = 'Add Fiscal Branch',\n  DELETE_FISCAL_BRANCH = 'Delete Fiscal Branch',\n  SHOW_MONITORING_ETCD = 'Show Monitoring ETCD',\n  ADD_PRODUCT_ETCD = 'Add Product ETCD',\n  EDIT_PRODUCT_ETCD = 'Edit Product ETCD',\n  SHOW_PRODUCT_ETCD = 'Show Product ETCD',\n  DELETE_PRODUCT_ETCD = 'Delete Product ETCD',\n  ADD_PARAMETERS_ETCD = 'Add Parameters ETCD',\n  EDIT_PARAMETERS_ETCD = 'Edit Parameters ETCD',\n  SHOW_PARAMETERS_ETCD = 'Show Parameters ETCD',\n  ADD_FREIGHT_ETCD = 'Add Freight ETCD',\n  SHOW_FREIGHT_ETCD = 'Show Freight ETCD',\n  APPROVE_ADJUSMENT_ETCD = 'Approve Adjusment ETCD',\n  REPROVE_ADJUSMENT_ETCD = 'Reprove Adjusment ETCD',\n  ADD_JUSTIFICATIVE_ETCD = 'Add Justificative ETCD',\n  EDIT_JUSTIFICATIVE_ETCD = 'Edit Justificative ETCD',\n  DELETE_JUSTIFICATIVE_ETCD = 'Delete Justificative ETCD',\n  APPROVE_RELEASE_ETCD = 'Approve Release ETCD',\n  REPROVE_RELEASE_ETCD = 'Reprove Release ETCD',\n  SHOW_ADVANCE_ETCD = 'Show Advance ETCD',\n  APPROVE_REQUESTS_ETCD = 'Approve Requests ETCD',\n  SHOW_SUPPLY = 'Show Supply',\n  APPROVE_DISCHARGE_PAYMENT = 'Aprovar quitacao',\n  APPROVE_ADVANCE_PAYMENT = 'Aprovar adiantamento',\n  APPROVE_ENGINE_PAYMENT = 'Aprovar motor de pagamento',\n  EXTRACT_THIRD = 'Extrato terceiro',\n  HISTORICAL_CHANGES_GROUPS = 'HistoricalChangesGroups',\n  DELETE_ONLY_MEMBER_GROUPS = 'Delete Only Member Groups',\n  ADD_ONLY_MEMBER_GROUPS = 'Add Only Member Groups',\n  SHOW_GROUPS = 'Show Groups',\n  DELETE_GROUPS = 'Delete Groups',\n  EDIT_GROUPS = 'Edit Groups',\n  ADD_GROUPS = 'Add Groups',\n  ADD_UPDATE_GEOFENCE = 'Add Update Geofence',\n  SHOW_GEOFENCE = 'Show Geofence',\n  SHOW_GEOFENCE_LOG = 'Show Geofence Log',\n  HISTORICAL_CHANGES_GEOFENCE = 'Historical Changes Geofence',\n  SHOW_DRIVER_LOG = 'Show Driver Log',\n  UPDATE_CHECKIN_CHECKOUT = 'Update CheckIn CheckOut',\n  AUTOMATIC_CHECKIN = 'Automatic CheckIn',\n  SHOW_FILTERS_MONTHLY_RECEPTION = 'Show Filters Monthly Reception',\n  VIEW_ROUTE_TRIP = 'View Route Trip',\n  SHOW_ROUTE = 'Show Route',\n  EDIT_ROUTE = 'Edit Route',\n  SHOW_RISK_MANAGEMENT = 'Show Risk Management',\n  ADD_RISK_MANAGEMENT = 'Add Risk Management',\n  EDIT_RISK_MANAGEMENT = 'Edit Risk Management',\n  DELETE_RISK_MANAGEMENT = 'Delete Risk Management',\n  DIGITAL_DISCHARGE_BASIC_DATA = 'Quitacao Digital Basic Data',\n  DIGITAL_DISCHARGE_ETCD_APPROVER = 'Quitacao Digital ETCD Aprovador',\n  DIGITAL_DISCHARGE_ETCD_APPROVER_MANAGEMENT = 'Quitacao Digital ETCD Aprovador Gestor',\n  DIGITAL_DISCHARGE_VECTOR_APPROVER = 'Quitacao Digital Vector Aprovador',\n  DIGITAL_DISCHARGE_VECTOR_APPROVER_MANAGEMENT = 'Quitacao Digital Vector Aprovador Gestor',\n  DIGITAL_DISCHARGE_APPROVE_SAP = 'Quitacao Digital Aprovador Contingencia Sap',\n  PAYMENT_FREIGHT_ADJUST_FREIGHT_VALUE = 'Pagamento Frete Ajustar Valor Frete',\n  SHOW_MESSAGE_CUSTOM = 'Show Messages Custom',\n  DELETE_MESSAGE_CUSTOM = 'Delete Messages Custom',\n  ADD_MESSAGE_CUSTOM = 'Add Messages Custom',\n  EDIT_MESSAGE_CUSTOM = 'Edit Messages Custom',\n  RECEPTION_WITHOUT_SCHEDULING = 'Reception Without Scheduling',\n  BANK_EDIT = 'Edit',\n  BANK_REGISTER_FULL = 'Cadastro Full',\n  SEARCH_CALENDAR_FULL = 'Pesquisar Agenda Full',\n  SHOW_MOVEMENT_ETCD = 'Show Movement Etcd',\n  CREATE_AND_EDIT_NPS = 'Create and edit NPS',\n  READ_NPS_INFORMATION = 'Read NPS information',\n  TEX_ONBOARDING_TRACKING = 'OnboardingTracking',\n  TEX_CARRIER_ASSOCIATION_TRACKING = 'Carrier Association Tracking',\n  BIDDING_PARAMETERS = 'Bidding Parameters',\n  DRIVER_SCORE_METRICS_ADMIN = 'Driver Score Metrics Admin',\n  SHOW_DOCK_BUILDING = 'Show Dock Building',\n  ADD_DOCK_BUILDING = 'Add Dock Building',\n  EDIT_DOCK_BUILDING = 'Edit Dock Building',\n  EDIT_DOCK = 'Edit Dock',\n  FRIENDLY_TRIP = 'Friendly Trip',\n  CANCEL_FRIENDLY_TRIP = 'Cancelar Viagem Amiga',\n  SHOW_FRIENDLY_TRIP = 'Visualizar Viagem Amiga',\n  CREATE_FRIENDLY_TRIP = 'Solicitar Viagem Amiga',\n  ADD_OBSERVATION = 'Add Observation',\n  SHOW_OBSERVATION = 'Show Observation',\n  EDIT_OBSERVATION = 'Edit Observation',\n  DELETE_OBSERVATION = 'Delete Observation',\n  CLASSIFIER_PARAMETERS_FRIENDLY_TRIP = 'Parâmetros de classificador',\n  SCORE_REPORT_FRIENDLY_TRIP = 'Relatório de Pontuação',\n  SEND_NFS_ETCD = 'Send NFs ETCD',\n  SHOW_ANTECITABLE_RECEVEIBLES = 'Vizualizar antecipacao de recebiveis',\n  SHOW_LOG_ANTECITABLE_RECEVEIBLES = 'Vizualizar log antecipacao de recebiveis',\n  AUTOMATIC_DISCLOSURE_CONFIGURATIONS = 'Automatic Disclosure Configurations',\n  SHOW_PAYMENT_SCHEDULING_DETAIL = 'Show Payment Scheduling Detail',\n  SCHEDULE_UPDATE_CHECKIN_CHECKOUT = 'Schedule Update CheckIn CheckOut',\n  SHOW_PARAMETERS_CANCEL_TRIPS = 'show Parameters Cancel Trips',\n  EDIT_PARAMETERS_CANCEL_TRIPS = 'Edit Parameters Cancel Trips',\n  SHOW_PARAMETERS_DIVULGATION_WEB = 'Show Parameters Divulgation Web',\n  EDIT_PARAMETERS_DIVULGATION_WEB = 'Edit Parameters Divulgation Web',\n  SHOW_PRICE_TAKING = 'Show PriceTaking',\n  SHOWTABLE_PRICE_TAKING = 'ShowTable PriceTaking',\n  SHOWTABLE_PRICE_TAKING_EXCEL = 'ShowTable PriceTakingExcel',\n  SEND_OFFER_PRICE_TAKING = 'Send Offer PriceTaking',\n  CHANGE_STATUS_PRICE_TAKING = 'Change Status PriceTaking',\n  SHOWTABLE_PRICE_TAKING_HISTORY = 'ShowTable PriceTaking History',\n  SHOWTABLE_PRICE_TAKING_LOG = 'ShowTable PriceTaking Log',\n  SAVE_PRICE_TAKING = 'Save PriceTaking',\n  SHOW_SHIPPING_ORIGIN = 'Show Shipping Origin',\n  SHOW_SHIPPING_COMBINED = 'Show Shipping Combined',\n  SHOW_SHIPPING_CONTINUOUS = 'Show Shipping Continuous',\n  SHOW_LOYALTY = 'Show Loyalty',\n  SHOW_PAYMENT_PARAMETERS = 'Show Payment Parameters',\n  COCKPIT_SUMMARY = 'Cockpit Summary',\n  COCKPIT_REGISTRATION = 'Cockpit Registration',\n  COCKPIT_BANK = 'Cockpit Bank',\n  COCKPIT_CREDIT = 'Cockpit Credit',\n  COCKPIT_PA = 'Cockpit PA',\n  COCKPIT_LOG = 'Cockpit Log',\n  CREATE_UPDATE_CARGO_MATCH_VALIDATIONS = 'Create Update Cargo Match Validations',\n  SHOW_CARGO_MATCH_ETCD_VALIDATIONS = 'Show Cargo Match Etcd Validations',\n  SHOW_CARGO_MATCH_ETCD_VALIDATIONS_HISTORY = 'Show Cargo Match Etcd Validations History',\n  PARAMETERIZE_LOT_RANGE_GDV = 'Parameterize Lot Range',\n  PERFORM_CHECKIN_CHECKOUT_GDV = 'Perform Checkin CheckOut.',\n  UPLOAD_DOCUMENTS_GDV = 'Upload Documents',\n  FIX_DOCUMENTS_GDV = 'Fix Documents',\n  VALIDATE_DOCUMENT_UPLOAD_GDV = 'Validate Document Upload',\n  REQUEST_CORRECTION_DOCUMENT_INFORMATION_GDV = 'Request correction of document information',\n  UPLOAD_CTE_MDFE_GDV = 'Upload CTE MDFE',\n  APPROVE_CANCELLATION_LOAD_ORDER_GDV = 'Approve cancellation of Load Order',\n  SHOW_FREIGHT_SIMULATOR_ETCD = 'Show Freight Simulator Etcd',\n  CREATE_UPDATE_FREIGHT_SIMULATOR_ETCD = 'Create Update Freight Simulator Etcd',\n  APPROVE_REPROVE_ETCD_SIMULATION = 'Approve Reprove Etcd Simulation',\n  ADVANCE_AND_DISCHARGE_PAYMENT = 'Advance and discharge payment',\n  PAYMENT_ENGINE = 'Payment Engine',\n  PAYMENT_STATEMENT = 'Payment Statement',\n  EDIT_CARRIER_SUSTAINABLE = 'Edit Carrier Sustainable',\n  SHOW_CARRIER_SUSTAINABLE = 'Show Carrier Sustainable',\n  SHOW_ORDER_TRAKING = 'Show OrderTraking',\n  SHOW_ORDER_TRAKING_EXCEL = 'Show OrderTrakingExcel',\n  EDIT_ORDER_TRAKING_CONFIG = 'Edit OrderTrakingConfig',\n  SEND_DOCUMENTS_TRIP_MANUAL = 'Send Documents Trip Manual',\n  DELETE_DOCUMENTS_TRIP_MANUAL = 'Delete Documents Trip Manual',\n  SEND_DOCUMENTS_CARGO_MANUAL = 'Send Documents Cargo Manual',\n  ADD_POOLOFFERT = 'Add PoolOffert',\n  DELETE_POOLOFFERT = 'Delete PoolOffert',\n  SHOW_POOLOFFERT = 'Show PoolOffert',\n  EDIT_POOLOFFERT = 'Edit PoolOffert',\n  DOCUMENTARY_IRREGULARITY = 'documentaryIrregularity',\n  DOCUMENTARY_IRREGULARITY_FULL_SEARCH = 'documentaryIrregularityFullSearch',\n  BLOCK_USER_ACCESS = 'Block User Access',\n  SHOW_DRIVER_DASHBOARD = 'Show Driver Dashboard',\n  ENABLE_DISABLE_BROADCAST_GRID = 'Enabled-Disabled broadcast in grid',\n  SHOW_BIDDING = 'Show Bidding',\n  ADD_FREIGHT_RATE = 'Add Freight Rate',\n  ADD_MANUAL_CARGO = 'Add Manual Cargo',\n  EDIT_TRIP_OFFER = 'Trip Offer Edit',\n  SHOW_TRIP_OFFER = 'Trip Offer Show',\n  SHOW_PEND_SERVICES = 'Show Pend Services',\n  SHOW_PEND_SERVICES_ONLY = 'Show Pend Services Only',\n  CANCEL_TRIP_OFFER_CARGO_MATCH = 'Trip Offer Cargo Match Cancel',\n  CREATE_EDIT_ETCD_MANUAL = 'Create Edit Etcd Manual',\n  DUPLICATE_LOT = 'Duplicar Lote',\n  ADD_LOT_NORMAL = 'Add Lot Normal',\n  DUPLICATE_CARGO = 'Duplicar Carga',\n  DISCLOSURE_IN_MASS = 'Disclosure En Masse',\n  EDIT_BIDDING = 'Edit Bidding',\n  SHOW_CHECKLIST_PARAMETER = 'Show Checklist Parameter',\n  ADD_CHECKLIST_PARAMETER = 'Add Checklist Parameter',\n  EDIT_CHECKLIST_PARAMETER = 'Edit Checklist Parameter',\n  DELETE_CHECKLIST_PARAMETER = 'Delete Checklist Parameter',\n  SHOW_CHECKLIST_PARAMETER_HISTORY = 'Show Checklist Parameter History',\n  ADD_CHECKLIST_PARAMETER_TYPE = 'Add Checklist Parameter Type',\n  ADD_MAIL_LOTS = 'Add Mails Lots',\n  ADD_ROUTE = 'Add Route',\n  ADD_CASH_ADVANCE = 'Add Cash Advance',\n  ADD_HAS_TOLL = 'Add Has Toll',\n  EDIT_FREIGHT_RATE = 'Edit Freight Rate',\n  ADD_FREIGHT_RATE_SON = 'Add Freight Rate Son',\n  EDIT_FREIGHT_RATE_SON = 'Edit Freight Rate Son',\n  CHANGE_IS_POC = 'ChangeIsPOC',\n  APPROVE_BIDDING_CLOSURE = 'Aprovar encerramento do Bidding',\n  APPROVE_BIDDING_WITH_GREATER_VALUE = 'Aprovar Bidding com valor maior que o menor valor',\n  VEHICLE_SHOW_SHIPPER_PETROBRAS = 'Vehicle Show Shipper Petrobras',\n  DRIVER_SHOW_SHIPPER_PETROBRAS = 'Driver Show Shipper Petrobras',\n  CARRIER_SHOW_SHIPPER_PETROBRAS = 'Carrier Show Shipper Petrobras',\n  SHOW_CARRIER_DOCUMENTS = 'Show Carrier Documents',\n  EDIT_CARRIER_DOCUMENTS = 'Edit Carrier Documents',\n  CARRIER_VALIDATE_DOCUMENTS = 'Carrier Validate Documents',\n  SHOW_VEHICLE_DOCUMENTS = 'Show Vehicle Documents',\n  SAVE_VEHICLE_DOCUMENTS = 'Save Vehicle Documents',\n  VEHICLE_VALIDATE_DOCUMENTS = 'Vehicle Validate Documents',\n  SAVE_DRIVER_DOCUMENTS = 'Save Driver Documents',\n  SHOW_DRIVER_DOCUMENTS = 'Show Driver Documents',\n  DRIVER_VALIDATE_DOCUMENTS = 'Driver Validate Documents',\n  ONLY_SHOW_PROFILE_PETROBRAS = 'Only Show Profile Petrobras',\n  SHOW_PARAMETERS_CARRIER = 'Show Parameters Carrier',\n  SAVE_CARRIERS_DOCUMENTS = 'Save Carriers Documents',\n  APRV_Validation = 'APRV_Validation',\n  SHOW_PLANNED_TRIPS = 'Show Planned Trips',\n  ADD_PLANNED_TRIPS = 'Add Planned Trips',\n  ADD_MONITORING_PLANNED_TRIPS = 'Add Monitoring Planned Trips',\n  SHOW_MONITORING_PLANNED_TRIPS = 'Show Monitoring Planned Trips',\n  SHOW_DRIVER_TRIP_INFO_DETAIL = 'Show Driver Trip Info Detail',\n  MANUAL_CHECKLIST_APPLICATION = 'Manual Checklist Application',\n  SUPPLIER_UPDATE_CHECKIN_CHECKOUT = 'Supplier Update CheckIn CheckOut',\n  RETROACTIVE_STEP_ADVANCEMENT = 'Retroactive Show',\n  EDIT_CONFIGURATION = 'Edit Configuration',\n  DELETE_ROTOGRAM = 'Delete Rotogram',\n  ADD_OBSERVATION_EVENT = 'Add Observation Event',\n  APPROVED_EVENT = 'Approved Event',\n  SHOW_ROUTE_PLANNED_TRIP = 'Show Route Planned Trip',\n  NEW_ROUTE_PLANNED_TRIP = 'New Route Planned Trip',\n  EDIT_ROUTE_PLANNED_TRIP = 'Edit Route Planned Trip',\n  NEW_ROTOGRAM = 'New Rotogram',\n  SHOW_ROTROGRAM = 'Show Rotogram',\n  LOW_FUEL_STOCK_RECEPTION_PRODUCT = 'Low Fuel Stock Reception Product',\n  SHOW_TELEMETRY_POINT = 'Show TelemetryPoints',\n  ADD_BLOCK_HAZMAT = 'Add Block Hazmat',\n  SHOW_BLOCK_HAZMAT = 'Show Block Hazmat',\n  EDIT_BLOCK_HAZMAT = 'Edit Block Hazmat',\n  CONFIGURE_APPROVAL_AUTHORITY = 'Configure Approval Authority',\n  SHOW_APPROVAL_AUTHORITY_CONFIG = 'Show Approval Authority Config',\n  BUY_VALE_PEDAGIO = 'Buy Vale Pedagio',\n  CANCEL_VALE_PEDAGIO = 'Cancel Vale Pedagio',\n  SHOW_INFO_VALE_PEDAGIO = 'Show Info Vale Pedagio',\n  SHOW_ORDER_TRAKING_UNTIL_TRIP_EN = 'Show OrderTraking Until Trip EN',\n  AUDIT_CHECKLIST = 'Audit CheckList',\n  ADD_SURVEY_DRIVER = 'Add Survey Driver',\n  SHOW_SURVEY_DRIVER = 'Show Survey Driver',\n  EDIT_SURVEY_DRIVER = 'Edit Survey Driver',\n  DELETE_SURVEY_DRIVER = 'Delete Survey Driver',\n  SHOW_SHIPPING_FREIGHT = 'Show Shipping Freight',\n  MANAGE_SHIPPING_FREIGHT = 'Manage Shipping Freight',\n  UPDATE_TRAVEL_APPROVAL = 'Update Travel Approval',\n  CONFIGURE_WAITING_LINES = 'Configure Waiting Lines',\n  ADD_WAITING_LINES = 'Add Waiting Lines',\n  SHOW_WAITING_LINES = 'Show Waiting Lines',\n  CALL_DRIVER_WAITING_LINES = 'Call Driver Waiting Lines',\n  MONITORING_HANDLE_EVENT = 'Monitoring Handle Event',\n  MONITORING_JUSTIFY_EVENT = 'Monitoring Justify Event',\n  APPROVE_POOL_BIDDING_CLOSURE = 'Aprovar Encerramento Pool Bidding',\n  APPROVE_POOL_BIDDING_LESSER_VALUE = 'Aprovar Bidding Pool Com Valor Maior Que Menor Valor',\n  SHOW_GR_VECTOR_PARAMETERS = 'Show GR Vector Parameters',\n  ACTIVATE_OR_INACTIVATE_GR_PARAMETERS = 'Activate or Inactivate GR Parameters',\n  UPDATE_GR_PARAMETERS = 'Update GR Parameters',\n  CREATE_GR_VECTOR = 'Create GR Vector',\n  APPROVE_OR_DISAPROVE_GR = 'Approve Or Disaprove Gr',\n  SHOW_GR_VECTOR = 'Show GR Vector',\n  ADD_DRIVER_MULTICARRIER = 'Add Driver MultiCarrier',\n  ADD_VEHICLE_MULTICARRIER = 'Add Vehicle MultiCarrier',\n  APPROVE_OR_DISAPPROVE_ANALYSIS = 'Approve Or Disapprove Analysis',\n  VIEW_LOCATION_GROUP = 'View Location Group',\n  CREATE_LOCATION_GROUP = 'Create Location Group',\n  EDIT_LOCATION_GROUP = 'Edit Location Group',\n  DEACTIVATE_LOCATION_GROUP = 'Deactivate Location Group',\n  DELIVERY_TOLL_CARD = 'Delivery Toll Card',\n  SHOW_TOLL_CARD = 'View Toll Card',\n  EDIT_TOLL_CARD = 'Edit Toll Card',\n  SENT_TO_SAP_SUPPLY = 'Sent To Sap Supply',\n  SAVE_NFSAP_DOCUMENTS = 'Save NFSap Documents',\n  SHOW_LOT_PARAMETER_SHIPPER = 'Show Lot Parameter Shipper',\n  SAVE_LOT_PARAMETER_SHIPPER = 'Save Lot Parameter Shipper',\n  SHOW_CARGO_PARAMETER_SHIPPER = 'Show Cargo Parameter Shipper',\n  SAVE_CARGO_PARAMETER_SHIPPER = 'Save Cargo Parameter Shipper',\n  SHOW_GENERAL_PARAMETERS = 'Show General Parameters',\n  SHOW_DISTRIBUTION_OF_VACANCIES = 'Show Distribution Of Vacancies',\n  SHOW_SCHEDULE_SCHEDULING_MANAGEMENT = 'Show Schedule Scheduling Management',\n  SHOW_HISTORICAL_SCHEDULING_MANAGEMENT = 'Show Historical Scheduling Management',\n  DELETE_SUPPLIER_SCHEDULING_MANAGEMENT = 'Delete Supplier Scheduling Management',\n  EDIT_VECTOR_SHIFT_VACANCIES = 'Edit Vector Shift Vacancies',\n  SHOW_ESTIMATED_TIME_TO_ARRIVE = 'Show Estimated Time To Arrive',\n  EDIT_ESTIMATED_TIME_TO_ARRIVE = 'Edit Estimated Time To Arrive',\n  SHOW_ETA_VECTOR = 'Show Eta Vector',\n  SHOW_PROFILEUSER = 'Show ProfileUser',\n  EDIT_PROFILEUSER = 'Edit ProfileUser',\n  CREATE_PROFILEUSER = 'Create ProfileUser',\n  ACTIVATE_PROFILEUSER = 'Activate ProfileUser',\n  DEACTIVATE_PROFILEUSER = 'Deactivate ProfileUser',\n  ADD_SUPPLY_MANUAL = 'Add Supply Manual',\n  SHOW_ISS_PARAMS = 'Show Iss Param',\n  SHOW_PGR_INSURANCE = 'Show PGR Insurance',\n  ADD_PGR_CONTRACTS = 'Add PGR Contracts',\n  DELETE_PGR_CONTRACTS = 'Delete PGR Contracts',\n  ADD_PGR_RULES = 'Add PGR Rules',\n  DELETE_PGR_RULES = 'Delete PGR Rules',\n  ADD_PGR_CONFIGURATIONS = 'Add PGR Configurations',\n  CREATE_ISS_PARAMS = 'Create Iss Param',\n  EDIT_ISS_PARAMS = 'Edit Iss Param',\n  DELETE_LOCATION_SHIFT_PRIORITY = 'Delete Location Shift Priority',\n  ADD_LOCATION_SHIFT_PRIORITY = 'Add Location Shift Priority',\n  SAVE_CLIENT_ORDER_TRACKING = 'Save Client Order Tracking',\n  SHOW_CLIENT_ORDER_TRACKING = 'Show Client Order Tracking',\n  SHOW_PARAMETER_ORDER_TRACKING = 'Show Parameter Order Tracking',\n  SAVE_PARAMETER_ORDER_TRACKING = 'Save Parameter Order Tracking',\n  SHOW_PARAMETERS_MONITORING = 'Show Parameters Monitoring',\n  ADD_PARAMETERS_MONITORING = 'Add Parameters Monitoring',\n  FINALIZE_PLANNED_TRIP_PENDING_FINISH = 'Finalize Planned Trip Pending Finish',\n  SHOW_PLANNED_TRIP_LOGS = 'Show Planned Trip Logs',\n  CONTROL_CADASTRO_EXCEL_EXPORT = 'Control Cadastro Excel Export',\n  OPEN_SHIFTS_MANUALLY = 'Open Shifts Manually',\n  OPEN_PROGRAMABILITY_SHIFT = 'Open Programability Shift',\n  SHOW_TRIPS_REFUSED = 'Show Trips Refused',\n  SHOW_GTFROTA_PENDING_SUPPLY_LOG = 'Show GtFrotaPendingSupplylog',\n  CREDIT_LIMIT_MANAGEMENT = 'Credit Limit Management',\n  LOCATION_SCHEDULE_INTEGRATION_EDIT = 'Location Schedule Integration Edit',\n  LIST_TOLL_CARD = 'List Toll Card',\n  LINK_TOLL_CARD = 'Link Toll Card',\n  SHOW_TRIP_VECTOR_PAY = 'Exibir Parâmetros Viagem',\n  EDIT_TRIP_VECTOR_PAY = 'Editar Parâmetros Viagem',\n  N2_APPROVAL_HISTORICAL_LINKAGE_LOT = 'N2 Approval Historical Linkage Lot',\n  N1_APPROVAL_HISTORICAL_LINKAGE_LOT = 'N1 Approval Historical Linkage Lot',\n  SHOW_SHIPPER_LOTCADENCECONFIGURATION = 'Show ShipperLotCadenceConfiguration',\n  EDIT_SHIPPER_LOTCADENCECONFIGURATION = 'Edit ShipperLotCadenceConfiguration',\n  SHOW_LOTCADENCECONFIGURATION = 'Show LotCadenceConfiguration',\n  EDIT_LOTCADENCECONFIGURATION = 'Edit LotCadenceConfiguration',\n  EDIT_LOTDAILYCADENCES = 'Edit LotDailyCadences',\n  PERMISSION_N2_CHANGE_FREIGHT = 'Permission N2 Change Freight',\n  PERMISSION_N3_CHANGE_FREIGHT = 'Permission N3 Change Freight',\n  PERMISSION_N4_CHANGE_FREIGHT = 'Permission N4 Change Freight',\n  CLEAN_OLD_LOTDAILYCADENCES = 'Clean Old LotDailyCadences',\n  SHOW_CONTROL_CARD_ADMIN = 'Toll Card Admin',\n  SHOW_CONTROL_CARD_PARTNER = 'Toll Card Partner',\n  SHOW_HEAT_MAP = 'Show Heat Map',\n  SHOW_STATUS_MAP = 'Show Status Map',\n  BUNGE_REFUND_TOTAL = 'Bunge Estorno Total',\n  TOLL_MANAGEMENT = 'Gestão de Pedágio',\n  DASHBOARD_VECTORPAY = 'Dashboard VectorPay',\n  BUNGE_REFUND_PARTIAL = 'Bunge Estorno Parcial',\n  ADD_REFUND_PARTIAL = 'AdicionarEstornoParcial',\n  SEARCH_PAYMENT_TAG_HISTORY = 'Search Tag History',\n  CAN_ADD_AGGREGATOR = 'Adicionar Agenciados',\n  CAN_ACTIVATE_AGGREGATOR = 'Ativar Agenciadores',\n  SHOW_SPLIT_FREIGHT = 'Visualizar Split de Frete',\n  EDIT_SPLIT_FREIGHT = 'Editar Split de Frete',\n  EDIT_PARAM_VECTORPAY = 'Editar Parâmetros VectorPay',\n  SHOW_PARAM_VECTORPAY = 'Visualizar Parâmetros VectorPay',\n  EDIT_PARAM_TOLL = 'Parametros Pedagio',\n  CADOC_4111 = 'Documento De Saldos Contábeis Diários 4111',\n  CADOC_1201 = 'Documento De Saldos Contábeis Diários 1201',\n  EDIT_SCHEDULE_CHECKED_IN = 'Edit Schedule (Checked-in)',\n  SHOW_IRREGULARITY = 'Show Irregularity',\n  LOG_DISCHARGE_PAYMENT = 'Log Quitacao',\n  EDIT_ISS = 'Editar ISS',\n  EDIT_ICMS = 'Editar ICMS',\n  CREATE_ICMS_PARAMS = 'Create Icms Param',\n  EDIT_ICMS_PARAMS = 'Edit Icms Param',\n  SHOW_ICMS_PARAMS = 'Show Icms Param',\n  APPROVE_PAYMENT_CARRIER_ADMIN = 'Approve Payment - Carrier Admin',\n  REQUEST_GR_RESULT_CHANGE = 'Request Gr Result Change',\n  APPROVE_OR_DISAPPROVE_REQUEST_GR_RESULT_CHANGE = 'Approve Or Disaprove Request Gr Result Change',\n  SHOW_GR_VECTOR_PANEL = 'Show GR Vector Panel',\n  CAN_REQUEST_FREIGHT_AGENT = 'Pode Adicionar Agenciados',\n  CAN_ACTIVATE_FREIGHT_AGENT = 'Pode Habilitar Agentes De Frete',\n  INDICATE_TRIP_DELIVERY = 'Indicate Trip Delivery',\n  INDICATE_TRIPOFFER_DELIVERY = 'Indicate TripOffer Delivery',\n  POWER_BI_VISUALIZAR_DASH = 'PowerBi Visualizar Dash',\n  SHOW_TRACK_PASS = 'Show Track Pass',\n  SHOW_CARRIER_NEW = 'Show Carrier New',\n  SHOW_VEHICLE_NEW = 'Show Vehicle New',\n  SHOW_COKPIT = 'Show Cokpit',\n  SHOW_AUTOMATIC_DIVULGATION_LOTS = 'Show Automatic Divulgation lots',\n  SHOW_PANEL = 'Show Panel',\n  ACOMPANHAMENTO_DE_BOLETO = 'Acompanhamento De Boleto',\n  CARD_MANAGEMENT = 'CardManagement',\n  SHOW_TRIP = 'Show Trip',\n  SHOW_DIGITAL_DISCHARGE_VECTORPAY = 'Show Digital Discharge VectorPay',\n  SHOW_REQUEST_BREAK_ALLOWANCE = 'Exibir Solicitações',\n  CREATE_REQUEST_BREAK_ALLOWANCE = 'Criar Solicitações',\n  CREATE_APPROVERS_REQUEST_BREAK_ALLOWANCE = 'Cadastrar Aprovadores',\n  CREATE_REASONS_REQUEST_BREAK_ALLOWANCE = 'Cadastrar Motivos',\n  APPROVE_REJECT_REQUEST_BREAK_ALLOWANCE = 'Aprovar/Rejeitar Solicitações',\n  SHOW_REQUEST_FINANCIAL_DISPUTE = 'Exibir Solicitações Disputa Financeira',\n  CREATE_REQUEST_FINANCIAL_DISPUTE = 'Criar Solicitações Disputa Financeira',\n  APPROVE_PAY_FINANCIAL_DISPUTE = 'Aprovar/Pagar Disputa Financeira',\n  CREATE_APPROVERS_FINANCIAL_DISPUTE = 'Cadastrar Aprovadores Disputa Financeira',\n  CREATE_REASONS_FINANCIAL_DISPUTE = 'Cadastrar Motivos Disputa Financeira',\n  SHOW_REQUEST_PAYMENT_AUTHORIZATION = 'AP - Exibir Solicitações',\n  CREATE_REQUEST_PAYMENT_AUTHORIZATION = 'AP - Criar Solicitações',\n  CREATE_APPROVERS_PAYMENT_AUTHORIZATION = 'AP - Cadastrar Aprovadores',\n  CREATE_REASONS_PAYMENT_AUTHORIZATION = 'AP - Cadastrar Motivos',\n  APPROVE_REJECT_REQUEST_PAYMENT_AUTHORIZATION = 'AP - Aprovar/Rejeitar Solicitações',\n  SHOW_DIGITAL_SHIPPER = 'Show Digital Shipper',\n  RELATORIO_DE_FRETE_VECTORPAY = 'Relatorio De Frete VectorPay',\n  SECURITY_TRAINING = 'Security Training',\n  SHOW_SCHEDULE_OFF_PRODUCTS = 'Show Schedule Off Products',\n  GR_VECTOR_CENTRAL = 'Gr Vector Central',\n  GR_VECTOR_BACKOFFICE = 'Gr Vector Backoffice',\n  GR_VECTOR_ADMIN = 'Gr Vector Admin',\n  REPROCESS_GR_REGISTRATION_PENDING = 'Reprocess Gr Registration Pending',\n  REPROCESS_GR_ANALYSIS_REQUIRED = 'Reprocess Gr Analysis Required',\n  CHANGE_MINIMAL_FREIGHT_OPTION = 'Pode Alterar Configuracao Tabela Minima',\n  FREIGHT_AGENT_REPORT = 'Freight Agent Report',\n  TAX_REVENUE_REPORT = 'Relatorio Receita de Taxas',\n  SHOW_ORDER_APPROVAL = 'Consulta de Pagamento',\n  SHOW_ACCOUNTS_RECEIVABLE = 'Conciliacao de Contas',\n  SHOW_VOLUME_ESTIMATE = 'Cadastro Estimativa Por Volume',\n  CAN_CHANGE_VALUE_SELECTIVE = 'Pode Alterar Valor Seletivo',\n  TRIP_OFFER_CANCEL = 'Trip Offer Cancel',\n  SCHEDULE_PRODUCT_QUANTITIES = 'Schedule Product Quantities',\n  ADD_MANUAL_CARGO_EXCEL = 'Add Manual Cargo Excel',\n  SHOW_MANUAL_CARGO_EXCEL_RESULT = 'Show Manual Cargo Excel Result',\n  APPROVER_N2_LOT_DIVULGATION = 'Approver N2 Lot Divulgation',\n  APPROVER_N2_LOT_PARTNER = 'Approver N2 Lot Partner',\n  CREATE_TRIPS_ROUTES_FROM_TRIP_OFFER = 'Create trips routes from TripOffer',\n  TRIPS_LC = 'Trips LC',\n  SCHEDULE_TRIPS = 'Agendar Viagens',\n  TRIPS_PAGBEM = 'Trips Pagbem',\n  CHARGING_INSTRUCTIONS = 'Charging Instructions',\n  BYPASS_ADVANCE_PARAMETER_LOTS = 'Desconsiderar Parâmetro de Adiantamento Lots',\n  BYPASS_ADVANCE_PARAMETER_CARGO = 'Desconsiderar Parâmetro de Adiantamento Cargo',\n  MANAGE_MY_LOTS = 'Manage My Lots',\n  SHOW_SEGMENTS = 'Show Segments',\n  EDIT_SEGMENTS = 'Edit Segments',\n  VISUALIZE_PMF_ALERT = 'Visualizar Alerta PMF',\n  SHOW_LOT_LOCATIONS_ETCD = 'Show Lot Locations Etcd',\n  SHOW_DISCLOSURE_PANEL = 'Show Disclosure panel',\n  SHOW_DASHBOARD_LOT_DIVULGATION = 'Show DashboardLotDivulgation',\n  VISUALIZE_PMF_IN_LOT = 'Visualizar Tabela Minima De Frete No Lote',\n  SHOW_PAYMENT_DEDUCTION = 'Payment Deduction',\n  ENABLED_CHANGE_FREIGHTRATE_IN_LOT_MASSIVELY = 'Enabled Change FreightRate In Lot Massively',\n  RECEIVABLE_CHARGE = 'ReceivableCharge',\n  CAMPAIGN = 'Campanha',\n  LINK_GENERATOR = 'Gerador De Link',\n  ADD_BLOCK_CARRIER = 'Add Block Carrier',\n  SHOW_BLOCK_CARRIER = 'Show Block Carrier',\n  EDIT_BLOCK_CARRIER = 'Edit Block Carrier',\n  ADD_BLOCK_DRIVER = 'Add Block Driver',\n  SHOW_BLOCK_DRIVER = 'Show Block Driver',\n  EDIT_BLOCK_DRIVER = 'Edit Block Driver',\n  ADD_BLOCK_VEHICLE = 'Add Block Vehicle',\n  SHOW_BLOCK_VEHICLE = 'Show Block Vehicle',\n  EDIT_BLOCK_VEHICLE = 'Edit Block Vehicle',\n  ADD_BLOCK_LOCATION = 'Add Block Location',\n  SHOW_BLOCK_LOCATION = 'Show Block Location',\n  EDIT_BLOCK_LOCATION = 'Edit Block Location',\n  ADD_BLOCK_REASON = 'Add Block Reason',\n  SHOW_BLOCK_REASON = 'Show Block Reason',\n  EDIT_BLOCK_REASON = 'Edit Block Reason',\n  ADD_INDIVIDUAL_VEHICLE = 'Add Individual Vehicle',\n  SHOW_LIST_APPROVERS = 'Visualizar lista de aprovadores',\n  SCHEDULING_SUBJECT_TO_LOADING_ORDER = 'Scheduling Subject To Loading Order',\n  CAN_UPDATE_VALUES_VALIDATION = 'Pode Atualizar Valores Validacao',\n  CAN_RESET_VALIDATION = 'Pode Resetar Validacao',\n  VIEW_RESTRICTION_COMMUNICATION_LOG = 'Restrição de Visualização em Communication Logs',\n  MANAGE_TRAINING = 'Gerenciar treinamento',\n  VIEW_TRAINING = 'Visualizar treinamento',\n  SHOW_TRAINING_REPORT = 'Relatorio de treinamento',\n  EDIT_TRAINING = 'Editar treinamento',\n  ACTIVE_TRAINING = 'Ativar treinamento',\n  CREATE_TRAINING = 'Criar treinamento',\n  VIEW_TRAINING_HISTORY = 'Visualizar Historico Treinamento',\n  ENABLED_TO_SUBDISTRIBUTE_QUOTA = 'Enabled To Subdistribute Quota',\n  CONFIG_PARAM_CTE_COMPLEMENT = 'Pode Configurar Parametros Cte Complementar',\n  CAN_REQUEST_CTE_COMPLEMENT = 'Pode Solicitar Complemento',\n  CAN_EXPORT_APPROVALS_EXCEL = 'Pode Exportar Excel Aprovacoes',\n  CAN_VIEW_CTE_COMPLEMENT_HISTORY = 'Pode Ver Historico Cte Complementar',\n  CAN_VIEW_CTE_COMPLEMENT_CONFIG = 'Pode Visualizar Configuracoes Cte Complementar',\n  CAN_EDIT_CTE_COMPLEMENT_TYPES = 'Pode Editar Tipos',\n  CAN_ADD_CTE_COMPLEMENT_APPROVERS = 'Pode Adicionar Aprovadores',\n  CAN_EDIT_CTE_COMPLEMENT_APPROVERS = 'Pode Editar Aprovadores',\n  CAN_ADD_CTE_COMPLEMENT_MOTIVES = 'Pode Adicionar Motivos De Solicitacao',\n  CAN_EDIT_CTE_COMPLEMENT_MOTIVES = 'Pode Editar Motivos De Solicitacao',\n  CAN_EDIT_CTE_COMPLEMENT_SUBSIDIARIES = 'Pode Editar Filiais Cte Complementar',\n  CAN_ADD_CTE_COMPLEMENT_EXCEL_INFOS = 'Pode Adicionar Excel Infos Cte Complementar',\n  PAYMENT_SCHEDULE_MONITOR = 'Monitor Agenda',\n  FINANCIAL_EVENTS = 'Eventos Financeiro',\n  FREIGHT_PAYOUT = 'Recebimento',\n  CAN_ACTIVATE_INACTIVATE_TYPES = 'Pode Ativar Inativar Tipos',\n  SHOW_PRE_LOTS = 'Show Pre Lots',\n  VIEW_COMMUNICATION_LOGS_COFCO_CBSA = 'View Communication Logs Cofco CBSA',\n  ENABLED_RETURN_LOT_AVAILABLE_QUANTITY = 'Enabled Return Lot AvailableQuantity',\n  CANCEL_LOT = 'Cancel Lot',\n  ENABLED_BLOCK_LOT_COFCO_CBSA = 'Enabled Block Lot Cofco Cbsa',\n  ENABLED_SUSPEND_LOT_COFCO_CBSA = 'Enabled Suspend Lot Cofco Cbsa',\n  CONSULT_CIOT = 'Consulta CIOT',\n}\n","export enum Role {\n  ADMIN = 'ADMIN',\n}\n","export enum Status {\n  PENDING,\n  APPROVED,\n  REJECTED,\n  INFO,\n  NOT_EXECUTEDCOUNT\n}\n","export enum View {\n  HOME,\n  ADMIN,\n  DIGITAL_CARRIER,\n  RISK_MANAGER,\n  VECTOR_CLUB,\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Status } from '../../models';\n\n@Component({\n  standalone: false,\n  selector: 'vector-badge',\n  templateUrl: './badge.component.html',\n  styleUrls: ['./badge.component.scss'],\n})\nexport class BadgeComponent implements OnInit {\n  @Input()\n  public type?: Status;\n  @Input()\n  public label?: string;\n  @Input()\n  public customColor?: string;\n  @Input()\n  public customBackgroundColor?: string;\n  @Input()\n  public tooltip?: string;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  public getStatusColor() {\n    switch (this.type) {\n      case Status.PENDING:\n        return 'badge-warning';\n      case Status.APPROVED:\n        return 'badge-success';\n      case Status.REJECTED:\n        return 'badge-error';\n      case Status.INFO:\n        return 'badge-info';\n      case Status.NOT_EXECUTEDCOUNT:\n        return 'badge-notexecuted';\n    }\n    return '';\n  }\n}\n","<div\n  class=\"badge\"\n  [class]=\"getStatusColor()\"\n  [ngStyle]=\"{ 'background-color': customBackgroundColor, color: customColor }\"\n  [pTooltip]=\"tooltip || ''\"\n  tooltipPosition=\"top\"\n>\n  {{ label }}\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  standalone: false,\n  name: 'currencyBrl',\n})\nexport class CurrencyBrlPipe implements PipeTransform {\n  transform(value: number = 0): string {\n    if (!value) value = 0;\n    return `${value.toLocaleString('pt-BR', { currency: 'BRL', minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;\n  }\n}\n","export class CpfCnpjValidator {\n  private static charToValue(char: string): number {\n    return char.toUpperCase().charCodeAt(0) - 48;\n  }\n\n  public static validateCpfOrCnpj(taxId: string) {\n    const stripped = taxId.replace(/[.\\/-]/g, '');\n\n    if (stripped.length == 11) {\n      return this.validateCpf(stripped);\n    } else if (stripped.length == 14) {\n      return this.validateCnpj(stripped);\n    } else {\n      return false;\n    }\n  }\n\n  public static validateCpf(cpf: string) {\n    if (!cpf?.trim() || cpf.length !== 11 || !cpf.match('^[0-9]+$')) {\n      return false;\n    }\n\n    if (\n      [\n        '00000000000',\n        '11111111111',\n        '22222222222',\n        '33333333333',\n        '44444444444',\n        '55555555555',\n        '66666666666',\n        '77777777777',\n        '88888888888',\n        '99999999999',\n      ].includes(cpf)\n    ) {\n      return false;\n    }\n    let num: number = 0;\n    let caracter: string = '';\n    let counter: number = 10;\n    let sum: number = 0;\n    let rest: number = 0;\n    let firstDigit: number = 0;\n    let secondDigit: number = 0;\n    let cpfAux: string = '';\n    cpfAux = cpf.substring(0, 9);\n    for (let i: number = 0; i < 9; i++) {\n      caracter = cpfAux.charAt(i);\n      num = Number(caracter);\n      sum = sum + num * counter;\n      counter--;\n    }\n    rest = sum % 11;\n    firstDigit = 11 - rest;\n    if (firstDigit > 9) {\n      firstDigit = 0;\n    }\n    counter = 11;\n    sum = 0;\n    cpfAux = cpfAux + firstDigit;\n    for (let i: number = 0; i < 10; i++) {\n      caracter = cpfAux.charAt(i);\n      num = Number(caracter);\n      sum = sum + num * counter;\n      counter--;\n    }\n    rest = sum % 11;\n    secondDigit = 11 - rest;\n    if (secondDigit > 9) {\n      secondDigit = 0;\n    }\n    cpfAux = cpfAux + secondDigit;\n    return cpf === cpfAux;\n  }\n\n  public static validateCnpj(cnpj: string) {\n    cnpj = cnpj.replace(/[.\\/-]/g, '');\n\n    if (cnpj == '') return false;\n\n    if (cnpj.length != 14) return false;\n\n    const body = cnpj.substring(0, 12).toUpperCase();\n    const digits = cnpj.substring(12);\n\n    if (!/^[A-Z0-9]{12}$/.test(body) || !/^\\d{2}$/.test(digits)) return false;\n\n    if (/^(\\d)\\1{13}$/.test(cnpj)) return false;\n\n    let size = 12;\n    let sum = 0;\n    let pos = size - 7;\n    for (let i = size; i >= 1; i--) {\n      sum += this.charToValue(cnpj.charAt(size - i)) * pos--;\n      if (pos < 2) pos = 9;\n    }\n    let resultado = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n    if (resultado != parseInt(digits.charAt(0))) return false;\n\n    size = 13;\n    sum = 0;\n    pos = size - 7;\n    for (let i = size; i >= 1; i--) {\n      sum += this.charToValue(cnpj.charAt(size - i)) * pos--;\n      if (pos < 2) pos = 9;\n    }\n    resultado = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n    if (resultado != parseInt(digits.charAt(1))) return false;\n\n    return true;\n  }\n}\n","import { saveAs } from 'file-saver';\n\nexport class FileUtil {\n  public static getBlob(base64StringData: string, mimeType: string) {\n    const decodedData = atob(base64StringData);\n    const byteNumbers = new Array(decodedData.length);\n    for (let i = 0; i < decodedData.length; i++) {\n      byteNumbers[i] = decodedData.charCodeAt(i);\n    }\n    return new Blob([new Uint8Array(byteNumbers)], { type: mimeType });\n  }\n  public static downloadFile(mimeType: string, base64StringData: string, fileName: string) {\n    saveAs(FileUtil.getBlob(base64StringData, mimeType), fileName);\n  }\n}\n","const CPF_PATTERN = '###.###.###-##';\nconst CNPJ_PATTERN = '##.###.###/####-##';\nconst BOLETO_PATTERN = '#####.##### #####.###### #####.###### # ############## #';\nconst POSTALCODE_PATTERN = '#####-###';\nconst CELLPHONE_PATTERN = '(##) #####-####';\nconst PHONE_PATTERN = '(##) ####-####';\nconst PLATE_PATTERN = '###-####';\nconst HOURS_MINUTES_PATTERN = '##:##';\nconst DNI_PATTERN = '##.###.###';\nconst CUIT_PATTERN = '##-########-#';\n\nexport class MaskUtil {\n  public static CPF_TEXT_FIELD_PATTERN = '999.999.999-99';\n  public static CNPJ_TEXT_FIELD_PATTERN = '**.***.***/****-99';\n  public static BOLETO_TEXT_FIELD_PATTERN = '99999.99999 99999.999999 99999.999999 9 99999999999999 9';\n  public static CELLPHONE_TEXT_FIELD_PATTERN = '(99) 99999-9999';\n  public static URUGUAY_CELLPHONE_TEXT_FIELD_PATTERN = '+999 99 999 999';\n  public static PARAGUAY_CELLPHONE_TEXT_FIELD_PATTERN = '+999 999 999999';\n  public static PHONE_TEXT_FIELD_PATTERN = '(99) 9999-9999';\n  public static POSTALCODE_TEXT_FIELD_PATTERN = '99999-999';\n  public static PLATE_FIELD_PATTERN = 'aaa-9*99';\n  public static HOURS_MINUTES_FIELD_PATTERN = '99:99';\n  public static DNI_FIELD_PATTERN = '99.999.999';\n  public static CUIT_FIELD_PATTERN = '99.99999999.9';\n\n  public static stripDocumentFormatting(value: string): string {\n    return value ? value.replace(/[.\\/-\\s]/g, '') : '';\n  }\n\n  public static formatDocument(stringValue: string) {\n    if (!stringValue) {\n      return '';\n    }\n\n    const stripped = this.stripDocumentFormatting(stringValue);\n\n    if (stripped.length === 11) {\n      return this.doMaskString(stripped, CPF_PATTERN);\n    }\n\n    if (stripped.length === 14) {\n      return this.doMaskString(stripped, CNPJ_PATTERN);\n    }\n\n    return stringValue;\n  }\n\n  public static formatPostalCode(stringValue: string) {\n    return this.doMaskString(stringValue, POSTALCODE_PATTERN);\n  }\n\n  public static formatBoleto(stringValue: string) {\n    return this.doMaskString(stringValue, BOLETO_PATTERN);\n  }\n\n  public static formatPhone(stringValue: string) {\n    if (!stringValue) {\n      return '';\n    }\n\n    if (stringValue.length === 11) {\n      return this.doMaskString(stringValue, CELLPHONE_PATTERN);\n    } else if (stringValue.length === 10) {\n      return this.doMaskString(stringValue, PHONE_PATTERN);\n    }\n\n    return stringValue;\n  }\n\n  public static formatHoursMinutes(stringValue: string) {\n    return this.doMaskString(stringValue, HOURS_MINUTES_PATTERN);\n  }\n\n  public static formatPlate(stringValue: string) {\n    return this.doMaskString(stringValue, PLATE_PATTERN);\n  }\n\n  public static formatDni(stringValue: string) {\n    return this.doMaskString(stringValue, DNI_PATTERN);\n  }\n\n  public static formatCuit(stringValue: string) {\n    return this.doMaskString(stringValue, CUIT_PATTERN);\n  }\n\n  public static doMaskString(str: string, pattern?: string) {\n    if (!str?.trim()) {\n      return '';\n    }\n\n    if (!pattern || !pattern.includes('#')) {\n      console.warn('Utilize uma máscara válida. Ex.: (##) #####-####');\n      return str;\n    }\n    let i = 0;\n    return pattern.replace(/#/g, () => str[i++]);\n  }\n}\n","export class ObjectUtil {\n  public static getObjectKeys<T>(obj: Object): Array<keyof T> {\n    if (!obj) {\n      return [];\n    }\n\n    return Object.keys(obj).map((key: string) => key as keyof T);\n  }\n\n  public static isValid(obj: any) {\n    return obj !== null && obj !== undefined;\n  }\n\n  public static getCodes(obj: any): any {\n    if (!obj) {\n      return {};\n    }\n\n    return Object.keys(obj).reduce((acc, curr) => {\n      let value = obj[curr];\n      try {\n        value = JSON.parse(obj[curr]);\n      } catch (_) {\n        value = obj[curr];\n      }\n      return { ...acc, [curr]: value?.code || value };\n    }, {});\n  }\n}\n","export class StringUtil {\n  public static getInitials(nameString?: string) {\n    if (!nameString) {\n      return '';\n    }\n\n    const initials = nameString.split(' ').map((namePart) => namePart.substr(0, 1));\n    return initials ? `${initials[0]}${initials[initials.length - 1]}` : '';\n  }\n\n  public static revertString(str: string) {\n    if (!str) {\n      return '';\n    }\n\n    return str.split('').reverse().join('');\n  }\n\n  public static convertTimeToMinutes(timeText: string): number {\n    const parts = timeText.split(':');\n    const minutes = parseInt(parts[0]);\n    const seconds = parseInt(parts[1]);\n    const minutesTotals = minutes + seconds / 60;\n    return minutesTotals;\n  }\n\n  public static convertMinutesToTime(minutesTotal: number): string {\n    const minutes = Math.floor(minutesTotal);\n    const seconds = Math.round((minutesTotal - minutes) * 60);\n\n    const minutesText = `${minutes}`.padStart(2, '0');\n    const secondsText = `${seconds}`.padStart(2, '0');\n\n    return `${minutesText}:${secondsText}`;\n  }\n\n  public static convertObjectToQueryString(obj: Record<string, any>): string {\n    const queryParams: string[] = [];\n    for (const key in obj) {\n      if (obj.hasOwnProperty(key) && obj[key]) {\n        queryParams.push(`${key}=${obj[key]}`);\n      }\n    }\n    return queryParams.join('&');\n  }\n\n  public static convertToUppercaseWithoutSymbols(stringValue: string, withSpace?: boolean): string {\n    const convert = stringValue\n      .toUpperCase()\n      .normalize('NFD')\n      .replace(/[\\u0300-\\u036f]/g, '')\n      .replace(/[^\\w\\s]/g, '');\n\n    if (withSpace) {\n      return convert.replace(/\\s+/g, ' ');\n    } else {\n      return convert.replace(/\\s+/g, '');\n    }\n  }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { ObjectUtil } from './object.util';\n\nexport class ValidationUtil {\n  public static email(control: AbstractControl): ValidationErrors | null {\n    const email = control.value as string;\n\n    if (!email || email === '') {\n      return null;\n    }\n\n    if (\n      !email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/) ||\n      email.match(/['`~!#%^&*()|+¨=?;:'´\",<>\\{\\}\\[\\]\\\\\\/]/gi)\n    ) {\n      return {\n        email: true,\n      };\n    }\n\n    return null;\n  }\n\n  public static fullName(control: AbstractControl): ValidationErrors | null {\n    const name: string = control.value;\n    if (!name) {\n      return null;\n    }\n\n    const splittedName = name\n      .trim()\n      .split(' ')\n      .map((namePart) => namePart.trim());\n\n    if (splittedName.length < 2) {\n      return { invalid: 'Deve conter pelo menos um nome e sobrenome.' };\n    }\n    return null;\n  }\n\n  public static noMultipleWhitespace(control: AbstractControl): ValidationErrors | null {\n    const name: string = control.value;\n\n    if (name) {\n      if (!name.match(/^([a-zA-ZÀ-ú0-9]+\\s)*[a-zA-ZÀ-ú0-9]+$/)) {\n        return { haveWhiteSpace: true };\n      }\n    }\n    return null;\n  }\n\n  public static isValidTaxId(control: AbstractControl): ValidationErrors | null {\n    if (!control.value) {\n      return null;\n    }\n\n    const stripped = (control.value as string).replace(/[.\\/-]/g, '');\n\n    if (stripped.length === 11) {\n      return ValidationUtil.isValidCpf(control);\n    }\n    if (stripped.length === 14) {\n      return ValidationUtil.isValidCnpj(control);\n    }\n\n    return null;\n  }\n\n  public static isValidCpf(control: AbstractControl): ValidationErrors | null {\n    const cpf = control.value;\n    if (cpf) {\n      let numbers, digits, sum, i, result, equalDigits;\n      equalDigits = 1;\n      if (cpf.length < 11) {\n        return null;\n      }\n\n      for (i = 0; i < cpf.length - 1; i++) {\n        if (cpf.charAt(i) !== cpf.charAt(i + 1)) {\n          equalDigits = 0;\n          break;\n        }\n      }\n\n      if (!equalDigits) {\n        numbers = cpf.substring(0, 9);\n        digits = cpf.substring(9);\n        sum = 0;\n        for (i = 10; i > 1; i--) {\n          sum += numbers.charAt(10 - i) * i;\n        }\n\n        result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n\n        if (result !== Number(digits.charAt(0))) {\n          return { cpfNotValid: true };\n        }\n        numbers = cpf.substring(0, 10);\n        sum = 0;\n\n        for (i = 11; i > 1; i--) {\n          sum += numbers.charAt(11 - i) * i;\n        }\n        result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n\n        if (result !== Number(digits.charAt(1))) {\n          return { cpfNotValid: true };\n        }\n        return null;\n      } else {\n        return { cpfNotValid: true };\n      }\n    }\n    return null;\n  }\n\n  private static charToValue(char: string): number {\n    return char.toUpperCase().charCodeAt(0) - 48;\n  }\n\n  public static isValidCnpj(control: AbstractControl): ValidationErrors | null {\n    let cnpj: string = control.value;\n    cnpj = cnpj.replace(/[.\\/-]/g, '');\n\n    if (cnpj.length !== 14) {\n      return { cnpjNotValid: true };\n    }\n\n    const body = cnpj.substring(0, 12).toUpperCase();\n    const digits = cnpj.substring(12);\n\n    if (!/^[A-Z0-9]{12}$/.test(body) || !/^\\d{2}$/.test(digits)) {\n      return { cnpjNotValid: true };\n    }\n\n    if (/^(\\d)\\1{13}$/.test(cnpj)) {\n      return { cnpjNotValid: true };\n    }\n\n    const calc = (x: number) => {\n      let y = x - 7,\n        s = 0;\n      for (let i = x; i >= 1; i--) {\n        s += this.charToValue(cnpj.charAt(x - i)) * y--;\n        if (y < 2) y = 9;\n      }\n      const r = 11 - (s % 11);\n      return r > 9 ? 0 : r;\n    };\n\n    const d1 = parseInt(digits.charAt(0));\n    const d2 = parseInt(digits.charAt(1));\n\n    if (calc(12) === d1 && calc(13) === d2) {\n      return null;\n    } else {\n      return { cnpjNotValid: true };\n    }\n  }\n\n  public static majorAge(control: AbstractControl): ValidationErrors | null {\n    if (!control.value) {\n      return null;\n    }\n    const age = ~~((Date.now() - control.value) / 31557600000);\n\n    if (age < 18) {\n      return { isNotMajorAge: true };\n    }\n    return null;\n  }\n\n  public static matchField(anotherField: AbstractControl | null): ValidatorFn {\n    const validator = (control: AbstractControl) => {\n      if (!control.value || !anotherField?.value) {\n        return null;\n      }\n      if (control.value !== anotherField?.value) {\n        return { fieldDoesNotMatch: true };\n      }\n\n      return null;\n    };\n    return validator;\n  }\n\n  public static cellphone(control: AbstractControl): ValidationErrors | null {\n    if (!control.value || control.value.length < 11) {\n      return null;\n    }\n\n    const firstNumber = control.value.substring(2, 3);\n\n    if (firstNumber != '9') {\n      return { cellphoneInvalid: true };\n    }\n\n    return null;\n  }\n\n  public static lowerThanOrEqualTo(greaterControlName: string): ValidatorFn {\n    const validator = (control: AbstractControl) => {\n      const lowerValue = control.value;\n      const greaterValue = control.parent?.get(greaterControlName)?.value;\n      if (!control.parent?.get(greaterControlName)) {\n        console.log(`Control with name ${greaterControlName} not registered`);\n        return {};\n      }\n      if (\n        ObjectUtil.isValid(lowerValue) &&\n        ObjectUtil.isValid(greaterValue) &&\n        lowerValue !== '' &&\n        greaterValue !== '' &&\n        +lowerValue > +greaterValue\n      ) {\n        return {\n          invalid: 'Valor mínimo deve ser menor ou igual ao valor máximo',\n        };\n      }\n      return {};\n    };\n    return validator;\n  }\n\n  public static greaterThanOrEqualTo(lowerControlName: string): ValidatorFn {\n    const validator = (control: AbstractControl) => {\n      const greaterValue = control.value;\n      const lowerValue = control.parent?.get(lowerControlName)?.value;\n      if (!control.parent?.get(lowerControlName)) {\n        console.log(`Control with name ${lowerControlName} not registered`);\n        return {};\n      }\n      if (\n        ObjectUtil.isValid(lowerValue) &&\n        ObjectUtil.isValid(greaterValue) &&\n        lowerValue !== '' &&\n        greaterValue !== '' &&\n        +lowerValue > +greaterValue\n      ) {\n        return {\n          invalid: 'Valor máximo deve ser maior ou igual ao valor mínimo',\n        };\n      }\n      return {};\n    };\n    return validator;\n  }\n\n  public static dateLowerThanOrEqualTo(greaterControlName: string): ValidatorFn {\n    return (control: AbstractControl) => {\n      const lowerDay = ValidationUtil.dayOf(control.value);\n      const greaterDay = ValidationUtil.dayOf(control.parent?.get(greaterControlName)?.value);\n      if (lowerDay !== null && greaterDay !== null && lowerDay > greaterDay) {\n        return { invalid: 'Data inicial deve ser menor ou igual à data final' };\n      }\n      return null;\n    };\n  }\n\n  public static dateGreaterThanOrEqualTo(lowerControlName: string): ValidatorFn {\n    return (control: AbstractControl) => {\n      const greaterDay = ValidationUtil.dayOf(control.value);\n      const lowerDay = ValidationUtil.dayOf(control.parent?.get(lowerControlName)?.value);\n      if (lowerDay !== null && greaterDay !== null && lowerDay > greaterDay) {\n        return { invalid: 'Data final deve ser maior ou igual à data inicial' };\n      }\n      return null;\n    };\n  }\n\n  private static dayOf(value: unknown): number | null {\n    if (!ObjectUtil.isValid(value) || value === '') {\n      return null;\n    }\n    const date = new Date(value as Date | string | number);\n    return isNaN(date.getTime()) ? null : new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();\n  }\n\n  public static notSequentialNumbers(length: number): ValidatorFn {\n    const validator = (control: AbstractControl): ValidationErrors | null => {\n      const controlValue = control.value;\n      const sequentialNumbers = '01234567890123456789';\n\n      if (controlValue) {\n        if (controlValue.length === length) {\n          if (~sequentialNumbers.indexOf(control.value)) {\n            return { isSequential: true };\n          } else if (!!controlValue.match(/^(\\d)\\1+$/)) {\n            return { isSequential: true };\n          } else {\n            return null;\n          }\n        }\n      }\n      return null;\n    };\n    return validator;\n  }\n\n  public static firstLetterIsUppercase(control: AbstractControl): ValidationErrors | null {\n    const controlValue = control.value as string;\n    const regex = /^([A-ZÀ-Ú][a-zà-ú]*)(?:\\s+([A-ZÀ-Ú][a-zà-ú]*))*$/;\n\n    if (!!controlValue) {\n      if (!controlValue.match(regex)) {\n        return { invalidField: true };\n      }\n      return null;\n    }\n    return null;\n  }\n\n  public static containsLettersAndNumbers(control: AbstractControl): ValidationErrors | null {\n    const controlValue = control.value as string;\n    const regex = /^(?=.*[0-9])(?=.*[A-z])([A-z0-9_-]+)$/;\n\n    if (!!controlValue) {\n      if (!!!controlValue.match(regex)) {\n        return { isNotAlphaNumeric: true };\n      }\n      return null;\n    }\n    return null;\n  }\n\n  public static greaterThanTo(lowerControlName: string): ValidatorFn {\n    const validator = (control: AbstractControl) => {\n      const greaterValue = control.value;\n      const lowerValue = control.parent?.get(lowerControlName)?.value;\n      if (!control.parent?.get(lowerControlName)) {\n        console.log(`Control with name ${lowerControlName} not registered`);\n        return {};\n      }\n      if (\n        ObjectUtil.isValid(lowerValue) &&\n        ObjectUtil.isValid(greaterValue) &&\n        lowerValue !== '' &&\n        greaterValue !== '' &&\n        +lowerValue >= +greaterValue\n      ) {\n        return {\n          invalid: ` Este valor não pode ser igual ou menor que o valor inicial`,\n        };\n      }\n      return {};\n    };\n    return validator;\n  }\n\n  public static onlyLetters(control: AbstractControl): ValidationErrors | null {\n    const value = control.value as string;\n\n    if (!value || value === '') {\n      return null;\n    }\n\n    if (/[\\d\\W]/.test(value)) {\n      return { invalid: 'O lembrete de senha só pode conter letras.' };\n    }\n\n    return null;\n  }\n}\n","export class WindowUtil {\n  static isSmallDevice() {\n    return window.innerWidth < 640;\n  }\n  static isDesktop() {\n    return window.innerWidth >= 1024;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MaskUtil } from '../utils';\n\n@Pipe({\n  standalone: false,\n  name: 'formatDocument',\n})\nexport class FormatDocumentPipe implements PipeTransform {\n  transform(value: string = ''): string {\n    return MaskUtil.formatDocument(value);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MaskUtil } from '../utils';\n\n@Pipe({\n  standalone: false,\n  name: 'mask',\n})\nexport class MaskPipe implements PipeTransform {\n  transform(value: string = '', mask: string): string {\n    if (!mask || !mask.includes('#')) {\n      console.warn('Uma máscara válida deve ser passada para o MaskPipe. Ex.: (##) #####-####');\n      return value;\n    }\n    return MaskUtil.doMaskString(value, mask);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  standalone: false,\n  name: 'notHidden',\n})\nexport class NotHiddenPipe implements PipeTransform {\n  transform(value: any[]): any[] {\n    return value?.filter((item) => !item.hidden) || [];\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  standalone: false,\n  name: 'onlyActive',\n})\nexport class OnlyActivePipe implements PipeTransform {\n  transform(value: any[]): any[] {\n    return value?.filter((item) => item.active) || [];\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  standalone: false,\n  name: 'removeLastChild',\n})\nexport class RemoveLastChildPipe implements PipeTransform {\n  transform(value: any[]): any[] {\n    const newArray = [...value];\n    newArray.pop();\n    return newArray;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VectorNotification } from '../models/vector-notification.model';\n\n@Pipe({ name: 'unreadNotifications', standalone: false })\nexport class UnreadNotificationsPipe implements PipeTransform {\n  constructor() {}\n  transform(notifications: VectorNotification[] | null) {\n    return notifications?.filter((item) => !item.wasRead) ?? [];\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CurrencyBrlPipe } from './currency-brl.pipe';\nimport { FormatDocumentPipe } from './format-document.pipe';\nimport { MaskPipe } from './mask.pipe';\nimport { NotHiddenPipe } from './not-hidden.pipe';\nimport { OnlyActivePipe } from './only-active.pipe';\nimport { RemoveLastChildPipe } from './remove-last-child.pipe';\nimport { UnreadNotificationsPipe } from './unread-notifications.pipe';\n\n@NgModule({\n  declarations: [\n    RemoveLastChildPipe,\n    CurrencyBrlPipe,\n    NotHiddenPipe,\n    OnlyActivePipe,\n    FormatDocumentPipe,\n    MaskPipe,\n    UnreadNotificationsPipe,\n  ],\n  exports: [\n    RemoveLastChildPipe,\n    CurrencyBrlPipe,\n    NotHiddenPipe,\n    OnlyActivePipe,\n    FormatDocumentPipe,\n    MaskPipe,\n    UnreadNotificationsPipe,\n  ],\n})\nexport class PipesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { PipesModule } from '../pipes';\n\n@NgModule({\n  exports: [CommonModule, TooltipModule, PipesModule],\n  imports: [TranslateModule],\n})\nexport class SharedModule {}\n","import { NgModule } from '@angular/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { SharedModule } from '../../shared/shared.module';\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n  declarations: [BadgeComponent],\n  imports: [SharedModule, TooltipModule],\n  exports: [BadgeComponent],\n})\nexport class BadgeModule {}\n","import { InjectionToken } from '@angular/core';\nimport { AppName, MenuItem } from '../models';\n\nexport interface Environment {\n  production: boolean;\n  appName: string;\n  API_URL: string;\n  LOGITECH_URL: string;\n  LOGTECH_ASPX_URL: string;\n  PORTAL_URL: string;\n  FINTECH_URL: string;\n  MARKETPLACE_URL: string;\n  SURVEY_URL: string;\n  API_KEY: string;\n  environmentLabel?: string;\n}\n\nexport const APP_NAME = new InjectionToken<AppName>('APP_NAME');\nexport const ENVIRONMENT = new InjectionToken<Environment>('ENVIRONMENT');\nexport const MENU_OPTIONS = new InjectionToken<MenuItem[]>('MENU_OPTIONS');\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class BreadcrumbService {\n  private readonly _titleAdditionalInfo$ = new BehaviorSubject<string | null>(null);\n  public readonly titleAdditionalInfo$ = this._titleAdditionalInfo$.asObservable();\n\n  public setTitleAdditionalInfo(value: string | null): void {\n    this._titleAdditionalInfo$.next(value);\n  }\n\n  public clearTitleAdditionalInfo(): void {\n    this._titleAdditionalInfo$.next(null);\n  }\n}\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { ENVIRONMENT, MENU_OPTIONS } from '../../injections';\nimport { MenuItem } from '../../models';\nimport { BreadcrumbService } from '../../services/breadcrumb.service';\n\n@Component({\n  standalone: false,\n  selector: 'vector-breadcrumb',\n  templateUrl: './breadcrumb.component.html',\n  styleUrls: ['./breadcrumb.component.scss'],\n})\nexport class BreadcrumbComponent implements OnInit, OnDestroy {\n  public appName = this.environment.appName;\n  public routeFragments: MenuItem[] = [];\n  public titleAdditionalInfo: string | null = null;\n  private subscription = new Subscription();\n\n  constructor(\n    private router: Router,\n    @Inject(ENVIRONMENT) private environment: any,\n    @Inject(MENU_OPTIONS) private menuOptions: MenuItem[],\n    private breadcrumbService: BreadcrumbService,\n  ) {}\n\n  ngOnInit(): void {\n    this.subscription.add(\n      this.breadcrumbService.titleAdditionalInfo$.subscribe((value) => {\n        this.titleAdditionalInfo = value;\n      }),\n    );\n\n    this.subscription.add(\n      this.router.events.subscribe((event) => {\n        if (event instanceof NavigationEnd) {\n          this.breadcrumbService.clearTitleAdditionalInfo();\n          this.routeFragments = [];\n          let url = event.urlAfterRedirects.replace('/', '');\n          if (url.includes('?')) {\n            url = url.substring(0, url.indexOf('?'));\n          }\n          this.extractRouteFragmentsFromMenu(url, this.menuOptions);\n        }\n      }),\n    );\n  }\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n  public navigateToFragment(fragment: MenuItem) {\n    this.router.navigate([fragment.route], { queryParamsHandling: 'preserve' });\n  }\n\n  private extractRouteFragmentsFromMenu(url: string, currentChildren: MenuItem[]): boolean {\n    let foundItem = false;\n    for (let i = 0; i < currentChildren.length; i++) {\n      if (currentChildren[i].route) {\n        if (\n          currentChildren[i].route &&\n          (currentChildren[i].route!.startsWith(url) || url.startsWith(currentChildren[i].route || ''))\n        ) {\n          this.routeFragments = [currentChildren[i]];\n          foundItem = true;\n        }\n      }\n\n      if (currentChildren[i].children && this.extractRouteFragmentsFromMenu(url, currentChildren[i].children || [])) {\n        this.routeFragments = [currentChildren[i]].concat(this.routeFragments);\n        foundItem = true;\n        break;\n      }\n    }\n\n    return foundItem;\n  }\n}\n","<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\n  <div class=\"route-path\">\n    <span class=\"app-name\">{{ appName }}</span>\n    <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\n    <span\n      class=\"route-fragment\"\n      [ngClass]=\"{ clickable: fragment.route }\"\n      *ngFor=\"let fragment of routeFragments | removeLastChild\"\n      (click)=\"navigateToFragment(fragment)\"\n      ><div class=\"chevron\"></div>\n      {{ fragment.label }}</span\n    >\n  </div>\n  <span class=\"last-route\">\n    {{ routeFragments[routeFragments.length - 1].label }}\n    {{ titleAdditionalInfo }}\n  </span>\n</div>\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from '../../shared/shared.module';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n  declarations: [BreadcrumbComponent],\n  exports: [BreadcrumbComponent],\n  imports: [SharedModule],\n})\nexport class BreadcrumbModule {}\n","import { Component, OnDestroy } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { CrudMode } from '../../models/crud-mode.enum';\n\n@Component({\n  standalone: false,\n  template: '',\n})\nexport class CrudBaseComponent implements OnDestroy {\n  public crudMode = CrudMode.NEW;\n  public isReadonly = false;\n  public form = new UntypedFormGroup({});\n  protected subscription = new Subscription();\n\n  constructor(protected activatedRoute: ActivatedRoute) {\n    this.crudMode = this.getCrudModeByRoute(this.activatedRoute.snapshot.url[0].path);\n    this.isReadonly = this.crudMode === CrudMode.VIEW;\n  }\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n  public isInsertion() {\n    return this.crudMode === CrudMode.NEW;\n  }\n\n  public isEdition() {\n    return this.crudMode === CrudMode.EDIT;\n  }\n\n  private getCrudModeByRoute(route: string) {\n    switch (route) {\n      case 'new':\n        return CrudMode.NEW;\n      case 'edit':\n        return CrudMode.EDIT;\n      case 'view':\n        return CrudMode.VIEW;\n      default:\n        return CrudMode.NEW;\n    }\n  }\n}\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\nexport type ButtonCursorType =\n  | 'default'\n  | 'pointer'\n  | 'move'\n  | 'help'\n  | 'progress'\n  | 'text'\n  | 'ew-resize'\n  | 'nesw-resize'\n  | 'grab'\n  | 'grabbing'\n  | 'not-allowed'\n  | 'zoom-in'\n  | 'zoom-out'\n  | 'none';\n\nexport type ButtonType =\n  | 'success'\n  | 'success-outlined'\n  | 'default'\n  | 'default-filled'\n  | 'default-outlined'\n  | 'default-outlined-gray'\n  | 'default-outlined-gray-icon-red'\n  | 'default-outlined-gray-icon-gray'\n  | 'cancel'\n  | 'cancel-filled'\n  | 'light-outline'\n  | 'light-filled';\n\n@Component({\n  standalone: false,\n  selector: 'vector-button',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent {\n  /** Bloqueia o clique e aplica o estado desabilitado do botao. */\n  @Input()\n  public disabled = false;\n\n  /** Texto exibido no botao; vazio junto com um icone rende o botao quadrado de 32x32. */\n  @Input()\n  public label = '';\n\n  /** Variante visual — cores de fundo, borda, texto e icone. */\n  @Input()\n  public type: ButtonType = 'default';\n\n  /** Largura: `full` ocupa 100% do container, `fit-content` acompanha o conteudo. */\n  @Input()\n  public width: 'full' | 'fit-content' = 'full';\n\n  /** Classe do icone exibido a esquerda do label. */\n  @Input()\n  public leftIcon = '';\n\n  /** Classe do icone a direita do label; preenchido junto com `leftIcon`, so a posicao prevalece. */\n  @Input()\n  public rightIcon = '';\n\n  /** Liga a sombra do botao, pela classe `shadow-3` do PrimeFlex. */\n  @Input()\n  public shadow = false;\n\n  /** Arredonda as bordas por completo: pilula com label, circulo quando so ha icone. */\n  @Input()\n  public rounded = false;\n\n  /** Cursor exibido ao passar o mouse sobre o botao; nao se aplica ao estado desabilitado. */\n  @Input()\n  public cursor: ButtonCursorType = 'pointer';\n\n  /** Estilos inline repassados ao `<p-button>`, no formato aceito pelo `ngStyle`. */\n  @Input()\n  public style: any = {};\n\n  /** Troca o icone por um indicador de carregamento e bloqueia o clique. */\n  @Input()\n  public loading: boolean = false;\n\n  /** Emitido a cada clique no botao, com o evento original do DOM. */\n  @Output()\n  public onClick = new EventEmitter<any>();\n\n  @HostBinding('style.--vector-button-cursor')\n  get cursorVariable(): ButtonCursorType {\n    return this.cursor;\n  }\n\n  get styleClass() {\n    return ['button', this.shadow ? 'shadow-3' : '', this.type].filter(Boolean).join(' ');\n  }\n\n  get isIconOnly(): boolean {\n    return !this.label && !!(this.leftIcon || this.rightIcon);\n  }\n\n  get isFitContent(): boolean {\n    return this.width === 'fit-content' && !this.isIconOnly;\n  }\n}\n","<p-button\n  [styleClass]=\"styleClass\"\n  [label]=\"label\"\n  [disabled]=\"disabled\"\n  [icon]=\"leftIcon || rightIcon\"\n  [iconPos]=\"rightIcon ? 'right' : 'left'\"\n  [style]=\"style\"\n  (onClick)=\"onClick.emit($event)\"\n  [ngClass]=\"{ 'icon-only': isIconOnly, rounded: rounded, 'width-fit-content': isFitContent }\"\n  [loading]=\"loading\"\n></p-button>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\ntype ButtonType = 'success' | 'success-outlined' | 'default' | 'default-filled' | 'cancel' | 'cancel-filled';\n@Component({\n  standalone: false,\n  selector: 'vector-crud-footer',\n  templateUrl: './crud-footer.component.html',\n  styleUrls: ['./crud-footer.component.scss'],\n})\nexport class CrudFooterComponent implements OnInit {\n  @Input()\n  public submitDisabled = false;\n  @Input()\n  public submitHidden = false;\n  @Input()\n  public goBackHidden = false;\n\n  @Input()\n  public labelGoBack?: string;\n  @Input()\n  public typeGoBack?: ButtonType;\n  @Input()\n  public leftIconGoBack?: string;\n  @Input()\n  public labelGoSubmit?: string;\n  @Input()\n  public typeGoSubmit?: ButtonType;\n  @Input()\n  public leftIconGoSubmit?: string;\n\n  @Input()\n  public actionHidden = true;\n  @Input()\n  public actionDisabled = false;\n  @Input()\n  public labelAction?: string;\n  @Input()\n  public typeAction?: ButtonType;\n  @Input()\n  public leftIconAction?: string;\n\n  @Output()\n  public onGoBack = new EventEmitter<void>();\n  @Output()\n  public onSubmit = new EventEmitter<void>();\n  @Output()\n  public onAction = new EventEmitter<void>();\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"footer-container shadow-3\">\n  @if (!actionHidden) {\n    <div class=\"button\">\n      <vector-button\n        [label]=\"labelAction || ''\"\n        [type]=\"typeAction ? typeAction : 'default'\"\n        [leftIcon]=\"leftIconAction || ''\"\n        [disabled]=\"actionDisabled\"\n        (onClick)=\"onAction.emit()\"\n      ></vector-button>\n    </div>\n  }\n  @if (!goBackHidden) {\n    <div class=\"button\">\n      <vector-button\n        [label]=\"labelGoBack ? labelGoBack : ('enums.Options.GO_BACK' | translate)\"\n        [type]=\"typeGoBack ? typeGoBack : 'default'\"\n        [leftIcon]=\"leftIconGoBack || ''\"\n        (onClick)=\"onGoBack.emit()\"\n      >\n      </vector-button>\n    </div>\n  }\n\n  @if (!submitHidden) {\n    <div class=\"button\">\n      <vector-button\n        [label]=\"labelGoSubmit ? labelGoSubmit : ('enums.Options.SAVE' | translate)\"\n        [type]=\"typeGoSubmit ? typeGoSubmit : 'success'\"\n        [leftIcon]=\"leftIconGoSubmit || ''\"\n        (onClick)=\"onSubmit.emit()\"\n        [disabled]=\"submitDisabled\"\n      ></vector-button>\n    </div>\n  }\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  standalone: false,\n  selector: 'vector-panel',\n  templateUrl: './panel.component.html',\n  styleUrls: ['./panel.component.scss'],\n})\nexport class PanelComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<p-panel [showHeader]=\"false\">\n  <ng-template pTemplate=\"content\">\n    <div class=\"shadow-3\"><ng-content></ng-content></div></ng-template\n></p-panel>\n","import { NgModule } from '@angular/core';\nimport { PanelModule as PrimeNgPanel } from 'primeng/panel';\nimport { SharedModule } from '../../shared/shared.module';\nimport { PanelComponent } from './panel.component';\n\n@NgModule({\n  declarations: [PanelComponent],\n  exports: [PanelComponent],\n  imports: [SharedModule, PrimeNgPanel],\n})\nexport class PanelModule {}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  standalone: false,\n  selector: 'vector-score',\n  templateUrl: './score.component.html',\n  styleUrls: ['./score.component.scss'],\n})\nexport class ScoreComponent implements OnInit {\n  @Input()\n  public score: number = 0;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"container\">\n  <span class=\"score\">{{ score }}</span>\n  <em class=\"fas fa-star star\"></em>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ScoreComponent } from './score.component';\n\n@NgModule({\n  declarations: [ScoreComponent],\n  exports: [ScoreComponent],\n})\nexport class ScoreModule {}\n","import { Injectable } from '@angular/core';\nimport { ProfileModule, Role } from '../models';\n\n@Injectable({ providedIn: 'root' })\nexport class StorageService {\n  public clear(): void {\n    sessionStorage.clear();\n    localStorage.clear();\n  }\n\n  public clearSession(): void {\n    sessionStorage.clear();\n  }\n\n  public get(key: string): any {\n    const storageItem = localStorage.getItem(key);\n    try {\n      return storageItem ? JSON.parse(storageItem) : '';\n    } catch (e) {\n      return storageItem;\n    }\n  }\n\n  public set(key: string, value: any): void {\n    localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));\n  }\n\n  public remove(key: string): void {\n    localStorage.removeItem(key);\n  }\n\n  public getSession(key: string): any {\n    const storageItem = sessionStorage.getItem(key);\n    try {\n      return storageItem ? JSON.parse(storageItem) : '';\n    } catch (e) {\n      return storageItem;\n    }\n  }\n\n  public setSession(key: string, value: any): void {\n    sessionStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));\n  }\n\n  public removeSession(key: string): void {\n    sessionStorage.removeItem(key);\n  }\n\n  public getToken(): string {\n    return localStorage.getItem('token') || '';\n  }\n\n  public setToken(token: string) {\n    localStorage.setItem('token', token);\n  }\n\n  public removeToken() {\n    localStorage.removeItem('token');\n  }\n\n  public getRefreshToken(): string {\n    return sessionStorage.getItem('refreshToken') || '';\n  }\n\n  public setRefreshToken(refreshToken: string) {\n    sessionStorage.setItem('refreshToken', refreshToken);\n  }\n\n  public removeRefreshToken() {\n    sessionStorage.removeItem('refreshToken');\n  }\n\n  public getUsername(): string {\n    return sessionStorage.getItem('username') || '';\n  }\n\n  public setUsername(username: string) {\n    sessionStorage.setItem('username', username);\n  }\n\n  public removeUsername() {\n    sessionStorage.removeItem('username');\n  }\n\n  public getUserId(): number {\n    const userId = sessionStorage.getItem('userId');\n    return userId ? +atob(userId) : 0;\n  }\n\n  public setUserId(userId: number) {\n    sessionStorage.setItem('userId', btoa(`${userId}`));\n  }\n\n  public clearUserId() {\n    sessionStorage.removeItem('userId');\n  }\n\n  public getRole(): Role {\n    return atob(sessionStorage.getItem('role') || '') as Role;\n  }\n\n  public setRole(role?: string) {\n    sessionStorage.setItem('role', role || '');\n  }\n\n  public clearRole() {\n    sessionStorage.removeItem('role');\n  }\n\n  public getProfile(): {\n    marketplace: ProfileModule | undefined;\n    fintech: ProfileModule | undefined;\n    allModules: ProfileModule[] | undefined;\n  } {\n    const data = sessionStorage.getItem('profile') || '';\n    return data ? JSON.parse(data) : data;\n  }\n\n  public setProfile(profiles: {\n    marketplace: ProfileModule | undefined;\n    fintech: ProfileModule | undefined;\n    allModules: ProfileModule[] | undefined;\n  }) {\n    sessionStorage.setItem('profile', JSON.stringify(profiles || ''));\n  }\n\n  public removeProfile() {\n    sessionStorage.removeItem('profile');\n  }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { APP_NAME, ENVIRONMENT, Environment, MENU_OPTIONS } from '../injections';\nimport { AppName, MenuItem } from '../models';\nimport { StorageService } from './storage.service';\n\n/** Nome dos eventos enviados ao dataLayer. Todo o detalhe vai nos parametros. */\nexport type AnalyticsEvent = 'page_view' | 'user_action' | 'app_event';\n\n/** Identificacao da tela corrente, anexada a todos os eventos. */\nexport interface AnalyticsPage {\n  page_path: string;\n  page_name: string;\n  page_module: string;\n}\n\n/** Identificacao do usuario corrente, anexada a todos os eventos. */\nexport interface AnalyticsUser {\n  user_id?: number;\n  profile_name?: string;\n  profile_type_id?: number;\n  shipper_id?: number;\n  carrier_id?: number;\n  is_etcd: boolean;\n}\n\ntype AnalyticsPayload = Record<string, unknown>;\ntype ClarityFn = (...args: unknown[]) => void;\n\n@Injectable({ providedIn: 'root' })\nexport class AnalyticsService {\n  private static readonly ID_SEGMENT = /^(\\d+|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i;\n\n  private static readonly MAX_LABEL_LENGTH = 60;\n\n  private currentPage: AnalyticsPage = { page_path: '', page_name: '', page_module: '' };\n  private menuIndex?: Map<string, { name: string; module: string }>;\n\n  constructor(\n    private storageService: StorageService,\n    @Optional() @Inject(APP_NAME) private appName: AppName | null = null,\n    @Optional() @Inject(MENU_OPTIONS) private menuOptions: MenuItem[] | null = null,\n    @Optional() @Inject(ENVIRONMENT) private environment: Environment | null = null,\n  ) {\n    if (!this.isProduction) {\n      (window as unknown as { __analytics?: AnalyticsService }).__analytics = this;\n    }\n  }\n\n  /**\n   * Registra a troca de tela. Chamado apenas pelo AppComponent, no NavigationEnd.\n   * Alem do `page_view`, sincroniza a identificacao do usuario no Clarity --\n   * que precisa ser reenviada a cada rota por se tratar de uma SPA.\n   */\n  public pageView(url: string): void {\n    this.safely(() => {\n      this.currentPage = this.resolvePage(url);\n      const user = this.getUser();\n\n      this.push({ event: 'page_view' }, user);\n      this.syncClarity(this.currentPage, user);\n    });\n  }\n\n  /**\n   * INTERATIVO -- o usuario fez algo deliberado: clicou, buscou, exportou, salvou.\n   * Chamado a mao pelo componente, no inicio do handler.\n   *\n   * @param action nome no formato `objeto_verbo`, sem repetir a tela (`page_name` ja vai junto)\n   * @param extra `label` para o identificador do alvo, `context` para detalhe livre\n   *\n   * @example this.analyticsService.userAction('heat_map_search', { context: { uf: 'SP' } });\n   */\n  public userAction(action: string, extra: AnalyticsPayload = {}): void {\n    this.safely(() => {\n      this.push({ event: 'user_action', action, interaction: true, ...extra });\n      this.sendClarityEvent(action, extra['label']);\n    });\n  }\n\n  /**\n   * NAO INTERATIVO -- o sistema respondeu ou exibiu algo: resultado carregado,\n    * lista vazia, erro de negocio, modal automatico.\n   *\n   * @example this.analyticsService.appEvent('heat_map_empty', { context: { points: 0 } });\n   */\n  public appEvent(action: string, extra: AnalyticsPayload = {}): void {\n    this.safely(() => this.push({ event: 'app_event', action, interaction: false, ...extra }));\n  }\n\n  private push(payload: AnalyticsPayload, user: AnalyticsUser = this.getUser()): void {\n    if (!this.isProduction) {\n      console.debug('[analytics]', payload['event'], payload['action'] ?? this.currentPage.page_path);\n    }\n\n    this.dataLayer.push({\n      app: this.appName ?? 'UNKNOWN',\n      env: this.env,\n      is_iframe: window.parent !== window,\n      ...this.currentPage,\n      ...user,\n      ...payload,\n    });\n  }\n\n  private get dataLayer(): AnalyticsPayload[] {\n    const target = window as unknown as { dataLayer?: AnalyticsPayload[] };\n    target.dataLayer = target.dataLayer || [];\n    return target.dataLayer;\n  }\n\n  private get isProduction(): boolean {\n    return !!this.environment?.production;\n  }\n\n  private get env(): string {\n    if (this.isProduction) {\n      return 'production';\n    }\n    return this.environment?.environmentLabel?.toLowerCase() || 'non-production';\n  }\n\n  private getUser(): AnalyticsUser {\n    const info = this.storageService.getSession('userInfo') || {};\n    return {\n      user_id: this.storageService.getUserId() || undefined,\n      profile_name: info.profileName,\n      profile_type_id: info.profileTypeId,\n      shipper_id: this.realId(info.shipper),\n      carrier_id: this.realId(info.carrierId),\n      is_etcd: !!info.isEtcd,\n    };\n  }\n\n  private realId(value: unknown): number | undefined {\n    return typeof value === 'number' && value > 0 ? value : undefined;\n  }\n\n  private get clarity(): ClarityFn | undefined {\n    const candidate = (window as unknown as { clarity?: ClarityFn }).clarity;\n    return typeof candidate === 'function' ? candidate : undefined;\n  }\n\n  private sendClarityEvent(action: string, label?: unknown): void {\n    const clarity = this.clarity;\n    if (!clarity) {\n      return;\n    }\n\n    const name = [action, this.slug(String(label ?? ''))]\n      .filter(Boolean)\n      .join('_')\n      .slice(0, AnalyticsService.MAX_LABEL_LENGTH);\n\n    if (name) {\n      clarity('event', name);\n    }\n  }\n\n  private slug(value: string): string {\n    return value\n      .normalize('NFD')\n      .replace(/[̀-ͯ]/g, '')\n      .toLowerCase()\n      .replace(/[^a-z0-9]+/g, '_')\n      .replace(/^_+|_+$/g, '');\n  }\n\n  private syncClarity(page: AnalyticsPage, user: AnalyticsUser): void {\n    const clarity = this.clarity;\n    if (!clarity) {\n      return;\n    }\n\n    if (user.user_id) {\n      // O proprio Clarity faz o hash do id no cliente antes de enviar.\n      clarity('identify', String(user.user_id), undefined, page.page_path);\n    }\n\n    this.setClarityTag(clarity, 'app', this.appName);\n    this.setClarityTag(clarity, 'env', this.env);\n    this.setClarityTag(clarity, 'page_name', page.page_name);\n    this.setClarityTag(clarity, 'profile_name', user.profile_name);\n    this.setClarityTag(clarity, 'profile_type_id', user.profile_type_id);\n    this.setClarityTag(clarity, 'shipper_id', user.shipper_id);\n  }\n\n  private setClarityTag(clarity: ClarityFn, key: string, value: unknown): void {\n    if (value === undefined || value === null || value === '') {\n      return;\n    }\n    clarity('set', key, String(value));\n  }\n\n  private resolvePage(url: string): AnalyticsPage {\n    const path = this.normalizePath(url);\n    const menu = this.findMenu(path);\n    return {\n      page_path: path,\n      page_name: menu?.name || path,\n      page_module: menu?.module || '',\n    };\n  }\n\n  private normalizePath(url: string): string {\n    const path = url.split('?')[0].split('#')[0];\n    return path\n      .split('/')\n      .map((segment) => (AnalyticsService.ID_SEGMENT.test(segment) ? ':id' : segment))\n      .join('/');\n  }\n\n  private findMenu(path: string): { name: string; module: string } | undefined {\n    const index = this.getMenuIndex();\n    const segments = path.split('/').filter(Boolean);\n\n    for (let size = segments.length; size > 0; size--) {\n      const candidate = `/${segments.slice(0, size).join('/')}`;\n      const found = index.get(candidate);\n      if (found) {\n        return found;\n      }\n    }\n    return undefined;\n  }\n\n  private getMenuIndex(): Map<string, { name: string; module: string }> {\n    if (!this.menuIndex) {\n      this.menuIndex = new Map();\n      this.indexMenu(this.menuOptions || [], '');\n    }\n    return this.menuIndex;\n  }\n\n  /** Achata o menuOptions em `rota -> { nome da tela, modulo }`. */\n  private indexMenu(items: MenuItem[], moduleLabel: string): void {\n    items.forEach((item) => {\n      const currentModule = moduleLabel || item.label;\n\n      if (item.route) {\n        const key = this.normalizePath(`/${item.route}`);\n        if (!this.menuIndex?.has(key)) {\n          this.menuIndex?.set(key, { name: item.label, module: currentModule });\n        }\n      }\n\n      if (item.children?.length) {\n        this.indexMenu(item.children, currentModule);\n      }\n    });\n  }\n\n  private safely(operation: () => void): void {\n    try {\n      operation();\n    } catch (error) {\n      if (!this.isProduction) {\n        console.warn('[analytics] evento ignorado', error);\n      }\n    }\n  }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { ProfileService, StorageService } from '.';\nimport { ENVIRONMENT, Environment } from '../injections';\nimport { Role } from '../models';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthService {\n  public readonly role$ = new BehaviorSubject<Role>(this.storageService.getRole());\n  private parentWindowUrl = '';\n  private subscription = new Subscription();\n  private readonly baseUrl: string;\n\n  constructor(\n    @Inject(ENVIRONMENT) private environment: Environment,\n    private http: HttpClient,\n    private storageService: StorageService,\n    private profileService: ProfileService,\n    private activatedRoute: ActivatedRoute\n  ) {\n    this.baseUrl = this.environment.API_URL.endsWith('/api') ? 'Auth' : 'api/Auth';\n\n    this.subscription.add(\n      this.activatedRoute.queryParams.subscribe((params) => {\n        if (params['parent']) {\n          this.parentWindowUrl = decodeURIComponent(params['parent']);\n        }\n      })\n    );\n  }\n\n  public getTokenByGuid(tokenGuid: string): Observable<any> {\n    let response: any;\n    return this.http.get<any>(`${this.baseUrl}/TemporaryAccessToken/${tokenGuid}`).pipe(\n      switchMap((tokenResponse: any) => {\n        response = tokenResponse;\n        this.storageService.setToken(tokenResponse.accessToken);\n        this.storageService.setUsername(tokenResponse.userName);\n        this.storageService.setRefreshToken(tokenResponse.refreshToken);\n        return this.profileService.getUserProfile();\n      }),\n      map(() => {\n        return response;\n      })\n    );\n  }\n\n  public getTokenByRefreshToken(refreshToken: string) {\n    const headers = new HttpHeaders()\n      .set('Content-Type', 'application/x-www-form-urlencoded')\n      .set('no-spinner', 'true');\n    return this.http\n      .post<any>(\n        `connect/token`,\n        `username=${this.storageService.getUsername()}&grant_type=refresh_token&refresh_token=${refreshToken}`,\n        { headers }\n      )\n      .pipe(\n        tap((response) => {\n          if (response?.access_token && response?.refresh_token) {\n            this.storageService.setToken(`Bearer ${response.access_token}`);\n            this.storageService.setRefreshToken(response.refresh_token);\n          }\n        })\n      );\n  }\n\n  public generateTokenGuid(): Observable<string> {\n    return this.http\n      .post<any>(`${this.baseUrl}/TemporaryAccessToken/generate`, {\n        RefreshToken: this.storageService.getRefreshToken(),\n      })\n      .pipe(map((response) => response?.accessToken || ''));\n  }\n\n  public logout(): void {\n    this.storageService.clear();\n    if (window.parent == window) {\n      window.location.href = this.environment.PORTAL_URL;\n    } else {\n      window.parent.postMessage({ logout: true }, this.parentWindowUrl);\n    }\n  }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { HttpResponseGridPaged } from '../models/http-response.model';\n\nexport class CrudBaseService<T> {\n  public dataset$ = new BehaviorSubject<HttpResponseGridPaged<T>>({\n    data: [],\n    draw: 0,\n    recordsFiltered: 0,\n    recordsTotal: 0,\n  });\n  public flatUnpagedDataset$ = new BehaviorSubject<T[]>([]);\n  public getHistory(entityId: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ListItem } from '../models/list-item.model';\n\n@Injectable({ providedIn: 'root' })\nexport class EnumService {\n  constructor(private translateService: TranslateService) {}\n  public getTranslatedListItemsFromEnum(enumType: any, enumName: string): Observable<ListItem[]> {\n    return this.getEnumTranslations(enumName).pipe(\n      map((enumTranslations: any) => {\n        return Object.keys(enumType)\n          .filter((item) => isNaN(+item))\n          .map((item: string) => {\n            return {\n              name: enumTranslations[item],\n              code: enumType[item],\n            };\n          });\n      })\n    );\n  }\n\n  public getEnumTranslations(enumName: string): Observable<any> {\n    return this.translateService.get('enums').pipe(\n      map((translations) => {\n        return translations[enumName];\n      })\n    );\n  }\n\n  public getListItemsFromEnum(enumType: any): ListItem[] {\n    return Object.keys(enumType)\n      .filter((item) => isNaN(+item))\n      .map((item: string) => {\n        return {\n          name: enumType[item],\n          code: enumType[item],\n        };\n      });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorMessageService {\n  public hasToken$ = new Subject<boolean>();\n  public genericModalErrorMessage$ = new Subject<string | undefined>();\n}\n","import { HttpBackend, HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { IpInfo } from '../models/ip-info.enum';\n\n@Injectable()\nexport class GeolocationService {\n  private customHttpClient: HttpClient;\n\n  constructor(private http: HttpClient, private backend: HttpBackend) {\n    this.customHttpClient = new HttpClient(backend);\n  }\n\n  public getGeoLoc() {\n    return this.customHttpClient.get<IpInfo>('https://api.ipify.org/?format=json');\n  }\n\n  public createUserLoginInfo(userInfo: any) {\n    return this.http.post(`Telemetry/CreateUserLogInfo`, userInfo);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingService {\n  public loading$ = new Subject<boolean>();\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, signal } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport {\n  Profile,\n  ProfileModule,\n  ProfileModuleActionType,\n  ProfileModuleType,\n  ProfileTypeEnum,\n} from '../models/profile.model';\nimport { StorageService } from './storage.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ProfileService {\n  public readonly moduleProfile$ = new BehaviorSubject<ProfileModule[] | undefined>(\n    this.storageService.getProfile().allModules,\n  );\n\n  public readonly profileFirstName$ = new BehaviorSubject<string | undefined>(undefined);\n\n  public readonly profileFirstName = signal<string | undefined>(this.storageService.getSession('userInfo')?.userName);\n  public readonly profileTypeItens$ = new BehaviorSubject<\n    { shipper: number; carrierId: number; profileTypeId: number } | undefined\n  >(undefined);\n  public hasFintechAdminPermission = false;\n  public hasMarketplaceAdminPermission = false;\n  public hasAnyFintechPermission = false;\n  public hasAnyMarketplacePermission = false;\n\n  constructor(\n    private http: HttpClient,\n    private storageService: StorageService,\n  ) {\n    const { fintech, marketplace } = this.storageService.getProfile();\n    this.hasFintechAdminPermission = !!fintech?.actions.some((act) =>\n      [\n        ProfileModuleActionType.FINTECH_BANK_ADMIN.toString(),\n        ProfileModuleActionType.FINTECH_CREDIT_ADMIN.toString(),\n      ].includes(act.name),\n    );\n    this.hasMarketplaceAdminPermission = !!marketplace?.actions.some(\n      (act) => act.name === ProfileModuleActionType.ADMIN_MARKEPLACE,\n    );\n    this.hasAnyFintechPermission = !!fintech?.actions?.length;\n    this.hasAnyMarketplacePermission = !!marketplace?.actions?.length;\n  }\n\n  private getProfileTypeEnum(profileTypeId: number) {\n    if (profileTypeId) return profileTypeId as ProfileTypeEnum;\n    else return null;\n  }\n\n  public getUserProfile() {\n    return this.http.get<any>('connect/userinfo').pipe(\n      tap((response) => {\n        if (response.firstName) {\n          this.profileFirstName$.next(response.firstName);\n          this.profileFirstName.set(response.firstName);\n        }\n        if (response) {\n          let dataObject = {\n            shipper: response?.shipper,\n            carrierId: response?.carrierId,\n            profileTypeId: response?.profile.profileTypeId,\n            profileName: response?.profile.name,\n            userId: response?.id,\n            profileTypeEnum: this.getProfileTypeEnum(response?.profile.profileTypeId),\n            isEtcd: response?.isEtcd,\n            shipperEtcd: response?.shipperEtcd,\n            userName: response.firstName,\n            regionalId: response?.regionalId,\n            regionalUserList: response?.regionalUserList,\n          };\n          if (response.id) {\n            this.storageService.setUserId(response.id);\n          }\n          this.storageService.setSession('userInfo', dataObject);\n          this.profileTypeItens$.next(dataObject);\n        }\n\n        const completeProfile: Profile = response.profile;\n        const marketplaceProfileModule = completeProfile.modules.find((mod) => mod.name === 'Marketplace');\n        const fintechProfileModule = completeProfile.modules.find((mod) => mod.name === 'Fintech');\n        const allModules = completeProfile.modules;\n        this.hasFintechAdminPermission = !!fintechProfileModule?.actions.some((act) =>\n          [\n            ProfileModuleActionType.FINTECH_BANK_ADMIN.toString(),\n            ProfileModuleActionType.FINTECH_CREDIT_ADMIN.toString(),\n          ].includes(act.name),\n        );\n        this.hasMarketplaceAdminPermission = !!marketplaceProfileModule?.actions.some(\n          (act) => act.name === ProfileModuleActionType.ADMIN_MARKEPLACE,\n        );\n        this.hasAnyFintechPermission = !!fintechProfileModule?.actions?.length;\n        this.storageService.setProfile({\n          marketplace: marketplaceProfileModule,\n          fintech: fintechProfileModule,\n          allModules,\n        });\n        this.moduleProfile$.next(allModules);\n      }),\n    );\n  }\n\n  public userHasPermission(\n    action: ProfileModuleActionType | ProfileModuleType | ProfileModuleActionType[] | ProfileModuleType[] | undefined,\n  ) {\n    if (!action) {\n      return true;\n    }\n    if (!this.moduleProfile$.value) {\n      return false;\n    }\n\n    if (Array.isArray(action)) {\n      return action.some((act) => {\n        if (Object.values(ProfileModuleActionType).some((val) => val === act)) {\n          return this.moduleProfile$.value?.some((module) =>\n            module.actions.some((moduleAction) => moduleAction.name === act),\n          );\n        }\n\n        if (Object.values(ProfileModuleType).some((val) => val === act)) {\n          return this.moduleProfile$.value?.some((module) => module.name === act);\n        }\n\n        return false;\n      });\n    } else {\n      if (Object.values(ProfileModuleActionType).some((val) => val === action)) {\n        return this.moduleProfile$.value.some((module) => module.actions.some((act) => act.name === action));\n      }\n\n      if (Object.values(ProfileModuleType).some((val) => val === action)) {\n        return this.moduleProfile$.value.some((module) => module.name === action);\n      }\n    }\n\n    return false;\n  }\n\n  public getUserInfo(): Observable<any> {\n    return this.http.get<any>(`connect/userinfo`);\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { APP_NAME, ENVIRONMENT, Environment, MENU_OPTIONS } from '../injections';\nimport { AppName, MenuItem, View } from '../models';\nimport { VectorApp } from '../models/vector-app.model';\nimport { AuthService } from './auth.service';\nimport { ProfileService } from './profile.service';\nimport { StorageService } from './storage.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MenuService {\n  public toggleMenu$ = new Subject<void>();\n  public menuOpened$ = new Subject<boolean>();\n  public frameUrl$ = new Subject<string | undefined>();\n  public menuNotifications: { [menuId: string]: number } = {};\n\n  constructor(\n    @Inject(ENVIRONMENT) private environment: Environment,\n    @Inject(MENU_OPTIONS) private menuOptions: MenuItem[],\n    @Inject(APP_NAME) private appName: string,\n    private profileService: ProfileService,\n    private storageService: StorageService,\n    private router: Router,\n    private authService: AuthService,\n  ) {}\n\n  public getSideMainMenuOptions(): MenuItem[] {\n    return this.menuOptions\n      .filter(\n        (menu) =>\n          (!menu.view || ![View.HOME, View.ADMIN].includes(menu.view)) &&\n          !menu.hidden &&\n          this.profileService.userHasPermission(menu.permission),\n      )\n      .map((menu) => this.removeHiddenChildren(menu))\n      .filter((menu) => !menu.hidden)\n      .map((menu, index) => this.generateId(menu, index));\n  }\n\n  public getSideAdminMenuOptions(): MenuItem[] {\n    return this.menuOptions\n      .filter(\n        (menu) => menu.view === View.ADMIN && !menu.hidden && this.profileService.userHasPermission(menu.permission),\n      )\n      .map((menu) => this.removeHiddenChildren(menu))\n      .filter((menu) => !menu.hidden)\n      .map((menu, index) => this.generateId(menu, index));\n  }\n\n  public navigateToPortal(params: Partial<VectorApp>): void {\n    this.authService.generateTokenGuid().subscribe((tokenGuid) => {\n      const userId = this.storageService.getUserId();\n      if (params.navigate) {\n        params.navigate(tokenGuid, userId);\n      } else {\n        switch (this.appName) {\n          case AppName.FINTECH:\n            this.handleFintechRedirects(params, tokenGuid, userId);\n            break;\n          case AppName.MARKETPLACE:\n            this.handleMarketplaceRedirects(params, tokenGuid, userId);\n            break;\n          case AppName.LOGTECH:\n            this.handleLogtechRedirects(params, tokenGuid, userId);\n            break;\n        }\n        this.storageService.clear();\n      }\n    });\n  }\n\n  public addMenuNotification(menuId: string) {\n    this.updateMenuNotifications(menuId, (this.menuNotifications[menuId] || 0) + 1);\n  }\n\n  public subtractMenuNotification(menuId: string) {\n    this.updateMenuNotifications(menuId, this.menuNotifications[menuId] ? this.menuNotifications[menuId] - 1 : 0);\n  }\n\n  public updateMenuNotifications(menuId: string, notificationsCount: number): void {\n    this.menuNotifications[menuId] = notificationsCount;\n  }\n\n  private removeHiddenChildren(menu: MenuItem) {\n    const newMenu = { ...menu };\n    const hadChildren = !!newMenu.children?.length;\n    newMenu.children = newMenu.children\n      ?.filter((child) => !child.hidden && this.profileService.userHasPermission(child.permission))\n      .map((menu) => this.removeHiddenChildren(menu))\n      .filter((child) => !child.hidden);\n    if (\n      hadChildren &&\n      !newMenu.children?.length &&\n      !newMenu.route &&\n      !newMenu.frameUrl &&\n      !newMenu.externalUrl &&\n      !newMenu.command\n    ) {\n      newMenu.hidden = true;\n    }\n    return newMenu;\n  }\n\n  private generateId(menu: MenuItem, index: number, parentId: string = '') {\n    menu.id = parentId ? `${parentId}-${index}` : `${index}`;\n    menu.children = menu.children?.map((child, childIndex) => this.generateId(child, childIndex, menu.id));\n    return menu;\n  }\n\n  private handleFintechRedirects(params: Partial<VectorApp>, tokenGuid: string, userId: number) {\n    if (params.appName === AppName.FINTECH) {\n      this.router.navigate([''], {\n        queryParams: { Token: tokenGuid, role: params.isAdmin ? btoa('ADMIN') : '', userId },\n      });\n    } else {\n      let url =\n        params.appName === AppName.MARKETPLACE ? this.environment.MARKETPLACE_URL : this.environment.LOGITECH_URL;\n      url += `?Token=${tokenGuid}&userId=${userId}`;\n      if (params.isAdmin) {\n        url += `&role=${btoa('ADMIN')}`;\n      }\n      window.location.href = url;\n    }\n  }\n\n  private handleMarketplaceRedirects(params: Partial<VectorApp>, tokenGuid: string, userId: number) {\n    if (params.appName === AppName.MARKETPLACE) {\n      this.router.navigate([''], {\n        queryParams: { Token: tokenGuid, role: params.isAdmin ? btoa('ADMIN') : '', userId: btoa(`${userId}`) },\n      });\n    } else {\n      let url = params.appName === AppName.FINTECH ? this.environment.FINTECH_URL : this.environment.LOGITECH_URL;\n      url += `?Token=${tokenGuid}&userId=${userId}`;\n      if (params.isAdmin) {\n        url += `&role=${btoa('ADMIN')}`;\n      }\n      window.location.href = url;\n    }\n  }\n\n  private handleLogtechRedirects(params: Partial<VectorApp>, tokenGuid: string, userId: number) {\n    if (params.appName === AppName.LOGTECH) {\n      this.router.navigate([''], {\n        queryParams: { Token: tokenGuid, userId: btoa(`${userId}`) },\n      });\n    } else {\n      let url = params.appName === AppName.FINTECH ? this.environment.FINTECH_URL : this.environment.MARKETPLACE_URL;\n      url += `?Token=${tokenGuid}&userId=${userId}`;\n      if (params.isAdmin) {\n        url += `&role=${btoa('ADMIN')}`;\n      }\n      window.location.href = url;\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n  public showModalBackground$ = new Subject<boolean>();\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, of } from 'rxjs';\nimport { VectorNotification } from '../models';\n\n@Injectable({ providedIn: 'root' })\nexport class NotificationsService {\n  public notifications$ = new BehaviorSubject<VectorNotification[]>([]);\n\n  private readonly baseUrl = 'api/Notifications'; //to do: confirmar api\n  constructor(private http: HttpClient) {}\n\n  public getUserNotifications(): void {\n    of(NOTIFICATIONS_MOCK).subscribe((notifications) => this.notifications$.next(notifications));\n    // return this.http.get(`${this.baseUrl}`);\n  }\n}\n\nconst NOTIFICATIONS_MOCK: VectorNotification[] = [\n  {\n    title: 'Lorem ipsum dolor sit amet',\n    description: 'Conference Room 3B',\n  },\n  {\n    title: 'Lorem ipsum dolor sit amet',\n    description: 'Conference Room 3B',\n    needsApproval: true,\n  },\n  {\n    title: 'Lorem ipsum dolor sit amet',\n    description: 'Conference Room 3B',\n    warning: 'Lorem',\n  },\n  {\n    title: 'Lorem ipsum dolor sit amet',\n    description: 'Conference Room 3B',\n  },\n  {\n    title: 'Lorem ipsum dolor sit amet',\n    description: 'Conference Room 3B',\n    warning: 'Lorem',\n    wasRead: true,\n  },\n  {\n    title: 'Lorem ipsum dolor sit amet',\n    description: 'Conference Room 3B',\n    wasRead: true,\n  },\n  {\n    title: 'Lorem ipsum dolor sit amet',\n    description: 'Conference Room 3B',\n    warning: 'Lorem',\n    wasRead: true,\n  },\n  {\n    title: 'Lorem ipsum dolor sit amet',\n    description: 'Conference Room 3B',\n    wasRead: true,\n  },\n];\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  standalone: false,\n  selector: 'vector-field-error-message',\n  templateUrl: './field-error-message.component.html',\n  styleUrls: ['./field-error-message.component.scss'],\n})\nexport class FieldErrorMessageComponent implements OnInit {\n  @Input()\n  public control: any;\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  public fieldErrorLabel(): string {\n    if (this.control && this.control.invalid && this.control.touched) {\n      if (this.control.hasError('required')) {\n        return 'Campo obrigatório';\n      }\n\n      if (this.control.hasError('minlength')) {\n        return `Tamanho mínimo: ${this.control.errors['minlength'].requiredLength}`;\n      }\n\n      if (this.control.hasError('maxlength')) {\n        return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;\n      }\n\n      if (this.control.hasError('fieldDoesNotMatch')) {\n        return typeof this.control.errors['fieldDoesNotMatch'] === 'string'\n          ? this.control.errors['fieldDoesNotMatch']\n          : 'Campo inválido';\n      }\n\n      return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';\n    }\n\n    return '';\n  }\n}\n","<span class=\"input-error\">{{ fieldErrorLabel() }}</span>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { ModalService } from '../../../services';\n\n@Component({\n  standalone: false,\n  selector: 'vector-calendar-field',\n  templateUrl: './calendar-field.component.html',\n  styleUrls: ['./calendar-field.component.scss'],\n})\nexport class CalendarComponent {\n  @Input()\n  public isRequired: boolean = false;\n  @Input()\n  public control: any;\n  @Input()\n  public label: string = '';\n  @Input()\n  public showCalendarOnFocus = true;\n  @Input()\n  public min?: any = DateTime.fromFormat('01/01/1900', 'dd/MM/yyyy').toJSDate();\n  @Input()\n  public max?: any = DateTime.now().startOf('day').plus({ years: 1 }).toJSDate();\n  @Input()\n  public disabledDates: Date[] = [];\n  @Input()\n  public disabled: boolean = false;\n  @Input()\n  public defaultDate: Date = DateTime.now().toJSDate();\n  @Input()\n  public hiddenErrorMessage: boolean = false;\n  @Input()\n  public showTime = false;\n  @Input()\n  public showSeconds = false;\n  @Input()\n  public stepMinute = 1;\n  @Input()\n  public stepHour = 1;\n  @Input()\n  public stepSecond = 1;\n  @Input()\n  public timeOnly: boolean = false;\n  @Input()\n  public hourFormat: string = '24';\n\n  @Output()\n  public onFocus = new EventEmitter<Event>();\n  @Output()\n  public onBlur = new EventEmitter<Event>();\n  @Output()\n  public onInput = new EventEmitter<Event>();\n  @Output()\n  public onSelect = new EventEmitter<Date>();\n\n  get placeholder() {\n    if (!this.label) {\n      return '';\n    }\n    return `${this.label}${this.isRequired ? '*' : ''}`;\n  }\n\n  public keyFilter = '';\n\n  constructor(private modalService: ModalService) {}\n\n  public fieldErrorLabel(): string {\n    if (this.control && this.control.invalid && this.control.touched) {\n      if (this.control.hasError('required')) {\n        return 'Campo obrigatório';\n      }\n\n      if (this.control.hasError('maxlength')) {\n        return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;\n      }\n\n      return 'Campo inválido';\n    }\n\n    return '';\n  }\n\n  public onShowCalendar() {\n    this.modalService.showModalBackground$.next(true);\n  }\n\n  public onHideCalendar() {\n    this.modalService.showModalBackground$.next(false);\n  }\n}\n","<div class=\"relative\">\n  <div class=\"input-container\">\n    <p-datepicker\n      appendTo=\"body\"\n      icon=\"fas fa-calendar-day\"\n      (onClose)=\"onHideCalendar()\"\n      (onShow)=\"onShowCalendar()\"\n      (onBlur)=\"onBlur.emit($event)\"\n      (onFocus)=\"onFocus.emit($event)\"\n      (onSelect)=\"onSelect.emit($event)\"\n      (onInput)=\"onInput.emit()\"\n      [defaultDate]=\"defaultDate\"\n      [disabled]=\"disabled\"\n      [disabledDates]=\"disabledDates\"\n      [formControl]=\"control\"\n      [maxDate]=\"max\"\n      [minDate]=\"min\"\n      [readonlyInput]=\"false\"\n      [showIcon]=\"true\"\n      [showOnFocus]=\"showCalendarOnFocus\"\n      [showSeconds]=\"showSeconds\"\n      [showTime]=\"showTime\"\n      [stepMinute]=\"stepMinute\"\n      [timeOnly]=\"timeOnly\"\n      [stepHour]=\"stepHour\"\n      [stepSecond]=\"stepSecond\"\n      [hourFormat]=\"hourFormat\"\n    ></p-datepicker>\n  </div>\n  <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ListItem } from '../../../models';\n\n@Component({\n  standalone: false,\n  selector: 'vector-checkbox-field',\n  templateUrl: './checkbox-field.component.html',\n  styleUrls: ['./checkbox-field.component.scss'],\n})\nexport class CheckboxFieldComponent implements OnInit {\n  @Input()\n  public isRequired: boolean = false;\n  @Input()\n  public control: any;\n  @Input()\n  public label: string = '';\n  @Input()\n  public rounded: boolean = false;\n  @Input()\n  public labelSize: 'default' | 'large' = 'default';\n  @Input()\n  public value: boolean | undefined = false;\n  @Input()\n  public groupName: string = '';\n  @Input()\n  public options: ListItem[] | null = null;\n  @Input()\n  public disabled: boolean = false;\n  @Output()\n  public valueChange = new EventEmitter<boolean>();\n  constructor() {}\n\n  ngOnInit() {\n    if (this.disabled) {\n      this.control?.disable();\n    } else {\n      this.control?.enable();\n    }\n  }\n\n  public toggleValue(): void {\n    if (this.control) {\n      this.control.setValue(!this.control.value);\n    } else {\n      this.value = !this.value;\n      this.valueChange.emit(this.value);\n    }\n  }\n}\n","<div class=\"checkbox-container flex-wrap\">\n  <ng-container *ngIf=\"control && groupName; else elseBlock\">\n    <div class=\"checkbox-item mb-3 mr-3\" *ngFor=\"let option of options\">\n      <p-checkbox\n        [name]=\"groupName\"\n        [formControl]=\"control\"\n        [value]=\"option\"\n        checkboxIcon=\"fas fa-check\"\n        [class.rounded-checkbox]=\"rounded\"\n        [inputId]=\"option.code\"\n      ></p-checkbox>\n      <label [for]=\"option.code\"> {{ option.name }}</label>\n    </div>\n  </ng-container>\n\n  <ng-template #elseBlock>\n    <p-checkbox\n      *ngIf=\"control && !groupName\"\n      [formControl]=\"control\"\n      checkboxIcon=\"fas fa-check\"\n      [binary]=\"true\"\n      [class.rounded-checkbox]=\"rounded\"\n      [disabled]=\"disabled\"\n    ></p-checkbox>\n    <p-checkbox\n      *ngIf=\"!control && !groupName\"\n      [ngModel]=\"value\"\n      (ngModelChange)=\"value = $event; valueChange.emit($event)\"\n      checkboxIcon=\"fas fa-check\"\n      [binary]=\"true\"\n      [class.rounded-checkbox]=\"rounded\"\n      [disabled]=\"disabled\"\n    ></p-checkbox>\n    <label *ngIf=\"label\" [class.large-label]=\"labelSize === 'large'\" (click)=\"toggleValue()\"\n      >{{ label }}\n      <span class=\"red-label\" *ngIf=\"isRequired\"> (*)</span>\n    </label>\n  </ng-template>\n</div>\n","export enum Currency {\n  BR = 'R$ ',\n  AR = '$ ',\n  US = '$ ',\n}\n","export enum Locale {\n  BR = 'pt-BR',\n  AR = 'es-AR',\n  US = 'en-US',\n}\n","import { AfterViewInit, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { InputNumber } from 'primeng/inputnumber';\nimport { Currency } from '../../../models/currency.enum';\nimport { Locale } from '../../../models/locale.enum';\n\n@Component({\n  standalone: false,\n  selector: 'vector-currency-field',\n  templateUrl: './currency-field.component.html',\n  styleUrls: ['./currency-field.component.scss'],\n})\nexport class CurrencyFieldComponent implements AfterViewInit {\n  @Input()\n  public minValue = 0;\n  @Input()\n  public maxValue = 999999999;\n  @Input()\n  public placeholder: string = '';\n  @Input()\n  public numberOfDecimals: number = 2;\n  @Input()\n  public control: any;\n  @Input()\n  public outlined = false;\n  @Input()\n  public rounded = false;\n  @Input()\n  public label?: string;\n  @Input()\n  public isBankingField: boolean = false;\n  @Input()\n  public inputClassName = '';\n  @Input()\n  public localePrefix: Locale | string = Locale.BR;\n  @Input()\n  public currencyPrefix: Currency | string = Currency.BR;\n  @Input()\n  public disabled = false;\n  @Input()\n  public centered = false;\n  @Input()\n  public inputId?: string;\n\n  @Output()\n  public onBlur = new EventEmitter<Event>();\n\n  @ViewChild(InputNumber)\n  private inputElement?: InputNumber;\n\n  ngAfterViewInit() {\n    const inputElement = this.inputElement?.el.nativeElement.querySelector('input');\n    inputElement.addEventListener(\n      'select',\n      () => {\n        inputElement.selectionStart = inputElement.selectionEnd;\n      },\n      false\n    );\n  }\n\n  public getInputNgClass() {\n    return { outlined: this.outlined, rounded: this.rounded, [this.inputClassName]: !!this.inputClassName };\n  }\n\n  public focusLastIndex($event: Event): void {\n    const target = $event.target as HTMLInputElement;\n    const selectionIndex = target?.value.length || 0;\n    target?.setSelectionRange(selectionIndex, selectionIndex);\n  }\n\n  public inputNextChar($event: KeyboardEvent): void {\n    const target = $event.target as HTMLInputElement;\n    const valueTyped = $event.key;\n    let newValue = target.value.replace('R$ ', '').replace(/[\\.,]/g, '');\n    const isDeleteOrBackspace = ['Delete', 'Backspace'].includes($event.key);\n    if (isDeleteOrBackspace) {\n      newValue = newValue.substring(0, newValue.length - 1).padStart(3, '0');\n    } else if (!isNaN(+valueTyped)) {\n      newValue += valueTyped;\n      newValue = `${+newValue}`.padStart(3, '0');\n    }\n    target.value = `${this.outlined ? 'R$ ' : ''}${Number(\n      `${newValue.substring(0, newValue.length - 2)}.${newValue.substring(newValue.length - 2, newValue.length)}`\n    ).toLocaleString('pt-BR', {\n      currency: 'BRL',\n      minimumFractionDigits: 2,\n      maximumFractionDigits: this.numberOfDecimals,\n    })}`;\n    this.focusLastIndex($event);\n  }\n\n  public clearValue() {\n    this.control.setValue(0);\n  }\n}\n","<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\n  <div class=\"inner-container\">\n    <label *ngIf=\"label\">{{ label }}</label>\n    <div class=\"input\">\n      <span *ngIf=\"!outlined\">{{ currencyPrefix }} </span>\n      <div class=\"value-input\">\n        <p-inputNumber\n          class=\"currency-input\"\n          [ngClass]=\"getInputNgClass()\"\n          [styleClass]=\"centered ? 'text-centered' : ''\"\n          [formControl]=\"control\"\n          mode=\"decimal\"\n          [minFractionDigits]=\"2\"\n          [maxFractionDigits]=\"numberOfDecimals\"\n          [min]=\"minValue\"\n          [max]=\"maxValue\"\n          [prefix]=\"outlined ? currencyPrefix : ''\"\n          [disabled]=\"disabled\"\n          [locale]=\"localePrefix ? localePrefix : 'pt-BR'\"\n          (click)=\"isBankingField ? focusLastIndex($event) : null\"\n          (onKeyDown)=\"isBankingField ? inputNextChar($event) : null\"\n          (onBlur)=\"onBlur.emit($event)\"\n          [inputId]=\"inputId\"\n        ></p-inputNumber>\n      </div>\n    </div>\n  </div>\n  <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { DocumentType, ListItem } from '../../../models';\nimport { MaskUtil } from '../../../utils';\n\n@Component({\n  standalone: false,\n  selector: 'vector-text-field',\n  templateUrl: './text-field.component.html',\n  styleUrls: ['./text-field.component.scss'],\n})\nexport class TextFieldComponent implements OnInit, OnDestroy {\n  @Input()\n  public isRequired: boolean = false;\n  @Input()\n  public label: string = '';\n  @Input()\n  public maxlength: string = '';\n  @Input()\n  public isPassword = false;\n  @Input()\n  public numeric = false;\n  @Input()\n  public numericPositive = false;\n  @Input()\n  public numericDotComma = false;\n  @Input()\n  public decimal = false;\n  @Input()\n  public onlyText = false;\n  @Input()\n  public noSpecialCharacters = false;\n  @Input()\n  public alphaNumeric = false;\n  @Input()\n  public alphaNumericAndWhitespace = false;\n  @Input()\n  public mask?: string;\n  @Input()\n  public autoClear = true;\n  @Input()\n  public readonly = false;\n  @Input()\n  public rightIcon = '';\n  @Input()\n  public centered = false;\n  @Input()\n  public _enableDocumentTypeChoice = false;\n  @Input() set enableDocumentTypeChoice(value: boolean) {\n    this._enableDocumentTypeChoice = value;\n    this.handleDocumentTypeChange();\n  }\n  get enableDocumentTypeChoice(): boolean {\n    return this._enableDocumentTypeChoice;\n  }\n  @Input()\n  public hiddenErrorMessage: boolean = false;\n  @Input()\n  public leftLabel?: string;\n  @Input()\n  set control(_control: any) {\n    this._control = _control;\n    if (this._enableDocumentTypeChoice) {\n      this.handleInitialDocumentTypeState();\n    }\n\n    if (this.controlSubscription) {\n      this.controlSubscription.unsubscribe();\n      this.controlSubscription = new Subscription();\n    }\n    this.controlSubscription.add(\n      this.control.valueChanges.subscribe((value: string) => {\n        if (this._enableDocumentTypeChoice && !this.lastTypedValue && value?.length > 11) {\n          this.handleInitialDocumentTypeState();\n        }\n        this.lastTypedValue = value;\n      })\n    );\n  }\n  @Input()\n  public inputId?: string;\n  @Input()\n  public slotChar = '_';\n  @Input()\n  public disabled: boolean = false;\n  @Input()\n  public pattern: string = '';\n  @Output()\n  public blurEvent = new EventEmitter();\n  @Output()\n  public inputEvent = new EventEmitter();\n  @Output()\n  public enterKeyPress = new EventEmitter();\n  @Output()\n  public backSpaceKeyPress = new EventEmitter();\n  @Output()\n  public focusEvent = new EventEmitter();\n  @Output()\n  public onDocumentTypeChange = new EventEmitter<ListItem>();\n\n  public isPasswordVisible = false;\n  public validateOnly = false;\n\n  get placeholder() {\n    if (!this.label) {\n      return '';\n    }\n    return `${this.label}${this.isRequired ? '*' : ''}`;\n  }\n\n  get keyfilter() {\n    this.validateOnly = false;\n    if (this.numeric) {\n      return 'int';\n    }\n    if (this.numericPositive) {\n      return 'pint';\n    }\n    if (this.decimal) {\n      this.validateOnly = true;\n      return /^(\\d+(?:[\\,]\\d{2})?)$/;\n    }\n    if (this.onlyText) {\n      this.validateOnly = true;\n      return /^[a-zA-ZÀ-ú\\s]*$/gm;\n    }\n    if (this.alphaNumeric) {\n      return 'alphanum';\n    }\n    if (this.alphaNumericAndWhitespace) {\n      return /^[A-Za-zÀ-ú0-9 ]*$/gm;\n    }\n    if (this.numericDotComma) {\n      return 'money';\n    }\n    if (this.noSpecialCharacters) {\n      return /^[a-zA-ZÀ-ÖØ-öø-ÿ0-9\\s]+$/;\n    }\n    return /[\\s\\S]*/;\n  }\n\n  get control() {\n    return this._control;\n  }\n\n  get showPasswordIcon() {\n    return this.isPasswordVisible ? 'fas fa-eye' : 'fas fa-eye-slash';\n  }\n\n  public documentTypes: ListItem[] = [\n    {\n      name: 'CPF',\n      code: DocumentType.CPF,\n    },\n    {\n      name: 'CNPJ',\n      code: DocumentType.CNPJ,\n    },\n  ];\n\n  public selectedDocumentType = this.documentTypes[1];\n\n  private lastBlurValue = '';\n  private lastTypedValue = '';\n  private subscription = new Subscription();\n  private controlSubscription = new Subscription();\n  private _control: any;\n\n  ngOnInit() {\n    if (this._enableDocumentTypeChoice) {\n      this.setDocumentType(this.selectedDocumentType.code);\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscription.unsubscribe();\n    this.controlSubscription.unsubscribe();\n  }\n\n  public onBlur() {\n    this.control.markAsTouched();\n    if (this.lastBlurValue !== this.control.value) {\n      this.lastBlurValue = this.control.value;\n      setTimeout(() => {\n        this.blurEvent.emit(this.control.value);\n      });\n    }\n  }\n\n  public onInput($event: Event) {\n    const target = $event.target as HTMLInputElement;\n    this.inputEvent.emit(target.value);\n  }\n\n  public onEnterPress() {\n    this.onBlur();\n    this.enterKeyPress.emit();\n  }\n  public onBackSpacePress() {\n    this.onBlur();\n    this.backSpaceKeyPress.emit();\n  }\n\n  public onFocus($event: Event) {\n    const target = $event.target as HTMLInputElement;\n    if (this.mask) {\n      const firstUnderscore = target?.value.indexOf('_');\n      const selectionIndex = (firstUnderscore >= 0 ? firstUnderscore : target?.value.length) || 0;\n      target?.setSelectionRange(selectionIndex, selectionIndex);\n    }\n    this.focusEvent.emit(target?.value);\n  }\n\n  public toggleShowPassword() {\n    this.isPasswordVisible = !this.isPasswordVisible;\n  }\n\n  public handleDocumentTypeChange() {\n    if (this.selectedDocumentType.code === DocumentType.CNPJ) {\n      this.setDocumentType(DocumentType.CPF);\n    } else {\n      this.setDocumentType(DocumentType.CNPJ);\n    }\n  }\n\n  private handleInitialDocumentTypeState() {\n    if (this.control?.value) {\n      if (this.control.value.length === 11) {\n        this.setDocumentType(DocumentType.CPF);\n      } else {\n        this.setDocumentType(DocumentType.CNPJ);\n      }\n    } else {\n      this.setDocumentType(DocumentType.CPF);\n    }\n  }\n\n  private setDocumentType(documentType: DocumentType) {\n    if (this._enableDocumentTypeChoice) {\n      switch (documentType) {\n        case DocumentType.CNPJ:\n          this.selectedDocumentType = this.documentTypes[1];\n          this.mask = MaskUtil.CNPJ_TEXT_FIELD_PATTERN;\n          break;\n        case DocumentType.CPF:\n          this.selectedDocumentType = this.documentTypes[0];\n          this.mask = MaskUtil.CPF_TEXT_FIELD_PATTERN;\n          break;\n      }\n    } else {\n      this.mask = '';\n    }\n    this.onDocumentTypeChange.emit(this.selectedDocumentType);\n  }\n}\n","<form class=\"input-container p-input-icon-right\">\n  <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\n  <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\n  <div class=\"p-inputgroup\" *ngIf=\"!inputId\">\n    <vector-button\n      *ngIf=\"enableDocumentTypeChoice\"\n      leftIcon=\"fas fa-exchange-alt\"\n      type=\"success\"\n      [label]=\"selectedDocumentType.name\"\n      [disabled]=\"control.disabled\"\n      [shadow]=\"false\"\n      (onClick)=\"handleDocumentTypeChange()\"\n    ></vector-button>\n\n    <span *ngIf=\"leftLabel\" class=\"left-label\">\n      {{ leftLabel }}\n    </span>\n\n    <input\n      *ngIf=\"!mask\"\n      pInputText\n      type=\"text\"\n      [formControl]=\"control\"\n      [attr.maxlength]=\"maxlength\"\n      [placeholder]=\"placeholder\"\n      [pValidateOnly]=\"validateOnly\"\n      [pKeyFilter]=\"keyfilter\"\n      [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\n      (blur)=\"onBlur()\"\n      (input)=\"onInput($event)\"\n      (keydown.enter)=\"onEnterPress()\"\n      (keydown.backspace)=\"onBackSpacePress()\"\n      (click)=\"onFocus($event)\"\n      [readonly]=\"readonly ? true : null\"\n      [pattern]=\"pattern\"\n    />\n    <p-inputMask\n      *ngIf=\"mask\"\n      type=\"text\"\n      [inputId]=\"inputId || 'mask-field'\"\n      [formControl]=\"control\"\n      [mask]=\"mask\"\n      [placeholder]=\"placeholder\"\n      (onBlur)=\"onBlur()\"\n      (keydown.enter)=\"onEnterPress()\"\n      (keydown.backspace)=\"onBackSpacePress()\"\n      [autoClear]=\"autoClear\"\n      [unmask]=\"true\"\n      [styleClass]=\"centered ? 'text-centered' : ''\"\n      [slotChar]=\"slotChar\"\n      (click)=\"onFocus($event)\"\n      [pattern]=\"pattern\"\n    ></p-inputMask>\n  </div>\n  <div class=\"p-inputgroup\" *ngIf=\"inputId\">\n    <vector-button\n      *ngIf=\"enableDocumentTypeChoice\"\n      leftIcon=\"fas fa-exchange-alt\"\n      type=\"success\"\n      [label]=\"selectedDocumentType.name\"\n      [disabled]=\"control.disabled\"\n      [shadow]=\"false\"\n      (onClick)=\"handleDocumentTypeChange()\"\n    ></vector-button>\n\n    <span *ngIf=\"leftLabel\" class=\"left-label\">\n      {{ leftLabel }}\n    </span>\n\n    <input\n      *ngIf=\"!mask\"\n      [id]=\"inputId\"\n      pInputText\n      type=\"text\"\n      [formControl]=\"control\"\n      [attr.maxlength]=\"maxlength\"\n      [placeholder]=\"placeholder\"\n      [pValidateOnly]=\"validateOnly\"\n      [pKeyFilter]=\"keyfilter\"\n      [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\n      (blur)=\"onBlur()\"\n      (input)=\"onInput($event)\"\n      (keydown.enter)=\"onEnterPress()\"\n      (keydown.backspace)=\"onBackSpacePress()\"\n      (click)=\"onFocus($event)\"\n      [readonly]=\"readonly ? true : null\"\n      [pattern]=\"pattern\"\n    />\n    <p-inputMask\n      *ngIf=\"mask\"\n      type=\"text\"\n      [inputId]=\"inputId || 'mask-field'\"\n      [formControl]=\"control\"\n      [mask]=\"mask\"\n      [placeholder]=\"placeholder\"\n      (onBlur)=\"onBlur()\"\n      (keydown.enter)=\"onEnterPress()\"\n      (keydown.backspace)=\"onBackSpacePress()\"\n      [autoClear]=\"autoClear\"\n      [unmask]=\"true\"\n      [styleClass]=\"centered ? 'text-centered' : ''\"\n      [slotChar]=\"slotChar\"\n      (click)=\"onFocus($event)\"\n      [pattern]=\"pattern\"\n    ></p-inputMask>\n  </div>\n  <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</form>\n","import { Component, EventEmitter, Input, Output, Renderer2, signal } from '@angular/core';\nimport { MultiSelectFilterEvent } from 'primeng/multiselect';\nimport { ListItem } from '../../../models';\nimport { BaseDropdown } from '../../../services';\nimport { ObjectUtil } from '../../../utils';\n\nexport type ListItemExtend = ListItem & {\n  key?: number | string;\n  id?: number | string;\n};\n\nexport type ListItemOptionsFlagType = ListItem & {\n  align: 'center' | 'left';\n  showDescriptionOnRight: boolean;\n  type: 'img' | 'icon';\n  iconSource?: string;\n  iconSize?: '1em' | '1.25em' | '1.5em' | '1.75em' | '2em';\n  iconClass?: string;\n  imgSource?: string;\n  imgSize?: '15' | '20' | '25';\n  imgClass?: string;\n};\n\n@Component({\n  standalone: false,\n  selector: 'vector-multiselect-field',\n  templateUrl: './multiselect-field.component.html',\n  styleUrls: ['./multiselect-field.component.scss'],\n})\nexport class MultiselectFieldComponent {\n  @Input()\n  set pagedSugestion(_pagedSugestion: ListItem[]) {\n    this._pagedSugestion = _pagedSugestion;\n    this.options = this.pagedSugestion || [];\n  }\n  @Input()\n  public isRequired: boolean = false;\n  @Input()\n  public control: any;\n  @Input()\n  public label: string = '';\n  @Input()\n  public options: ListItem[] | ListItemExtend[] | ListItemOptionsFlagType[] = [];\n  @Input()\n  public filter = false;\n  @Input()\n  public showSelectAllOption: boolean = true;\n  @Input()\n  public display: string = 'comma';\n  @Input()\n  public paged = true;\n  @Input()\n  public disabled: boolean = false;\n  @Input()\n  public minLengthToService: number = 0;\n  @Input()\n  public initialLoad = true;\n  @Input()\n  public service: BaseDropdown | undefined;\n  @Input()\n  public filterVirtualScrool = false;\n  @Input()\n  public showHeader: boolean = true;\n  @Input()\n  public showFlags: boolean = false;\n  private _showFlagsOptions?: ListItemOptionsFlagType[] | undefined;\n\n  @Input()\n  public dependencies: any;\n  @Input()\n  public limitScrollPage: number = 20;\n  @Input()\n  public forceSelection = true;\n\n  @Input()\n  set showFlagsOptions(value: ListItemOptionsFlagType[]) {\n    if (!this.showFlags) {\n      throw new Error('showFlags is set to false. Setting showFlagsOptions is not allowed.');\n    }\n    value.forEach((option) => {\n      if (option.type === 'img') {\n        if (!option.imgSource) {\n          throw new Error(\"imgSource is required when type is 'img'\");\n        }\n        if (!option.imgSize) {\n          throw new Error(\"imgSize is required when type is 'img'\");\n        }\n      } else if (option.type === 'icon') {\n        if (!option.iconSource) {\n          throw new Error(\"iconSource is required when type is 'icon'\");\n        }\n        if (!option.iconSize) {\n          throw new Error(\"iconSize is required when type is 'icon'\");\n        }\n      }\n    });\n    this._showFlagsOptions = value;\n  }\n\n  get showFlagsOptions(): ListItemOptionsFlagType[] {\n    if (!this._showFlagsOptions) {\n      throw new Error('showFlagsOptions was not set');\n    }\n    return this._showFlagsOptions;\n  }\n\n  @Output()\n  public onChange = new EventEmitter();\n  @Output()\n  public onClosePanel = new EventEmitter();\n\n  private currentSearchQuery = '';\n  private currentScrollPage = -1;\n  private currentScrollIndex = 0;\n\n  public unlistenAutocompleteVirtualScroll = () => {};\n\n  get placeholder() {\n    if (!this.label) {\n      return '';\n    }\n    return `${this.label}${this.isRequired ? '*' : ''}`;\n  }\n\n  get pagedSugestion() {\n    return this._pagedSugestion;\n  }\n\n  private _pagedSugestion: ListItem[] = [];\n  private signalOptions = signal<ListItem[]>([]);\n\n  constructor(private renderer: Renderer2) {}\n\n  ngOnInit(): void {\n    if (this.initialLoad && this.filterVirtualScrool) {\n      this.search(null, true);\n    }\n\n    if (this.control && this.disabled) {\n      this.control.disable();\n    } else {\n      this.control.enable();\n    }\n\n    if (this.service && this.control && this.control.value && Array.isArray(this.control.value)) {\n      const controlValueArray = this.control.value.map((value: any) => value);\n      if (controlValueArray.length) {\n        this.loadInitialSelectedValues(controlValueArray);\n      }\n    }\n  }\n\n  public fieldErrorLabel(): string {\n    if (this.control && this.control.invalid && this.control.touched) {\n      if (this.control.hasError('required')) {\n        return 'Campo obrigatório';\n      }\n\n      return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';\n    }\n\n    return '';\n  }\n\n  public customFormattingMultiSelectFieldWithFlags(): void {\n    this.onloadAutocompletePanelService();\n\n    setTimeout(() => {\n      const vectorMultiselectField = document.querySelector('vector-multiselect-field.multiselect-flags');\n\n      if (vectorMultiselectField) {\n        const pOverlayElement = vectorMultiselectField.querySelector('p-overlay');\n\n        if (pOverlayElement) {\n          const classList = Array.from(pOverlayElement.classList);\n          const targetClass = classList.find((className) => className.startsWith('ng-tns-'));\n\n          if (targetClass) {\n            const classReferenceCode = targetClass.replace('ng-tns-', '');\n            const targetDivWithRefCode = document.querySelector(`div.ng-tns-${classReferenceCode}`);\n\n            if (targetDivWithRefCode) {\n              targetDivWithRefCode.classList.add('multiselect-flags');\n            }\n          }\n        }\n      }\n    }, 200);\n  }\n\n  private onloadAutocompletePanelService(): void {\n    if (this.service) {\n      this.search();\n      this.currentScrollPage++;\n\n      this.service\n        .getPaged(\n          encodeURIComponent(this.currentSearchQuery),\n          this.currentScrollPage,\n          this.limitScrollPage,\n          this.dependencies\n        )\n        .subscribe({\n          next: (response) => {\n            if (response && response.length) {\n              const currentSignalOptions = this.signalOptions() || [];\n              const combined = [\n                ...currentSignalOptions,\n                ...response,\n                ...(this.currentScrollPage === 0 ? [] : (this.options as (ListItem | ListItemOptionsFlagType)[])),\n              ];\n              const uniqueOptions = combined.filter(\n                (item, index, self) => self.findIndex((i) => i.code === item.code) === index\n              );\n\n              this.options = uniqueOptions;\n              this.signalOptions.set(uniqueOptions);\n            } else {\n              this.options = this.currentScrollPage === 0 ? [] : this.options;\n              this.signalOptions.set(this.options);\n            }\n\n            const controlValue = typeof this.control.value == 'object' ? this.control.value?.code : this.control.value;\n\n            if (this.control.value && this.options?.find((item) => item.code == controlValue)) {\n              this.setControlValueFromSuggestions();\n            }\n\n            if (this.forceSelection) {\n              this.handleSearchErrors();\n            }\n          },\n          error: (err) => {},\n        });\n    }\n  }\n\n  private loadInitialSelectedValues(controlValueArray: any[]): void {\n    if (!this.service) return;\n    this.service.getPaged('', 0, this.limitScrollPage, this.dependencies).subscribe({\n      next: (response) => {\n        this.options = response;\n        this.setInitialControlValues(controlValueArray);\n      },\n      error: (err) => {},\n    });\n  }\n\n  private setInitialControlValues(values: any[]): void {\n    const selectedItems = (this.options as ListItemExtend[])\n      .filter((item) => values.includes(item.code || item.key || item.id))\n      .map((el) => (el.code = el.key ? el.key : el.id ? el.id : el.code));\n    this.control.setValue(selectedItems, { emitEvent: false });\n  }\n\n  public onOpenAutocompletePanel(): void {\n    this.search();\n    const multiSelectPanel = document.querySelector('.p-multiselect-items-wrapper');\n\n    if (multiSelectPanel && this.paged && this.currentSearchQuery.length >= this.minLengthToService) {\n      this.unlistenAutocompleteVirtualScroll = this.renderer.listen(multiSelectPanel, 'scroll', (event) => {\n        const eventHeight = event.target.scrollHeight - event.target.clientHeight - 150;\n\n        if (Math.round(event.target.scrollTop) >= eventHeight) {\n          this.pageResults();\n        }\n      });\n    }\n  }\n\n  public onHideAutocompletePanel(): void {\n    if (this.paged) {\n      this.unlistenAutocompleteVirtualScroll();\n    }\n  }\n\n  public search($event?: any, forceSearch = false): void {\n    this.currentSearchQuery = $event?.filter.toUpperCase() || '';\n    this.currentScrollPage = -1;\n    this.currentScrollIndex = 0;\n    if (forceSearch || this.currentSearchQuery.length >= this.minLengthToService) {\n      this.pageResults();\n    } else {\n      this.options = [];\n    }\n  }\n\n  public onFilterChange($event?: MultiSelectFilterEvent): void {\n    if (!$event || !$event.filter) return;\n\n    if (this.service && $event?.filter.length >= this.minLengthToService) {\n      this.service.getPaged($event.filter, this.currentScrollPage, this.limitScrollPage, this.dependencies).subscribe({\n        next: (response: ListItem[]) => {\n          if (response && response.length) {\n            const currentSignalOptions = this.signalOptions() || [];\n            const combined = [...response, ...currentSignalOptions, ...(this.options as ListItem[])];\n            const uniqueOptions = combined.filter(\n              (item, index, self) => self.findIndex((i) => i.code === item.code) === index\n            );\n\n            this.options = uniqueOptions;\n            this.signalOptions.set(uniqueOptions);\n          }\n        },\n        error: (err) => {},\n      });\n    }\n  }\n\n  private pageResults(): void {\n    const filteredOptions = this.filterListByQuery(this.pagedSugestion, this.currentSearchQuery.toUpperCase());\n    this.options = filteredOptions.slice(0, this.currentScrollIndex + 20);\n\n    if (this.pagedSugestion?.length && this.pagedSugestion.length > 20) {\n      this.currentScrollIndex = this.currentScrollIndex + 20;\n    }\n\n    this.setControlValueFromSuggestions();\n  }\n\n  private filterListByQuery(list: ListItem[] = [], query: string): ListItem[] {\n    return list.filter(\n      (opt) => String(opt.code).toUpperCase().includes(query) || opt.name.toUpperCase().includes(query)\n    );\n  }\n\n  private setControlValueFromSuggestions() {\n    const code =\n      (ObjectUtil.isValid(this.control.value?.code) && `${this.control.value?.code}`) || `${this.control.value}`;\n    if (this.control.value && this.options?.length) {\n      let itemsArray = this.options;\n      if (this.options?.length) {\n        itemsArray = this.options;\n      }\n      const itemFromSuggestions = itemsArray.find((opt) => `${opt.code}`.toUpperCase() === code.toUpperCase());\n      if (itemFromSuggestions) {\n        this.control.setValue(itemFromSuggestions, { emitEvent: false });\n      } else {\n        this.service?.getById(+code).subscribe((response) => {\n          this.control.setValue(response, { emitEvent: false });\n        });\n      }\n    } else if (this.control.value && !this.options?.length) {\n      this.service?.getById(+code).subscribe((response) => {\n        this.control.setValue(response, { emitEvent: false });\n      });\n    }\n  }\n\n  private handleSearchErrors() {\n    if (this.options?.length) {\n      delete this.control.errors?.itemNotFound;\n    } else if (this.currentSearchQuery) {\n      this.control.setErrors({ itemNotFound: true });\n    }\n  }\n}\n","<div class=\"multiselect-field-input-container\">\n  <p-multiSelect\n    *ngIf=\"!filterVirtualScrool\"\n    #multiselect\n    appendTo=\"body\"\n    optionLabel=\"name\"\n    optionValue=\"code\"\n    dropdownIcon=\"fas fa-sort-down\"\n    selectedItemsLabel=\"Selecionar todos\"\n    [panelStyleClass]=\"filter ? 'has-filter' : ''\"\n    [options]=\"options\"\n    [formControl]=\"control\"\n    [placeholder]=\"placeholder\"\n    [filter]=\"filter\"\n    [maxSelectedLabels]=\"options.length - 1\"\n    [showToggleAll]=\"showSelectAllOption\"\n    [dropdownIcon]=\"'pi pi-chevron-down'\"\n    [display]=\"display\"\n    (onChange)=\"onChange.emit($event)\"\n    (onPanelHide)=\"onClosePanel.emit($event)\"\n    (onPanelShow)=\"customFormattingMultiSelectFieldWithFlags()\"\n    (onFilter)=\"onFilterChange($event)\"\n    [disabled]=\"disabled\"\n    [showHeader]=\"showHeader\"\n  >\n    <ng-container *ngIf=\"showFlags\">\n      <ng-template let-option pTemplate=\"item\">\n        <div class=\"grid-nogutter w-full flex\">\n          <div\n            class=\"md:col-6 sm:col-12 align-content-center\"\n            [ngClass]=\"option.align === 'center' ? 'md:text-center' : 'md:text-left'\"\n          >\n            <img\n              *ngIf=\"option.type == 'img'\"\n              [src]=\"option.imgSource\"\n              [ngClass]=\"option.imgClass\"\n              [style]=\"{ height: option.imgSize + 'px' }\"\n            />\n            <i\n              *ngIf=\"option.type == 'icon'\"\n              [className]=\"option.iconSource\"\n              [ngClass]=\"option.iconClass\"\n              [style]=\"{ 'font-size': option.iconSize }\"\n            ></i>\n          </div>\n\n          <div *ngIf=\"option.showDescriptionOnRight\" class=\"col-6 hidden md:block align-content-center\">\n            <span class=\"block\">{{ option.name }}</span>\n          </div>\n        </div>\n      </ng-template>\n    </ng-container>\n  </p-multiSelect>\n\n  <p-multiSelect\n    *ngIf=\"filterVirtualScrool\"\n    #multiselect\n    appendTo=\"body\"\n    optionLabel=\"name\"\n    optionValue=\"code\"\n    dropdownIcon=\"fas fa-sort-down\"\n    selectedItemsLabel=\"Selecionar todos\"\n    [panelStyleClass]=\"filter ? 'has-filter' : ''\"\n    [options]=\"options\"\n    [formControl]=\"control\"\n    [placeholder]=\"placeholder\"\n    [filter]=\"filter\"\n    [maxSelectedLabels]=\"options.length - 1\"\n    [showHeader]=\"true\"\n    [showToggleAll]=\"showSelectAllOption\"\n    [dropdownIcon]=\"'pi pi-chevron-down'\"\n    [display]=\"display\"\n    (onChange)=\"onChange.emit($event)\"\n    (onFilter)=\"search($event)\"\n    (onPanelShow)=\"onOpenAutocompletePanel()\"\n    (onPanelHide)=\"onHideAutocompletePanel()\"\n    [disabled]=\"disabled\"\n  >\n  </p-multiSelect>\n  <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ListItem } from '../../../models';\nimport { BaseDropdown } from '../../../services';\nimport { ObjectUtil } from '../../../utils';\n\nexport type DropdownButtonAction = {\n  label: string;\n  onClick: (value: any) => void;\n};\n\n@Component({\n  standalone: false,\n  selector: 'vector-dropdown-field',\n  templateUrl: './dropdown-field.component.html',\n  styleUrls: ['./dropdown-field.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class DropdownFieldComponent implements OnInit, OnDestroy {\n  @Input()\n  set options(_options: ListItem[]) {\n    this._options = _options;\n    this.pagedSuggestions = this.options || [];\n  }\n  @Input()\n  public isNgContent = false;\n  @Input()\n  public forceSelection = true;\n  @Input()\n  public isRequired: boolean | undefined = false;\n  @Input()\n  set control(_control: any) {\n    this._control = _control;\n    if (this.control) {\n      this.subscription.add(\n        this.control.valueChanges.subscribe(() => {\n          this.setControlValueFromSuggestions();\n        }),\n      );\n    }\n  }\n  @Input()\n  public label: string = '';\n  @Input()\n  public service: BaseDropdown | undefined;\n  @Input()\n  public paged = true;\n  @Input()\n  public buttonAction: DropdownButtonAction | undefined;\n  @Input()\n  public dependencies: any;\n  @Input()\n  public hiddenErrorMessage: boolean = false;\n  @Input()\n  public dynamicFilters?: ListItem[];\n  @Input()\n  public minLengthToService: number = 0;\n  @Input()\n  public initialLoad = true;\n  @Input()\n  public disabled = false;\n  @Input()\n  public limitScrollPage: number = 20;\n  @Input()\n  public inputId?: string;\n  @Output()\n  public onFocus = new EventEmitter();\n  @Output()\n  public onChange = new EventEmitter();\n\n  get control() {\n    return this._control;\n  }\n\n  get options() {\n    return this._options;\n  }\n\n  get placeholder() {\n    if (!this.label) {\n      return '';\n    }\n    return `${this.label}${this.isRequired ? '*' : ''}`;\n  }\n\n  public pagedSuggestions: ListItem[] = [];\n  public unlistenAutocompleteVirtualScroll = () => {};\n  public selectedDynamicFilter: any = this.dynamicFilters ? this.dynamicFilters[0].code : undefined;\n\n  private _control: any;\n  private _options: any[] = [];\n  private currentScrollPage = -1;\n  private currentScrollIndex = 0;\n  private subscription = new Subscription();\n  private currentSearchQuery = '';\n\n  constructor(private renderer: Renderer2) {}\n\n  ngOnInit(): void {\n    if (this.control && this.disabled) {\n      this.control.disable();\n    } else {\n      this.control.enable();\n    }\n\n    if (this.initialLoad) {\n      this.search(null, true);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n    if (this.unlistenAutocompleteVirtualScroll) {\n      this.unlistenAutocompleteVirtualScroll();\n    }\n  }\n\n  public fieldErrorLabel(): string {\n    if (this.control?.invalid && this.control.touched) {\n      if (this.control.hasError('required')) {\n        return 'Campo obrigatório';\n      }\n\n      return this.control?.errors && typeof this.control.errors['invalid'] === 'string'\n        ? this.control?.errors['invalid']\n        : 'Campo inválido';\n    }\n\n    return '';\n  }\n\n  public search($event?: any, forceSearch = false): void {\n    this.currentSearchQuery = $event?.query.toUpperCase() || '';\n    this.currentScrollPage = -1;\n    this.currentScrollIndex = 0;\n    if (forceSearch || this.currentSearchQuery.length >= this.minLengthToService) {\n      this.pageResults();\n    } else {\n      this.pagedSuggestions = [];\n    }\n  }\n\n  public onOpenAutocompletePanel(): void {\n    const autocompletePanel = document.querySelector('.p-autocomplete-panel');\n    if (autocompletePanel && this.paged && this.currentSearchQuery.length >= this.minLengthToService) {\n      this.unlistenAutocompleteVirtualScroll = this.renderer.listen(autocompletePanel, 'scroll', (event) => {\n        const eventHeight = event.target.scrollHeight - event.target.clientHeight - 150;\n\n        if (Math.round(event.target.scrollTop) >= eventHeight) {\n          this.pageResults();\n        }\n      });\n    }\n  }\n\n  public onHideAutocompletePanel(): void {\n    if (this.paged) {\n      this.unlistenAutocompleteVirtualScroll();\n    }\n  }\n\n  private pageResults(): void {\n    if (this.service) {\n      this.currentScrollPage++;\n      this.service\n        .getPaged(\n          encodeURIComponent(this.currentSearchQuery),\n          this.currentScrollPage,\n          this.limitScrollPage,\n          this.dependencies,\n        )\n        .subscribe({\n          next: (response) => {\n            const formattedResponse = response.map((item) => ({\n              ...item,\n              name: this.formatDropdownValue(item.name),\n            }));\n            this.pagedSuggestions =\n              this.currentScrollPage === 0 ? formattedResponse : this.pagedSuggestions?.concat(formattedResponse);\n            const controlValue = typeof this.control.value == 'object' ? this.control.value?.code : this.control.value;\n            if (this.control.value && this.pagedSuggestions?.find((item) => item.code == controlValue)) {\n              this.setControlValueFromSuggestions();\n            }\n            if (this.forceSelection) {\n              this.handleSearchErrors();\n            }\n          },\n          error: (err) => {},\n        });\n    } else {\n      const filteredOptions = this.filterListByQuery(this.options, this.currentSearchQuery.toUpperCase());\n      this.pagedSuggestions = filteredOptions.slice(0, this.currentScrollIndex + this.limitScrollPage);\n\n      if (this.options?.length && this.options.length > this.limitScrollPage) {\n        this.currentScrollIndex = this.currentScrollIndex + this.limitScrollPage;\n      }\n\n      this.setControlValueFromSuggestions();\n      if (this.forceSelection) {\n        this.handleSearchErrors();\n      }\n    }\n  }\n\n  private setControlValueFromSuggestions() {\n    const code =\n      (ObjectUtil.isValid(this.control.value?.code) && `${this.control.value?.code}`) || `${this.control.value}`;\n    if (this.control.value && this.pagedSuggestions?.length) {\n      let itemsArray = this.pagedSuggestions;\n      if (this.options?.length) {\n        itemsArray = this.options;\n      }\n      const itemFromSuggestions = itemsArray.find((opt) => `${opt.code}`.toUpperCase() === code.toUpperCase());\n      if (itemFromSuggestions) {\n        this.control.setValue(itemFromSuggestions, { emitEvent: false });\n      } else {\n        this.service?.getById(+code).subscribe((response) => {\n          this.control.setValue(response, { emitEvent: false });\n        });\n      }\n    } else if (this.control.value && !this.pagedSuggestions?.length) {\n      this.service?.getById(+code).subscribe((response) => {\n        this.control.setValue(response, { emitEvent: false });\n      });\n    }\n  }\n\n  private handleSearchErrors() {\n    if (this.pagedSuggestions?.length) {\n      delete this.control.errors?.itemNotFound;\n    } else if (this.currentSearchQuery) {\n      this.control.setErrors({ itemNotFound: true });\n    }\n  }\n\n  private filterListByQuery(list: ListItem[] = [], query: string): ListItem[] {\n    return list.filter(\n      (opt) => String(opt.code).toUpperCase().includes(query) || opt.name.toUpperCase().includes(query),\n    );\n  }\n\n  formatDropdownValue(value: string): string {\n    const firstDigitIndex = value.search(/\\d/);\n    if (firstDigitIndex === -1) return value;\n\n    const prefix = value.slice(0, firstDigitIndex);\n\n    const remainingValue = value.slice(firstDigitIndex);\n\n    const match = remainingValue.match(/^([a-zA-Z0-9]+)(.*)$/);\n    if (!match) return value;\n\n    const rawNumber = match[1];\n    const suffix = match[2];\n\n    const formatted = this.applyDynamicCpfCnpjMask(rawNumber);\n\n    return `${prefix}${formatted}${suffix}`;\n  }\n\n  private applyDynamicCpfCnpjMask(value: string): string {\n    if (!value) return '';\n\n    const alphanumerics = value.replace(/[^a-zA-Z0-9]/g, '');\n    if (!this.isCpfOrCnpj(alphanumerics)) return value;\n\n    let masked = '';\n    const isCpf = alphanumerics.length <= 11;\n\n    if (isCpf) {\n      for (let i = 0; i < alphanumerics.length; i++) {\n        masked += alphanumerics[i];\n        if (i === 2 || i === 5) masked += '.';\n        else if (i === 8) masked += '-';\n      }\n    } else {\n      for (let i = 0; i < alphanumerics.length; i++) {\n        masked += alphanumerics[i];\n        if (i === 1 || i === 4) masked += '.';\n        else if (i === 7) masked += '/';\n        else if (i === 11) masked += '-';\n      }\n    }\n\n    return masked;\n  }\n\n  private isCpfOrCnpj(value: string): boolean {\n    const cleaned = value.replace(/\\D/g, '');\n    return this.isValidCpf(cleaned) || this.isValidCnpj(cleaned);\n  }\n\n  private isValidCpf(cpf: string): boolean {\n    if (cpf.length !== 11 || /^(\\d)\\1+$/.test(cpf)) return false;\n\n    const digits = cpf.split('').map(Number);\n\n    const calcVerifier = (factor: number) => {\n      let total = 0;\n      for (let i = 0; i < factor - 1; i++) {\n        total += digits[i] * (factor - i);\n      }\n      const rest = total % 11;\n      return rest < 2 ? 0 : 11 - rest;\n    };\n\n    const dv1 = calcVerifier(10);\n    const dv2 = calcVerifier(11);\n\n    return dv1 === digits[9] && dv2 === digits[10];\n  }\n\n  private isValidCnpj(cnpj: string): boolean {\n    if (cnpj.length !== 14 || /^(\\d)\\1+$/.test(cnpj)) return false;\n\n    const digits = cnpj.split('').map(Number);\n    const calcVerifier = (length: number) => {\n      const weights = length === 12 ? [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] : [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n\n      const total = digits.slice(0, length).reduce((sum, num, idx) => sum + num * weights[idx], 0);\n\n      const rest = total % 11;\n      return rest < 2 ? 0 : 11 - rest;\n    };\n\n    const dv1 = calcVerifier(12);\n    const dv2 = calcVerifier(13);\n\n    return dv1 === digits[12] && dv2 === digits[13];\n  }\n}\n","<div class=\"relative\">\n  <div class=\"input-container\">\n    <div class=\"input-inner-container\" *ngIf=\"!isNgContent\">\n      <p-select\n        *ngIf=\"dynamicFilters\"\n        appendTo=\"body\"\n        optionLabel=\"name\"\n        optionValue=\"code\"\n        [(ngModel)]=\"selectedDynamicFilter\"\n        [options]=\"dynamicFilters\"\n        [disabled]=\"disabled\"\n        [inputId]=\"inputId\"\n      >\n      </p-select>\n      <p-autoComplete\n        appendTo=\"body\"\n        field=\"name\"\n        [forceSelection]=\"forceSelection\"\n        [dropdown]=\"true\"\n        [formControl]=\"control\"\n        [placeholder]=\"placeholder\"\n        [suggestions]=\"pagedSuggestions\"\n        [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\n        [delay]=\"800\"\n        (completeMethod)=\"search($event)\"\n        (onShow)=\"onOpenAutocompletePanel()\"\n        (onHide)=\"onHideAutocompletePanel()\"\n        (onFocus)=\"onFocus.emit($event)\"\n        (onChange)=\"onChange.emit($event)\"\n        [disabled]=\"disabled\"\n        [inputId]=\"inputId\"\n      >\n      </p-autoComplete>\n    </div>\n\n    <div class=\"input-inner-container\" *ngIf=\"isNgContent\">\n      <p-autoComplete\n        appendTo=\"body\"\n        field=\"name\"\n        [forceSelection]=\"forceSelection\"\n        [dropdown]=\"true\"\n        [formControl]=\"control\"\n        [placeholder]=\"placeholder\"\n        [suggestions]=\"pagedSuggestions\"\n        [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\n        [delay]=\"800\"\n        (completeMethod)=\"search($event)\"\n        (onShow)=\"onOpenAutocompletePanel()\"\n        (onHide)=\"onHideAutocompletePanel()\"\n        (onFocus)=\"onFocus.emit($event)\"\n        (onChange)=\"onChange.emit($event)\"\n        [disabled]=\"disabled\"\n        [inputId]=\"inputId\"\n      >\n        <ng-template let-option pTemplate=\"item\">\n          <div class=\"option-content\">\n            <span class=\"option-label\">{{ option.name }}</span>\n            <br />\n            <span class=\"option-sublabel\">{{ option.code }}</span>\n          </div>\n        </ng-template>\n      </p-autoComplete>\n    </div>\n\n    <vector-button\n      *ngIf=\"buttonAction\"\n      [label]=\"buttonAction.label\"\n      [disabled]=\"disabled\"\n      (onClick)=\"buttonAction.onClick(control.value)\"\n    ></vector-button>\n  </div>\n  <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ListItem } from '../../../models';\n\nexport type SelectButtonVariant = 'primary' | 'secondary';\n\n@Component({\n  standalone: false,\n  selector: 'vector-select-button-field',\n  templateUrl: './select-button-field.component.html',\n  styleUrls: ['./select-button-field.component.scss'],\n})\nexport class SelectButtonFieldComponent {\n  @Input()\n  public options: ListItem[] = [];\n  @Input()\n  public control: any;\n  @Input()\n  public disabled: boolean = false;\n  @Input()\n  public variant: SelectButtonVariant = 'primary';\n\n  @HostBinding('class.is-secondary')\n  get isSecondary(): boolean {\n    return this.variant === 'secondary';\n  }\n\n  constructor() {}\n}\n","<div class=\"input-container p-input-icon-right\">\n  <p-selectButton\n    [options]=\"options\"\n    [formControl]=\"control\"\n    optionLabel=\"name\"\n    optionValue=\"code\"\n    [disabled]=\"disabled\"\n  ></p-selectButton>\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { ListItem } from '../../../models';\nimport { BaseDropdown } from '../../../services';\nimport { ObjectUtil, ValidationUtil } from '../../../utils';\n\nexport enum FieldType {\n  DROPDOWN,\n  TEXT,\n  DATE,\n  NUMBER,\n  CURRENCY,\n  DYNAMIC_DROPDOWN,\n  SELECT_BUTTON,\n  DATE_RANGE,\n  MULTISELECT,\n}\n\nexport type FilterField = {\n  name: string;\n  type: FieldType;\n  minLength?: number;\n  maxLength?: number;\n  min?: number;\n  max?: number;\n  required?: boolean;\n  readonly?: boolean;\n  disabled?: boolean;\n  label?: string;\n  mask?: string;\n  options?: ListItem[];\n  filterTypes?: ListItem[];\n  service?: BaseDropdown;\n  defaultValue?: any;\n  placeholder?: string;\n  hidden?: boolean;\n  dependencies?: string[];\n  size?: 'small' | 'medium' | 'large' | 'largest' | 'full';\n  minLengthToService?: number;\n  initiateValue?: boolean;\n  tooltip?: string;\n  controler?: UntypedFormControl;\n  dateMin?: Date;\n  dateMax?: Date;\n  class?: string;\n  limitScrollPage?: number;\n};\n\n@Component({\n  standalone: false,\n  selector: 'vector-filters',\n  templateUrl: './filters.component.html',\n  styleUrls: ['./filters.component.scss'],\n})\nexport class FiltersComponent implements OnInit, OnDestroy {\n  @Input()\n  public set fields(_fields: FilterField[]) {\n    const isFirstSet = !this._fields.length && _fields?.length;\n    this._fields = _fields;\n    this.formGroup = new UntypedFormGroup({});\n\n    this.fieldsSubscription.unsubscribe();\n    this.fieldsSubscription = new Subscription();\n\n    this.fields?.forEach((field) => {\n      if (field?.defaultValue && typeof field?.defaultValue === 'object') {\n        field.initiateValue = !!field.defaultValue?.code;\n      } else {\n        field.initiateValue = !!field.defaultValue;\n      }\n      if (field.type === FieldType.DATE_RANGE) {\n        const startDate = new UntypedFormControl({ value: field.defaultValue?.startDate, disabled: field.readonly }, [\n          ...this.buildValidators(field),\n          ValidationUtil.dateLowerThanOrEqualTo('endDate'),\n        ]);\n        const endDate = new UntypedFormControl({ value: field.defaultValue?.endDate, disabled: field.readonly }, [\n          ...this.buildValidators(field),\n          ValidationUtil.dateGreaterThanOrEqualTo('startDate'),\n        ]);\n        this.formGroup.addControl(field.name, new UntypedFormGroup({ startDate, endDate }));\n        this.fieldsSubscription.add(\n          startDate.valueChanges.subscribe(() => endDate.updateValueAndValidity({ emitEvent: false })),\n        );\n        this.fieldsSubscription.add(\n          endDate.valueChanges.subscribe(() => startDate.updateValueAndValidity({ emitEvent: false })),\n        );\n      } else {\n        if (field.controler) {\n          this.formGroup.addControl(field.name, field.controler);\n        } else {\n          this.formGroup.addControl(\n            field.name,\n            new UntypedFormControl(\n              { value: field.defaultValue, disabled: field.readonly },\n              this.buildValidators(field),\n            ),\n          );\n        }\n      }\n\n      if (!field.limitScrollPage) {\n        field.limitScrollPage = 20;\n      }\n    });\n\n    this.fields\n      ?.filter((field) => field.dependencies)\n      .forEach((field) => {\n        field.dependencies?.forEach((dependency) => {\n          this.fieldsSubscription.add(\n            this.formGroup.get(dependency)?.valueChanges.subscribe((value) => {\n              this.formGroup.get(field.name)?.reset();\n            }),\n          );\n        });\n      });\n\n    this.patchFormFromQueryParams({ ...this.activatedRoute.snapshot.queryParams });\n\n    if (this._fields?.length && this.formGroup.valid && isFirstSet) {\n      this.search();\n    }\n    this.formBuilded.emit();\n\n    this.fieldsSubscription.add(\n      this.activatedRoute.queryParams.subscribe((queryParams) => {\n        this.patchFormFromQueryParams({ ...queryParams });\n      }),\n    );\n  }\n\n  @Output()\n  public onSearch = new EventEmitter<any>();\n  @Output()\n  public formBuilded = new EventEmitter<void>();\n\n  public get fields() {\n    return this._fields;\n  }\n\n  public fieldTypes = FieldType;\n  public formGroup = new UntypedFormGroup({});\n\n  private _fields: FilterField[] = [];\n  private fieldsSubscription = new Subscription();\n\n  get hideFilters() {\n    return !this.fields?.filter((item) => !item.hidden).length;\n  }\n\n  constructor(private activatedRoute: ActivatedRoute) {}\n\n  ngOnInit(): void {}\n\n  ngOnDestroy() {\n    this.fieldsSubscription.unsubscribe();\n  }\n\n  public search() {\n    this.formGroup.markAllAsTouched();\n    if (this.formGroup.valid) {\n      const filterValue = this.formGroup.getRawValue();\n      Object.keys(filterValue).forEach((key) => {\n        if (filterValue[key]?.hasOwnProperty('code')) {\n          filterValue[key] = filterValue[key].code;\n        }\n        if (!ObjectUtil.isValid(filterValue[key])) {\n          const fieldType = this.fields.find((field) => field.name === key)?.type ?? FieldType.TEXT;\n          filterValue[key] = [FieldType.DROPDOWN, FieldType.NUMBER].includes(fieldType) ? -1 : '';\n        }\n      });\n      this.onSearch.emit(filterValue);\n    }\n  }\n\n  public isTextFieldType(field: FilterField) {\n    return [FieldType.TEXT, FieldType.NUMBER].includes(field.type);\n  }\n\n  public getFieldDependencies(field: FilterField) {\n    if (!field.dependencies) {\n      return undefined;\n    }\n    return field.dependencies.reduce((prev, curr) => {\n      let depValue: any = this.formGroup.get(curr)?.value?.code;\n      if (!ObjectUtil.isValid(depValue)) {\n        depValue = -1;\n      }\n      return {\n        ...prev,\n        [curr]: depValue,\n      };\n    }, {});\n  }\n\n  public getGridClass(field: FilterField) {\n    switch (field.size) {\n      case 'small':\n        return 'md:col-1';\n      case 'medium':\n        return 'md:col-3';\n      case 'large':\n        return 'md:col-4';\n      case 'largest':\n        return 'md:col-8';\n      case 'full':\n        return 'md:col-12';\n      default:\n        return 'md:col-4';\n    }\n  }\n\n  private patchFormFromQueryParams(queryParams: any) {\n    if (Object.keys(queryParams).length) {\n      this.fields.forEach((field) => {\n        if (queryParams.hasOwnProperty(field.name)) {\n          try {\n            queryParams[field.name] = queryParams[field.name]\n              ? JSON.parse(queryParams[field.name])\n              : queryParams[field.name];\n          } catch (_) {}\n          if (field.type === FieldType.DATE_RANGE) {\n            queryParams[field.name] = {\n              startDate: queryParams[field.name].startDate ? new Date(queryParams[field.name].startDate) : undefined,\n              endDate: queryParams[field.name].endDate ? new Date(queryParams[field.name].endDate) : undefined,\n            };\n          }\n          if (field.type === FieldType.DATE) {\n            queryParams[field.name] = queryParams[field.name] ? new Date(queryParams[field.name]) : undefined;\n          }\n        }\n      });\n      this.formGroup.patchValue(queryParams);\n    }\n  }\n\n  private buildValidators(field: FilterField): ValidatorFn[] {\n    const validators = [];\n    if (field.required) {\n      validators.push(Validators.required);\n    }\n    if (field.minLength) {\n      validators.push(Validators.minLength(field.minLength));\n    }\n    if (field.maxLength) {\n      validators.push(Validators.maxLength(field.maxLength));\n    }\n    if (field.min) {\n      validators.push(Validators.min(field.min));\n    }\n    if (field.max) {\n      validators.push(Validators.max(field.max));\n    }\n    return validators;\n  }\n}\n","<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\n  <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\n    <label\n      >{{ field.label }}\n      <i\n        *ngIf=\"field.tooltip\"\n        class=\"fas fa-info-circle mt-1 pl-2 ch\"\n        pTooltip=\"{{ field.tooltip }}\"\n        tooltipPosition=\"bottom\"\n      ></i\n    ></label>\n    <vector-text-field\n      *ngIf=\"isTextFieldType(field)\"\n      [control]=\"formGroup.get(field.name)\"\n      [mask]=\"field.mask\"\n      [label]=\"field.placeholder\"\n      [isRequired]=\"field.required\"\n      [numeric]=\"field.type === fieldTypes.NUMBER\"\n      [class]=\"field.class\"\n    ></vector-text-field>\n    <vector-dropdown-field\n      *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\n      [dynamicFilters]=\"field.filterTypes\"\n      [disabled]=\"field.disabled\"\n      [options]=\"field.options || []\"\n      [service]=\"field.service\"\n      [isRequired]=\"field.required\"\n      [minLengthToService]=\"field.minLengthToService || 0\"\n      [control]=\"formGroup.get(field.name)\"\n      [paged]=\"false\"\n      [dependencies]=\"getFieldDependencies(field)\"\n      [initialLoad]=\"field.initiateValue\"\n      [limitScrollPage]=\"field.limitScrollPage\"\n    ></vector-dropdown-field>\n    <vector-currency-field\n      *ngIf=\"field.type === fieldTypes.CURRENCY\"\n      [control]=\"formGroup.get(field.name)\"\n      [outlined]=\"true\"\n      [disabled]=\"field.disabled\"\n    ></vector-currency-field>\n    <vector-calendar-field\n      *ngIf=\"field.type === fieldTypes.DATE\"\n      [control]=\"formGroup.get(field.name)\"\n      [isRequired]=\"field.required\"\n      [label]=\"field.placeholder || ''\"\n      [disabled]=\"field.disabled\"\n      [min]=\"field.dateMin\"\n      [max]=\"field.dateMax\"\n    ></vector-calendar-field>\n    <vector-select-button-field\n      *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\n      [control]=\"formGroup.get(field.name)\"\n      [options]=\"field.options\"\n      (click)=\"search()\"\n      [disabled]=\"field.disabled\"\n    >\n    </vector-select-button-field>\n    <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\n      <vector-calendar-field\n        [control]=\"formGroup.get(field.name + '.startDate')\"\n        [isRequired]=\"field.required\"\n        [label]=\"field.placeholder || ''\"\n        [disabled]=\"field.disabled\"\n        [min]=\"field.dateMin\"\n      ></vector-calendar-field>\n      Até\n      <vector-calendar-field\n        [control]=\"formGroup.get(field.name + '.endDate')\"\n        [isRequired]=\"field.required\"\n        [label]=\"field.placeholder || ''\"\n        [disabled]=\"field.disabled\"\n        [min]=\"formGroup.get(field.name + '.startDate')?.value || field.dateMin\"\n        [max]=\"field.dateMax\"\n      ></vector-calendar-field>\n    </div>\n    <vector-multiselect-field\n      *ngIf=\"field.type === fieldTypes.MULTISELECT\"\n      [control]=\"formGroup.get(field.name)\"\n      [options]=\"field.options || []\"\n      [disabled]=\"field.disabled\"\n    >\n    </vector-multiselect-field>\n  </div>\n  <div class=\"search-button sm:col-4\">\n    <vector-button\n      [label]=\"'app.label.search' | translate\"\n      (click)=\"search()\"\n      [disabled]=\"!formGroup.valid\"\n      type=\"default-filled\"\n    ></vector-button>\n  </div>\n</div>\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { Menu } from 'primeng/menu';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { FilterChangedEvent, ListItem, Status } from '../../../models';\nimport {\n  AddItemButtonConfig,\n  DataTableCustomButton,\n  DataTableLazyLoadEvent,\n  TableColumn,\n  TableColumnType,\n} from '../../../models/data-table.model';\nimport { MaskUtil } from '../../../utils';\nimport { FilterField, FiltersComponent } from '../filters/filters.component';\n\n@Component({\n  standalone: false,\n  selector: 'vector-data-table',\n  templateUrl: './data-table.component.html',\n  styleUrls: ['./data-table.component.scss'],\n})\nexport class DataTableComponent implements OnInit, OnDestroy {\n  private static readonly MENU_SCROLL_GRACE_MS = 250;\n\n  @Input()\n  public columns: TableColumn[] = [];\n  @Input()\n  public set data(_data: any[]) {\n    this._data = _data;\n    this.selectedItems = this._data?.filter((item) => item.selected) || [];\n  }\n  public get data() {\n    return this._data;\n  }\n  private _data: any[] = [];\n  @Input()\n  public exportExcel = false;\n  @Input()\n  public exportPDF = false;\n  @Input()\n  public customFunction: { label: string; icon?: string; clickFunction: Function }[] | undefined;\n  @Input()\n  public totalRecords = 0;\n  @Input()\n  public disabledHeadercheckbox = false;\n  @Input()\n  public hideHeaderCheckbox = false;\n  @Input()\n  public hideCurrentPageReport = false;\n  @Input()\n  public filters: FilterField[] = [];\n  @Input()\n  public addItemLabel = '';\n  @Input()\n  public addItemLabelConfig: AddItemButtonConfig | undefined;\n  @Input()\n  public pagination = true;\n  @Input()\n  public virtualPagination = false;\n  @Input()\n  public set tabs(_tabs: ListItem[]) {\n    this._tabs = _tabs;\n    this._tabSelected = _tabs[0];\n  }\n  @Input()\n  public customButtons: DataTableCustomButton[] | undefined;\n  @Input()\n  public hasActions: boolean = true;\n  @Input()\n  public hasExpandableIcon = false;\n  @Input()\n  public addNameColumnExpand = '';\n  @Input() expandable = false;\n  @Input() dataKey = 'id';\n  @Input() expansionTemplate!: TemplateRef<any> | null;\n  @Input()\n  public set selectionMode(_selectionMode) {\n    switch (_selectionMode) {\n      case 'single':\n        this._selectionMode = 'single';\n        break;\n      case 'multiple':\n        this._selectionMode = 'multiple';\n        break;\n      default:\n        this._selectionMode = null;\n        break;\n    }\n  }\n  @Input()\n  public selectionType: 'checkbox' | 'radiobutton' | null = null;\n  @Input()\n  public set height(_height: string) {\n    switch (_height) {\n      case 'small':\n        this._height = '300px';\n        break;\n      case 'medium':\n        this._height = '500px';\n        break;\n      case 'large':\n        this._height = '700px';\n        break;\n      case 'full':\n        this._height = 'flex';\n        break;\n      default:\n        this._height = '300px';\n    }\n  }\n  @Input()\n  public showLimitBalance = false;\n  @Input()\n  public showDataBalance = false;\n  @Input()\n  public dataAccountBalance: { visible: boolean; name: string; valueBalance: number; showBalance: boolean }[] = [];\n\n  @Output()\n  public onLazyLoad = new EventEmitter<DataTableLazyLoadEvent>();\n  @Output()\n  public onFilter = new EventEmitter<any>();\n  @Output()\n  public onAdd = new EventEmitter<void>();\n  @Output()\n  public onExportExcel = new EventEmitter<void>();\n  @Output()\n  public onExportPDF = new EventEmitter<void>();\n  @Output()\n  public onSelectedRows = new EventEmitter<any>();\n  @Output()\n  public onFilterChanged = new EventEmitter<FilterChangedEvent>();\n  @Output()\n  public onTabSelected = new EventEmitter<ListItem>();\n  @Output()\n  public onExpandRow: EventEmitter<any> = new EventEmitter();\n  @Output()\n  public onCellEdit = new EventEmitter<{ item: any; field: string; value: any }>();\n\n  @Input()\n  public firstLazyLoad = false;\n  @Input()\n  public shouldLazyLoadWithoutFilter = false;\n  @Input()\n  public reorderableColumns = false;\n  @Input()\n  public disableInitialSearch = false;\n\n  @ViewChild(FiltersComponent, { static: true })\n  public filtersComponent: FiltersComponent | undefined;\n\n  public selectedItems: any = [];\n\n  get balance(): (itemAccount?: any) => number | string {\n    return (itemAccount?: any): number | string => {\n      return itemAccount.showBalance\n        ? itemAccount.valueBalance.toLocaleString('pt-BR', {\n            currency: 'BRL',\n            minimumFractionDigits: 2,\n            maximumFractionDigits: 2,\n          })\n        : '-,--';\n    };\n  }\n\n  get tabs() {\n    return this._tabs;\n  }\n  get addItemIcon(): string {\n    return this.addItemLabelConfig?.icon ?? '';\n  }\n  get addItemIconPosition(): 'left' | 'right' {\n    return this.addItemLabelConfig?.iconPosition ?? 'left';\n  }\n  get addItemDisabled(): boolean {\n    return this.addItemLabelConfig?.disabled === true;\n  }\n  get height() {\n    return this._height;\n  }\n  get selectionMode() {\n    return this._selectionMode;\n  }\n\n  private _selectionMode: 'single' | 'multiple' | null = null;\n  private _height: string = 'small';\n  private _tabs: ListItem[] = [];\n  private _draw = 1;\n  private _firstLazyLoadedDone = this.firstLazyLoad;\n  private _lastLazyLoadEvent: DataTableLazyLoadEvent | undefined;\n  private _tabSelected: ListItem | undefined;\n  private _filterSubscription = new Subscription();\n  private _openActionsMenu: Menu | null = null;\n\n  constructor(public cd: ChangeDetectorRef) {}\n\n  ngOnInit(): void {\n    if (!this.height) {\n      this.height = 'small';\n    }\n\n    if (!this.pagination || this.virtualPagination) {\n      this.filtersComponent?.search();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this._filterSubscription.unsubscribe();\n  }\n\n  getColStyle(col: TableColumn) {\n    return { 'min-width': col.width };\n  }\n\n  lazyLoaded(params: { filter: boolean; data: any } = { filter: false, data: { start: 0, rows: 10 } }) {\n    if (this.disableInitialSearch) {\n      this.disableInitialSearch = false;\n      return;\n    }\n    if (!params.filter && !this.shouldLazyLoadWithoutFilter) {\n      const columns = this.columns.map((col) => {\n        return {\n          data: col.field,\n          name: `${col.field.substring(0, 1).toUpperCase()}${col.field.substring(1, col.field.length)}`,\n          orderable: true,\n          search: { value: '', regex: false },\n          searchable: true,\n        };\n      });\n      if (this.hasActions) {\n        columns.unshift({\n          data: 'active',\n          name: 'Active',\n          orderable: true,\n          search: { value: '', regex: false },\n          searchable: true,\n        });\n      }\n      this._lastLazyLoadEvent = {\n        ...(this._lastLazyLoadEvent || ({} as any)),\n        page: params.data.first / params.data.rows + 1,\n        start: params.data.first,\n        length: params.data.rows,\n        draw: this._draw++,\n        order: params.data.sortField\n          ? [\n              {\n                column:\n                  this.columns.findIndex((col) => col.field === params.data.sortField) + (this.hasActions ? 1 : 0),\n                dir: params.data.sortOrder > 0 ? 'asc' : 'desc',\n              },\n            ]\n          : [{ column: 0, dir: 'desc' }],\n        columns: columns,\n        tab: this._tabSelected,\n      };\n    } else {\n      this._lastLazyLoadEvent = {\n        ...this._lastLazyLoadEvent,\n        ...params.data,\n        start: 0,\n      };\n      if (this._tabSelected) {\n        this._lastLazyLoadEvent = {\n          ...(this._lastLazyLoadEvent || ({} as any)),\n          ...{ Status: this._tabSelected.code },\n          tab: this._tabSelected,\n        };\n      }\n    }\n\n    if (this._firstLazyLoadedDone || this.firstLazyLoad) {\n      this.onLazyLoad.emit(this._lastLazyLoadEvent);\n    }\n    this._firstLazyLoadedDone = true;\n  }\n\n  getCellContent(item: any, col: TableColumn) {\n    const cellText = this.getCellText(item, col);\n    let content = `<span class=\"p-column-title\">${col.header}</span><span class=\"w-100\">`;\n    if (\n      !col.type ||\n      [TableColumnType.ENUM, TableColumnType.TEXT, TableColumnType.DATETIME, TableColumnType.DATE].includes(col.type)\n    ) {\n      content += cellText;\n    }\n    switch (col.type) {\n      case TableColumnType.CUSTOM_STYLE:\n        content += `<span class=\"${col.textFieldClass ? item[col.textFieldClass] : ''}\">${cellText}</span>`;\n        break;\n      case TableColumnType.BOOLEAN:\n        content += `<div class=\"text-centered\"><i class=\" status-table-field fas fa-${\n          cellText ? 'check boolean-value-positive' : 'times boolean-value-negative'\n        }\"></i></div>`;\n        break;\n      case TableColumnType.STATUS_BADGE:\n        content += `<div class=\"text-centered\"><i class=\"fas fa-circle status-table-field ${this.getStatusColor(\n          cellText,\n        )}\"></i></div>`;\n        break;\n      case TableColumnType.ACTIVE_BOOLEAN_BADGE:\n        content += `<div class=\"text-centered\"><i class=\"fas fa-circle status-table-field ${this.getActiveStatusColor(\n          cellText,\n        )}\"></i></div>`;\n        break;\n      case TableColumnType.BUTTON:\n        let iconClass = '';\n        if (typeof col.icon === 'function') {\n          iconClass = col.icon(item);\n        } else {\n          iconClass = col.icon || 'fas fa-circle';\n        }\n        content += `<div class=\"text-centered\"><i class=\"${iconClass} status-table-field table-button\"></i></div>`;\n        break;\n      case TableColumnType.MASK:\n        if (col.mask === 'dynamicCpfCnpj') {\n          content += MaskUtil.formatDocument(cellText);\n        } else {\n          content += MaskUtil.doMaskString(cellText, col.mask);\n        }\n        break;\n      case TableColumnType.CURRENCY:\n        content += Number(cellText).toLocaleString('pt-BR', {\n          currency: col.currencyType || 'BRL',\n          currencyDisplay: 'narrowSymbol',\n          style: 'currency',\n        });\n    }\n\n    content += `</span>`;\n    return content;\n  }\n\n  public getCellText(item: any, col: TableColumn) {\n    if (col.getEnumTranslated) {\n      return col.getEnumTranslated(item[col.field]);\n    }\n    if (col.type === TableColumnType.DATETIME && item[col.field]) {\n      const dateTime =\n        item[col.field] instanceof Date ? DateTime.fromJSDate(item[col.field]) : DateTime.fromISO(item[col.field]);\n      return dateTime.toUTC().toFormat('dd/MM/yyyy HH:mm');\n    }\n    if (col.type === TableColumnType.DATE && item[col.field]) {\n      const dateTime =\n        item[col.field] instanceof Date ? DateTime.fromJSDate(item[col.field]) : DateTime.fromISO(item[col.field]);\n      return dateTime.toUTC().toFormat('dd/MM/yyyy');\n    }\n    if (col.type === TableColumnType.STACK_BADGE) {\n      if (!item[col.field].length || item[col.field].length === 1) {\n        return item[col.field];\n      } else {\n        return `+${item[col.field].length}`;\n      }\n    }\n    if (col.type === TableColumnType.STATUS_BADGE) {\n      return item[col.field] == 0 ? 0 : item[col.field];\n    }\n\n    return item[col.field || ''] || '';\n  }\n\n  public getTooltipText(item: any, col: TableColumn) {\n    if (\n      !col.type ||\n      ![TableColumnType.STACK_BADGE].includes(col.type) ||\n      !Array.isArray(item[col.field]) ||\n      item[col.field].length === 1\n    ) {\n      return null;\n    }\n\n    if (!Array.isArray(item[col.field])) {\n      return item[col.field];\n    }\n    return item[col.field].join(' - ');\n  }\n\n  onTabChange($event: any) {\n    this._tabSelected = this.tabs[$event.index];\n    this.lazyLoaded({ filter: true, data: {} });\n    this.onTabSelected.emit(this._tabSelected);\n  }\n\n  subscribeToFilterChanges() {\n    this._filterSubscription.unsubscribe();\n    this._filterSubscription = new Subscription();\n    Object.keys(this.filtersComponent?.formGroup.controls || {}).forEach((key) => {\n      this._filterSubscription.add(\n        this.filtersComponent?.formGroup\n          .get(key)\n          ?.valueChanges.pipe(debounceTime(300))\n          .subscribe((value) => {\n            this.onFilterChanged.emit({ field: key, value });\n          }),\n      );\n      this.onFilterChanged.emit({ field: key, value: this.filtersComponent?.formGroup.get(key)?.value });\n    });\n  }\n\n  onRowClick(item: any) {\n    setTimeout(() => {\n      this.cd.markForCheck();\n    });\n\n    this.onExpandRow.emit(item);\n  }\n\n  get listHasActions() {\n    return this.data.some((item) => item.actions?.length);\n  }\n\n  public changeSelectedItems(value: any) {\n    this.onSelectedRows.emit(this.selectedItems);\n  }\n\n  public isHtmlCell(col: TableColumn) {\n    return !col.type || !this.isBadgeCell(col);\n  }\n\n  public isEditableCell(col: TableColumn) {\n    return this.isHtmlCell(col) && !!col.cellEdit;\n  }\n\n  public onCellEditComplete(item: any, col: TableColumn, value: any) {\n    item[col.field] = value;\n    this.onCellEdit.emit({ item, field: col.field, value });\n  }\n\n  public isBadgeCell(col: TableColumn) {\n    return col.type && [TableColumnType.TEXT_BADGE, TableColumnType.STACK_BADGE].includes(col.type);\n  }\n\n  public isScoreCell(col: TableColumn) {\n    return col.type === TableColumnType.SCORE;\n  }\n\n  public onSelectionChange(selection: any) {\n    for (let i = selection.length - 1; i >= 0; i--) {\n      let data = selection[i];\n      if (data.disabledCheckBox) {\n        selection.splice(i, 1);\n      }\n    }\n    this.selectedItems = selection;\n  }\n\n  public onActionsMenuShow(menu: Menu): void {\n    if (this._openActionsMenu && this._openActionsMenu !== menu) {\n      this._openActionsMenu.hide();\n    }\n    this._openActionsMenu = menu;\n\n    const noopScrollHandler: ConnectedOverlayScrollHandler = {\n      element: null,\n      listener: null,\n      scrollableParents: null,\n      bindScrollListener: () => {},\n      unbindScrollListener: () => {},\n      destroy: () => {},\n    };\n    menu.scrollHandler = noopScrollHandler;\n\n    setTimeout(() => {\n      if (menu.scrollHandler !== noopScrollHandler) {\n        return;\n      }\n      menu.scrollHandler = null;\n      if (menu.visible) {\n        menu.bindScrollListener();\n      }\n    }, DataTableComponent.MENU_SCROLL_GRACE_MS);\n  }\n\n  public onActionsMenuHide(menu: Menu): void {\n    if (this._openActionsMenu === menu) {\n      this._openActionsMenu = null;\n    }\n  }\n\n  public changeShowBalance(itemAccount?: any): void {\n    if (itemAccount) {\n      itemAccount.showBalance = !itemAccount.showBalance;\n    }\n  }\n\n  private getStatusColor(status: Status) {\n    switch (status) {\n      case Status.PENDING:\n        return 'warning';\n      case Status.APPROVED:\n        return 'success';\n      case Status.REJECTED:\n        return 'error';\n      case Status.INFO:\n        return 'info';\n    }\n    return '';\n  }\n\n  private getActiveStatusColor(active: boolean) {\n    return active ? 'success' : 'error';\n  }\n}\n","<div class=\"grid\">\n  <div class=\"col-12\">\n    <vector-filters\n      [fields]=\"filters\"\n      (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\n      (formBuilded)=\"subscribeToFilterChanges()\"\n    ></vector-filters>\n  </div>\n  <div\n    class=\"table-header-actions field\"\n    *ngIf=\"addItemLabel || exportExcel || exportPDF || customFunction || customButtons\"\n  >\n    <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\n      <i class=\"fas fa-file-excel\"></i><span>Excel</span>\n    </button>\n    <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\n      <i class=\"fas fa-file-pdf\"></i><span>PDF</span>\n    </button>\n    <button\n      *ngFor=\"let button of customFunction\"\n      (click)=\"button.clickFunction()\"\n      class=\"export-button custom-function\"\n    >\n      <i *ngIf=\"button?.icon\" class=\"{{ button?.icon }}\"></i><span>{{ button?.label }}</span>\n    </button>\n\n    <vector-button\n      *ngFor=\"let button of customButtons\"\n      class=\"add-item-button\"\n      [label]=\"button.label\"\n      [type]=\"button.type || 'default'\"\n      (click)=\"button.disabled !== true && button.clickFunction()\"\n      [leftIcon]=\"button.iconPosition !== 'right' ? button.icon || '' : ''\"\n      [rightIcon]=\"button.iconPosition === 'right' ? button.icon || '' : ''\"\n      [disabled]=\"button.disabled === true\"\n    ></vector-button>\n    <vector-button\n      *ngIf=\"addItemLabel\"\n      class=\"add-item-button\"\n      [label]=\"addItemLabel\"\n      [type]=\"addItemLabelConfig?.type || 'default'\"\n      [disabled]=\"addItemDisabled\"\n      (click)=\"!addItemDisabled && onAdd.emit()\"\n      [leftIcon]=\"addItemIconPosition === 'left' ? addItemIcon : ''\"\n      [rightIcon]=\"addItemIconPosition === 'right' ? addItemIcon : ''\"\n    ></vector-button>\n  </div>\n  @if (showLimitBalance) {\n    <div class=\"col-12 grid ml-0\">\n      @for (itemAccount of dataAccountBalance; track $index) {\n        @if (itemAccount.visible) {\n          <div class=\"card balance-container\">\n            <span class=\"card-header\">{{ itemAccount.name }}</span>\n            <div class=\"card-content value-container\">\n              <span>R$ </span>\n              <span *ngIf=\"itemAccount.showBalance\" class=\"balance\">{{ balance(itemAccount) }}</span>\n              <div class=\"hidden-balance\" *ngIf=\"!itemAccount.showBalance\"></div>\n              <div class=\"icon-container\">\n                <i\n                  class=\"fas\"\n                  [ngClass]=\"{ 'fa-eye': !itemAccount.showBalance, 'fa-eye-slash': itemAccount.showBalance }\"\n                  (click)=\"changeShowBalance(itemAccount)\"\n                ></i>\n              </div>\n            </div>\n          </div>\n        }\n      }\n    </div>\n  }\n  @if (showDataBalance) {\n    <div class=\"col-12 grid ml-0\">\n      @for (itemAccount of dataAccountBalance; track $index) {\n        <div class=\"card balance-container\">\n          <span class=\"card-header\">{{ itemAccount.name }}</span>\n          <div class=\"card-content value-container\">\n            <span class=\"balance\">{{ itemAccount.valueBalance }}</span>\n          </div>\n        </div>\n      }\n    </div>\n  }\n\n  <div class=\"col-12\">\n    <vector-panel class=\"data-table-panel\">\n      <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\n        <p-tabPanel *ngFor=\"let tab of tabs\">\n          <ng-template pTemplate=\"header\">\n            <em *ngIf=\"tab.icon\" [class]=\"tab.icon\">&nbsp;</em>\n            <span>{{ tab.name }}</span>\n          </ng-template>\n        </p-tabPanel>\n      </p-tabView>\n      <p-table\n        currentPageReportTemplate=\"Mostrando {first} até {last} de {totalRecords} registros\"\n        sortMode=\"single\"\n        [rows]=\"10\"\n        [lazy]=\"pagination && !virtualPagination\"\n        [value]=\"data\"\n        [paginator]=\"pagination\"\n        [totalRecords]=\"totalRecords\"\n        [showCurrentPageReport]=\"!hideCurrentPageReport\"\n        [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\n        [responsive]=\"true\"\n        [resizableColumns]=\"true\"\n        [scrollable]=\"true\"\n        scrollDirection=\"vertical\"\n        responsiveLayout=\"scroll\"\n        [dataKey]=\"dataKey\"\n        [scrollHeight]=\"height\"\n        [selectionMode]=\"selectionType === 'checkbox' || selectionType === 'radiobutton' ? null : selectionMode\"\n        [(selection)]=\"selectedItems\"\n        (onRowSelect)=\"changeSelectedItems($event)\"\n        (onHeaderCheckboxToggle)=\"changeSelectedItems($event)\"\n        (onRowUnselect)=\"changeSelectedItems($event)\"\n        (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\n        (selectionChange)=\"onSelectionChange($event)\"\n        [reorderableColumns]=\"reorderableColumns\"\n        editMode=\"cell\"\n      >\n        <ng-template pTemplate=\"header\">\n          <tr class=\"header\">\n            <th *ngIf=\"reorderableColumns\" style=\"width: 5rem\"></th>\n\n            <th *ngIf=\"selectionType === 'checkbox'\">\n              <p-tableHeaderCheckbox\n                *ngIf=\"!hideHeaderCheckbox\"\n                [disabled]=\"disabledHeadercheckbox\"\n              ></p-tableHeaderCheckbox>\n            </th>\n            <th\n              class=\"px-1 w-max min-w-max white-space-nowrap text-center vertical-align-middle\"\n              *ngIf=\"hasExpandableIcon\"\n            >\n              {{ addNameColumnExpand }}\n            </th>\n            <th *ngIf=\"hasActions\">{{ 'app.label.actions' | translate }}</th>\n            <th *ngIf=\"selectionType === 'radiobutton'\">\n              <div class=\"flex align-items-center\">\n                <span></span>\n              </div>\n            </th>\n            @for (col of columns; track $index) {\n              @if (!col.hidden) {\n                <th\n                  [ngStyle]=\"getColStyle(col)\"\n                  [pSortableColumn]=\"col.notSortable ? '' : col.field\"\n                  pReorderableColumn\n                >\n                  <div class=\"flex align-items-center\">\n                    <span>{{ col.header }}</span> <p-sortIcon *ngIf=\"!col.notSortable\" [field]=\"col.field\"></p-sortIcon>\n                  </div>\n                </th>\n              }\n            }\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-rowData let-item let-expanded=\"expanded\" let-index=\"rowIndex\">\n          <tr\n            class=\"row\"\n            [pSelectableRow]=\"rowData\"\n            [ngClass]=\"{ expandable: expandable }\"\n            [pRowToggler]=\"item\"\n            [pRowTogglerDisabled]=\"!expandable || hasExpandableIcon\"\n            (click)=\"onRowClick(item)\"\n            [pReorderableRow]=\"index\"\n          >\n            <ng-container *ngIf=\"reorderableColumns\">\n              <td style=\"max-width: 3rem; padding-left: 10px\" class=\"justify-content-center align-items-center\">\n                <span class=\"pi pi-bars\" pReorderableRowHandle></span>\n              </td>\n            </ng-container>\n            <ng-container *ngIf=\"selectionType === 'checkbox'\">\n              <td\n                style=\"max-width: 3rem; padding-left: 10px\"\n                class=\"justify-content-center align-items-center\"\n                (click)=\"$event.stopPropagation()\"\n              >\n                <p-tableCheckbox [value]=\"item\" [disabled]=\"item.disabledCheckBox\"></p-tableCheckbox>\n              </td>\n            </ng-container>\n            <ng-container *ngIf=\"selectionType === 'radiobutton'\">\n              <td\n                style=\"max-width: 3rem; padding-left: 10px\"\n                class=\"justify-content-center align-items-center\"\n                (click)=\"$event.stopPropagation()\"\n              >\n                <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\n              </td>\n            </ng-container>\n            <td\n              *ngIf=\"hasExpandableIcon\"\n              class=\"px-1 w-auto text-center vertical-align-middle\"\n              style=\"cursor: pointer\"\n              [pRowToggler]=\"item\"\n              [pRowTogglerDisabled]=\"!expandable\"\n              (click)=\"$event.stopPropagation()\"\n            >\n              <i\n                [ngClass]=\"\n                  expanded ? 'actions-menu-button pi pi-chevron-down' : 'actions-menu-button pi pi-chevron-right'\n                \"\n              ></i>\n            </td>\n            <td *ngIf=\"hasActions\" (click)=\"$event.stopPropagation()\">\n              <p-menu\n                #menu\n                [model]=\"item.actions\"\n                [popup]=\"true\"\n                appendTo=\"body\"\n                (onShow)=\"item._menuOpen = true; onActionsMenuShow(menu)\"\n                (onHide)=\"item._menuOpen = false; onActionsMenuHide(menu)\"\n              ></p-menu>\n              <i\n                class=\"actions-menu-button fas fa-cog\"\n                [class.active]=\"item._menuOpen\"\n                (click)=\"menu.toggle($event)\"\n              ></i>\n            </td>\n            @for (col of columns; track $index) {\n              @if (!col.hidden) {\n                <ng-container>\n                  <td\n                    *ngIf=\"isEditableCell(col)\"\n                    class=\"cell\"\n                    [pEditableColumn]=\"item\"\n                    [pEditableColumnField]=\"col.field\"\n                    [ngStyle]=\"getColStyle(col)\"\n                  >\n                    <p-cellEditor>\n                      <ng-template pTemplate=\"input\">\n                        <p-inputNumber\n                          *ngIf=\"!col.cellEdit?.editType || col.cellEdit?.editType === 'number'\"\n                          [(ngModel)]=\"item[col.field]\"\n                          [suffix]=\"col.cellEdit?.editSuffix || ''\"\n                          mode=\"decimal\"\n                          [maxFractionDigits]=\"col.cellEdit?.editMaxFractionDigits ?? 2\"\n                          [min]=\"col.cellEdit?.editMin ?? 0\"\n                          [max]=\"col.cellEdit?.editMax\"\n                          (onBlur)=\"onCellEditComplete(item, col, item[col.field])\"\n                        ></p-inputNumber>\n                        <input\n                          *ngIf=\"col.cellEdit?.editType === 'text'\"\n                          pInputText\n                          [(ngModel)]=\"item[col.field]\"\n                          (blur)=\"onCellEditComplete(item, col, item[col.field])\"\n                        />\n                      </ng-template>\n                      <ng-template pTemplate=\"output\">\n                        <span>{{ item[col.field] }}{{ col.cellEdit?.editSuffix || '' }}</span>\n                        <i class=\"pi pi-pencil ml-2 text-primary\"></i>\n                      </ng-template>\n                    </p-cellEditor>\n                  </td>\n                  <td\n                    *ngIf=\"isHtmlCell(col) && !col.cellEdit\"\n                    class=\"cell\"\n                    [innerHTML]=\"getCellContent(item, col)\"\n                    (click)=\"col && col.clickFunction && col.clickFunction(item)\"\n                    [ngStyle]=\"getColStyle(col)\"\n                  ></td>\n                  <td\n                    *ngIf=\"(!isHtmlCell(col) && !!col.getStatus) || isScoreCell(col)\"\n                    class=\"cell\"\n                    (click)=\"col && col.clickFunction && col.clickFunction(item)\"\n                    [ngStyle]=\"getColStyle(col)\"\n                  >\n                    <vector-badge\n                      *ngIf=\"isBadgeCell(col)\"\n                      [label]=\"getCellText(item, col)\"\n                      [type]=\"col.getStatus && col.getStatus(item[col.field])\"\n                      [tooltip]=\"getTooltipText(item, col)\"\n                    ></vector-badge>\n                    <vector-score *ngIf=\"isScoreCell(col)\" [score]=\"item[col.field]\"></vector-score>\n                  </td>\n                </ng-container>\n              }\n            }\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n          <tr class=\"row\">\n            <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"paginatorright\"> </ng-template>\n        <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\n        <ng-template pTemplate=\"expandedrow\" let-item>\n          <tr>\n            <td [attr.colspan]=\"columns.length + (hasActions ? 1 : 0)\">\n              <ng-container *ngTemplateOutlet=\"expansionTemplate; context: { item }\"> </ng-container>\n            </td>\n          </tr>\n        </ng-template>\n      </p-table>\n    </vector-panel>\n  </div>\n</div>\n","import { Component, EventEmitter, inject, Input, Output, ViewChild } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { MessageService } from 'primeng/api';\nimport { FileSelectEvent, FileUpload } from 'primeng/fileupload';\nimport { MessageStatus } from '../../../models';\n\ntype ButtonType =\n  | 'success'\n  | 'success-outlined'\n  | 'default'\n  | 'default-filled'\n  | 'default-outlined'\n  | 'default-outlined-gray'\n  | 'default-outlined-gray-icon-red'\n  | 'default-outlined-gray-icon-gray'\n  | 'cancel'\n  | 'cancel-filled'\n  | 'light-outline';\n\nexport type InputFileButtonConfig = {\n  label?: string;\n  type?: ButtonType;\n  leftIcon?: string;\n  rightIcon?: string;\n};\n\nexport const INPUT_FILE_ACCEPT_EXTENSIONS = [\n  'PDF',\n  'DOC',\n  'DOCX',\n  'XLS',\n  'XLSX',\n  'PPT',\n  'PPTX',\n  'TXT',\n  'CSV',\n  'RTF',\n  'JPG',\n  'JPEG',\n  'PNG',\n  'GIF',\n  'BMP',\n  'WEBP',\n  'SVG',\n  'ZIP',\n  'RAR',\n  'JSON',\n  'XML',\n] as const;\n\nexport type InputFileAcceptExtension = (typeof INPUT_FILE_ACCEPT_EXTENSIONS)[number];\n\nexport type UploadSingleFormValue = {\n  originalFileName: string;\n  friendlyFileName: string;\n  fileExtension: string;\n  fileSize: number;\n  contentType: string;\n  lastModified: number;\n  convertedData: string | FormData | null;\n};\n\nexport type UploadSingleFormControls = {\n  originalFileName: FormControl<string>;\n  friendlyFileName: FormControl<string>;\n  fileExtension: FormControl<string>;\n  fileSize: FormControl<number>;\n  contentType: FormControl<string>;\n  lastModified: FormControl<number>;\n  convertedData: FormControl<string | FormData | null>;\n};\n\nexport type UploadSingleFormGroup = FormGroup<UploadSingleFormControls>;\n\nexport type UploadMultipleFormArray = FormArray<UploadSingleFormGroup>;\n\n/**\n * Callback dos botões. Em modo single recebe um valor único; em modo multiple recebe a lista.\n * O componente decide qual formato passar com base em `uploadType`.\n */\nexport type InputFileButtonEvent = (value: UploadSingleFormValue | UploadSingleFormValue[]) => void | Promise<void>;\n\nconst UPLOAD_BUTTON_ATTACH_DEFAULTS: Required<InputFileButtonConfig> = {\n  label: 'Anexar',\n  type: 'default-filled',\n  leftIcon: 'fas fa-paperclip',\n  rightIcon: '',\n};\n\nconst UPLOAD_BUTTON_SEND_DEFAULTS: Required<InputFileButtonConfig> = {\n  label: 'Enviar',\n  type: 'default-outlined',\n  leftIcon: 'fas fa-upload',\n  rightIcon: '',\n};\n\nconst UPLOAD_BUTTON_CANCEL_DEFAULTS: Required<InputFileButtonConfig> = {\n  label: 'Cancelar',\n  type: 'cancel',\n  leftIcon: 'fas fa-times',\n  rightIcon: '',\n};\n\n/** Tempo em tela dos toasts de aviso emitidos pelo componente. */\nconst WARNING_TOAST_LIFE_MS = 7000;\n\n/** Limite de arquivos suportado no modo multiple — `maxFileNumberUploaded` é limitado a este valor. */\nconst MAX_FILE_NUMBER_UPLOADED = 10;\n\nconst EMPTY_UPLOAD_SINGLE_VALUE: UploadSingleFormValue = {\n  originalFileName: '',\n  friendlyFileName: '',\n  fileExtension: '',\n  fileSize: 0,\n  contentType: '',\n  lastModified: 0,\n  convertedData: null,\n};\n\n/** Cria FormGroup vazio para modo single (ou item de FormArray no modo multiple). */\nexport function createUploadSingleForm(): UploadSingleFormGroup {\n  return new FormGroup<UploadSingleFormControls>({\n    originalFileName: new FormControl<string>('', { nonNullable: true }),\n    friendlyFileName: new FormControl<string>('', { nonNullable: true }),\n    fileExtension: new FormControl<string>('', { nonNullable: true }),\n    fileSize: new FormControl<number>(0, { nonNullable: true }),\n    contentType: new FormControl<string>('', { nonNullable: true }),\n    lastModified: new FormControl<number>(0, { nonNullable: true }),\n    convertedData: new FormControl<string | FormData | null>(null),\n  });\n}\n\n/** Cria FormArray vazio para modo multiple. */\nexport function createUploadMultipleForm(): UploadMultipleFormArray {\n  return new FormArray<UploadSingleFormGroup>([]);\n}\n\n@Component({\n  standalone: false,\n  selector: 'vector-input-file',\n  templateUrl: './input-file.component.html',\n  styleUrl: './input-file.component.scss',\n})\nexport class InputFileComponent {\n  /** Modo do upload: `'single'` = 1 arquivo (usa FormGroup) · `'multiple'` = vários (usa FormArray). Default: `'single'`. */\n  @Input()\n  public uploadType: 'single' | 'multiple' = 'single';\n\n  /** Formato salvo em `convertedData`: `'base64'` (data URL string) ou `'formData'` (FormData pronto para POST). Default: `'formData'`. */\n  @Input()\n  public uploadFormat: 'formData' | 'base64' = 'formData';\n\n  /** Criação de formulário: Single → `UploadSingleFormGroup` (use `createUploadSingleForm()`) · Multiple → `UploadMultipleFormArray` (use `createUploadMultipleForm()`). Se omitido, usa form interno. */\n  @Input()\n  public control?: UploadSingleFormGroup | UploadMultipleFormArray;\n\n  /**\n   * Extensões aceitas, ex: `['PDF', 'JPG']` (vira `accept=\".pdf,.jpg\"`). Arquivos com outra extensão\n   * são bloqueados na seleção, com toast de aviso. Array vazio = aceita qualquer extensão\n   * de {@link INPUT_FILE_ACCEPT_EXTENSIONS}.\n   */\n  @Input()\n  public acceptExtensions: InputFileAcceptExtension[] = [];\n\n  /** Tamanho máximo por arquivo em **MB** (ex: `5` = 5MB). `null` = sem limite. Convertido internamente pra bytes. */\n  @Input()\n  public maxFileSize: number | null = null;\n\n  private _maxFileNumberUploaded: number = MAX_FILE_NUMBER_UPLOADED;\n  /**\n   * Quantidade máxima de arquivos no modo multiple (1 à 10). Ignorado em single (sempre 1). Default: `10`.\n   * Valores acima de {@link MAX_FILE_NUMBER_UPLOADED} são reduzidos ao teto do componente e geram um toast de aviso.\n   */\n  @Input()\n  public set maxFileNumberUploaded(value: number) {\n    const requested = Math.trunc(Number(value));\n\n    if (!Number.isFinite(requested) || requested < 1) {\n      this._maxFileNumberUploaded = 1;\n      return;\n    }\n\n    if (requested > MAX_FILE_NUMBER_UPLOADED) {\n      this._maxFileNumberUploaded = MAX_FILE_NUMBER_UPLOADED;\n      this.notifyConfiguredLimitExceeded(requested);\n      return;\n    }\n\n    this._maxFileNumberUploaded = requested;\n  }\n  public get maxFileNumberUploaded(): number {\n    return this._maxFileNumberUploaded;\n  }\n\n  /** Renderiza o botão \"Enviar\" ao lado de \"Anexar\". Default: `false`. */\n  @Input()\n  public uploadButtonSendEnabled: boolean = false;\n\n  /** Renderiza o botão \"Cancelar\" (limpa todos os arquivos ao clicar). Default: `false`. */\n  @Input()\n  public uploadButtonCancelEnabled: boolean = false;\n\n  /** Callback disparado após clicar em \"Anexar\" e o picker do SO fechar. Recebe o valor atual do form (objeto em single, array em multiple). */\n  @Input()\n  public uploadButtonAttachEvent?: InputFileButtonEvent;\n\n  /** Callback do botão \"Enviar\". Enquanto a Promise retornada não resolve, `internalSending` fica `true` (botão em loading e demais desabilitados). */\n  @Input()\n  public uploadButtonSendEvent?: InputFileButtonEvent;\n\n  /** Callback do botão \"Cancelar\". Chamado **após** o form já ter sido limpo — útil para notificar o consumidor. */\n  @Input()\n  public uploadButtonCancelEvent?: InputFileButtonEvent;\n\n  /** Habilita clique na badge do arquivo para abrir modal de preview (imagem ou PDF). Default: `false`. */\n  @Input()\n  public enableModalView: boolean = false;\n\n  @Output()\n  public fileSelected = new EventEmitter<UploadSingleFormValue | UploadSingleFormValue[]>();\n  @Output()\n  public fileRemoved = new EventEmitter<void>();\n\n  @ViewChild('fileUpload')\n  public fileUploadRef?: FileUpload;\n\n  public internalSending: boolean = false;\n  public isModalViewOpen: boolean = false;\n  /** Índice do arquivo que está sendo visualizado no modal (só usado em modo multiple). */\n  public modalViewIndex: number | null = null;\n\n  private _internalForm: UploadSingleFormGroup = createUploadSingleForm();\n  private _internalArray: UploadMultipleFormArray = createUploadMultipleForm();\n\n  /** Single: arquivo original (antes das conversões) + objectURL para preview. */\n  private _selectedFile: File | null = null;\n  private _previewObjectUrl: string | null = null;\n\n  /** Multiple: arquivos originais por índice + objectURLs por índice, paralelo ao FormArray. */\n  private _multipleFiles: File[] = [];\n  private _multiplePreviewObjectUrls: (string | null)[] = [];\n  private readonly messageService = inject(MessageService, { optional: true });\n\n  constructor(private sanitizer: DomSanitizer) {}\n\n  private _uploadButtonAttach: Required<InputFileButtonConfig> = { ...UPLOAD_BUTTON_ATTACH_DEFAULTS };\n\n  /** Customiza o botão \"Anexar\" (`label`, `type`, `leftIcon`, `rightIcon`). */\n  @Input()\n  public set uploadButtonAttach(value: InputFileButtonConfig | undefined | null) {\n    this._uploadButtonAttach = { ...UPLOAD_BUTTON_ATTACH_DEFAULTS, ...(value ?? {}) };\n  }\n  public get uploadButtonAttach(): Required<InputFileButtonConfig> {\n    return this._uploadButtonAttach;\n  }\n\n  private _uploadButtonSend: Required<InputFileButtonConfig> = { ...UPLOAD_BUTTON_SEND_DEFAULTS };\n  /** Customiza o botão \"Enviar\". (`label`, `type`, `leftIcon`, `rightIcon`)  */\n  @Input()\n  public set uploadButtonSend(value: InputFileButtonConfig | undefined | null) {\n    this._uploadButtonSend = { ...UPLOAD_BUTTON_SEND_DEFAULTS, ...(value ?? {}) };\n  }\n  public get uploadButtonSend(): Required<InputFileButtonConfig> {\n    return this._uploadButtonSend;\n  }\n\n  private _uploadButtonCancel: Required<InputFileButtonConfig> = { ...UPLOAD_BUTTON_CANCEL_DEFAULTS };\n  /** Customiza o botão \"Cancelar\". (`label`, `type`, `leftIcon`, `rightIcon`). Só aparece se `uploadButtonCancelEnabled === true`. */\n  @Input()\n  public set uploadButtonCancel(value: InputFileButtonConfig | undefined | null) {\n    this._uploadButtonCancel = { ...UPLOAD_BUTTON_CANCEL_DEFAULTS, ...(value ?? {}) };\n  }\n  public get uploadButtonCancel(): Required<InputFileButtonConfig> {\n    return this._uploadButtonCancel;\n  }\n\n  // ─── Form accessors ──────────────────────────────────────\n\n  public get uploadForm(): UploadSingleFormGroup {\n    return (this.control as UploadSingleFormGroup | undefined) ?? this._internalForm;\n  }\n\n  public get uploadArray(): UploadMultipleFormArray {\n    return (this.control as UploadMultipleFormArray | undefined) ?? this._internalArray;\n  }\n\n  /** True se tem arquivo(s) — funciona pros dois modos. */\n  public get hasFile(): boolean {\n    if (this.uploadType === 'single') {\n      return !!this.uploadForm.controls.originalFileName.value;\n    }\n    return this.uploadArray.length > 0;\n  }\n\n  /** Send habilitado se: single com arquivo, ou multiple com pelo menos 1 arquivo. */\n  public get canSend(): boolean {\n    if (this.internalSending) return false;\n    return this.hasFile;\n  }\n\n  /** Limite atingido — desabilita Attach em modo multiple. */\n  public get isAttachAtLimit(): boolean {\n    if (this.uploadType === 'single') return this.hasFile;\n    return this.uploadArray.length >= this.maxFileNumberUploaded;\n  }\n\n  // ─── Badge ───────────────────────────────────────────────\n\n  /** Tooltip da badge do arquivo, no formato `nome-do-arquivo.png (1.2MB)`. */\n  public fileTooltip(control: UploadSingleFormGroup): string {\n    const name = control.controls.originalFileName.value;\n    return `${name} (${this.formatFileSizeMb(control.controls.fileSize.value)})`;\n  }\n\n  /** Bytes → MB. Usa 2 casas abaixo de 0.1MB para arquivos pequenos não virarem `0.0MB`. */\n  private formatFileSizeMb(bytes: number): string {\n    const mb = (bytes ?? 0) / 1024 / 1024;\n    return `${mb.toFixed(mb < 0.1 ? 2 : 1)}MB`;\n  }\n\n  // ─── Config conversion ───────────────────────────────────\n\n  public get acceptString(): string {\n    return this.allowedExtensions.map((ext) => `.${ext.toLowerCase()}`).join(',');\n  }\n\n  /**\n   * Extensões efetivamente aceitas: as configuradas em `acceptExtensions` ou, quando nada\n   * foi configurado, todas as que o componente suporta.\n   */\n  public get allowedExtensions(): readonly InputFileAcceptExtension[] {\n    const configured = this.acceptExtensions ?? [];\n    return configured.length > 0 ? configured : INPUT_FILE_ACCEPT_EXTENSIONS;\n  }\n\n  public get maxFileSizeBytes(): number {\n    const mb = this.maxFileSize ?? 0;\n    return mb > 0 ? mb * 1024 * 1024 : 0;\n  }\n\n  /** Passado para o p-fileUpload — 1 em modo single, o input em modo multiple. */\n  public get effectiveFileLimit(): number {\n    return this.uploadType === 'single' ? 1 : this.maxFileNumberUploaded;\n  }\n\n  // ─── Click handlers ──────────────────────────────────────\n\n  public async handleAttachClick(event: MouseEvent): Promise<void> {\n    if (this.isAttachAtLimit) return;\n    this.triggerAttach(event);\n    await this.uploadButtonAttachEvent?.(this.currentEmitValue());\n  }\n\n  public async handleSendClick(): Promise<void> {\n    if (!this.uploadButtonSendEvent || !this.canSend) return;\n    this.internalSending = true;\n    try {\n      await this.uploadButtonSendEvent(this.currentEmitValue());\n    } finally {\n      this.internalSending = false;\n    }\n  }\n\n  public async handleCancelClick(): Promise<void> {\n    this.resetUploadForm();\n    await this.uploadButtonCancelEvent?.(this.currentEmitValue());\n  }\n\n  private currentEmitValue(): UploadSingleFormValue | UploadSingleFormValue[] {\n    if (this.uploadType === 'single') return this.uploadForm.getRawValue();\n    return this.uploadArray.getRawValue();\n  }\n\n  // ─── Reset ───────────────────────────────────────────────\n\n  public resetUploadForm(): void {\n    if (this.uploadType === 'single') {\n      this.uploadForm.reset(EMPTY_UPLOAD_SINGLE_VALUE);\n      this._selectedFile = null;\n      this.revokePreviewObjectUrl();\n    } else {\n      this.uploadArray.clear();\n      for (const url of this._multiplePreviewObjectUrls) {\n        if (url) URL.revokeObjectURL(url);\n      }\n      this._multipleFiles = [];\n      this._multiplePreviewObjectUrls = [];\n      this.uploadArray.updateValueAndValidity();\n    }\n    this.fileUploadRef?.clear();\n    this.closeModalView();\n    this.fileRemoved.emit();\n  }\n\n  /** Remove um item específico do FormArray (modo multiple). */\n  public removeUploadArrayItem(index: number): void {\n    const url = this._multiplePreviewObjectUrls[index];\n    if (url) URL.revokeObjectURL(url);\n\n    this.uploadArray.removeAt(index);\n    this._multipleFiles.splice(index, 1);\n    this._multiplePreviewObjectUrls.splice(index, 1);\n    this.uploadArray.updateValueAndValidity();\n\n    this.fileRemoved.emit();\n  }\n\n  // ─── p-fileUpload handler ────────────────────────────────\n\n  public async onPrimeFileSelect(event: FileSelectEvent): Promise<void> {\n    const selected: File[] = Array.from(event?.files ?? []);\n    if (selected.length === 0) return;\n\n    const files = this.rejectOversizedFiles(this.rejectDisallowedExtensions(selected));\n    if (files.length === 0) return;\n\n    if (this.uploadType === 'single') {\n      const file = files[0];\n      this._selectedFile = file;\n      this.revokePreviewObjectUrl();\n      const value = await this.buildValueFromFile(file);\n      this.uploadForm.setValue(value);\n      this.fileSelected.emit(value);\n      return;\n    }\n\n    const accepted = this.rejectFilesOverLimit(files);\n    if (accepted.length === 0) return;\n\n    for (const file of accepted) {\n      const value = await this.buildValueFromFile(file);\n      const fg = createUploadSingleForm();\n      fg.setValue(value);\n      this.uploadArray.push(fg);\n      this._multipleFiles.push(file);\n      this._multiplePreviewObjectUrls.push(null);\n    }\n    this.uploadArray.updateValueAndValidity();\n\n    this.fileSelected.emit(this.uploadArray.getRawValue());\n  }\n\n  // ─── Modal ───────────────────────────────────────────────\n\n  /**\n   * Abre o modal de preview. Em single, chama sem índice. Em multiple, passa o índice.\n   */\n  public openModalView(index?: number): void {\n    if (!this.enableModalView || !this.hasFile) return;\n\n    if (this.uploadType === 'single') {\n      if (this.uploadFormat !== 'base64' && this._selectedFile && !this._previewObjectUrl) {\n        this._previewObjectUrl = URL.createObjectURL(this._selectedFile);\n      }\n      this.modalViewIndex = null;\n    } else {\n      if (index == null || index < 0 || index >= this.uploadArray.length) return;\n      this.modalViewIndex = index;\n      if (this.uploadFormat !== 'base64' && this._multipleFiles[index] && !this._multiplePreviewObjectUrls[index]) {\n        this._multiplePreviewObjectUrls[index] = URL.createObjectURL(this._multipleFiles[index]);\n      }\n    }\n    this.isModalViewOpen = true;\n  }\n\n  public closeModalView(): void {\n    this.isModalViewOpen = false;\n    this.modalViewIndex = null;\n  }\n\n  /** FormGroup do arquivo atualmente sendo visualizado (single ou item do array). */\n  private currentPreviewControl(): UploadSingleFormGroup | null {\n    if (this.uploadType === 'single') return this.uploadForm;\n    if (this.modalViewIndex == null) return null;\n    const ctrl = this.uploadArray.at(this.modalViewIndex);\n    return ctrl ?? null;\n  }\n\n  public get previewFileName(): string {\n    return this.currentPreviewControl()?.controls.originalFileName.value ?? '';\n  }\n\n  public get isImagePreview(): boolean {\n    const ct = this.currentPreviewControl()?.controls.contentType.value ?? '';\n    return ct.startsWith('image/');\n  }\n\n  public get isPdfPreview(): boolean {\n    return this.currentPreviewControl()?.controls.contentType.value === 'application/pdf';\n  }\n\n  public get previewUrl(): string {\n    if (this.uploadFormat === 'base64') {\n      const data = this.currentPreviewControl()?.controls.convertedData.value;\n      return typeof data === 'string' ? data : '';\n    }\n    if (this.uploadType === 'single') {\n      return this._previewObjectUrl ?? '';\n    }\n    if (this.modalViewIndex == null) return '';\n    return this._multiplePreviewObjectUrls[this.modalViewIndex] ?? '';\n  }\n\n  public get safePreviewUrl(): SafeResourceUrl {\n    return this.sanitizer.bypassSecurityTrustResourceUrl(this.previewUrl);\n  }\n\n  // ─── Helpers privados ────────────────────────────────────\n\n  private triggerAttach(_event: MouseEvent): void {\n    const fu = this.fileUploadRef;\n    if (!fu) return;\n    type FileUploadInternals = {\n      basicFileInput?: { nativeElement?: HTMLInputElement };\n      advancedFileInput?: { nativeElement?: HTMLInputElement };\n      el?: { nativeElement?: HTMLElement };\n    };\n    const internals = fu as unknown as FileUploadInternals;\n    const targetInput =\n      internals.basicFileInput?.nativeElement ??\n      internals.advancedFileInput?.nativeElement ??\n      (internals.el?.nativeElement?.querySelector('input[type=\"file\"]') as HTMLInputElement | null);\n    if (!targetInput) return;\n\n    targetInput.multiple = this.uploadType === 'multiple';\n    targetInput.click();\n  }\n\n  private rejectDisallowedExtensions(files: File[]): File[] {\n    const allowed = new Set(this.allowedExtensions.map((ext) => ext.toLowerCase()));\n\n    const rejected = files.filter((file) => !allowed.has(this.normalizedExtension(file.name)));\n    if (rejected.length > 0) this.notifyDisallowedExtensions(rejected);\n\n    return files.filter((file) => allowed.has(this.normalizedExtension(file.name)));\n  }\n\n  private notifyDisallowedExtensions(files: File[]): void {\n    const hasConfiguredExtensions = (this.acceptExtensions ?? []).length > 0;\n    const extensions = this.allowedExtensions.join(', ');\n\n    this.messageService?.add({\n      severity: MessageStatus.WARN,\n      summary: files.length === 1 ? 'Extensão não permitida' : 'Extensões não permitidas',\n      detail: hasConfiguredExtensions\n        ? `${this.fileNameList(files)} — ${files.length === 1 ? 'só é aceito' : 'só são aceitos'} ${extensions}.`\n        : `${this.fileNameList(files)} — o componente aceita apenas ${extensions}.`,\n      life: WARNING_TOAST_LIFE_MS,\n    });\n  }\n\n  private fileNameList(files: File[]): string {\n    return files.map((file) => file.name).join(', ');\n  }\n\n  private normalizedExtension(filename: string): string {\n    return this.extractExtension(filename).replace('.', '').toLowerCase();\n  }\n\n  /** Descarta os arquivos que excedem `maxFileSize` e notifica o usuário. */\n  private rejectOversizedFiles(files: File[]): File[] {\n    const maxBytes = this.maxFileSizeBytes;\n    if (maxBytes <= 0) return files;\n\n    const rejected = files.filter((file) => file.size > maxBytes);\n    if (rejected.length > 0) this.notifyOversizedFiles(rejected);\n\n    return files.filter((file) => file.size <= maxBytes);\n  }\n\n  private notifyOversizedFiles(files: File[]): void {\n    this.messageService?.add({\n      severity: MessageStatus.WARN,\n      summary: files.length === 1 ? 'Arquivo acima do tamanho permitido' : 'Arquivos acima do tamanho permitido',\n      detail: `${files.map((file) => file.name).join(', ')} — o limite é de ${this.maxFileSize}MB por arquivo.`,\n      life: WARNING_TOAST_LIFE_MS,\n    });\n  }\n\n  private rejectFilesOverLimit(files: File[]): File[] {\n    const availableSlots = Math.max(0, this.maxFileNumberUploaded - this.uploadArray.length);\n    if (files.length <= availableSlots) return files;\n\n    this.notifyFileNumberExceeded(files.length, files.length - availableSlots);\n\n    return files.slice(0, availableSlots);\n  }\n\n  private notifyFileNumberExceeded(selectedCount: number, rejectedCount: number): void {\n    const limit = this.maxFileNumberUploaded;\n    const attached = this.uploadArray.length;\n    const attachedInfo = attached > 0 ? ` (${attached} já ${attached === 1 ? 'anexado' : 'anexados'})` : '';\n\n    this.messageService?.add({\n      severity: MessageStatus.WARN,\n      summary: 'Limite de arquivos excedido',\n      detail:\n        `Você selecionou ${selectedCount} arquivos e o limite é de ${limit}${attachedInfo}. ` +\n        `${rejectedCount} ${rejectedCount === 1 ? 'arquivo não foi anexado' : 'arquivos não foram anexados'}.`,\n      life: WARNING_TOAST_LIFE_MS,\n    });\n  }\n\n  private notifyConfiguredLimitExceeded(requested: number): void {\n    setTimeout(() => {\n      this.messageService?.add({\n        severity: MessageStatus.WARN,\n        summary: 'Limite de arquivos acima do suportado',\n        detail:\n          `A quantidade configurada (${requested}) excede o limite padrão do componente. ` +\n          `Serão aceitos no máximo ${MAX_FILE_NUMBER_UPLOADED} arquivos.`,\n        life: WARNING_TOAST_LIFE_MS,\n      });\n    });\n  }\n\n  private async buildValueFromFile(file: File): Promise<UploadSingleFormValue> {\n    const { name, size, type, lastModified } = file;\n    const extension = this.extractExtension(name);\n    const baseName = this.stripExtension(name);\n    const friendly = this.toFriendlyName(baseName);\n    const converted = await this.convertFile(file, this.uploadFormat);\n    return {\n      originalFileName: name,\n      friendlyFileName: friendly,\n      fileExtension: extension,\n      fileSize: size,\n      contentType: type,\n      lastModified,\n      convertedData: converted,\n    };\n  }\n\n  private toFriendlyName(name: string): string {\n    return (name ?? '').normalize('NFD').replace(/[̀-ͯ]/g, '').toLowerCase().trim().replace(/\\s+/g, '-');\n  }\n\n  private extractExtension(filename: string): string {\n    const idx = filename.lastIndexOf('.');\n    if (idx <= 0 || idx === filename.length - 1) return '';\n    return filename.slice(idx);\n  }\n\n  private stripExtension(filename: string): string {\n    const idx = filename.lastIndexOf('.');\n    if (idx <= 0) return filename;\n    return filename.slice(0, idx);\n  }\n\n  private convertFile(file: File, format: 'formData' | 'base64'): Promise<string | FormData> {\n    if (format === 'base64') return this.fileToBase64(file);\n    return Promise.resolve(this.fileToFormData(file));\n  }\n\n  private fileToBase64(file: File): Promise<string> {\n    return new Promise((resolve, reject) => {\n      const reader = new FileReader();\n      reader.onload = () => resolve(String(reader.result ?? ''));\n      reader.onerror = () => reject(reader.error);\n      reader.readAsDataURL(file);\n    });\n  }\n\n  private fileToFormData(file: File): FormData {\n    const fd = new FormData();\n    fd.append('file', file, file.name);\n    return fd;\n  }\n\n  private revokePreviewObjectUrl(): void {\n    if (this._previewObjectUrl) {\n      URL.revokeObjectURL(this._previewObjectUrl);\n      this._previewObjectUrl = null;\n    }\n  }\n}\n","<p-fileUpload\n  #fileUpload\n  class=\"p-fileupload-hidden\"\n  mode=\"basic\"\n  [multiple]=\"uploadType === 'multiple'\"\n  [auto]=\"false\"\n  [customUpload]=\"true\"\n  [accept]=\"acceptString\"\n  [maxFileSize]=\"maxFileSizeBytes\"\n  [fileLimit]=\"effectiveFileLimit\"\n  [chooseLabel]=\"''\"\n  (onSelect)=\"onPrimeFileSelect($event)\"\n></p-fileUpload>\n\n@if (uploadType === 'single') {\n  <div class=\"box-input-file\">\n    <div class=\"flex gap-2\">\n      <vector-button\n        [label]=\"uploadButtonAttach.label\"\n        [type]=\"uploadButtonAttach.type\"\n        [leftIcon]=\"uploadButtonAttach.leftIcon\"\n        [rightIcon]=\"uploadButtonAttach.rightIcon\"\n        [disabled]=\"isAttachAtLimit || internalSending\"\n        (onClick)=\"handleAttachClick($event)\"\n      ></vector-button>\n\n      @if (uploadButtonSendEnabled) {\n        <vector-button\n          [label]=\"uploadButtonSend.label\"\n          [type]=\"uploadButtonSend.type\"\n          [leftIcon]=\"uploadButtonSend.leftIcon\"\n          [rightIcon]=\"uploadButtonSend.rightIcon\"\n          [loading]=\"internalSending\"\n          [disabled]=\"!canSend\"\n          (onClick)=\"handleSendClick()\"\n        ></vector-button>\n      }\n\n      @if (uploadButtonCancelEnabled) {\n        <vector-button\n          [label]=\"uploadButtonCancel.label\"\n          [type]=\"uploadButtonCancel.type\"\n          [leftIcon]=\"uploadButtonCancel.leftIcon\"\n          [rightIcon]=\"uploadButtonCancel.rightIcon\"\n          [disabled]=\"!hasFile || internalSending\"\n          (onClick)=\"handleCancelClick()\"\n        ></vector-button>\n      }\n\n      @if (hasFile) {\n        <div\n          class=\"box-badge\"\n          [class.box-badge--clickable]=\"enableModalView\"\n          (click)=\"enableModalView && openModalView()\"\n        >\n          <div class=\"filename\" [class.cp]=\"enableModalView\">\n            <div class=\"flex gap-0\" [pTooltip]=\"fileTooltip(uploadForm)\" tooltipPosition=\"top\">\n              <span>{{ uploadForm.controls.friendlyFileName.value }}</span>\n              <span>{{ uploadForm.controls.fileExtension.value }}</span>\n            </div>\n            <i\n              class=\"fas fa-times button-remove-file\"\n              pTooltip=\"Remover\"\n              tooltipPosition=\"top\"\n              (click)=\"$event.stopPropagation(); resetUploadForm()\"\n            ></i>\n          </div>\n        </div>\n      }\n    </div>\n  </div>\n} @else {\n  <div class=\"box-input-file mt-5\">\n    <div class=\"flex gap-2\">\n      <vector-button\n        [label]=\"uploadButtonAttach.label\"\n        [type]=\"uploadButtonAttach.type\"\n        [leftIcon]=\"uploadButtonAttach.leftIcon\"\n        [rightIcon]=\"uploadButtonAttach.rightIcon\"\n        [disabled]=\"isAttachAtLimit || internalSending\"\n        (onClick)=\"handleAttachClick($event)\"\n      ></vector-button>\n\n      @if (uploadButtonSendEnabled) {\n        <vector-button\n          [label]=\"uploadButtonSend.label\"\n          [type]=\"uploadButtonSend.type\"\n          [leftIcon]=\"uploadButtonSend.leftIcon\"\n          [rightIcon]=\"uploadButtonSend.rightIcon\"\n          [loading]=\"internalSending\"\n          [disabled]=\"!canSend\"\n          (onClick)=\"handleSendClick()\"\n        ></vector-button>\n      }\n\n      @if (uploadButtonCancelEnabled) {\n        <vector-button\n          [label]=\"uploadButtonCancel.label\"\n          [type]=\"uploadButtonCancel.type\"\n          [leftIcon]=\"uploadButtonCancel.leftIcon\"\n          [rightIcon]=\"uploadButtonCancel.rightIcon\"\n          [disabled]=\"!hasFile || internalSending\"\n          (onClick)=\"handleCancelClick()\"\n        ></vector-button>\n      }\n\n      <div class=\"box-badge-list\">\n        @if (uploadArray.length > 0) {\n          <span class=\"info-selected ml-1\">\n            <b>{{ uploadArray.length }}</b> {{ uploadArray.length === 1 ? 'arquivo anexado' : 'arquivos anexados' }}\n          </span>\n\n          <div class=\"box-badge-list-content\">\n            @for (control of uploadArray.controls; track $index) {\n              <div\n                class=\"box-badge\"\n                [class.box-badge--clickable]=\"enableModalView\"\n                (click)=\"enableModalView && openModalView($index)\"\n              >\n                <div class=\"filename\" [class.cp]=\"enableModalView\">\n                  <div class=\"flex gap-0\" [pTooltip]=\"fileTooltip(control)\" tooltipPosition=\"top\">\n                    <span>{{ control.controls.friendlyFileName.value }}</span>\n                    <span>{{ control.controls.fileExtension.value }}</span>\n                  </div>\n                  <i\n                    class=\"fas fa-times button-remove-file\"\n                    pTooltip=\"Remover\"\n                    tooltipPosition=\"top\"\n                    (click)=\"$event.stopPropagation(); removeUploadArrayItem($index)\"\n                  ></i>\n                </div>\n              </div>\n            }\n          </div>\n        }\n      </div>\n    </div>\n  </div>\n}\n\n@if (enableModalView) {\n  <p-dialog\n    [(visible)]=\"isModalViewOpen\"\n    [modal]=\"true\"\n    [breakpoints]=\"{ '700px': '85%' }\"\n    [style]=\"{ width: '700px' }\"\n    [closable]=\"true\"\n    [draggable]=\"false\"\n    class=\"modal-default\"\n    [header]=\"previewFileName\"\n  >\n    <div class=\"grid\">\n      <div class=\"col-12\">\n        @if (isImagePreview) {\n          <img [src]=\"previewUrl\" [alt]=\"previewFileName\" class=\"w-full border-round-lg\" />\n        } @else if (isPdfPreview) {\n          <iframe [src]=\"safePreviewUrl\" class=\"w-full border-round-lg\" style=\"height: 500px; border: 0\"></iframe>\n        } @else {\n          <div class=\"box-message my-3\">\n            <div class=\"flex\">\n              <i class=\"fas fa-exclamation-triangle icon\"></i>\n              <span>Preview não disponível para este tipo de arquivo.</span>\n            </div>\n          </div>\n        }\n      </div>\n    </div>\n\n    <div class=\"grid justify-content-center\">\n      <div class=\"col-12 md:col-4\">\n        <vector-button label=\"Fechar\" type=\"default\" (onClick)=\"closeModalView()\"></vector-button>\n      </div>\n    </div>\n  </p-dialog>\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n@Component({\n  standalone: false,\n  selector: 'vector-input-number',\n  templateUrl: './input-number-field.component.html',\n  styleUrls: ['./input-number-field.component.scss'],\n})\nexport class InputNumberFieldComponent {\n  @Input()\n  public inputId?: string;\n  @Input()\n  public control: any;\n  @Input()\n  public showButtons: boolean = false;\n  @Input()\n  public type: 'decimal' | 'percent' = 'decimal';\n  @Input()\n  public minFractionDigits: number = 0;\n  @Input()\n  public maxFractionDigits: number = 4;\n  @Input()\n  public buttonLayout: 'stacked' | 'horizontal' | 'vertical' = 'horizontal';\n  @Input()\n  public incrementButtonIcon: string = 'pi pi-plus-circle';\n  @Input()\n  public decrementButtonIcon: string = 'pi pi-minus-circle';\n  @Input()\n  public min: number = 0;\n  @Input()\n  public step: number = 1;\n  @Input()\n  public disabled = false;\n\n  @Input()\n  public set max(_max) {\n    this._max = _max;\n  }\n  @Input()\n  public set suffix(_suffix) {\n    this._suffix = _suffix;\n  }\n\n  @Output()\n  public onFocus = new EventEmitter<Event>();\n  @Output()\n  public onBlur = new EventEmitter<Event>();\n  @Output()\n  public onInput = new EventEmitter();\n  @Output()\n  public onClear = new EventEmitter();\n\n  get max(): number {\n    if (this.type === 'percent') {\n      return this._max || 100;\n    }\n    return this._max || 999999999;\n  }\n\n  get suffix() {\n    if (this._suffix) {\n      return this._suffix;\n    }\n    return this.type === 'percent' ? '%' : '';\n  }\n\n  public _maxFractionDigits: number | null = null;\n  public _max: number | null = null;\n  public _suffix: string | null = null;\n}\n","<div class=\"input-container\">\n  <p-inputNumber\n    [inputId]=\"inputId\"\n    [formControl]=\"control\"\n    [min]=\"min\"\n    [max]=\"max\"\n    [suffix]=\"suffix\"\n    [step]=\"step\"\n    [minFractionDigits]=\"minFractionDigits\"\n    [maxFractionDigits]=\"maxFractionDigits\"\n    [showButtons]=\"showButtons\"\n    [disabled]=\"disabled\"\n    [buttonLayout]=\"buttonLayout\"\n    [incrementButtonIcon]=\"incrementButtonIcon\"\n    [decrementButtonIcon]=\"decrementButtonIcon\"\n    (onBlur)=\"onBlur.emit($event)\"\n    (onFocus)=\"onFocus.emit($event)\"\n  ></p-inputNumber>\n  <vector-field-error-message [control]=\"control\"></vector-field-error-message>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  standalone: false,\n  selector: 'vector-input-otp',\n  templateUrl: './input-otp.component.html',\n  styleUrl: './input-otp.component.scss',\n})\nexport class InputOtpComponent {\n  @Input()\n  public integerOnly = false;\n  @Input()\n  public length = 6;\n  @Input()\n  public inputValue!: string | number;\n  @Input()\n  public isReadonly = false;\n  @Input()\n  public isDisabled = false;\n  @Input()\n  public isInvalid = false;\n\n  @Output()\n  public onChangeOtp = new EventEmitter();\n  @Output()\n  public onBlurOtp = new EventEmitter();\n  @Output()\n  public onFocusOtp = new EventEmitter();\n\n  public onChange($event: any) {\n    this.onChangeOtp.emit($event);\n  }\n\n  public onBlur($event: Event) {\n    this.onBlurOtp.emit($event);\n  }\n\n  public onFocus($event: Event) {\n    this.onFocusOtp.emit($event);\n  }\n}\n","<p-inputOtp\n  class=\"custom-field-text input-otp\"\n  [integerOnly]=\"integerOnly\"\n  [length]=\"length\"\n  [ngModel]=\"inputValue\"\n  [invalid]=\"isInvalid\"\n  [disabled]=\"isDisabled\"\n  [readonly]=\"isReadonly\"\n  (onChange)=\"onChange($event)\"\n  (onBlur)=\"onBlur($event)\"\n  (onFocus)=\"onFocus($event)\"\n></p-inputOtp>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  standalone: false,\n  selector: 'vector-input-switch-field',\n  templateUrl: './input-switch-field.component.html',\n  styleUrls: ['./input-switch-field.component.scss'],\n})\nexport class InputSwitchFieldComponent implements OnInit {\n  @Input()\n  public control: any;\n\n  @Input()\n  public disabled = false;\n\n  @Output()\n  public onChange = new EventEmitter<unknown>();\n\n  ngOnInit(): void {}\n}\n","<p-toggleswitch\n  [formControl]=\"control\"\n  [disabled]=\"disabled\"\n  (onChange)=\"onChange.emit($event)\"\n></p-toggleswitch>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\n@Component({\n  standalone: false,\n  selector: 'vector-percentage-field',\n  templateUrl: './percentage-field.component.html',\n  styleUrls: ['./percentage-field.component.scss'],\n})\nexport class PercentageFieldComponent implements OnInit, OnDestroy {\n  @Input()\n  public control: any;\n  @Input()\n  public min: number = 0;\n  @Input()\n  public max: number = 100;\n  @Input()\n  public minFractionDigits: number = 0;\n  @Input()\n  public maxFractionDigits: number = 0;\n  @Input()\n  public step = 0;\n  @Output()\n  public blurEvent = new EventEmitter();\n  @Output()\n  public enterKeyPress = new EventEmitter();\n  @Output()\n  public focusEvent = new EventEmitter();\n\n  public readonly percentageRegex = `^(100(\\\\.0{1,2})?|[1-9]?\\\\d(\\\\.\\\\d{1,2})?)$`;\n\n  private lastBlurValue = '';\n\n  ngOnInit() {}\n\n  ngOnDestroy() {}\n\n  public onBlur() {\n    this.control.markAsTouched();\n    if (this.lastBlurValue !== this.control.value) {\n      this.lastBlurValue = this.control.value;\n      setTimeout(() => {\n        this.blurEvent.emit(this.control.value);\n      });\n    }\n  }\n}\n","<form class=\"input-container\">\n  <p-inputNumber\n    [formControl]=\"control\"\n    suffix=\"%\"\n    [min]=\"min\"\n    [max]=\"max\"\n    [minFractionDigits]=\"minFractionDigits\"\n    [maxFractionDigits]=\"maxFractionDigits\"\n    [step]=\"step\"\n    [showButtons]=\"step > 1\"\n    buttonLayout=\"horizontal\"\n    decrementButtonIcon=\"pi pi-minus-circle\"\n    incrementButtonIcon=\"pi pi-plus-circle\"\n    (onBlur)=\"onBlur()\"\n  ></p-inputNumber>\n</form>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BooleanType } from '../../../models';\n\nexport type RadioButtonOption = {\n  label: string;\n  value: string;\n  textTooltip?: string;\n};\n\n@Component({\n  standalone: false,\n  selector: 'vector-radio-button-field',\n  templateUrl: './radio-button-field.component.html',\n  styleUrls: ['./radio-button-field.component.scss'],\n})\nexport class RadioButtonFieldComponent implements OnInit {\n  @Input()\n  public groupName: string = '';\n  @Input()\n  public options: RadioButtonOption[] = [\n    { label: this.getYesLabel(), value: BooleanType.YES },\n    { label: this.getNoLabel(), value: BooleanType.NO },\n  ];\n  @Input()\n  public control: any;\n  @Input()\n  public layout: 'vertical' | 'horizontal' = 'vertical';\n  @Input()\n  public justifySpaceBetween = false;\n  @Input()\n  public addIcon = false;\n  @Input()\n  public disabled: boolean = false;\n\n  constructor(private translateService: TranslateService) {}\n\n  ngOnInit(): void {\n    if (this.control && this.disabled) {\n      this.control.disable();\n    } else {\n      this.control.enable();\n    }\n  }\n\n  get layoutClass() {\n    return { horizontal: this.layout === 'horizontal', vertical: this.layout === 'vertical' };\n  }\n\n  private getYesLabel() {\n    const label = this.translateService.instant('app.label.yes');\n    return label !== 'app.label.yes' ? label : 'Sim';\n  }\n\n  private getNoLabel() {\n    const label = this.translateService.instant('app.label.no');\n    return label !== 'app.label.no' ? label : 'Não';\n  }\n}\n","<div\n  class=\"radio-buttons-container\"\n  [ngClass]=\"layoutClass\"\n  [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\n>\n  @for (option of options; track $index) {\n    <div class=\"radio-button-item\">\n      <p-radioButton\n        [name]=\"groupName\"\n        [value]=\"option.value\"\n        [formControl]=\"control\"\n        [inputId]=\"groupName + '-' + $index\"\n      ></p-radioButton>\n      <label [for]=\"groupName + '-' + $index\">{{ option.label }}</label>\n      <i\n        *ngIf=\"addIcon && option.textTooltip != null\"\n        class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\n        pTooltip=\"{{ option.textTooltip }}\"\n        tooltipPosition=\"bottom\"\n      ></i>\n    </div>\n  }\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  standalone: false,\n  selector: 'vector-range-value',\n  templateUrl: './range-value.component.html',\n  styleUrls: ['./range-value.component.scss'],\n})\nexport class RangeValueComponent implements OnInit {\n  @Input() value: number = 0;\n  @Input() movimentedValue: number | null = null;\n  @Input() min: number = 0;\n  @Input() max: number = 100;\n  @Input() disabled: boolean = false;\n  @Output() valueChange = new EventEmitter<number>();\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  changeValue() {\n    if (this.value < this.min) {\n      this.value = this.min;\n    }\n    this.valueChange.emit(this.value);\n  }\n\n  getMovimentedValue() {\n    if (this.movimentedValue) {\n      return this.movimentedValue;\n    } else {\n      return (this.max - this.min) / 100;\n    }\n  }\n\n  increment() {\n    if (!this.disabled) {\n      if (this.value + this.getMovimentedValue() < this.max) {\n        this.value = this.value + this.getMovimentedValue();\n        this.valueChange.emit(this.value);\n      } else {\n        this.value = this.max;\n        this.valueChange.emit(this.value);\n      }\n    }\n  }\n  decrement() {\n    if (!this.disabled) {\n      if (this.value - this.getMovimentedValue() > this.min) {\n        this.value = this.value - this.getMovimentedValue();\n        this.valueChange.emit(this.value);\n      } else {\n        this.value = this.min;\n        this.valueChange.emit(this.value);\n      }\n    }\n  }\n}\n","<div class=\"range-input\">\n  <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\n  <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\" [disabled]=\"disabled\"></p-slider>\n  <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n  standalone: false,\n  selector: 'vector-search-field',\n  templateUrl: './search-field.component.html',\n  styleUrls: ['./search-field.component.scss'],\n})\nexport class SearchFieldComponent implements OnInit, OnDestroy {\n  @Input()\n  public placeholder = '';\n  @Output()\n  public onSearch = new EventEmitter<string>();\n\n  public formControl = new UntypedFormControl();\n  private subscription = new Subscription();\n  constructor() {}\n\n  ngOnInit(): void {\n    this.subscription.add(\n      this.formControl.valueChanges.pipe(debounceTime(300)).subscribe((value) => {\n        this.onSearch.emit(value);\n      })\n    );\n  }\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n}\n","<vector-text-field [control]=\"formControl\" rightIcon=\"fas fa-search\" [label]=\"placeholder\"></vector-text-field>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  standalone: false,\n  selector: 'vector-textarea-field',\n  templateUrl: './textarea-field.component.html',\n  styleUrls: ['./textarea-field.component.scss'],\n})\nexport class TextareaFieldComponent implements OnInit {\n  @Input()\n  public isRequired: boolean | undefined = false;\n  @Input()\n  public label: string | undefined = '';\n  @Input()\n  public maxlength: string = '';\n  @Input()\n  public rows: number = 5;\n  @Input()\n  public cols: number = 10;\n  @Input()\n  public control: any;\n  @Output()\n  public blurEvent = new EventEmitter();\n  @Output()\n  public enterKeyPress = new EventEmitter();\n  @Output()\n  public focusEvent = new EventEmitter();\n\n  get placeholder() {\n    if (!this.label) {\n      return '';\n    }\n    return `${this.label}${this.isRequired ? '*' : ''}`;\n  }\n\n  private lastBlurValue = '';\n\n  ngOnInit() {}\n\n  public fieldErrorLabel(): string {\n    if (this.control && this.control.invalid && this.control.touched) {\n      if (this.control.hasError('required')) {\n        return 'Campo obrigatório';\n      }\n\n      if (this.control.hasError('minlength')) {\n        return `Tamanho mínimo: ${this.control.errors['minlength'].requiredLength}`;\n      }\n\n      if (this.control.hasError('maxlength')) {\n        return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;\n      }\n\n      return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';\n    }\n\n    return '';\n  }\n\n  public onBlur() {\n    this.control.markAsTouched();\n    if (this.lastBlurValue !== this.control.value) {\n      this.lastBlurValue = this.control.value;\n      setTimeout(() => {\n        this.blurEvent.emit(this.control.value);\n      });\n    }\n  }\n\n  public onEnterPress() {\n    this.onBlur();\n    this.enterKeyPress.emit();\n  }\n\n  public onFocus($event: Event) {\n    const target = $event.target as HTMLTextAreaElement;\n    this.focusEvent.emit(target?.value);\n  }\n}\n","<form class=\"input-container\">\n  <textarea\n    pTextarea\n    [rows]=\"rows\"\n    [cols]=\"cols\"\n    [formControl]=\"control\"\n    [attr.maxlength]=\"maxlength\"\n    [placeholder]=\"placeholder\"\n    [autoResize]=\"false\"\n    (onBlur)=\"onBlur()\"\n    (keydown.enter)=\"onEnterPress()\"\n    (click)=\"onFocus($event)\"\n  >\n  </textarea>\n  <span class=\"length-control\">{{ control?.value?.length || 0 }} / {{ maxlength }}</span>\n</form>\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { DialogModule } from 'primeng/dialog';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputOtpModule } from 'primeng/inputotp';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { MenuModule } from 'primeng/menu';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { SelectModule } from 'primeng/select';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { SliderModule } from 'primeng/slider';\nimport { TableModule } from 'primeng/table';\nimport { TabViewModule } from 'primeng/tabview';\nimport { TextareaModule } from 'primeng/textarea';\nimport { ToggleSwitchModule } from 'primeng/toggleswitch';\nimport { SharedModule } from '../../shared/shared.module';\nimport { BadgeModule } from '../badge';\nimport { PanelModule } from '../panel';\nimport { ScoreModule } from '../score';\nimport { ButtonComponent } from './button';\nimport { CalendarComponent } from './calendar-field';\nimport { CheckboxFieldComponent } from './checkbox-field';\nimport { CurrencyFieldComponent } from './currency-field';\nimport { DataTableComponent } from './data-table';\nimport { DropdownFieldComponent } from './dropdown-field';\nimport { FieldErrorMessageComponent } from './field-error-message';\nimport { FiltersComponent } from './filters';\nimport { InputFileComponent } from './input-file';\nimport { InputNumberFieldComponent } from './input-number-field';\nimport { InputOtpComponent } from './input-otp';\nimport { InputSwitchFieldComponent } from './input-switch-field';\nimport { MultiselectFieldComponent } from './multiselect-field';\nimport { PercentageFieldComponent } from './percentage-field';\nimport { RadioButtonFieldComponent } from './radio-button-field';\nimport { RangeValueComponent } from './range-value';\nimport { SearchFieldComponent } from './search-field';\nimport { SelectButtonFieldComponent } from './select-button-field';\nimport { TextFieldComponent } from './text-field';\nimport { TextareaFieldComponent } from './textarea-field';\n\n@NgModule({\n  imports: [\n    SharedModule,\n    FormsModule,\n    ReactiveFormsModule,\n    KeyFilterModule,\n    InputTextModule,\n    CheckboxModule,\n    InputMaskModule,\n    DatePickerModule,\n    MultiSelectModule,\n    SelectModule,\n    AutoCompleteModule,\n    SliderModule,\n    RadioButtonModule,\n    FileUploadModule,\n    DialogModule,\n    InputNumberModule,\n    PanelModule,\n    TabViewModule,\n    ButtonModule,\n    TextareaModule,\n    SelectButtonModule,\n    InputNumberModule,\n    BadgeModule,\n    ScoreModule,\n    TranslateModule,\n    ToggleSwitchModule,\n    MenuModule,\n    TableModule,\n    InputOtpModule,\n  ],\n  declarations: [\n    DataTableComponent,\n    TextFieldComponent,\n    CheckboxFieldComponent,\n    ButtonComponent,\n    CalendarComponent,\n    MultiselectFieldComponent,\n    DropdownFieldComponent,\n    RangeValueComponent,\n    SearchFieldComponent,\n    RadioButtonFieldComponent,\n    CurrencyFieldComponent,\n    PercentageFieldComponent,\n    FiltersComponent,\n    TextareaFieldComponent,\n    FieldErrorMessageComponent,\n    SelectButtonFieldComponent,\n    InputNumberFieldComponent,\n    InputSwitchFieldComponent,\n    InputOtpComponent,\n    InputFileComponent,\n  ],\n  exports: [\n    DataTableComponent,\n    TextFieldComponent,\n    CheckboxFieldComponent,\n    ButtonComponent,\n    CalendarComponent,\n    MultiselectFieldComponent,\n    DropdownFieldComponent,\n    RangeValueComponent,\n    SearchFieldComponent,\n    RadioButtonFieldComponent,\n    FileUploadModule,\n    DialogModule,\n    CurrencyFieldComponent,\n    PercentageFieldComponent,\n    FiltersComponent,\n    TextareaFieldComponent,\n    FieldErrorMessageComponent,\n    SelectButtonFieldComponent,\n    InputNumberFieldComponent,\n    InputSwitchFieldComponent,\n    InputOtpComponent,\n    InputFileComponent,\n  ],\n})\nexport class FieldsModule {}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SharedModule } from '../../shared/shared.module';\nimport { FieldsModule } from '../fields/fields.module';\nimport { CrudFooterComponent } from './crud-footer.component';\n\n@NgModule({\n  declarations: [CrudFooterComponent],\n  exports: [CrudFooterComponent, TranslateModule],\n  imports: [SharedModule, FieldsModule, TranslateModule],\n})\nexport class FooterModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Status } from '../../models';\n\n@Component({\n  standalone: false,\n  selector: 'vector-crud-header',\n  templateUrl: './crud-header.component.html',\n  styleUrls: ['./crud-header.component.scss'],\n})\nexport class CrudHeaderComponent implements OnInit {\n  @Input()\n  public statusCode?: number;\n  @Input()\n  public code?: number;\n\n  get statusLabel() {\n    switch (this.statusCode) {\n      case Status.PENDING:\n        return 'Pendente';\n      case Status.APPROVED:\n        return 'Ativo';\n      case Status.REJECTED:\n        return 'Inativo';\n    }\n    return '';\n  }\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"container\">\n  <div class=\"status-container\">\n    <span>Status</span>\n    <vector-badge [label]=\"statusLabel\" [type]=\"statusCode\"></vector-badge>\n  </div>\n  <div class=\"separator\"></div>\n  <span class=\"code-label\"\n    >Código de identificação<span class=\"code\">{{ code }}</span></span\n  >\n</div>\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from '../../shared/shared.module';\nimport { BadgeModule } from '../badge';\nimport { CrudHeaderComponent } from './crud-header.component';\n\n@NgModule({\n  declarations: [CrudHeaderComponent],\n  imports: [SharedModule, BadgeModule],\n  exports: [CrudHeaderComponent],\n})\nexport class CrudHeaderModule {}\n","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\nimport { CrudHistory } from '../../models';\n\n@Component({\n  standalone: false,\n  selector: 'vector-crud-history',\n  templateUrl: './crud-history.component.html',\n  styleUrls: ['./crud-history.component.scss'],\n})\nexport class CrudHistoryComponent {\n  @Input()\n  public crudHistory?: CrudHistory<any>;\n  @Output()\n  public onClick = new EventEmitter<any>();\n\n  public modifierNameLabel = '';\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['crudHistory']) {\n      this.modifierNameLabel = this.getModifierNameLabel(this.crudHistory) ?? '';\n    }\n  }\n  public getHistoryBadgeBackgroundColor(crudHistoryEventType?: string): string {\n    switch (crudHistoryEventType) {\n      case 'ActionCreate':\n        return '#CBFFAE';\n      case 'ActionUpdate':\n        return '#FFE6B0';\n      case 'ActionDelete':\n        return 'Removido';\n      case 'ActionUpdate-OnComposition':\n        return '#FFE6B0';\n      case 'ActionUpdate-OnUnit':\n        return '#FFE6B0';\n      case 'ActionCreate-OnComposition':\n        return '#CBFFAE';\n      case 'ActionCancel':\n        return '#FFE6B0';\n      default:\n        return '';\n    }\n  }\n\n  public getHistoryBadgeColor(crudHistoryEventType?: string): string {\n    switch (crudHistoryEventType) {\n      case 'ActionCreate':\n        return '#067306';\n      case 'ActionUpdate':\n        return '#946300';\n      case 'ActionDelete':\n        return '#6B2D2D';\n      case 'ActionUpdate-OnComposition':\n        return '#946300';\n      case 'ActionUpdate-OnUnit':\n        return '#946300';\n      case 'ActionCreate-OnComposition':\n        return '#067306';\n      case 'ActionCancel':\n        return '#946300';\n      default:\n        return '';\n    }\n  }\n\n  public getHistoryBadgeLabel(crudHistoryEventType?: string): string {\n    switch (crudHistoryEventType) {\n      case 'ActionCreate':\n        return 'Criado';\n      case 'ActionUpdate':\n        return 'Modificado';\n      case 'ActionDelete':\n        return 'Removido';\n      case 'ActionUpdate-OnComposition':\n        return 'Composição Modificada';\n      case 'ActionUpdate-OnUnit':\n        return 'Unidade Modificada';\n      case 'ActionCreate-OnComposition':\n        return 'Composição Criada';\n      case 'ActionCancel':\n        return 'Modificado';\n      default:\n        return '';\n    }\n  }\n\n  getModifierNameLabel(crudHistory?: CrudHistory<any>): string {\n    if (!crudHistory) {\n      return '';\n    }\n    if (crudHistory.modifiedFromWeb == null) {\n      return crudHistory.modifierName ?? '';\n    } else {\n      return (crudHistory.modifierName ?? '') + ' em ' + (crudHistory.modifiedFromWeb ? 'Web' : 'Integração');\n    }\n  }\n}\n","<p-accordionTab *ngIf=\"crudHistory\" class=\"history-item\">\n  <ng-template pTemplate=\"header\">\n    <div class=\"history-item-header-container\" (click)=\"onClick.emit()\">\n      <div class=\"history-item-header-left\">\n        <span id=\"color-first-span\" *ngIf=\"crudHistory.typeOfModification\">{{ crudHistory.typeOfModification }}</span>\n        <vector-badge\n          [customBackgroundColor]=\"getHistoryBadgeBackgroundColor(crudHistory.eventType)\"\n          [customColor]=\"getHistoryBadgeColor(crudHistory.eventType)\"\n          [label]=\"getHistoryBadgeLabel(crudHistory.eventType)\"\n        ></vector-badge>\n        <span>por {{ modifierNameLabel }}</span>\n      </div>\n      <span class=\"history-item-header-right\">\n        {{ crudHistory.dateTime | date : 'dd/MM/yyyy HH:mm' }}\n      </span>\n    </div>\n  </ng-template>\n  <ng-template pTemplate=\"content\">\n    <div *ngFor=\"let auditDelta of crudHistory.dataAuditDelta\">\n      <div class=\"grid\">\n        <div class=\"col-12 md:col-6 field\">\n          <span>{{ auditDelta.fieldName }}</span>\n        </div>\n        <div class=\"col-12 md:col-6 field\">\n          <span class=\"new-value\">{{ auditDelta.newValue }}</span>\n          <span class=\"old-value pl-1\">{{ auditDelta.oldValue }}</span>\n          <span *ngIf=\"auditDelta.type || auditDelta.type == 0\" class=\"text-600 pl-1\">\n            Entity: <span class=\"text-green-300\">{{ auditDelta.type }}</span>\n            <i\n              class=\"fas fa-info-circle text-400 text-base ch pl-1\"\n              [pTooltip]=\"auditDelta.typeDescription\"\n              tooltipPosition=\"top\"\n            ></i>\n          </span>\n        </div>\n      </div>\n    </div>\n  </ng-template>\n</p-accordionTab>\n","import { NgModule } from '@angular/core';\nimport { AccordionModule } from 'primeng/accordion';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { SharedModule } from '../../shared/shared.module';\nimport { BadgeModule } from '../badge';\nimport { CrudHistoryComponent } from './crud-history.component';\n\n@NgModule({\n  declarations: [CrudHistoryComponent],\n  imports: [SharedModule, BadgeModule, AccordionModule, TooltipModule],\n  exports: [CrudHistoryComponent],\n})\nexport class CrudHistoryModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\ntype DrawerPosition = 'left' | 'right' | 'top' | 'bottom';\n\n@Component({\n  standalone: false,\n  selector: 'vector-drawer',\n  templateUrl: './drawer.component.html',\n  styleUrls: ['./drawer.component.scss'],\n})\nexport class DrawerComponent {\n  @Input()\n  public visible = false;\n  @Output()\n  public visibleChange = new EventEmitter<boolean>();\n\n  @Input()\n  public position: DrawerPosition = 'right';\n  @Input()\n  public style: { [key: string]: string } = {};\n  @Input()\n  public styleClass = '';\n  @Input()\n  public modal = true;\n  @Input()\n  public dismissible = true;\n  @Input()\n  public showCloseIcon = true;\n\n  @Output()\n  public onHide = new EventEmitter<unknown>();\n  @Output()\n  public onShow = new EventEmitter<unknown>();\n\n  public onVisibleChange(value: boolean): void {\n    this.visible = value;\n    this.visibleChange.emit(value);\n  }\n}\n","<p-drawer\n  [visible]=\"visible\"\n  (visibleChange)=\"onVisibleChange($event)\"\n  [position]=\"position\"\n  [style]=\"style\"\n  [styleClass]=\"styleClass\"\n  [modal]=\"modal\"\n  [dismissible]=\"dismissible\"\n  [showCloseIcon]=\"showCloseIcon\"\n  (onHide)=\"onHide.emit($event)\"\n  (onShow)=\"onShow.emit($event)\"\n>\n  <ng-template pTemplate=\"header\">\n    <ng-content select=\"[vector-drawer-header]\"></ng-content>\n  </ng-template>\n  <ng-content></ng-content>\n</p-drawer>\n","import { NgModule } from '@angular/core';\nimport { DrawerModule as PrimeNgDrawer } from 'primeng/drawer';\nimport { SharedModule } from '../../shared/shared.module';\nimport { DrawerComponent } from './drawer.component';\n\n@NgModule({\n  declarations: [DrawerComponent],\n  exports: [DrawerComponent],\n  imports: [SharedModule, PrimeNgDrawer],\n})\nexport class DrawerModule {}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ErrorMessageService } from '../../services';\n\n@Component({\n  standalone: false,\n  selector: 'vector-generic-error-modal',\n  templateUrl: './generic-error-modal.component.html',\n  styleUrls: ['./generic-error-modal.component.scss'],\n})\nexport class GenericErrorModalComponent implements OnInit, OnDestroy {\n  @Input()\n  public skipMessages: string[] = [];\n  public message?: string = '';\n\n  private subscription = new Subscription();\n\n  constructor(private errorService: ErrorMessageService) {\n    this.subscription.add(\n      this.errorService.genericModalErrorMessage$.pipe().subscribe((message) => {\n        this.message = message;\n      })\n    );\n  }\n\n  ngOnInit(): void {}\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n  public close() {\n    this.message = '';\n  }\n}\n","<p-dialog\n  [visible]=\"!!message\"\n  [modal]=\"true\"\n  [breakpoints]=\"{ '440px': '95vw' }\"\n  [style]=\"{ width: '400px' }\"\n  [draggable]=\"false\"\n  [resizable]=\"false\"\n  [blockScroll]=\"true\"\n  [closeOnEscape]=\"false\"\n  [closable]=\"true\"\n>\n  <div class=\"content-container\">\n    <img class=\"emote\" src=\".././../../assets/images/emote_bad.svg\" />\n    <p class=\"title\">Algo deu errado!</p>\n    <p class=\"message\">{{ message }}</p>\n\n    <div class=\"actions\">\n      <vector-button (click)=\"close()\" label=\"Voltar\"></vector-button>\n    </div>\n  </div>\n</p-dialog>\n","import { NgModule } from '@angular/core';\nimport { DialogModule } from 'primeng/dialog';\nimport { SharedModule } from '../../shared/shared.module';\nimport { FieldsModule } from '../fields/fields.module';\nimport { GenericErrorModalComponent } from './generic-error-modal.component';\n@NgModule({\n  declarations: [GenericErrorModalComponent],\n  imports: [SharedModule, DialogModule, FieldsModule],\n  exports: [GenericErrorModalComponent],\n})\nexport class GenericErrorModalModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GenericModalMessage } from '../../models/generic-modal.model';\n\n@Component({\n  standalone: false,\n  selector: 'vector-generic-modal',\n  templateUrl: './generic-modal.component.html',\n  styleUrls: ['./generic-modal.component.scss'],\n})\nexport class GenericModalComponent implements OnInit {\n  @Input()\n  public modalMessage: GenericModalMessage = {\n    fileIcon: 'alert_icon',\n    title: '',\n    message: [],\n    confirmButton: { label: 'Confirmar', clickFunction: () => {} },\n    cancelButton: { label: 'Voltar', clickFunction: () => {} },\n  };\n  @Input()\n  public isClosable: boolean = true;\n  @Input()\n  public hiddenActions: boolean = false;\n  @Input()\n  public linkLabel: string = '';\n  @Input()\n  public linkUrl: string = '';\n  @Input()\n  public display!: boolean;\n  @Input()\n  public maxWidth?: string = '';\n  @Input()\n  public lineBreak?: string = '';\n  @Output()\n  public displayChange = new EventEmitter<boolean>();\n  @Output()\n  public onCloseModal = new EventEmitter();\n\n  constructor(public router: Router) {}\n\n  ngOnInit(): void {}\n\n  public routerLink(url: string) {\n    this.router.navigate([url]);\n  }\n\n  public confirm() {\n    this.display = false;\n    this.displayChange.emit(this.display);\n  }\n\n  public hideModal() {\n    this.display = false;\n    this.displayChange.emit(this.display);\n    this.onCloseModal.emit();\n  }\n}\n","<p-dialog\n  [(visible)]=\"display\"\n  [modal]=\"true\"\n  [breakpoints]=\"{ '440px': '95vw' }\"\n  [style]=\"{ width: '400px' }\"\n  [draggable]=\"false\"\n  [resizable]=\"false\"\n  [blockScroll]=\"true\"\n  [closeOnEscape]=\"false\"\n  [closable]=\"isClosable\"\n  (onHide)=\"hideModal()\"\n  [ngStyle]=\"{ 'max-width': maxWidth, 'line-break': lineBreak }\"\n>\n  <div class=\"grid modal-generic\">\n    <div class=\"col-12\">\n      <img\n        *ngIf=\"modalMessage.fileIcon\"\n        class=\"flex mx-auto mb-3\"\n        [ngClass]=\"!isClosable ? 'mt-4' : ''\"\n        src=\"assets/images/{{ modalMessage.fileIcon }}.svg\"\n      />\n      <h1 *ngIf=\"modalMessage.title\">{{ modalMessage.title }}</h1>\n      <p *ngFor=\"let text of modalMessage.message\" [innerHTML]=\"text\"></p>\n    </div>\n  </div>\n\n  <div *ngIf=\"linkLabel\" class=\"grid mt-2 justify-content-center\">\n    <div class=\"col-12 md:col-6\">\n      <vector-button [label]=\"linkLabel\" (click)=\"routerLink(linkUrl)\"></vector-button>\n    </div>\n  </div>\n\n  <div *ngIf=\"!hiddenActions\" class=\"grid mt-2 justify-content-center\">\n    <div class=\"col-12 md:col-6\" *ngIf=\"modalMessage.cancelButton\">\n      <vector-button\n        (onClick)=\"modalMessage.cancelButton && modalMessage.cancelButton.clickFunction()\"\n        [label]=\"modalMessage.cancelButton.label\"\n        [type]=\"modalMessage.cancelButton.type ? modalMessage.cancelButton.type : 'default'\"\n      ></vector-button>\n    </div>\n\n    <div class=\"col-12 md:col-6\" *ngIf=\"modalMessage.confirmButton\">\n      <vector-button\n        (onClick)=\"modalMessage.confirmButton && modalMessage.confirmButton.clickFunction()\"\n        [label]=\"modalMessage.confirmButton.label\"\n        [type]=\"modalMessage.confirmButton.type ? modalMessage.confirmButton.type : 'default-filled'\"\n      ></vector-button>\n    </div>\n  </div>\n</p-dialog>\n","import { NgModule } from '@angular/core';\nimport { DialogModule } from 'primeng/dialog';\nimport { SharedModule } from '../../shared/shared.module';\nimport { FieldsModule } from '../fields/fields.module';\nimport { GenericModalComponent } from './generic-modal.component';\n\n@NgModule({\n  declarations: [GenericModalComponent],\n  exports: [GenericModalComponent],\n  imports: [DialogModule, FieldsModule, SharedModule],\n})\nexport class GenericModalModule {}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { APP_NAME, ENVIRONMENT } from '../../injections';\nimport { AppName, MenuItem, Role } from '../../models';\nimport { VectorApp } from '../../models/vector-app.model';\nimport { MenuService, ProfileService, StorageService } from '../../services';\n\nexport interface MenuSearchResult {\n  item: MenuItem;\n  path: string;\n  topLevelId: string | undefined;\n}\n\nconst SIDEBAR_WIDTH_VAR = '--vector-sidebar-width';\nconst SIDEBAR_EXPANDED_WIDTH = '240px';\nconst SIDEBAR_COLLAPSED_WIDTH = '72px';\n\n@Component({\n  standalone: false,\n  selector: 'vector-menu',\n  templateUrl: './menu.component.html',\n  styleUrls: ['./menu.component.scss'],\n  animations: [\n    trigger('sideInOut', [state('in', style({ width: '60px' })), state('out', style({ width: '250px' }))]),\n    trigger('fadeInOut', [\n      state(\n        '0',\n        style({\n          opacity: 0,\n          width: '0%',\n          'font-size': '0em',\n        }),\n      ),\n      state(\n        '1',\n        style({\n          opacity: 1,\n          'font-size': '1em',\n          width: '100%',\n        }),\n      ),\n      transition('0 <=> 1', animate('350ms ease-in-out')),\n    ]),\n    trigger('fadeSearchInOut', [\n      state(\n        '0',\n        style({\n          opacity: 0,\n          width: '0%',\n          'font-size': '0em',\n        }),\n      ),\n      state(\n        '1',\n        style({\n          opacity: 1,\n          'font-size': '1em',\n          width: '100%',\n        }),\n      ),\n      transition('0 <=> 1', animate('350ms ease-in-out')),\n    ]),\n    trigger('submenuFadeInOut', [\n      state(\n        '0',\n        style({\n          opacity: 0,\n          height: '0%',\n        }),\n      ),\n      state(\n        '1',\n        style({\n          opacity: 1,\n          height: 'fit-content',\n        }),\n      ),\n      transition('0 <=> 1', animate('350ms ease-in-out')),\n    ]),\n  ],\n})\nexport class MenuComponent implements OnInit, OnDestroy {\n  public options: MenuItem[] = [];\n\n  public activeOption: MenuItem | undefined;\n  public activeSubmenuOption: MenuItem | undefined;\n  public widthStyle = { width: '250px' };\n  public lastAnimation = 'out';\n  public appNameLabel = this.environment.appName;\n  public adminOption: MenuItem | undefined;\n  public appsEnum = AppName;\n  public production = this.environment.production;\n  @Output() onFinishMenuOptionsConfig = new EventEmitter<any>();\n\n  set opened(opened: boolean) {\n    this._opened = opened;\n    this.menuService.menuOpened$.next(this.opened);\n    this.syncSidebarWidthVar();\n  }\n\n  public get opened() {\n    return this._opened;\n  }\n\n  public get hasFintechAdminPermission() {\n    return this.profileService.hasFintechAdminPermission;\n  }\n\n  public get hasMarketplaceAdminPermission() {\n    return this.profileService.hasMarketplaceAdminPermission;\n  }\n\n  public get hasAnyMarketplacePermission() {\n    return this.profileService.hasAnyMarketplacePermission;\n  }\n\n  public get hasAnyFintechPermission() {\n    return this.profileService.hasAnyFintechPermission;\n  }\n\n  @Input()\n  public accountService: any;\n  @Input()\n  public apps: VectorApp[] = [];\n\n  private _opened = true;\n  private subscription = new Subscription();\n  private currentWindowWidth: number = 0;\n\n  constructor(\n    private menuService: MenuService,\n    private router: Router,\n    private profileService: ProfileService,\n    private storageService: StorageService,\n    private hostElement: ElementRef<HTMLElement>,\n    @Inject(ENVIRONMENT) private environment: any,\n    @Inject(APP_NAME) private currentApp: string,\n  ) {}\n\n  ngOnInit(): void {\n    this.syncSidebarWidthVar();\n    this.subscription.add(\n      this.menuService.toggleMenu$.subscribe(() => {\n        this.toggleMenu();\n      }),\n    );\n\n    this.subscription.add(\n      this.profileService.moduleProfile$.subscribe((profile) => {\n        if (profile) {\n          const role = this.storageService.getRole();\n          this.options =\n            role === Role.ADMIN\n              ? this.menuService.getSideAdminMenuOptions()\n              : this.menuService.getSideMainMenuOptions();\n\n          if (this.hasFintechAdminPermission || this.hasMarketplaceAdminPermission) {\n            this.adminOption = {\n              id: `${99999}`,\n              label: 'Admin Fintech',\n              iconFileName: 'vector_admin_icon',\n              command: () => {\n                this.navigateToPortal({ appName: AppName.FINTECH, isAdmin: true });\n              },\n            };\n\n            if (this.hasFintechAdminPermission) {\n              this.adminOption.children?.push({\n                id: `${999991}`,\n                label: 'Admin Fintech',\n                command: () => {\n                  this.navigateToPortal({ appName: AppName.FINTECH, isAdmin: true });\n                },\n                hidden: !this.hasFintechAdminPermission,\n              });\n            }\n\n            if (this.hasMarketplaceAdminPermission) {\n              this.adminOption.children?.push({\n                id: `${999992}`,\n                label: 'Admin Marketplace',\n                command: () => {\n                  this.navigateToPortal({ appName: AppName.MARKETPLACE, isAdmin: true });\n                },\n                hidden: !this.hasMarketplaceAdminPermission,\n              });\n            }\n          }\n          this.onFinishMenuOptionsConfig.emit(null);\n        }\n      }),\n    );\n\n    this.subscription.add(\n      this.menuService.frameUrl$.subscribe((frameUrl) => {\n        this.activeFrameUrl = frameUrl;\n        if (frameUrl) {\n          this.storageService.setSession('frameUrl', frameUrl);\n        } else {\n          this.storageService.removeSession('frameUrl');\n        }\n      }),\n    );\n\n    const frameUrlFromStorage = this.storageService.getSession('frameUrl');\n    if (frameUrlFromStorage) {\n      this.menuService.frameUrl$.next(frameUrlFromStorage);\n    }\n\n    this.currentWindowWidth = window.innerWidth;\n  }\n\n  // @HostListener('window:resize', ['$event'])\n  // onResize() {\n  //   if (this.opened && this.currentWindowWidth !== window.innerWidth) {\n  //     this.clearAndCloseMenu();\n  //   }\n  //   this.currentWindowWidth = window.innerWidth;\n  // }\n\n  // @HostListener('document:keydown.escape', ['$event'])\n  // handleKeyboardEvent() {\n  //   this.toggleMenu();\n  // }\n\n  ngOnDestroy() {\n    this.subscription.unsubscribe();\n    document.documentElement.style.removeProperty(SIDEBAR_WIDTH_VAR);\n  }\n\n  private syncSidebarWidthVar(): void {\n    document.documentElement.style.setProperty(\n      SIDEBAR_WIDTH_VAR,\n      this.opened ? SIDEBAR_EXPANDED_WIDTH : SIDEBAR_COLLAPSED_WIDTH,\n    );\n  }\n\n  public toggleMenu() {\n    this.opened = !this.opened;\n    if (!this.opened) {\n      this.activeOption = undefined;\n      this.activeSubmenuOption = undefined;\n      this.clearSearch();\n    }\n\n    this.resizeMenu();\n  }\n\n  private readonly expandedKeys = new Set<string>();\n\n  public visibleChildren(item: MenuItem | undefined): MenuItem[] {\n    return (item?.children ?? []).filter((c) => !c.hidden);\n  }\n\n  public hasChildren(item: MenuItem): boolean {\n    return item.showChildren !== false && this.visibleChildren(item).length > 0;\n  }\n\n  public hasCaret(item: MenuItem): boolean {\n    return this.hasChildren(item) && !item.alwaysOpen;\n  }\n\n  public isExpanded(item: MenuItem): boolean {\n    return !!item.alwaysOpen || this.isSubmenuExpanded(item.id || '');\n  }\n\n  private activeFrameUrl: string | undefined;\n\n  public isCurrentDestination(item: MenuItem): boolean {\n    if (item.frameUrl) {\n      return item.frameUrl === this.activeFrameUrl;\n    }\n\n    if (!item.route || this.activeFrameUrl) {\n      return false;\n    }\n\n    const current = this.router.url.split('?')[0];\n    const target = `/${item.route.split('?')[0]}`;\n    return current === target || current.startsWith(`${target}/`);\n  }\n\n  private selectedTopLevelId: string | undefined;\n\n  public onTopLevelClick(item: MenuItem): void {\n    if (!item.alwaysOpen) {\n      this.selectedTopLevelId = item.id;\n    }\n    this.onItemClick(item);\n  }\n\n  public isHighlighted(item: MenuItem): boolean {\n    if (this.selectedTopLevelId !== undefined) {\n      return this.selectedTopLevelId === item.id;\n    }\n    return this.containsCurrentDestination(item);\n  }\n\n  private containsCurrentDestination(item: MenuItem): boolean {\n    return (\n      this.isCurrentDestination(item) || (item.children ?? []).some((child) => this.containsCurrentDestination(child))\n    );\n  }\n\n  private static readonly SEARCH_MIN_LENGTH = 3;\n\n  @ViewChild('searchInput') private searchInput?: ElementRef<HTMLInputElement>;\n\n  public searchResults: MenuSearchResult[] = [];\n  public highlightedIndex = -1;\n\n  public onSearchInput(term: string): void {\n    const query = this.normalize(term);\n    this.highlightedIndex = -1;\n\n    if (query.length < MenuComponent.SEARCH_MIN_LENGTH) {\n      this.searchResults = [];\n      return;\n    }\n\n    this.searchResults = this.flattenDestinations().filter((result) =>\n      this.normalize(result.item.label || '').includes(query),\n    );\n  }\n\n  public onSearchKeydown(event: KeyboardEvent): void {\n    if (event.key === 'Escape') {\n      this.clearSearch();\n      return;\n    }\n\n    if (!this.searchResults.length) {\n      return;\n    }\n\n    switch (event.key) {\n      case 'ArrowDown':\n        event.preventDefault();\n        this.highlightedIndex = (this.highlightedIndex + 1) % this.searchResults.length;\n        this.scrollHighlightedIntoView();\n        break;\n      case 'ArrowUp':\n        event.preventDefault();\n        this.highlightedIndex = (this.highlightedIndex <= 0 ? this.searchResults.length : this.highlightedIndex) - 1;\n        this.scrollHighlightedIntoView();\n        break;\n      case 'Enter':\n        event.preventDefault();\n        this.selectResult(this.searchResults[Math.max(this.highlightedIndex, 0)]);\n        break;\n    }\n  }\n\n  public selectResult(result: MenuSearchResult): void {\n    this.selectedTopLevelId = result.topLevelId;\n    this.navigateTo(result.item);\n    this.clearSearch();\n  }\n\n  private scrollHighlightedIntoView(): void {\n    const list = this.hostElement.nativeElement.querySelector('.search-results');\n    const target = list?.children.item(this.highlightedIndex) as HTMLElement | null;\n    target?.scrollIntoView({ block: 'nearest' });\n  }\n\n  public clearSearch(): void {\n    this.searchResults = [];\n    this.highlightedIndex = -1;\n    if (this.searchInput) {\n      this.searchInput.nativeElement.value = '';\n    }\n  }\n\n  @HostListener('document:keydown', ['$event'])\n  public onDocumentKeydown(event: KeyboardEvent): void {\n    if (!(event.ctrlKey || event.metaKey) || event.key.toLowerCase() !== 'k') {\n      return;\n    }\n\n    event.preventDefault();\n    this.focusSearch();\n  }\n\n  public focusSearch(): void {\n    if (!this.opened) {\n      this.toggleMenu();\n    }\n\n    setTimeout(() => this.searchInput?.nativeElement.focus());\n  }\n\n  @HostListener('document:mousedown', ['$event'])\n  public onDocumentMousedown(event: MouseEvent): void {\n    if (this.searchResults.length && !this.hostElement.nativeElement.contains(event.target as Node)) {\n      this.clearSearch();\n    }\n  }\n\n  private normalize(value: string): string {\n    return value.normalize('NFD').replace(/[̀-ͯ]/g, '').toLowerCase().trim();\n  }\n\n  private flattenDestinations(): MenuSearchResult[] {\n    const results: MenuSearchResult[] = [];\n\n    const walk = (items: MenuItem[], trail: string[], topLevelId: string | undefined) => {\n      for (const item of items) {\n        if (item.hidden) {\n          continue;\n        }\n\n        const path = [...trail, item.label || ''];\n\n        if (item.route || item.frameUrl || item.externalUrl || item.command) {\n          results.push({ item, path: path.join(' › '), topLevelId });\n        }\n\n        walk(item.children ?? [], path, topLevelId);\n      }\n    };\n\n    for (const option of this.options) {\n      walk([option], [], option.id);\n    }\n\n    return results;\n  }\n\n  private navigateTo(item: MenuItem): void {\n    if (item.frameUrl) {\n      this.menuService.frameUrl$.next(item.frameUrl);\n      return;\n    }\n\n    this.menuService.frameUrl$.next(undefined);\n\n    if (item.route) {\n      this.router.navigate([item.route]);\n    } else if (item.externalUrl) {\n      window.open(item.externalUrl, '_blank');\n    } else if (item.command) {\n      item.command();\n    }\n  }\n\n  public onItemClick(item: MenuItem): void {\n    if (item.alwaysOpen) {\n      return;\n    }\n\n    if (this.hasChildren(item)) {\n      if (this.opened) {\n        this.toggleSubmenu(item.id || '');\n      } else {\n        this.expandedKeys.add(item.id || '');\n      }\n    }\n\n    if (item.route || item.frameUrl || item.externalUrl || item.command) {\n      this.onMenuClick(item);\n      return;\n    }\n\n    if (!this.opened) {\n      this.toggleMenu();\n    }\n  }\n\n  public toggleSubmenu(key: string): void {\n    if (this.expandedKeys.has(key)) {\n      this.expandedKeys.delete(key);\n    } else {\n      this.expandedKeys.add(key);\n    }\n  }\n\n  public isSubmenuExpanded(key: string): boolean {\n    return this.expandedKeys.has(key);\n  }\n\n  public onMenuClick(option: MenuItem) {\n    if (!option.alwaysOpen) {\n      const expandable = !!option.children?.length && option.showChildren !== false;\n      if (this.activeOption?.id === option.id) {\n        this.activeOption = undefined;\n      } else {\n        this.activeOption = expandable ? option : undefined;\n      }\n      if (option.frameUrl) {\n        this.menuService.frameUrl$.next(option.frameUrl);\n      } else if (option.route) {\n        this.router.navigate([option.route]);\n        this.menuService.frameUrl$.next(undefined);\n      } else if (option.externalUrl) {\n        window.open(option.externalUrl, '_blank');\n        this.menuService.frameUrl$.next(undefined);\n      }\n      if (expandable && !this.opened) {\n        this.toggleMenu();\n      }\n      this.activeSubmenuOption = undefined;\n    }\n  }\n\n  public onSubmenuClick(submenuItem: MenuItem) {\n    if (!submenuItem.alwaysOpen) {\n      const isExpandable = !!submenuItem.children?.length && submenuItem.showChildren !== false;\n      if (this.activeSubmenuOption?.id === submenuItem?.id) {\n        this.activeSubmenuOption = undefined;\n      } else if (isExpandable) {\n        this.activeSubmenuOption = submenuItem;\n      } else if (!this.isDescendantOf(submenuItem, this.activeSubmenuOption)) {\n        this.activeSubmenuOption = undefined;\n      }\n      if (submenuItem.frameUrl) {\n        this.menuService.frameUrl$.next(submenuItem.frameUrl);\n      } else if (submenuItem.route) {\n        this.router.navigate([submenuItem.route]);\n        this.menuService.frameUrl$.next(undefined);\n      } else if (submenuItem.externalUrl) {\n        window.open(submenuItem.externalUrl, '_blank');\n        this.menuService.frameUrl$.next(undefined);\n      } else if (submenuItem.command) {\n        submenuItem.command();\n        this.menuService.frameUrl$.next(undefined);\n      }\n    }\n  }\n\n  private isDescendantOf(item: MenuItem, parent: MenuItem | undefined): boolean {\n    return !!parent?.children?.some((child) => child.id === item.id || this.isDescendantOf(item, child));\n  }\n\n  public openTermsOfUse() {\n    this.accountService.termsOfUse$.next();\n  }\n\n  public isPortalSelected(portal: AppName) {\n    return this.currentApp === portal;\n  }\n\n  public navigateToPortal(params: Partial<VectorApp>) {\n    this.activeOption = undefined;\n    this.activeSubmenuOption = undefined;\n    this.menuService.navigateToPortal(params);\n  }\n\n  public getMenuNotificationsCount(menu: MenuItem) {\n    return this.menuService.menuNotifications[menu.id || ''];\n  }\n\n  private clearAndCloseMenu(): void {\n    this.opened = false;\n    this.activeOption = undefined;\n    this.resizeMenu();\n  }\n\n  private resizeMenu() {\n    this.lastAnimation = this.opened ? 'out' : 'in';\n    this.widthStyle = { width: this.opened ? '250px' : '60px' };\n    this.activeSubmenuOption = undefined;\n  }\n}\n","<div class=\"vector-main-menu\" [class.vector-main-menu--collapsed]=\"!opened\">\n  <div class=\"menu-box-logo\" [class.menu-box-logo--small]=\"!opened\"></div>\n\n  <div class=\"menu-box-scroll\">\n    <ul class=\"menu-box-list\">\n      <span class=\"title\" [class.d-none]=\"!opened\">Seleção de portal</span>\n\n      @if (apps.length) {\n        @for (app of apps; track app.appName) {\n          <li\n            class=\"menu-box-item\"\n            [class.menu-box-item--collapsed]=\"!opened\"\n            [class.menu-box-item--active-portal]=\"isPortalSelected(app.appName)\"\n          >\n            <div class=\"item-row\" (click)=\"navigateToPortal(app)\" [pTooltip]=\"app.description\" tooltipPosition=\"right\">\n              <i class=\"ph-bold icon-item\" [ngClass]=\"app.className || 'ph-squares-four'\"></i>\n              <span>{{ app.description }}</span>\n            </div>\n          </li>\n        }\n      } @else {\n        <li\n          class=\"menu-box-item\"\n          [class.menu-box-item--collapsed]=\"!opened\"\n          [class.menu-box-item--active-portal]=\"isPortalSelected(appsEnum.LOGTECH)\"\n        >\n          <div\n            class=\"item-row\"\n            (click)=\"navigateToPortal({ appName: appsEnum.LOGTECH, isAdmin: false })\"\n            pTooltip=\"Cargas\"\n            tooltipPosition=\"right\"\n          >\n            <i class=\"ph-bold ph-truck-trailer icon-item\"></i>\n            <span>Cargas</span>\n          </div>\n        </li>\n\n        @if (hasAnyFintechPermission) {\n          <li\n            class=\"menu-box-item\"\n            [class.menu-box-item--collapsed]=\"!opened\"\n            [class.menu-box-item--active-portal]=\"isPortalSelected(appsEnum.FINTECH)\"\n          >\n            <div\n              class=\"item-row\"\n              (click)=\"navigateToPortal({ appName: appsEnum.FINTECH, isAdmin: false })\"\n              pTooltip=\"Conta digital\"\n              tooltipPosition=\"right\"\n            >\n              <i class=\"ph-bold ph-currency-circle-dollar icon-item\"></i>\n              <span>Conta digital</span>\n            </div>\n          </li>\n        }\n\n        @if (!production) {\n          <li\n            class=\"menu-box-item\"\n            [class.menu-box-item--collapsed]=\"!opened\"\n            [class.menu-box-item--active-portal]=\"isPortalSelected(appsEnum.MARKETPLACE)\"\n          >\n            <div\n              class=\"item-row\"\n              (click)=\"navigateToPortal({ appName: appsEnum.MARKETPLACE, isAdmin: false })\"\n              pTooltip=\"Combustível\"\n              tooltipPosition=\"right\"\n            >\n              <i class=\"ph-bold ph-gas-pump icon-item\"></i>\n              <span>Combustível</span>\n            </div>\n          </li>\n        }\n\n        @if (adminOption && (hasFintechAdminPermission || hasMarketplaceAdminPermission)) {\n          <li class=\"menu-box-item\" [class.menu-box-item--collapsed]=\"!opened\">\n            <div\n              class=\"item-row\"\n              (click)=\"navigateToPortal({ appName: appsEnum.FINTECH, isAdmin: true })\"\n              pTooltip=\"Admin Fintech\"\n              tooltipPosition=\"right\"\n            >\n              <i class=\"ph-bold ph-gear icon-item\"></i>\n              <span>Admin Fintech</span>\n            </div>\n          </li>\n        }\n      }\n    </ul>\n\n    <ul class=\"menu-box-list\">\n      <span class=\"title\" [class.d-none]=\"!opened\">Menu</span>\n      @for (item of options; track item.id) {\n        <li\n          class=\"menu-box-item\"\n          [class.menu-box-item--collapsed]=\"!opened\"\n          [class.menu-box-item--active]=\"isHighlighted(item)\"\n          [class.menu-box-item--expanded]=\"isExpanded(item)\"\n        >\n          <div class=\"item-row\" (click)=\"onTopLevelClick(item)\" [pTooltip]=\"item.label\" tooltipPosition=\"right\">\n            @if (item.iconFileName) {\n              <img\n                [src]=\"'../../../../assets/icons/' + item.iconFileName + '.svg'\"\n                class=\"icon-item\"\n                [alt]=\"item.label\"\n              />\n            } @else {\n              <i class=\"ph-bold icon-item\" [ngClass]=\"item.icon || 'ph-dot-outline'\"></i>\n            }\n            <span>{{ item.label }}</span>\n            @if (getMenuNotificationsCount(item)) {\n              <span class=\"menu-notifications-count\">{{ getMenuNotificationsCount(item) }}</span>\n            }\n            @if (hasCaret(item)) {\n              <i\n                class=\"ph-bold icon-caret\"\n                [class.ph-caret-down]=\"!isExpanded(item)\"\n                [class.ph-caret-up]=\"isExpanded(item)\"\n              ></i>\n            }\n          </div>\n\n          @if (hasChildren(item)) {\n            <div class=\"submenu-wrap\">\n              <ul class=\"submenu-box-list\">\n                <ng-container\n                  *ngTemplateOutlet=\"submenuLevel; context: { $implicit: visibleChildren(item), depth: 1 }\"\n                ></ng-container>\n              </ul>\n            </div>\n          }\n        </li>\n      }\n    </ul>\n  </div>\n\n  <div class=\"vector-menu-search\" [class.vector-menu-search--collapsed]=\"!opened\">\n    @if (searchResults.length) {\n      <ul class=\"search-results\">\n        @for (result of searchResults; track result.item.id; let i = $index) {\n          <li\n            class=\"search-result\"\n            [class.search-result--highlighted]=\"i === highlightedIndex\"\n            [pTooltip]=\"result.path\"\n            tooltipPosition=\"right\"\n            (mouseenter)=\"highlightedIndex = i\"\n            (mousedown)=\"selectResult(result)\"\n          >\n            <span class=\"search-result__label\">{{ result.item.label }}</span>\n            <span class=\"search-result__path\">{{ result.path }}</span>\n          </li>\n        }\n      </ul>\n    }\n\n    <div class=\"search-field\" (click)=\"focusSearch()\">\n      <i class=\"ph-bold ph-magnifying-glass\"></i>\n      <input\n        #searchInput\n        type=\"text\"\n        class=\"search-input\"\n        placeholder=\"Buscar no menu\"\n        autocomplete=\"off\"\n        [attr.aria-label]=\"'Buscar no menu'\"\n        (input)=\"onSearchInput(searchInput.value)\"\n        (keydown)=\"onSearchKeydown($event)\"\n      />\n      <span class=\"search-shortcut\">Ctrl K</span>\n    </div>\n  </div>\n</div>\n\n<ng-template #submenuLevel let-items let-depth=\"depth\">\n  @for (sub of items; track sub.id) {\n    <li\n      [class]=\"hasChildren(sub) ? 'submenu-box-item-list' : 'submenu-box-item'\"\n      [class.submenu-box-item-list--active]=\"isExpanded(sub)\"\n    >\n      <div\n        class=\"item-row\"\n        [style.--menu-depth]=\"depth\"\n        (click)=\"onItemClick(sub)\"\n        [pTooltip]=\"sub.label\"\n        tooltipPosition=\"right\"\n      >\n        <span>{{ sub.label }}</span>\n        @if (getMenuNotificationsCount(sub)) {\n          <span class=\"menu-notifications-count\">{{ getMenuNotificationsCount(sub) }}</span>\n        }\n        @if (hasCaret(sub)) {\n          <i\n            class=\"ph-bold icon-caret\"\n            [class.ph-caret-down]=\"!isExpanded(sub)\"\n            [class.ph-caret-up]=\"isExpanded(sub)\"\n          ></i>\n        }\n      </div>\n\n      @if (hasChildren(sub)) {\n        <div class=\"submenu-wrap\">\n          <ul class=\"submenu-last-list\">\n            <ng-container\n              *ngTemplateOutlet=\"submenuLevel; context: { $implicit: visibleChildren(sub), depth: depth + 1 }\"\n            ></ng-container>\n          </ul>\n        </div>\n      }\n    </li>\n  }\n</ng-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MenuItem } from '../../../models';\n\n@Component({\n  standalone: false,\n  selector: 'vector-sub-menus-list',\n  templateUrl: './sub-menus-list.component.html',\n  styleUrls: ['./sub-menus-list.component.scss'],\n})\nexport class SubMenusListComponent {\n  @Input()\n  public showList = false;\n  @Input()\n  public options: MenuItem[] | undefined;\n  @Input()\n  public childLevel = 1;\n  @Input()\n  public submenuSelected: MenuItem | undefined;\n  @Output()\n  public submenuSelectedChange = new EventEmitter<MenuItem>();\n\n  public submenuClick(option: MenuItem) {\n    if (!option.alwaysOpen) {\n      if (this.submenuSelected?.id === option.id) {\n        this.submenuSelected = undefined;\n      } else {\n        this.submenuSelected = option.children?.length && option.showChildren !== false ? option : undefined;\n      }\n      this.submenuSelectedChange.emit(option);\n    }\n  }\n\n  public onChildSelectedChange(option: MenuItem) {\n    // keep the submenu expanded.\n    this.submenuSelectedChange.emit(option);\n  }\n\n  public get paddingLeft() {\n    return this.childLevel * 10 + 'px';\n  }\n}\n","<div class=\"sub-menu-container\">\n  <ul *ngIf=\"showList\" class=\"sub-menu\">\n    <div *ngFor=\"let submenuItem of options\">\n      <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\n        <div\n          class=\"current-item\"\n          [ngClass]=\"{\n            'active-menu': submenuSelected?.id === submenuItem.id,\n            'always-open': !!submenuItem.alwaysOpen,\n            'last-child': !submenuItem.children?.length || submenuItem.showChildren === false,\n          }\"\n        >\n          <div *ngIf=\"submenuItem.icon\" class=\"icon-container\">\n            <i [class]=\"submenuItem.icon\"></i>\n          </div>\n          <span class=\"menu-label\">{{ submenuItem.label }}</span>\n          <i\n            *ngIf=\"submenuItem.children?.length && !submenuItem.alwaysOpen && submenuItem.showChildren !== false\"\n            class=\"fas angle-icon\"\n            [ngClass]=\"{\n              'fa-angle-down': submenuSelected?.id !== submenuItem.id,\n              'fa-angle-up': submenuSelected?.id === submenuItem.id,\n            }\"\n          ></i>\n        </div>\n      </li>\n      <vector-sub-menus-list\n        *ngIf=\"submenuItem?.children && submenuItem?.showChildren !== false\"\n        [options]=\"submenuItem?.children\"\n        [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\n        [childLevel]=\"childLevel + 1\"\n        (submenuSelectedChange)=\"onChildSelectedChange($event)\"\n      ></vector-sub-menus-list>\n    </div>\n  </ul>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DrawerModule } from 'primeng/drawer';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { SharedModule } from '../../shared/shared.module';\nimport { MenuComponent } from './menu.component';\nimport { SubMenusListComponent } from './sub-menus-list/sub-menus-list.component';\n\n@NgModule({\n  declarations: [MenuComponent, SubMenusListComponent],\n  exports: [MenuComponent],\n  imports: [SharedModule, OverlayPanelModule, DrawerModule],\n})\nexport class MenuModule {}\n","import { Component, input, output } from '@angular/core';\n\ntype PositionType = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\n\ntype SnackbarType = 'dark' | 'light';\n\nexport interface SnackbarButton {\n  label: string;\n  disabled: boolean;\n  action: () => void;\n}\n\n@Component({\n  standalone: false,\n  selector: 'vector-snack-bar',\n  templateUrl: './snackbar.component.html',\n  styleUrls: ['./snackbar.component.scss'],\n})\nexport class SnackbarComponent {\n  public readonly message = input<string>('');\n  public readonly visible = input<boolean>(false);\n  public readonly position = input<PositionType>('bottom-center');\n  public readonly closable = input<boolean>(true);\n  public readonly buttons = input<SnackbarButton[]>([]);\n  public readonly type = input<SnackbarType>('dark');\n  public readonly fitParent = input<boolean>(false);\n\n  public readonly closeSnackbar = output<void>();\n\n  get positionClass(): string {\n    return `vector-snackbar--${this.position()}`;\n  }\n\n  get themeClass(): string {\n    return `vector-snackbar--${this.type()}`;\n  }\n\n  handleClose(): void {\n    this.closeSnackbar.emit();\n  }\n\n  handleButtonClick(button: SnackbarButton): void {\n    button.action();\n  }\n}\n","@if (visible()) {\n  <div class=\"vector-snackbar-container\" [ngClass]=\"fitParent() ? 'vector-snackbar--fit-parent' : positionClass\">\n    <div class=\"vector-snackbar\" [ngClass]=\"themeClass\">\n      <span class=\"vector-snackbar--message\">{{ message() }}</span>\n\n      <div class=\"vector-snackbar--actions\">\n        @for (button of buttons(); track $index) {\n          <vector-button\n            [label]=\"button.label\"\n            [disabled]=\"button.disabled\"\n            [type]=\"type() === 'dark' ? 'light-outline' : 'default-outlined'\"\n            (onClick)=\"handleButtonClick(button)\"\n          ></vector-button>\n        }\n        @if (closable()) {\n          <i\n            class=\"fas fa-times vector-snackbar--close\"\n            role=\"button\"\n            aria-label=\"Fechar\"\n            (click)=\"handleClose()\"\n          ></i>\n        }\n      </div>\n    </div>\n  </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FieldsModule } from '../fields/fields.module';\nimport { SnackbarComponent } from './snackbar.component';\n\n@NgModule({\n  declarations: [SnackbarComponent],\n  exports: [SnackbarComponent],\n  imports: [CommonModule, FieldsModule],\n})\nexport class SnackbarModule {}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n  standalone: false,\n  selector: 'vector-stepper',\n  templateUrl: './stepper.component.html',\n  styleUrls: ['./stepper.component.scss'],\n})\nexport class StepperComponent implements AfterViewInit {\n  @Input()\n  public steps: MenuItem[] = [];\n  @Input()\n  public navigable = false;\n  @Input()\n  public activeIndex = 0;\n  @Output()\n  public activeIndexChange = new EventEmitter<number>();\n\n  constructor(private elementRef: ElementRef) {}\n\n  ngAfterViewInit(): void {\n    const stepsNumbers: HTMLSpanElement[] = this.elementRef.nativeElement.getElementsByClassName('p-steps-item-number');\n    let index = 0;\n    for (let element of stepsNumbers) {\n      const step = this.steps[index];\n      if (step.styleClass === 'checked') {\n        element.innerHTML = `<span class=\"fas fa-check\"></span>`;\n      }\n      if (step.icon) {\n        element.innerHTML = `<span class=\"${step.icon}\"></span>`;\n      }\n      if (step.disabled) {\n        element.classList.add('disabled');\n      }\n      index++;\n    }\n  }\n\n  onActiveIndexChange(index: number) {\n    this.activeIndexChange.emit(index);\n  }\n}\n","<div class=\"wrapper\">\n  <p-steps\n    [model]=\"steps\"\n    [readonly]=\"!navigable\"\n    [activeIndex]=\"activeIndex\"\n    (activeIndexChange)=\"onActiveIndexChange($event)\"\n  >\n    ></p-steps\n  >\n</div>\n","import { NgModule } from '@angular/core';\nimport { StepsModule } from 'primeng/steps';\nimport { SharedModule } from '../../shared/shared.module';\nimport { StepperComponent } from './stepper.component';\n\n@NgModule({\n  declarations: [StepperComponent],\n  exports: [StepperComponent],\n  imports: [SharedModule, StepsModule],\n})\nexport class StepperModule {}\n","import { Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, signal } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { APP_NAME } from '../../injections';\nimport { AppName, Role, VectorNotification } from '../../models';\nimport { HelpCentralIconOptionsType } from '../../models/topbar.model';\nimport { AuthService, ErrorMessageService, MenuService, ProfileService, StorageService } from '../../services';\nimport { NotificationsService } from '../../services/notifications.service';\nimport { MaskUtil, WindowUtil } from '../../utils';\n\nconst TERMS_OF_USE_URL = 'https://www.vector-unitech.com/assets/docs/Termos_de_Uso_Vector_2026_1404_2.pdf';\n\n@Component({\n  standalone: false,\n  selector: 'vector-top-bar',\n  templateUrl: './top-bar.component.html',\n  styleUrls: ['./top-bar.component.scss'],\n})\nexport class TopBarComponent implements OnInit, OnDestroy {\n  public hideElements = false;\n  public openedMenu = false;\n  public openedChangeAccountMenu = false;\n  public showNotifications = false;\n  public doingOnboarding = false;\n  public readonly vectorFirstName = this.profileService.profileFirstName;\n  public readonly currentAccount = signal<any>(undefined);\n  public isAdmin = false;\n  public otherAccounts: any[] = [];\n  public maskUtil = MaskUtil;\n\n  @Input()\n  public fintech: boolean = false;\n  @Input()\n  public accountService: any;\n  @Input()\n  public showHelpCentral = false;\n  @Input()\n  public showProfile = false;\n  public helpCentralIcons: HelpCentralIconOptionsType[] = [\n    {\n      icon: 'fab fa-whatsapp',\n      url: 'https://api.whatsapp.com/send?phone=5521971551188&text=ol%C3%A1',\n      active: true,\n    },\n    {\n      icon: 'pi pi-phone',\n      url: 'tel:552120423017',\n      active: true,\n    },\n    {\n      icon: 'far fa-envelope',\n      url: 'mailto:suporte@vectorapp.com.br',\n      active: true,\n    },\n    {\n      icon: 'far fa-question-circle',\n      url: '',\n      active: false,\n    },\n  ];\n\n  @Output() onClick = new EventEmitter<string>();\n\n  public notificationsList: VectorNotification[] = [];\n\n  private subscription = new Subscription();\n\n  constructor(\n    private menuService: MenuService,\n    private authService: AuthService,\n    private router: Router,\n    private profileService: ProfileService,\n    private storageService: StorageService,\n    private notificationsService: NotificationsService,\n    private errorMessageService: ErrorMessageService,\n    @Inject(APP_NAME) private currentApp: string,\n  ) {}\n\n  ngOnInit(): void {\n    this.subscription.add(\n      this.menuService.menuOpened$.subscribe((hasOpened) => {\n        this.hideElements = hasOpened;\n      }),\n    );\n\n    if (this.accountService) {\n      this.subscription.add(\n        this.accountService.currentAccount$.subscribe((account: any) => {\n          if (!account) {\n            this.currentAccount.set(account);\n            return;\n          }\n\n          const digits = `${account.accountNumber}`;\n          const accountWithHyfen = digits.slice(0, -1) + '-' + digits.slice(-1);\n          this.currentAccount.set({ ...account, accountNumber: accountWithHyfen });\n        }),\n      );\n\n      this.subscription.add(\n        this.accountService?.userAccounts$.subscribe((accounts: any) => {\n          this.otherAccounts = accounts?.filter((acc: any) => acc.uuid !== this.currentAccount()?.uuid) || [];\n        }),\n      );\n\n      this.subscription.add(\n        this.accountService.onOnboarding$.subscribe((onOnboarding: any) => {\n          setTimeout(() => {\n            this.doingOnboarding = onOnboarding;\n          });\n        }),\n      );\n    }\n\n    this.subscription.add(\n      this.authService.role$.subscribe((role) => {\n        this.isAdmin = role === Role.ADMIN;\n      }),\n    );\n\n    this.subscription.add(\n      this.notificationsService.notifications$.subscribe((notifications) => {\n        this.notificationsList = notifications;\n      }),\n    );\n  }\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n  public toggleMenu() {\n    this.menuService.toggleMenu$.next();\n  }\n\n  public logout() {\n    this.authService.logout();\n  }\n\n  public isDesktop() {\n    return WindowUtil.isDesktop();\n  }\n\n  public get showsAccountData(): boolean {\n    return this.currentApp === AppName.FINTECH || this.currentApp === AppName.MARKETPLACE;\n  }\n\n  public get isLogtech(): boolean {\n    return this.currentApp === AppName.LOGTECH;\n  }\n\n  public changeAccount(newAccount: any) {\n    if (newAccount.isBlocked) {\n      this.errorMessageService.genericModalErrorMessage$.next('Entre em contato com a central de atendimento');\n      return;\n    }\n\n    this.storageService.set('linkedCnpj', newAccount.customerDocument);\n    this.accountService.currentAccount$.next(newAccount);\n    window.location.reload();\n  }\n\n  public goToTermsOfUse() {\n    this.accountService.termsOfUse$.next();\n  }\n\n  public termsOfUse(): void {\n    window.open(TERMS_OF_USE_URL, '_blank', 'noopener');\n  }\n\n  public goToPasswordChange() {\n    this.router.navigate(['password', 'recover'], { queryParams: { change: true } });\n  }\n\n  public goToProfile() {\n    const userId = this.storageService.getUserId();\n    if (userId) {\n      this.router.navigate(['admin', 'user', 'detail', userId]);\n    }\n  }\n\n  public goToTariff() {\n    this.router.navigate(['fintech/under-construction']);\n  }\n  public goToOnboarding() {\n    this.router.navigate(['onboarding', 'attorney-information']);\n  }\n\n  public handleClick(notification: VectorNotification) {\n    if (notification?.link) {\n      this.router.navigateByUrl(notification.link);\n    }\n    this.onClick.emit(notification?.link || '');\n  }\n}\n","<div class=\"top-bar-container\">\n  <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n    <div class=\"menu-icon\"></div>\n  </div>\n\n  @if (showsAccountData && !doingOnboarding && !isAdmin) {\n    <div class=\"left-items-container\">\n      <span>Banco {{ currentAccount()?.bankCode }}</span>\n      <span class=\"separator\"></span>\n      <span>AG {{ currentAccount()?.agency }}</span>\n      <span class=\"separator\"></span>\n      <span>CC {{ currentAccount()?.accountNumber }}</span>\n      <span class=\"separator\"></span>\n      <span\n        >{{ currentAccount()?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n        {{ maskUtil.formatDocument(currentAccount()?.document) }}</span\n      >\n      <span class=\"separator\"></span>\n      <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n        <span class=\"mr-2\">Alternar conta</span>\n        <span\n          class=\"fas\"\n          [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n        ></span>\n      </div>\n    </div>\n  }\n\n  @if (!isAdmin && !doingOnboarding) {\n    <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\">\n      @if (showHelpCentral) {\n        <div class=\"help-central\">\n          <span>{{ 'app.label.help_central' | translate }}:</span>\n          @for (item of helpCentralIcons; track item) {\n            <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n              <i [class]=\"item.icon\"></i>\n            </a>\n          }\n        </div>\n      }\n\n      @if (!fintech) {\n        <span (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n          @if ((notificationsList | unreadNotifications).length) {\n            <span class=\"notifications-indicator\"> </span>\n          }\n        </span>\n      }\n\n      <span class=\"separator\"></span>\n      <div\n        #menuContainer\n        class=\"menu-container\"\n        (click)=\"menu.toggle($event)\"\n        pTooltip=\"Enter your username\"\n        tooltipPosition=\"bottom\"\n        tooltipEvent=\"click\"\n      >\n        <span class=\"user-name\">{{ currentAccount()?.name || vectorFirstName() || '' }}</span>\n        <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n      </div>\n    </div>\n  }\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\" styleClass=\"background-white\">\n  <ng-template pTemplate>\n    @if (showsAccountData) {\n      <div class=\"account-info\">\n        <div class=\"account-info-row\">\n          <div class=\"account-info-item\">\n            <span>Banco: </span>\n            <span class=\"account-info-value\">{{ currentAccount()?.bank }}</span>\n          </div>\n\n          <span class=\"separator\"></span>\n          <div class=\"account-info-item\">\n            <span>AG: </span>\n            <span class=\"account-info-value\">{{ currentAccount()?.agency }}</span>\n          </div>\n        </div>\n        <div class=\"account-info-row\">\n          <div class=\"account-info-item\">\n            <span>CC: </span>\n            <span class=\"account-info-value\">{{ currentAccount()?.accountNumber }}</span>\n          </div>\n          <span class=\"separator\"></span>\n          <div class=\"account-info-item\">\n            <span>{{ currentAccount()?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n            <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount()?.document) }}</span>\n          </div>\n        </div>\n        @if (otherAccounts?.length) {\n          <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\">\n            <span class=\"change-account-mobile-label\">Alternar conta</span>\n            <span\n              class=\"fas\"\n              [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n            ></span>\n          </div>\n        }\n      </div>\n    }\n    <ul class=\"user-menu\">\n      @if (fintech) {\n        <li (click)=\"goToTermsOfUse(); menu.hide()\">\n          <span class=\"user-menu-icon\"><i class=\"fas fa-file-contract\"></i></span>\n          <span>Termos de Uso</span>\n        </li>\n      }\n      @if (fintech) {\n        <li (click)=\"goToPasswordChange(); menu.hide()\">\n          <span class=\"user-menu-icon\"><i class=\"fas fa-key\"></i></span>\n          <span>Alterar Senha</span>\n        </li>\n      }\n      @if (showProfile) {\n        <li (click)=\"goToProfile(); menu.hide()\">\n          <span class=\"user-menu-icon\"><i class=\"ph-bold ph-user\"></i></span>\n          <span>Perfil</span>\n        </li>\n      }\n      @if (isLogtech) {\n        <li (click)=\"termsOfUse(); menu.hide()\">\n          <span class=\"user-menu-icon\"><i class=\"ph-bold ph-file-text\"></i></span>\n          <span>Termos de uso</span>\n        </li>\n      }\n      <li class=\"menu-separator\"></li>\n      <li (click)=\"logout()\">\n        <span class=\"user-menu-icon\"><i class=\"ph-bold ph-sign-out\"></i></span>\n        <span>Sair</span>\n      </li>\n    </ul>\n  </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n  <ng-template pTemplate>\n    @for (account of otherAccounts; track account) {\n      <div class=\"account-info change-account-info\" (click)=\"changeAccount(account)\">\n        <div class=\"account-info-row\">\n          <div class=\"account-info-item\">\n            <span>Banco: </span>\n            <span class=\"account-info-value\">{{ account?.bank }}</span>\n          </div>\n\n          <span class=\"separator\"></span>\n          <div class=\"account-info-item\">\n            <span>AG: </span>\n            <span class=\"account-info-value\">{{ account?.agency }}</span>\n          </div>\n        </div>\n        <div class=\"account-info-row\">\n          <div class=\"account-info-item\">\n            <span>CC: </span>\n            <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n          </div>\n          <span class=\"separator\"></span>\n          <div class=\"account-info-item\">\n            <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n            <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n          </div>\n        </div>\n      </div>\n    }\n    <div>\n      <hr />\n      <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n        Adicionar uma nova conta\n      </p>\n    </div>\n  </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n  #notifications\n  (onHide)=\"showNotifications = false\"\n  (onShow)=\"showNotifications = true\"\n  styleClass=\"background-white\"\n>\n  <ng-template pTemplate>\n    <div class=\"notifications-header\">\n      <div class=\"notifications-vector-logo\"></div>\n      <span class=\"notifications-title\">\n        {{ 'app.label.notifications' | translate }}\n      </span>\n    </div>\n    <ul class=\"notifications-list\">\n      @for (notification of notificationsList; track $index) {\n        <li (click)=\"handleClick(notification); notifications.hide()\" class=\"notification-item\">\n          <span class=\"notification-title\">\n            {{ notification.title }}\n            @if (!notification.wasRead) {\n              <span class=\"notification-item-indicator\"></span>\n            }\n          </span>\n          @if (notification.description) {\n            <span>{{ notification.description }}</span>\n            <em class=\"fas fa-chevron-right\"></em>\n          }\n        </li>\n      }\n    </ul>\n  </ng-template>\n</p-overlayPanel>\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { SharedModule } from '../../shared/shared.module';\nimport { MenuModule } from '../menu';\nimport { TopBarComponent } from './top-bar.component';\n\n@NgModule({\n  declarations: [TopBarComponent],\n  exports: [TopBarComponent],\n  imports: [SharedModule, OverlayPanelModule, TranslateModule, MenuModule],\n})\nexport class TopBarModule {}\n","import { EnvironmentProviders } from '@angular/core';\nimport { definePreset } from '@primeng/themes';\nimport Aura from '@primeng/themes/aura';\nimport { providePrimeNG } from 'primeng/config';\n\n/**\n * Preset de tema do Vector, baseado no Aura do PrimeNG 18.\n * Recria a paleta primária azul usada no tema antigo (saga-blue).\n * Ajuste os tokens conforme a identidade visual de cada produto.\n */\nexport const VectorPreset = definePreset(Aura, {\n  semantic: {\n    primary: {\n      50: '#eff6ff',\n      100: '#dbeafe',\n      200: '#bfdbfe',\n      300: '#93c5fd',\n      400: '#60a5fa',\n      500: '#3b82f6',\n      600: '#2563eb',\n      700: '#1d4ed8',\n      800: '#1e40af',\n      900: '#1e3a8a',\n      950: '#172554',\n    },\n  },\n});\n\n/**\n * Configuração unica do PrimeNG 18 para todos os apps Vector.\n * Use no array `providers` do AppModule (ou no bootstrapApplication) de cada projeto:\n *\n *   providers: [provideVectorPrimeNG(), ...]\n */\nexport function provideVectorPrimeNG(): EnvironmentProviders {\n  return providePrimeNG({\n    theme: {\n      preset: VectorPreset,\n      options: {\n        darkModeSelector: false,\n      },\n    },\n    ripple: true,\n  });\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nexport const crudListHasItemsGuard = (routeSnapshot: ActivatedRouteSnapshot) => {\n  const serviceType = routeSnapshot.data['service'];\n  if (!serviceType) {\n    console.error('You forgot to add the service declaration to route \"data\" property.');\n    return false;\n  }\n  const service: typeof serviceType = inject(serviceType);\n  return !!(service.dataset$.value?.data?.length || service.flatUnpagedDataset$.value?.length);\n};\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { map, switchMap } from 'rxjs/operators';\nimport { APP_NAME } from '../injections';\nimport { AppName, Role } from '../models';\nimport { AuthService, ProfileService, StorageService } from '../services';\n\nexport const getTokenByGuidGuard = (route: ActivatedRouteSnapshot) => {\n  const authService: AuthService = inject(AuthService);\n  const storageService: StorageService = inject(StorageService);\n  const router: Router = inject(Router);\n  const profileService: ProfileService = inject(ProfileService);\n  const appName: AppName = inject(APP_NAME);\n\n  const paramTokenGuid = route.queryParams['Token'];\n  const role = atob(route.queryParams['role'] || '') as Role;\n  authService.role$.next(role);\n  if (paramTokenGuid) {\n    storageService.clear();\n    storageService.setRole(route.queryParams['role']);\n    storageService.setUserId(route.queryParams['userId']);\n    return authService.getTokenByGuid(paramTokenGuid).pipe(\n      switchMap((token) => {\n        if (token && role !== Role.ADMIN) {\n          router.createUrlTree([appName.toLowerCase()]);\n        }\n        return profileService.getUserInfo().pipe(\n          map((response) => {\n            if (response.id) {\n              storageService.setUserId(response.id);\n            }\n            return true;\n          })\n        );\n      })\n    );\n  } else if (storageService.getToken()) {\n    if (role !== Role.ADMIN) {\n      return router.createUrlTree([appName.toLowerCase()]);\n    }\n    return true;\n  }\n  authService.logout();\n  return false;\n};\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { APP_NAME } from '../injections';\nimport { AppName } from '../models';\nimport { ProfileService } from '../services';\n\nexport const hasPermissionGuard = (routeSnapshot: ActivatedRouteSnapshot) => {\n  const profileService: ProfileService = inject(ProfileService);\n  const router: Router = inject(Router);\n  const appName: AppName = inject(APP_NAME);\n  const hasPermission = profileService.userHasPermission(routeSnapshot.data['permission']);\n\n  if (!hasPermission) {\n    return router.createUrlTree([appName.toLowerCase()]);\n  }\n  return true;\n};\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Role } from '../models';\nimport { StorageService } from '../services';\n\nexport const roleGuard = (routeSnapshot: ActivatedRouteSnapshot) => {\n  const storageService: StorageService = inject(StorageService);\n  const router: Router = inject(Router);\n  const isRoleAdmin = storageService.getRole() === Role.ADMIN;\n\n  if ((routeSnapshot.data['adminView'] && isRoleAdmin) || (!routeSnapshot.data['adminView'] && !isRoleAdmin)) {\n    return true;\n  }\n  return router.createUrlTree(['']);\n};\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { firstValueFrom } from 'rxjs';\nimport { AuthService, StorageService } from '../services';\n\nexport const tokenIsPresentGuard = (routeSnapshot: ActivatedRouteSnapshot) => {\n  const storageService: StorageService = inject(StorageService);\n  const authService: AuthService = inject(AuthService);\n\n  if (routeSnapshot.queryParams['tokenGuid']) {\n    return firstValueFrom(authService.getTokenByGuid(routeSnapshot.queryParams['tokenGuid'])).then(\n      (response) => !!response.accessToken\n    );\n  } else {\n    return !!storageService.getToken();\n  }\n};\n","import {\n  HttpErrorResponse,\n  HttpEvent,\n  HttpHandler,\n  HttpInterceptor,\n  HttpRequest,\n  HttpResponse,\n} from '@angular/common/http';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { catchError, filter, switchMap, take, tap } from 'rxjs/operators';\nimport { APP_NAME, ENVIRONMENT } from '../injections';\nimport { AppName, MessageStatus } from '../models';\nimport { AuthService, ErrorMessageService, LoadingService, StorageService } from '../services';\n\n@Injectable()\nexport class HttpInterceptorProvider implements HttpInterceptor {\n  private activeRequests: string[] = [];\n  private isRefreshing = false;\n  private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  constructor(\n    private storageService: StorageService,\n    private errorMessageService: ErrorMessageService,\n    private loadingService: LoadingService,\n    private authService: AuthService,\n    private messageService: MessageService,\n    @Inject(ENVIRONMENT) private environment: any,\n    @Optional() @Inject(APP_NAME) private appName: AppName | null = null\n  ) {}\n\n  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n    const isExternalUrl = request.headers.get('external-url');\n    const isAssetsRequest = request.url.startsWith('/assets/');\n\n    if (!this.isRefreshTokenRequest(request.url)) {\n      if (!isExternalUrl) {\n        request = this.addTokenIfPresent(request);\n        request = this.addEncryptPasswordIfPresent(request);\n        request = this.addAccountUuidIfPresent(request);\n        request = this.addModifierIdIfPresent(request);\n        request = this.addContentType(request);\n      }\n    }\n\n    if (!isExternalUrl) {\n      request = this.fixUrl(request);\n    }\n\n    if (!isExternalUrl && !isAssetsRequest) {\n      request = this.addClientHeaders(request);\n    }\n\n    const noSpinnerHeader = request.headers.get('no-spinner');\n    if (!noSpinnerHeader && !request.url.startsWith('/assets/')) {\n      this.loadingService.loading$.next(true);\n      this.activeRequests.push(this.getUrlWithoutParams(request.url));\n    }\n\n    return next.handle(request).pipe(\n      catchError((response: HttpErrorResponse) => {\n        if (response.error?.messages?.length) {\n          this.errorMessageService.genericModalErrorMessage$.next(\n            response.error.messages[response.error.messages.length - 1]\n          );\n        }\n        if (!this.isRefreshTokenRequest(request.url)) {\n          if (response.status === 401) {\n            return this.handle401Error(request, next);\n          }\n          if (response.status === 403) {\n            this.errorMessageService.genericModalErrorMessage$.next('Usuário sem privilégios para realizar essa ação');\n          } else {\n            if (!isExternalUrl) {\n              if (typeof response.error == 'string') {\n                this.messageService.add({ severity: MessageStatus.ERROR, summary: 'Erro', detail: response.error });\n              }\n            }\n          }\n        }\n        if (this.activeRequests.includes(this.getUrlWithoutParams(response.url))) {\n          this.activeRequests.splice(\n            this.activeRequests.findIndex((item) => item === this.getUrlWithoutParams(request.url)),\n            1\n          );\n          if (!this.activeRequests.length) {\n            this.loadingService.loading$.next(false);\n          }\n        }\n\n        return throwError(() => response);\n      }),\n      tap((response) => {\n        if (response instanceof HttpResponse) {\n          if (this.activeRequests.includes(this.getUrlWithoutParams(response.url))) {\n            this.activeRequests.splice(\n              this.activeRequests.findIndex((item) => item === this.getUrlWithoutParams(request.url)),\n              1\n            );\n            if (!this.activeRequests.length) {\n              this.loadingService.loading$.next(false);\n            }\n          }\n\n          if (\n            Object(response.body).hasOwnProperty('statusCode') &&\n            response.body.statusCode === 400 &&\n            response.body.messages?.length\n          ) {\n            this.errorMessageService.genericModalErrorMessage$.next(\n              response.body.messages[response.body.messages.length - 1]\n            );\n          }\n        }\n      })\n    );\n  }\n\n  private isRefreshTokenRequest(url: string) {\n    return url.includes('connect/token');\n  }\n\n  private getUrlWithoutParams(fullUrl: string | null): string {\n    if (!fullUrl) {\n      return '';\n    }\n\n    const decodedUrl = decodeURIComponent(fullUrl.trim());\n\n    if (!decodedUrl.includes('?')) {\n      return decodedUrl;\n    }\n\n    return decodedUrl.substring(0, decodedUrl.indexOf('?'));\n  }\n\n  private addTokenIfPresent(request: HttpRequest<any>): HttpRequest<any> {\n    const token = this.storageService.getToken();\n    if (token) {\n      request = request.clone({ setHeaders: { Authorization: token } });\n    }\n    return request;\n  }\n\n  private addModifierIdIfPresent(request: HttpRequest<any>): HttpRequest<any> {\n    const modifierId = this.storageService.getUserId();\n    if (modifierId && request.method !== 'GET' && !(request.body instanceof FormData)) {\n      request = request.clone({ body: { ...request.body, modifierId } });\n    }\n    return request;\n  }\n\n  private addEncryptPasswordIfPresent(request: HttpRequest<any>): HttpRequest<any> {\n    const encriptPassword = this.storageService.get('encryptPassword');\n    if (request.method !== 'GET' && encriptPassword) {\n      if (request.body instanceof FormData) {\n        request.body.append('encriptPassword', encriptPassword);\n      } else {\n        request = request.clone({ body: { ...request.body, encriptPassword } });\n      }\n    }\n    return request;\n  }\n\n  private addAccountUuidIfPresent(request: HttpRequest<any>): HttpRequest<any> {\n    const accountUuid = this.storageService.get('accountUuid');\n    if (request.method !== 'GET' && accountUuid) {\n      if (request.body instanceof FormData) {\n        request.body.append('accountUuid', accountUuid);\n      } else {\n        request = request.clone({ body: { ...request.body, accountUuid } });\n      }\n    }\n    return request;\n  }\n\n  /**\n   * Marca a origem da request pro backend: `x-client-platform: web` (+ `x-client` com o nome do\n   * frontend), pro backend distinguir web de app nativo (ver helper IsFromApp() no VectioCargo.Shared).\n   *\n   * So nas chamadas do nosso backend; ignora URL externa (header `external-url`) e assets — nao\n   * vaza o header p/ APIs de terceiros. Header e spoofavel: telemetria/roteamento/log, NAO\n   * controle de seguranca.\n   */\n  private addClientHeaders(request: HttpRequest<any>): HttpRequest<any> {\n    return request.clone({\n      setHeaders: {\n        'x-client-platform': 'web',\n        'x-client': this.getClientName(),\n      },\n    });\n  }\n\n  private getClientName(): string {\n    if (!this.appName) {\n      return 'vector-web';\n    }\n    return `vector-${this.appName.toLowerCase().replace(/_/g, '-')}`;\n  }\n\n  private addContentType(request: HttpRequest<any>): HttpRequest<any> {\n    return request.clone({ setHeaders: { contentType: 'application/json' } });\n  }\n\n  private fixUrl(request: HttpRequest<any>): HttpRequest<any> {\n    if (this.isAuthRequest(request.url) || this.isProfilesRequest(request.url)) {\n      return request.clone({\n        url: `${this.environment.API_URL.replace('/api', '')}/${request.url}`,\n      });\n    }\n    return request.clone({\n      url: request.url.startsWith('/assets/') ? request.url : `${this.environment.API_URL}/${request.url}`,\n    });\n  }\n\n  private isAuthRequest(url: string) {\n    return url.includes('connect/token');\n  }\n\n  private isProfilesRequest(url: string) {\n    return url.includes('connect/userinfo');\n  }\n\n  private handle401Error(request: HttpRequest<any>, next: HttpHandler) {\n    if (!this.isRefreshing) {\n      this.isRefreshing = true;\n      this.refreshTokenSubject.next(null);\n\n      const refreshToken = this.storageService.getRefreshToken();\n      if (refreshToken) {\n        return this.authService.getTokenByRefreshToken(refreshToken).pipe(\n          switchMap((token: any) => {\n            this.isRefreshing = false;\n            this.refreshTokenSubject.next(this.storageService.getToken());\n            return next.handle(this.addTokenIfPresent(request));\n          }),\n          catchError((err) => {\n            this.isRefreshing = false;\n            this.authService.logout();\n            return throwError(() => err);\n          })\n        );\n      } else {\n        this.isRefreshing = false;\n        this.authService.logout();\n        return throwError(() => new Error());\n      }\n    }\n\n    return this.refreshTokenSubject.pipe(\n      filter((token) => token !== null),\n      take(1),\n      switchMap((token) => next.handle(this.addTokenIfPresent(request)))\n    );\n  }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nexport const getSelectedCrudItemResolver = (routeSnapshot: ActivatedRouteSnapshot) => {\n  const serviceType = routeSnapshot.data['service'];\n  if (!serviceType) {\n    console.error('You forgot to add the service declaration to route \"data\" property.');\n    return undefined;\n  }\n  const service: typeof serviceType = inject(serviceType);\n  if (service.dataset$.value?.data?.length) {\n    return service.dataset$.value.data.find((item: any) => item.id == routeSnapshot.params['id']);\n  }\n  if (service.flatUnpagedDataset$.value?.length) {\n    return service.flatUnpagedDataset$.value.find((item: any) => item.id == routeSnapshot.params['id']);\n  }\n  return undefined;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.BreadcrumbService","i3","i4.RemoveLastChildPipe","i2","i1.ButtonComponent","PrimeNgPanel","i1.StorageService","i2.StorageService","i2.ProfileService","i1.ProfileService","i4.AuthService","i1.ModalService","i5.FieldErrorMessageComponent","i4","i6.ButtonComponent","i7.FieldErrorMessageComponent","i5","i5.TextFieldComponent","i7.CalendarComponent","i8.MultiselectFieldComponent","i9.DropdownFieldComponent","i10.CurrencyFieldComponent","i11.SelectButtonFieldComponent","i12.NotHiddenPipe","i13","i6.PanelComponent","i8.BadgeComponent","i9.ScoreComponent","i12.ButtonComponent","i13.FiltersComponent","i14","i5.ButtonComponent","i3.FieldErrorMessageComponent","i1.TextFieldComponent","MenuModule","i1.BadgeComponent","i3.BadgeComponent","PrimeNgDrawer","i1.ErrorMessageService","i3.ButtonComponent","i1.MenuService","DrawerModule","i2.ButtonComponent","i7","i8.FormatDocumentPipe","i9.UnreadNotificationsPipe","i10","i1.LoadingService","i1.AuthService"],"mappings":"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"}