ngx-vector-components 6.5.0 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +3059 -3047
  2. package/README.md +35 -35
  3. package/assets/icons/chevron_down_icon.svg +3 -3
  4. package/assets/icons/home_menu_icon.svg +3 -3
  5. package/assets/icons/logout_icon.svg +9 -9
  6. package/assets/icons/menu_footer_icon.svg +3 -3
  7. package/assets/icons/menu_hamburguer_icon.svg +3 -3
  8. package/assets/icons/terms_of_use_icon.svg +9 -9
  9. package/assets/icons/vector_admin_icon.svg +4 -4
  10. package/assets/icons/vector_fintech_icon.svg +3 -3
  11. package/assets/icons/vector_logtech_icon.svg +6 -6
  12. package/assets/icons/vector_marketplace_icon.svg +3 -3
  13. package/assets/images/bunge_logo.svg +23 -23
  14. package/assets/images/cofco_logo.svg +117 -117
  15. package/assets/images/emote_bad.svg +6 -6
  16. package/assets/images/emote_cool.svg +5 -5
  17. package/assets/images/emote_nice.svg +5 -5
  18. package/assets/images/success_sign.svg +4 -4
  19. package/assets/images/vector-logo-horizontal-inverse-color.svg +13 -13
  20. package/assets/images/vector_logo_horizontal.svg +13 -13
  21. package/assets/images/warn_sign.svg +4 -4
  22. package/assets/styles/_fonts.scss +114 -114
  23. package/assets/styles/_mixins.scss +7 -7
  24. package/assets/styles/_primeng-custom-theme.scss +1861 -1861
  25. package/assets/styles/_spinner.scss +36 -36
  26. package/assets/styles/_styles.scss +134 -134
  27. package/assets/styles/_variables.scss +62 -61
  28. package/fesm2022/ngx-vector-components.mjs +118 -70
  29. package/fesm2022/ngx-vector-components.mjs.map +1 -1
  30. package/lib/components/fields/data-table/data-table.component.d.ts +2 -1
  31. package/lib/components/index.d.ts +1 -0
  32. package/lib/components/snackbar/index.d.ts +2 -0
  33. package/lib/components/snackbar/snackbar.component.d.ts +25 -0
  34. package/lib/components/snackbar/snackbar.module.d.ts +9 -0
  35. package/package.json +1 -1
@@ -1 +1 @@
1
- {"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/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/storage.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/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.component.ts","../../../projects/ngx-vector-components/src/lib/components/menu/menu.component.html","../../../projects/ngx-vector-components/src/lib/components/menu/menu.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 { 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","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 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}\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 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 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_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}\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 }\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 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}\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, Input, Output } from '@angular/core';\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\n@Component({\n standalone: false,\n selector: 'vector-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent {\n @Input()\n public disabled = false;\n @Input()\n public label = '';\n @Input()\n public type: ButtonType = 'default';\n @Input()\n public leftIcon = '';\n @Input()\n public rightIcon = '';\n @Input()\n public noShadow = false;\n @Input()\n public round = false;\n @Input()\n public style: any = {};\n @Input()\n public loading: boolean = false;\n @Output()\n public onClick = new EventEmitter<any>();\n\n get styleClass() {\n return `button shadow-3 ${this.type} ${this.noShadow && 'no-shadow'}`;\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]=\"{ round: round }\"\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 { 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 { 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 { HttpClient } from '@angular/common/http';\nimport { Injectable } 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 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(private http: HttpClient, private storageService: StorageService) {\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 }\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}${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 [noShadow]=\"true\"\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 [noShadow]=\"true\"\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 this.formGroup.addControl(\n field.name,\n new UntypedFormGroup({\n startDate: new UntypedFormControl({ value: field.defaultValue?.startDate, disabled: field.readonly }, [\n ...this.buildValidators(field),\n ValidationUtil.lowerThanOrEqualTo('endDate'),\n ]),\n endDate: new UntypedFormControl({ value: field.defaultValue?.endDate, disabled: field.readonly }, [\n ...this.buildValidators(field),\n ValidationUtil.greaterThanOrEqualTo('startDate'),\n ]),\n })\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({ value: field.defaultValue, disabled: field.readonly }, this.buildValidators(field))\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 [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 [round]=\"true\"\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 { DataTableLazyLoadEvent, TableColumn, TableColumnType } 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 filters: FilterField[] = [];\n @Input()\n public addItemLabel = '';\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: { label: string; clickFunction: Function; disabled?: boolean }[] | undefined;\n @Input()\n public addItemButtonPlusSign = false;\n @Input()\n public hasActions: boolean = true;\n @Input()\n public hasExpandableIcon = false;\n @Input()\n public addNameColumnExpand = '';\n @Input() expandable = false;\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 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\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 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 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 [round]=\"true\"\n [label]=\"button.label\"\n (click)=\"button.clickFunction()\"\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\n [disabled]=\"button.disabled === true\"\n ></vector-button>\n <vector-button\n *ngIf=\"addItemLabel\"\n class=\"add-item-button\"\n [label]=\"addItemLabel\"\n (click)=\"onAdd.emit()\"\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\n [round]=\"true\"\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]=\"true\"\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\n [responsive]=\"true\"\n [resizableColumns]=\"true\"\n [scrollable]=\"true\"\n scrollDirection=\"vertical\"\n responsiveLayout=\"scroll\"\n dataKey=\"id\"\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 [disabled]=\"disabledHeadercheckbox\"></p-tableHeaderCheckbox>\n </th>\n <th class=\"px-1 w-max min-w-max white-space-nowrap text-center vertical-align-middle\" *ngIf=\"hasExpandableIcon\">\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\"\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 *ngIf=\"hasExpandableIcon\" class=\"px-1 w-auto text-center vertical-align-middle\">\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\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\">\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\"\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, Input, Output, ViewChild } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { FileSelectEvent, FileUpload } from 'primeng/fileupload';\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 type InputFileAcceptExtension =\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 | 'MP4'\n | 'MP3'\n | 'WAV'\n | 'ZIP'\n | 'RAR'\n | 'JSON'\n | 'XML';\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\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 /** Extensões aceitas, ex: `['PDF', 'JPG']` (vira `accept=\".pdf,.jpg\"`). Array vazio = aceita qualquer tipo. */\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 /** Quantidade máxima de arquivos no modo multiple (1 à 10). Ignorado em single (sempre 1). Default: `10`. */\n @Input()\n public maxFileNumberUploaded: number = 10;\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\n constructor(private sanitizer: DomSanitizer) {}\n\n private _uploadButtonAttach: Required<InputFileButtonConfig> = { ...UPLOAD_BUTTON_ATTACH_DEFAULTS };\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 // ─── Config conversion ───────────────────────────────────\n\n public get acceptString(): string {\n return (this.acceptExtensions ?? []).map((ext) => `.${ext.toLowerCase()}`).join(',');\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 files: File[] = Array.from(event?.files ?? []);\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 for (const file of files) {\n if (this.uploadArray.length >= this.maxFileNumberUploaded) break;\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 // Garante que o browser abra o picker em modo multi-select quando uploadType === 'multiple'.\n // Sincroniza direto no DOM porque a binding [multiple] do PrimeNG pode não estar propagada no momento do click.\n targetInput.multiple = this.uploadType === 'multiple';\n targetInput.click();\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 [round]=\"true\"\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 [round]=\"true\"\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 [round]=\"true\"\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]=\"uploadForm.controls.originalFileName.value\" 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 [round]=\"true\"\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 [round]=\"true\"\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 [round]=\"true\"\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]=\"control.controls.originalFileName.value\" 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\" [round]=\"true\" 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 switch (this.type) {\n case 'percent':\n return this._suffix || '%';\n }\n return '';\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 [round]=\"true\"\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 [round]=\"true\"\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 { 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 : undefined;\n }\n this.submenuSelectedChange.emit(option);\n }\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\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\"\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\"\n [options]=\"submenuItem?.children\"\n [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\n [childLevel]=\"childLevel + 1\"\n (submenuSelectedChange)=\"submenuClick($event)\"\n ></vector-sub-menus-list>\n </div>\n </ul>\n</div>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, HostListener, Inject, Input, OnDestroy, OnInit, Output } 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\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 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 }\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 @Inject(ENVIRONMENT) private environment: any,\n @Inject(APP_NAME) private currentApp: string,\n ) {}\n\n ngOnInit(): void {\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 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 }\n\n public toggleMenu() {\n this.opened = !this.opened;\n if (!this.opened) {\n this.activeOption = undefined;\n this.activeSubmenuOption = undefined;\n }\n this.resizeMenu();\n }\n\n public onMenuClick(option: MenuItem) {\n if (!option.alwaysOpen) {\n if (this.activeOption?.id === option.id) {\n this.activeOption = undefined;\n } else {\n this.activeOption = option.children?.length ? 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 (option.children?.length && !this.opened) {\n this.toggleMenu();\n }\n this.activeSubmenuOption = undefined;\n }\n }\n\n public onSubmenuClick(submenuItem: MenuItem) {\n if (!submenuItem.alwaysOpen) {\n if (this.activeSubmenuOption?.id === submenuItem?.id) {\n this.activeSubmenuOption = undefined;\n } else {\n this.activeSubmenuOption = submenuItem.children?.length ? submenuItem : 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 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","<nav id=\"menu\" [ngStyle]=\"widthStyle\" [@sideInOut]=\"lastAnimation\">\n <div class=\"header-menu\">\n <div class=\"logo-container\">\n <div class=\"logo\" [ngClass]=\"{ 'logo-small': !opened }\"></div>\n </div>\n </div>\n <div class=\"menu-sections\">\n <div class=\"menu-section\">\n <span [ngStyle]=\"{ opacity: opened ? 1 : 0 }\" class=\"menu-section-title\">SELEÇÃO DE PORTAL</span>\n <ul class=\"side-menu\">\n <ng-container *ngIf=\"apps.length\">\n <li *ngFor=\"let app of apps\">\n <div\n class=\"side-menu-item\"\n [ngClass]=\"{ 'selected-portal': isPortalSelected(app.appName) }\"\n (click)=\"navigateToPortal(app)\"\n >\n <div class=\"icon-container selected-portal-item {{ app.className }}\"></div>\n <span class=\"menu-label\">{{ app.description }}</span>\n </div>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!apps.length\">\n <li>\n <div\n class=\"side-menu-item\"\n [ngClass]=\"{ 'selected-portal': isPortalSelected(appsEnum.LOGTECH) }\"\n (click)=\"navigateToPortal({ appName: appsEnum.LOGTECH, isAdmin: false })\"\n >\n <div class=\"icon-container selected-portal-item logtech\"></div>\n <span class=\"menu-label\">Cargas</span>\n </div>\n </li>\n <li *ngIf=\"hasAnyFintechPermission\">\n <div\n class=\"side-menu-item\"\n [ngClass]=\"{ 'selected-portal': isPortalSelected(appsEnum.FINTECH) }\"\n (click)=\"navigateToPortal({ appName: appsEnum.FINTECH, isAdmin: false })\"\n >\n <div class=\"icon-container selected-portal-item fintech\"></div>\n <span class=\"menu-label\">Conta digital</span>\n </div>\n </li>\n <li *ngIf=\"!production\">\n <div\n class=\"side-menu-item\"\n [ngClass]=\"{ 'selected-portal': isPortalSelected(appsEnum.MARKETPLACE) }\"\n (click)=\"navigateToPortal({ appName: appsEnum.MARKETPLACE, isAdmin: false })\"\n >\n <div class=\"icon-container selected-portal-item marketplace\"></div>\n <span class=\"menu-label\">Combustível</span>\n </div>\n </li>\n <li *ngIf=\"adminOption && (hasFintechAdminPermission || hasMarketplaceAdminPermission)\">\n <div\n class=\"side-menu-item\"\n [ngClass]=\"{ 'active-menu': activeOption?.id === adminOption.id }\"\n (click)=\"navigateToPortal({ appName: appsEnum.FINTECH, isAdmin: true })\"\n >\n <div class=\"icon-container selected-portal-item admin\"></div>\n <span class=\"menu-label\">Admin Fintech</span>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"menu-section\">\n <span [ngStyle]=\"{ opacity: opened && options.length ? 1 : 0 }\" class=\"menu-section-title\">MENU</span>\n <ul class=\"side-menu\">\n <li *ngFor=\"let option of options\">\n <div\n class=\"side-menu-item\"\n [ngClass]=\"{ 'active-menu': activeOption?.id === option.id, 'always-open': !!option.alwaysOpen }\"\n [pTooltip]=\"option.label\"\n [tooltipDisabled]=\"opened\"\n tooltipPosition=\"right\"\n (click)=\"onMenuClick(option)\"\n >\n <div class=\"icon-container\">\n <img\n *ngIf=\"option.iconFileName\"\n [src]=\"'../../../../assets/icons/' + option.iconFileName + '.svg'\"\n class=\"menu-icon\"\n />\n <i *ngIf=\"option.icon\" class=\"menu-icon {{ option.icon }}\"></i>\n <span *ngIf=\"getMenuNotificationsCount(option)\" class=\"menu-notifications-count\">{{\n getMenuNotificationsCount(option)\n }}</span>\n </div>\n <span class=\"menu-label\">{{ option.label }}</span>\n <i\n *ngIf=\"opened && option.children?.length && !option.alwaysOpen\"\n class=\"fas angle-icon\"\n [ngClass]=\"{\n 'fa-angle-down': activeOption?.id !== option.id,\n 'fa-angle-up': activeOption?.id === option.id,\n }\"\n ></i>\n </div>\n <vector-sub-menus-list\n [options]=\"option.children\"\n [showList]=\"activeOption?.id === option.id || (!!option.alwaysOpen && opened)\"\n [submenuSelected]=\"activeSubmenuOption\"\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\n ></vector-sub-menus-list>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"footer side-menu-item\">\n <div class=\"icon-container\">\n <a>\n <img src=\"../../../../assets/icons/menu_footer_icon.svg\" (click)=\"openTermsOfUse()\" class=\"menu-icon\" />\n </a>\n </div>\n <span class=\"menu-label footer-content\">\n <span> Veja nosso <a (click)=\"openTermsOfUse()\">Termo de uso</a> </span>\n <span>e <a (click)=\"openTermsOfUse()\">Política de privacidade</a></span>\n </span>\n </div>\n</nav>\n","import { NgModule } from '@angular/core';\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],\n})\nexport class MenuModule {}\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-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, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { 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\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\n public vectorFirstName: any;\n public currentAccount: any = {};\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 ) {}\n\n ngOnInit(): void {\n this.subscription.add(\n this.profileService.profileFirstName$.subscribe((value) => {\n this.vectorFirstName = value;\n })\n );\n\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 this.currentAccount = account;\n if (this.currentAccount) {\n const str = `${this.currentAccount.accountNumber}`;\n const len = str.length;\n const accountWithHyfen = str.substring(0, len - 1) + '-' + str.substring(len - 1);\n this.currentAccount.accountNumber = accountWithHyfen;\n }\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 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 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 <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\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 <ng-container>\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 </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\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</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\" styleClass=\"background-white\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\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 <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\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 </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (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 <li *ngIf=\"fintech\" (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 <li *ngIf=\"showProfile\" (click)=\"goToProfile(); menu.hide()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-user\"></i></span>\n <span>Perfil</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"user-menu-icon\"><i class=\"fas fa-sign-out-alt\"></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 <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\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 <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 } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { catchError, filter, switchMap, take, tap } from 'rxjs/operators';\nimport { ENVIRONMENT } from '../injections';\nimport { 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 ) {}\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const isExternalUrl = request.headers.get('external-url');\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 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 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","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","i1.StorageService","i5.SubMenusListComponent","i1.AuthService","i3.NotificationsService","i7","i8.FormatDocumentPipe","i9.UnreadNotificationsPipe","i10"],"mappings":"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"}
1
+ {"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/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/storage.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/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.component.ts","../../../projects/ngx-vector-components/src/lib/components/menu/menu.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 {\r\n PORTAL = 'PORTAL',\r\n FINTECH = 'FINTECH',\r\n MARKETPLACE = 'MARKETPLACE',\r\n LOGTECH = 'LOGTECH',\r\n SURVEY = 'SURVEY',\r\n PRODUCER_PORTAL = 'PRODUCER_PORTAL',\r\n}\r\n","export enum BooleanType {\r\n YES = 'YES',\r\n NO = 'NO',\r\n}\r\n","export class CrudHistory<T> {\r\n auditId?: number;\r\n dataAuditDelta?: DataAuditDelta[];\r\n dateTime?: Date;\r\n entityType?: number;\r\n eventType?: string;\r\n modifierName?: string;\r\n typeOfModification?: string;\r\n modifiedFromWeb?: boolean;\r\n}\r\n\r\nexport type DataAuditDelta = {\r\n fieldName?: string;\r\n newValue?: string;\r\n oldValue?: string;\r\n type?: number | string;\r\n typeDescription?: string;\r\n};\r\n","export enum CrudMode {\r\n NEW,\r\n EDIT,\r\n VIEW,\r\n}\r\n","import { MenuItem } from 'primeng/api';\r\nimport { ListItem } from './list-item.model';\r\nimport { Status } from './status.enum';\r\n\r\nexport type DataTableBaseItem = {\r\n actions?: MenuItem[];\r\n};\r\n\r\nexport enum TableColumnType {\r\n TEXT = 'TEXT',\r\n BOOLEAN = 'BOOLEAN',\r\n DATE = 'DATE',\r\n DATETIME = 'DATETIME',\r\n ENUM = 'ENUM',\r\n STATUS_BADGE = 'STATUS_BADGE',\r\n ACTIVE_BOOLEAN_BADGE = 'ACTIVE_BOOLEAN_BADGE',\r\n BUTTON = 'BUTTON',\r\n CUSTOM_STYLE = 'CUSTOM_STYLE',\r\n MASK = 'MASK',\r\n TEXT_BADGE = 'TEXT_BADGE',\r\n STACK_BADGE = 'STACK_BADGE',\r\n CURRENCY = 'CURRENCY',\r\n SCORE = 'SCORE',\r\n}\r\n\r\nexport type TableColumn = {\r\n header: string;\r\n field: string;\r\n width?: string;\r\n type?: TableColumnType;\r\n textFieldClass?: string;\r\n getEnumTranslated?: (enumVal: any) => string;\r\n getStatus?: (value: any) => Status;\r\n clickFunction?: Function;\r\n icon?: string | ((rowData: any) => string);\r\n notSortable?: boolean;\r\n mask?: string;\r\n currencyType?: 'USD' | 'BRL';\r\n hidden?: boolean;\r\n cellEdit?: CellEditConfig;\r\n};\r\n\r\nexport type CellEditConfig = {\r\n editType?: 'number' | 'text';\r\n editMin?: number;\r\n editMax?: number;\r\n editSuffix?: string;\r\n editMaxFractionDigits?: number;\r\n};\r\n\r\nexport type DataTableLazyLoadEvent = {\r\n start: number;\r\n length: number;\r\n draw: number;\r\n page: number;\r\n order: { column: number; dir: 'asc' | 'desc' }[];\r\n columns: {\r\n data: string;\r\n name: string;\r\n orderable: boolean;\r\n search: { value: string; regex: boolean };\r\n searchable: boolean;\r\n }[];\r\n search: { value: string; regex: boolean };\r\n tab: ListItem;\r\n};\r\n\r\nexport enum SelectionType {\r\n CHECKBOX = 'checkbox',\r\n RADIOBUTTON = 'radiobutton',\r\n}\r\n","export enum DocumentType {\r\n CPF,\r\n CNPJ,\r\n}\r\n","export enum MessageStatus {\r\n SUCCESS = 'success',\r\n INFO = 'info',\r\n WARN = 'warn',\r\n ERROR = 'error',\r\n}\r\n","import { DataTableBaseItem } from './data-table.model';\r\n\r\nexport type Profile = {\r\n id: number;\r\n name: string;\r\n profileTypeId: number;\r\n ProfileTypeName: string;\r\n modules: ProfileModule[];\r\n active: boolean;\r\n} & DataTableBaseItem;\r\n\r\nexport enum ProfileTypeEnum {\r\n SHIPPER = 1,\r\n SUPER_USER,\r\n CARRIER,\r\n DRIVER,\r\n SHIPPER_INTEGRATION,\r\n BATCHES,\r\n SUPPLIER,\r\n}\r\n\r\nexport type ProfileModule = {\r\n menu: string;\r\n actions: ProfileModuleAction[];\r\n} & ProfileModuleBase;\r\n\r\nexport type ProfileModuleGroupedByMenu = {\r\n menu: string;\r\n modules: ProfileModule[];\r\n children?: ProfileModuleGroupedByMenu[];\r\n};\r\n\r\nexport type ProfileModuleAction = {} & ProfileModuleBase;\r\n\r\nexport type ProfileModuleBase = {\r\n id: number;\r\n name: string;\r\n isAvailable?: boolean;\r\n};\r\n\r\nexport enum ProfileModuleType {\r\n OPERATIONAL_EVALUATION = 'OperationalEvaluation',\r\n ADMIN_SURVEYS = 'AdminSurveys',\r\n DIGITAL_DISCHARGE = 'Quitação Digital',\r\n REGISTER_OPERATION = 'RegisterOperation',\r\n REGISTER_PRODUCTS = 'RegisterProduct',\r\n ADMIN_NPS = 'NPS',\r\n COCKPIT = 'Cockpit',\r\n VALIDATIONS_CARGO_MATCH = 'ValidationsCargoMatch',\r\n PAYMENT_FREIGHT = 'Pagamento De Frete',\r\n FREIGHT_ADJUST = 'FreightAdjust',\r\n PUBLISH_FREIGHT = 'PublishFreight',\r\n APPROVE_FREIGHT = 'ApproveFreight',\r\n REGISTER_JUSTICATIVE = 'RegisterJustificative',\r\n BANK_EXTERNAL = 'BancoExterno',\r\n PAYMENT_DASHBOARD = 'PaymentDashboard',\r\n PAYMENT_SCHEDULING = 'Agendamento De Pagamento',\r\n DICHARGE_CONTROL_PANEL = 'DischargeControlPanel',\r\n CARD_CONTROL = 'Cartão digital',\r\n VECTOR_PAY_STATEMENT = 'VectorPayStatement',\r\n BUNGE_REFUND = 'BungeEstorno',\r\n FINTECH_ADMIN = 'Financeiro',\r\n FOB_REPORT = 'FOB Report',\r\n POWER_BI = 'PowerBi',\r\n TRACKER_REPORT = 'TrackerReport',\r\n OPERATIONAL_REPORT = 'OperationalReport',\r\n BI_ADMIN = 'BiAdmin',\r\n RELATORIO = 'Relatorio',\r\n VIAGEM_AMIGA = 'Viagem Amiga',\r\n GDV = 'GDV',\r\n OBSERVACOES = 'Observações',\r\n LOADING_FRONTS = 'Loading Fronts',\r\n LOAD_AND_UNLOAD = 'Load and Unload',\r\n SUPPLIER = 'Supplier',\r\n DRIVERS = 'Drivers',\r\n VEHICLES = 'Vehicles',\r\n PROFILES = 'Profiles',\r\n CARRIERS = 'Carriers',\r\n LOCATION = 'Location',\r\n GROUPS = 'Groups',\r\n CONTRATOS_HAZMAT = 'Contratos hazmat',\r\n ROTAS_HAZMAT = 'Rotas hazmat',\r\n GEOCERCAS_HAZMAT = 'Geocercas hazmat',\r\n BLOCK_HAZMAT = 'Block hazmat',\r\n TRANSPORTADORA_DIGITAL = 'Transportadora Digital',\r\n GENERAL_PANEL = 'GeneralPanel',\r\n MONITORING_ETCD = 'MonitoringETCD',\r\n REGISTER_PARAMETERS = 'RegisterParameters',\r\n GENERAL_PARAMETERS = 'GeneralParameters',\r\n PRODUCT_PARAMETERS = 'ProductParameters',\r\n TELEMETRIA = 'Telemetria',\r\n CUSTOMIZATIONS = 'Customizations',\r\n PAYMENT_GREATER_FREIGHT = 'PaymentGreaterFreight',\r\n RELEASE_PAYMENT_FREIGHT = 'ReleasePaymentFreight',\r\n APPROVE_RELEASE_PAYMENT_FREIGHT = 'ApproveReleasePaymentFreight',\r\n RELEASE_ADVANCE_FREIGHT = 'ReleaseAdvanceFreight',\r\n RELEASE_ADVANCE_FREIGHT_PAYMENT = 'ReleaseAdvanceFreightPayment',\r\n BANK_S3 = 'BankS3',\r\n BREAK_ALLOWANCE_MODULE = 'Solicitação de Abono',\r\n COURTYARD_MANAGEMENT = 'Courtyard Management',\r\n DOCK_BUILDINGS = 'Dock Buildings',\r\n S3_BANK_RETURN = 'S3BankReturn',\r\n MONITORING_PANEL_ETCD = 'MonitoringPanelETCD',\r\n BOARD = 'Board',\r\n OCURRENCES = 'Ocurrences',\r\n EVENTS = 'Events',\r\n LOG_ERROR_ACCEPT_TRIP = 'LogErrorAcceptTrip',\r\n PRODUCTS = 'Products',\r\n LOCATION_GROUP = 'Location Group',\r\n SOLICITACOES = 'Solicitações',\r\n SOLICITACOES_ETCD = 'Solicitações ETCD',\r\n CARD_DELIVERY_TOLL_CARD = 'Card Delivery Toll Card',\r\n CREDIT_MANAGEMENT = 'CreditManagement',\r\n FINTECH_BANK = 'Fintech Bank',\r\n BLOCK = 'Block',\r\n USER = 'User',\r\n TRIPS = 'Trips',\r\n PAINEL = 'Painel',\r\n SHOW_DRIVERS_MAP_BY_LAT_LNG = 'ShowDriversMapByLatLng',\r\n VECTOR_CLUB = 'Vector Club',\r\n BROADCAST_MANAGEMENT = 'BroadcastManagement',\r\n LOTS = 'Lots',\r\n POOL_OFFERTS = 'PoolOfferts',\r\n SHOW_APPROVAL_AUTHORITY = 'ShowApprovalAuthority',\r\n GESTAO_DE_PEDAGIO = 'Gestão de Pedagio',\r\n VECTOR_PAY = 'VectorPay',\r\n BROADCAST_WAVES = 'BroadcastWaves',\r\n MENSAGENS = 'Mensagens',\r\n TEX = 'TEX',\r\n ANTECIPACAO_DE_RECEBIVEIS = 'Antecipação de recebíveis',\r\n VEHICLE_CONFIGURATION = 'VehicleConfiguration',\r\n SHIPPERS_VEHICLE_CONFIGURATIONS = 'ShippersVehicleConfigurations',\r\n MINIMUM_FREIGHT_FLOOR = 'MinimumFreightFloor',\r\n REGISTRATION_VALIDATION = 'RegistrationValidation',\r\n B3 = 'B3',\r\n ETCD_PARAMETERS = 'ETCDParameters',\r\n CHECKLIST = 'Checklist',\r\n MARKETPLACE = 'Marketplace',\r\n FINTECH = 'Fintech',\r\n SHIPPER = 'shipper',\r\n NEWS = 'News',\r\n TRIP_OFFERS = 'TripOffers',\r\n IMPORT_DATA = 'ImportData',\r\n ROUTES = 'Routes',\r\n GEOFENCE_PARAMETERS = 'GeofenceParameters',\r\n MOVIMENTATION_HISTORIC = 'MovimentationHistoric',\r\n MESSAGE_CUSTOM = 'Message Custom',\r\n TRAINING = 'Training',\r\n TOMADA_DE_PRECO = 'Tomada de preço',\r\n RISK_MANAGEMENT = 'Risk Management',\r\n GR_MANAGEMENT = 'Gr Management',\r\n BC_CORREIOS = 'BC Correios',\r\n FREIGHT_AGENT_REPORT = 'FreightAgentReport',\r\n TAX_INCOMING = 'ImpostoDeRenda',\r\n CHATBOT = 'Chatbot',\r\n BLOCK_CARRIER = 'Block Carrier',\r\n}\r\n\r\nexport enum ProfileModuleActionType {\r\n ADD_VEHICLE = 'Add Vehicle',\r\n EDIT_VEHICLE = 'Edit Vehicle',\r\n DELETE_VEHICLE = 'Delete Vehicle',\r\n SHOW_VEHICLE = 'Show Vehicle',\r\n ADD_DRIVER = 'Add Driver',\r\n EDIT_DRIVER = 'Edit Driver',\r\n DELETE_DRIVER = 'Delete Driver',\r\n SHOW_DRIVER = 'Show Driver',\r\n SHOW_DRIVER_NEW = 'Show Driver New',\r\n ADD_CARRIER = 'Add Carrier',\r\n DOCUMENTAL_HAZMAT = 'Documental Hazmat',\r\n EDIT_CARRIER = 'Edit Carrier',\r\n DELETE_CARRIER = 'Delete Carrier',\r\n SHOW_CARRIER = 'Show Carrier',\r\n SHOW_CARRIER_PREPEX = 'Show Carrier Prepex',\r\n ADD_CARRIER_PREPEX = 'Add Carrier Prepex',\r\n EDIT_CARRIER_PREPEX = 'Edit Carrier Prepex',\r\n SHOW_ACCREDITED = 'Show Accredited',\r\n ADD_PROFILE = 'Add Profile',\r\n EDIT_PROFILE = 'Edit Profile',\r\n DELETE_PROFILE = 'Delete Profile',\r\n SHOW_PROFILE = 'Show Profile',\r\n EDIT_BROADCAST_VALUES = 'Edit Broadcast Values',\r\n ADD_WAVE = 'Add Wave',\r\n EDIT_WAVE = 'Edit Wave',\r\n SHOW_WAVE = 'Show Wave',\r\n HISTORICAL_CHANGES_VEHICLE = 'Historical Changes Vehicle',\r\n HISTORICAL_CHANGES_DRIVER = 'Historical Changes Driver',\r\n HISTORICAL_CHANGES_CARRIER = 'Historical Changes Carrier',\r\n HISTORICAL_CHANGES_TRIP = 'Historical Changes Trip',\r\n HISTORICAL_CHANGES_USER = 'Historical Changes User',\r\n CANCEL_TRIPS = 'Cancel Trips',\r\n CANCEL_TRIPSPA = 'Cancel Trips PA',\r\n MANUAL_UPLOAD_DOCUMENTS = 'Manual Upload Documents',\r\n HISTORICAL_CHANGES_LOTS = 'Historical Changes Lots',\r\n ADD_LOCATION = 'Add Location',\r\n EDIT_LOCATION = 'Edit Location',\r\n SHOW_LOCATION = 'Show Location',\r\n SHOW_DISCOUNT_SPLIT = 'Show Discount Split',\r\n EDIT_DISCOUNT_SPLIT = 'Edit Discount Split',\r\n ADD_RESTRICTIONS = 'Add Restrictions',\r\n EDIT_RESTRICTIONS = 'Edit Restrictions',\r\n SHOW_RESTRICTIONS = 'Show Restrictions',\r\n DELETE_RESTRICTIONS = 'Delete Restrictions',\r\n DELETE_LOCATION = 'Delete Location',\r\n SHOW_MESSAGES = 'Show Messages',\r\n EDIT_MESSAGES = 'Edit Messages',\r\n DELETE_MESSAGES = 'Delete Messages',\r\n ADD_MESSAGES = 'Add Messages',\r\n ADD_LOT = 'Add Lot',\r\n EDIT_LOT = 'Edit Lot',\r\n DELETE_LOT = 'Delete Lot',\r\n SHOW_LOT = 'Show Lot',\r\n ACCEPT_CREDIT = 'Accept Credit',\r\n SHOW_CREDIT = 'Show Credit',\r\n ADD_VEHICLE_CONFIGURATION = 'Add Vehicle Configuration',\r\n EDIT_VEHICLE_CONFIGURATION = 'Edit Vehicle Configuration',\r\n SHOW_VEHICLE_CONFIGURATION = 'Show Vehicle Configuration',\r\n ADD_SCHEDULING = 'Add Scheduling',\r\n EDIT_SCHEDULING = 'Edit Scheduling',\r\n DELETE_SCHEDULING = 'Delete Scheduling',\r\n ADD_VEHICLE_CONFIGURATION_SHIPPER = 'Add Vehicle Configuration Shipper',\r\n EDIT_VEHICLE_CONFIGURATION_SHIPPER = 'Edit Vehicle Configuration Shipper',\r\n SHOW_VEHICLE_CONFIGURATION_SHIPPER = 'Show Vehicle Configuration Shipper',\r\n EDIT_TRIP_BUNGE = 'Edit trip Bunge',\r\n EDIT_TRIP_COFCO = 'Edit trip Cofco',\r\n SHOW_MINIMUM_TRANSPORT_PRICE_TABLE = 'Show Minimum Transport Price Table',\r\n EDIT_MINIMUM_TRANSPORT_PRICE_TABLE = 'Edit Minimum Transport Price Table',\r\n HISTORICAL_CHANGES_CREDITS = 'Historical Changes Credits',\r\n INTEGRAÇÃO_PAGBEM = 'Integração Pagbem',\r\n VALIDATION_CARRIER = 'Validation Carrier',\r\n VALIDATION_DRIVER = 'Validation Driver',\r\n VALIDATION_VEHICLE = 'Validation Vehicle',\r\n EDIT_TRIP_STATUS = 'Edit trip status',\r\n REGISTRATION_VALIDATION = 'Registration Validation',\r\n B3_OPERATION = 'B3 Operation',\r\n SHOW_CARRIER_DETAIL_INTEGRATION = 'Show Carrier Detail Integration',\r\n SHOW_DRIVER_DETAIL_INTEGRATION = 'Show Driver Detail Integration',\r\n FUELS_SHOW_DISTRIBUTION_CENTER = 'Fuels show distribution center',\r\n FUELS_ADD_DISTRIBUTION_CENTER = 'Fuels add distribution center',\r\n FUELS_EDIT_DISTRIBUTION_CENTER = 'Fuels edit distribution center',\r\n FUELS_DELETE_DISTRIBUTION_CENTER = 'Fuels delete distribution center',\r\n FUELS_SHOW_DISTRIBUTION_POINT = 'Fuels show distribution point',\r\n FUELS_ADD_DISTRIBUTION_POINT = 'Fuels add distribution point',\r\n FUELS_EDIT_DISTRIBUTION_POINT = 'Fuels edit distribution point',\r\n FUELS_DELETE_DISTRIBUTION_POINT = 'Fuels delete distribution point',\r\n FUELS_SHOW_DISTRIBUTION_POST = 'Fuels show distribution post',\r\n FUELS_ADD_DISTRIBUTION_POST = 'Fuels add distribution post',\r\n FUELS_EDIT_DISTRIBUTION_POST = 'Fuels edit distribution post',\r\n FUELS_DELETE_DISTRIBUTION_POST = 'Fuels delete distribution post',\r\n FUELS_SHOW_MARKETPLACE_PRODUCT = 'Fuels show marketplace product',\r\n FUELS_ADD_MARKETPLACE_PRODUCT = 'Fuels add marketplace product',\r\n FUELS_EDIT_MARKETPLACE_PRODUCT = 'Fuels edit marketplace product',\r\n FUELS_DELETE_MARKETPLACE_PRODUCT = 'Fuels delete marketplace product',\r\n FUELS_SHOW_STOCK_UPDATE = 'Fuels show stock update',\r\n FUELS_ADD_STOCK_UPDATE = 'Fuels add stock update',\r\n SHOW_MARKETPLACES = 'Show marketplaces',\r\n FUELS_SHOW_DEPOSIT = 'Fuels show deposit',\r\n FUELS_ADD_DEPOSIT = 'Fuels add deposit',\r\n FUELS_EDIT_DEPOSIT = 'Fuels edit deposit',\r\n FUELS_DELETE_DEPOSIT = 'Fuels delete deposit',\r\n FUELS_SHOW_SUPPLY_OFFER = 'Fuels show supply offer',\r\n FUELS_ADD_SUPPLY_OFFER = 'Fuels add supply offer',\r\n FUELS_EDIT_SUPPLY_OFFER = 'Fuels edit supply offer',\r\n FUELS_SHOW_OPERATOR = 'Fuels show operator',\r\n FUELS_ADD_OPERATOR = 'Fuels add operator',\r\n FUELS_EDIT_OPERATOR = 'Fuels edit operator',\r\n FUELS_DELETE_OPERATOR = 'Fuels delete operator',\r\n FINTECH_BANK_ADMIN = 'Fintech Bank Admin',\r\n FINTECH_BANK_USER = 'Fintech Bank User',\r\n FINTECH_PIX_PAYMENT_REVERSAL = 'Pix Payment Reversal',\r\n FINTECH_CREDIT_ADMIN = 'Fintech Credit Admin',\r\n FINTECH_CREDIT_USER = 'Fintech Credit User',\r\n FINTECH_BANK_ADMIN_ACCOUNTS_VIEW = 'Fintech Bank Admin - Accounts View',\r\n FINTECH_CREDIT_ADMIN_PROPOSAL_NOT_CONFIRMED = 'Fintech Credit Admin - Proposal Not Confirmed',\r\n FINTECH_CREDIT_ADMIN_CONTRACTS_FOLLOW_UP = 'Fintech Credit Admin - Contracts Follow-Up',\r\n ADMIN_MARKEPLACE = 'Admin Markeplace',\r\n APPROVE_REQUEST = 'Approve Request',\r\n REPROVE_REQUEST = 'Reprove Request',\r\n SHOW_REQUEST = 'Show Request',\r\n SHOW_USER = 'Show User',\r\n ADD_USER = 'Add User',\r\n EDIT_USER = 'Edit User',\r\n DELETE_USER = 'Delete User',\r\n ADD_REGION = 'Add Region',\r\n SHOW_REGION = 'Show Region',\r\n EDIT_REGION = 'Edit Region',\r\n ADD_LOCATION_SHIPPER = 'Add LocationShipper',\r\n EDIT_LOCATION_SHIPPER = 'Edit LocationShipper',\r\n SHOW_LOCATION_SHIPPER = 'Show LocationShipper',\r\n DELETE_LOCATION_SHIPPER = 'Delete LocationShipper',\r\n ADD_SCHEDULE = 'Add Schedule',\r\n EDIT_SCHEDULE = 'Edit Schedule',\r\n SHOW_SCHEDULE = 'Show Schedule',\r\n ADD_VACANCIES_LOGISTIC = 'Add Vacancies Logistic',\r\n ADD_VACANCIES_COMMERCIAL = 'Add Vacancies Commercial',\r\n SHOW_VACANCIES_COMPLETE = 'Show Vacancies Complete',\r\n ADD_SCHEDULE_OFF = 'Add Schedule Off',\r\n SHOW_NEWS = 'Show News',\r\n ADD_NEWS = 'Add News',\r\n EDIT_NEWS = 'Edit News',\r\n DELETE_NEWS = 'Delete News',\r\n HISTORICAL_CHANGES_NEWS = 'Historical Changes News',\r\n ADD_DISTRIBUTION_CENTER_COMPANY_CREDIT = 'Add DistributionCentersCompanyCredit',\r\n EDIT_DISTRIBUTION_CENTER_COMPANY_CREDIT = 'Edit DistributionCentersCompanyCredit',\r\n SHOW_DISTRIBUTION_CENTER_COMPANY_CREDIT = 'Show DistributionCentersCompanyCredit',\r\n DELETE_DISTRIBUTION_CENTER_COMPANY_CREDIT = 'Delete DistributionCentersCompanyCredit',\r\n ADD_DISTRIBUTION_CENTER_COMPANY_CREDIT_UNIT = 'Add DistributionCentersCompanyUnitCredit',\r\n EDIT_DISTRIBUTION_CENTER_COMPANY_CREDIT_UNIT = 'Edit DistributionCentersCompanyUnitCredit',\r\n SHOW_DISTRIBUTION_CENTER_COMPANY_CREDIT_UNIT = 'Show DistributionCentersCompanyUnitCredit',\r\n DELETE_DISTRIBUTION_CENTER_COMPANY_CREDIT_UNIT = 'Delete DistributionCentersCompanyUnitCredit',\r\n APPROVE_VECTOR = 'ApproveVector',\r\n APPROVE_ETCD = 'ApproveETCD',\r\n APPROVE_CARRIER = 'ApproveEmbarcador',\r\n DELETE_PARAMETERS_ETCD = 'Delete Parameters',\r\n SHOW_RECEPTION_PRODUCT = 'Show Reception Product',\r\n EDIT_RECEPTION_PRODUCT = 'Edit Reception Product',\r\n DELETE_RECEPTION_PRODUCT = 'Delete Reception Product',\r\n ADD_RECEPTION_PRODUCT = 'Add Reception Product',\r\n SHOW_DIGITAL_DISCHARGE = 'Show Digital Discharge',\r\n SHOW_DIGITAL_DISCHARGE_FILES = 'Show Digital Discharge Files',\r\n SHOW_DIGITAL_TRANSPORTATION = 'Show Digital Transportation',\r\n FULL_ACCESS_DIGITAL_DISCHARGE = 'Full Acess Digital Discharge',\r\n SHOW_ETCD = 'Show ETCD',\r\n EDIT_ETCD = 'Edit ETCD',\r\n DELETE_ETCD = 'Delete ETCD',\r\n ADD_ETCD = 'Add ETCD',\r\n SHOW_REGIONAL_ETCD = 'Show Regional ETCD',\r\n SHOW_VIRTUAL_BRANCH = 'Show Virtual Branch',\r\n EDIT_VIRTUAL_BRANCH = 'Edit Virtual Branch',\r\n ADD_VIRTUAL_BRANCH = 'Add Virtual Branch',\r\n DELETE_VIRTUAL_BRANCH = 'Delete Virtual Branch',\r\n SHOW_PHYSICAL_BRANCH = 'Show Physical Branch',\r\n EDIT_PHYSICAL_BRANCH = 'Edit Physical Branch',\r\n ADD_PHYSICAL_BRANCH = 'Add Physical Branch',\r\n DELETE_PHYSICAL_BRANCH = 'Delete Physical Branch',\r\n SHOW_FISCAL_BRANCH = 'Show Fiscal Branch',\r\n EDIT_FISCAL_BRANCH = 'Edit Fiscal Branch',\r\n ADD_FISCAL_BRANCH = 'Add Fiscal Branch',\r\n DELETE_FISCAL_BRANCH = 'Delete Fiscal Branch',\r\n SHOW_MONITORING_ETCD = 'Show Monitoring ETCD',\r\n ADD_PRODUCT_ETCD = 'Add Product ETCD',\r\n EDIT_PRODUCT_ETCD = 'Edit Product ETCD',\r\n SHOW_PRODUCT_ETCD = 'Show Product ETCD',\r\n DELETE_PRODUCT_ETCD = 'Delete Product ETCD',\r\n ADD_PARAMETERS_ETCD = 'Add Parameters ETCD',\r\n EDIT_PARAMETERS_ETCD = 'Edit Parameters ETCD',\r\n SHOW_PARAMETERS_ETCD = 'Show Parameters ETCD',\r\n ADD_FREIGHT_ETCD = 'Add Freight ETCD',\r\n SHOW_FREIGHT_ETCD = 'Show Freight ETCD',\r\n APPROVE_ADJUSMENT_ETCD = 'Approve Adjusment ETCD',\r\n REPROVE_ADJUSMENT_ETCD = 'Reprove Adjusment ETCD',\r\n ADD_JUSTIFICATIVE_ETCD = 'Add Justificative ETCD',\r\n EDIT_JUSTIFICATIVE_ETCD = 'Edit Justificative ETCD',\r\n DELETE_JUSTIFICATIVE_ETCD = 'Delete Justificative ETCD',\r\n APPROVE_RELEASE_ETCD = 'Approve Release ETCD',\r\n REPROVE_RELEASE_ETCD = 'Reprove Release ETCD',\r\n SHOW_ADVANCE_ETCD = 'Show Advance ETCD',\r\n APPROVE_REQUESTS_ETCD = 'Approve Requests ETCD',\r\n SHOW_SUPPLY = 'Show Supply',\r\n APPROVE_DISCHARGE_PAYMENT = 'Aprovar quitacao',\r\n APPROVE_ADVANCE_PAYMENT = 'Aprovar adiantamento',\r\n APPROVE_ENGINE_PAYMENT = 'Aprovar motor de pagamento',\r\n EXTRACT_THIRD = 'Extrato terceiro',\r\n HISTORICAL_CHANGES_GROUPS = 'HistoricalChangesGroups',\r\n DELETE_ONLY_MEMBER_GROUPS = 'Delete Only Member Groups',\r\n ADD_ONLY_MEMBER_GROUPS = 'Add Only Member Groups',\r\n SHOW_GROUPS = 'Show Groups',\r\n DELETE_GROUPS = 'Delete Groups',\r\n EDIT_GROUPS = 'Edit Groups',\r\n ADD_GROUPS = 'Add Groups',\r\n ADD_UPDATE_GEOFENCE = 'Add Update Geofence',\r\n SHOW_GEOFENCE = 'Show Geofence',\r\n SHOW_GEOFENCE_LOG = 'Show Geofence Log',\r\n HISTORICAL_CHANGES_GEOFENCE = 'Historical Changes Geofence',\r\n SHOW_DRIVER_LOG = 'Show Driver Log',\r\n UPDATE_CHECKIN_CHECKOUT = 'Update CheckIn CheckOut',\r\n AUTOMATIC_CHECKIN = 'Automatic CheckIn',\r\n SHOW_FILTERS_MONTHLY_RECEPTION = 'Show Filters Monthly Reception',\r\n VIEW_ROUTE_TRIP = 'View Route Trip',\r\n SHOW_ROUTE = 'Show Route',\r\n EDIT_ROUTE = 'Edit Route',\r\n SHOW_RISK_MANAGEMENT = 'Show Risk Management',\r\n ADD_RISK_MANAGEMENT = 'Add Risk Management',\r\n EDIT_RISK_MANAGEMENT = 'Edit Risk Management',\r\n DELETE_RISK_MANAGEMENT = 'Delete Risk Management',\r\n DIGITAL_DISCHARGE_BASIC_DATA = 'Quitacao Digital Basic Data',\r\n DIGITAL_DISCHARGE_ETCD_APPROVER = 'Quitacao Digital ETCD Aprovador',\r\n DIGITAL_DISCHARGE_ETCD_APPROVER_MANAGEMENT = 'Quitacao Digital ETCD Aprovador Gestor',\r\n DIGITAL_DISCHARGE_VECTOR_APPROVER = 'Quitacao Digital Vector Aprovador',\r\n DIGITAL_DISCHARGE_VECTOR_APPROVER_MANAGEMENT = 'Quitacao Digital Vector Aprovador Gestor',\r\n DIGITAL_DISCHARGE_APPROVE_SAP = 'Quitacao Digital Aprovador Contingencia Sap',\r\n PAYMENT_FREIGHT_ADJUST_FREIGHT_VALUE = 'Pagamento Frete Ajustar Valor Frete',\r\n SHOW_MESSAGE_CUSTOM = 'Show Messages Custom',\r\n DELETE_MESSAGE_CUSTOM = 'Delete Messages Custom',\r\n ADD_MESSAGE_CUSTOM = 'Add Messages Custom',\r\n EDIT_MESSAGE_CUSTOM = 'Edit Messages Custom',\r\n RECEPTION_WITHOUT_SCHEDULING = 'Reception Without Scheduling',\r\n BANK_EDIT = 'Edit',\r\n BANK_REGISTER_FULL = 'Cadastro Full',\r\n SEARCH_CALENDAR_FULL = 'Pesquisar Agenda Full',\r\n SHOW_MOVEMENT_ETCD = 'Show Movement Etcd',\r\n CREATE_AND_EDIT_NPS = 'Create and edit NPS',\r\n READ_NPS_INFORMATION = 'Read NPS information',\r\n TEX_ONBOARDING_TRACKING = 'OnboardingTracking',\r\n TEX_CARRIER_ASSOCIATION_TRACKING = 'Carrier Association Tracking',\r\n BIDDING_PARAMETERS = 'Bidding Parameters',\r\n DRIVER_SCORE_METRICS_ADMIN = 'Driver Score Metrics Admin',\r\n SHOW_DOCK_BUILDING = 'Show Dock Building',\r\n ADD_DOCK_BUILDING = 'Add Dock Building',\r\n EDIT_DOCK_BUILDING = 'Edit Dock Building',\r\n EDIT_DOCK = 'Edit Dock',\r\n FRIENDLY_TRIP = 'Friendly Trip',\r\n CANCEL_FRIENDLY_TRIP = 'Cancelar Viagem Amiga',\r\n SHOW_FRIENDLY_TRIP = 'Visualizar Viagem Amiga',\r\n CREATE_FRIENDLY_TRIP = 'Solicitar Viagem Amiga',\r\n ADD_OBSERVATION = 'Add Observation',\r\n SHOW_OBSERVATION = 'Show Observation',\r\n EDIT_OBSERVATION = 'Edit Observation',\r\n DELETE_OBSERVATION = 'Delete Observation',\r\n CLASSIFIER_PARAMETERS_FRIENDLY_TRIP = 'Parâmetros de classificador',\r\n SCORE_REPORT_FRIENDLY_TRIP = 'Relatório de Pontuação',\r\n SEND_NFS_ETCD = 'Send NFs ETCD',\r\n SHOW_ANTECITABLE_RECEVEIBLES = 'Vizualizar antecipacao de recebiveis',\r\n SHOW_LOG_ANTECITABLE_RECEVEIBLES = 'Vizualizar log antecipacao de recebiveis',\r\n AUTOMATIC_DISCLOSURE_CONFIGURATIONS = 'Automatic Disclosure Configurations',\r\n SHOW_PAYMENT_SCHEDULING_DETAIL = 'Show Payment Scheduling Detail',\r\n SCHEDULE_UPDATE_CHECKIN_CHECKOUT = 'Schedule Update CheckIn CheckOut',\r\n SHOW_PARAMETERS_CANCEL_TRIPS = 'show Parameters Cancel Trips',\r\n EDIT_PARAMETERS_CANCEL_TRIPS = 'Edit Parameters Cancel Trips',\r\n SHOW_PARAMETERS_DIVULGATION_WEB = 'Show Parameters Divulgation Web',\r\n EDIT_PARAMETERS_DIVULGATION_WEB = 'Edit Parameters Divulgation Web',\r\n SHOW_PRICE_TAKING = 'Show PriceTaking',\r\n SHOWTABLE_PRICE_TAKING = 'ShowTable PriceTaking',\r\n SHOWTABLE_PRICE_TAKING_EXCEL = 'ShowTable PriceTakingExcel',\r\n SEND_OFFER_PRICE_TAKING = 'Send Offer PriceTaking',\r\n CHANGE_STATUS_PRICE_TAKING = 'Change Status PriceTaking',\r\n SHOWTABLE_PRICE_TAKING_HISTORY = 'ShowTable PriceTaking History',\r\n SAVE_PRICE_TAKING = 'Save PriceTaking',\r\n SHOW_SHIPPING_ORIGIN = 'Show Shipping Origin',\r\n SHOW_SHIPPING_COMBINED = 'Show Shipping Combined',\r\n SHOW_SHIPPING_CONTINUOUS = 'Show Shipping Continuous',\r\n SHOW_LOYALTY = 'Show Loyalty',\r\n SHOW_PAYMENT_PARAMETERS = 'Show Payment Parameters',\r\n COCKPIT_SUMMARY = 'Cockpit Summary',\r\n COCKPIT_REGISTRATION = 'Cockpit Registration',\r\n COCKPIT_BANK = 'Cockpit Bank',\r\n COCKPIT_CREDIT = 'Cockpit Credit',\r\n COCKPIT_PA = 'Cockpit PA',\r\n COCKPIT_LOG = 'Cockpit Log',\r\n CREATE_UPDATE_CARGO_MATCH_VALIDATIONS = 'Create Update Cargo Match Validations',\r\n SHOW_CARGO_MATCH_ETCD_VALIDATIONS = 'Show Cargo Match Etcd Validations',\r\n SHOW_CARGO_MATCH_ETCD_VALIDATIONS_HISTORY = 'Show Cargo Match Etcd Validations History',\r\n PARAMETERIZE_LOT_RANGE_GDV = 'Parameterize Lot Range',\r\n PERFORM_CHECKIN_CHECKOUT_GDV = 'Perform Checkin CheckOut.',\r\n UPLOAD_DOCUMENTS_GDV = 'Upload Documents',\r\n FIX_DOCUMENTS_GDV = 'Fix Documents',\r\n VALIDATE_DOCUMENT_UPLOAD_GDV = 'Validate Document Upload',\r\n REQUEST_CORRECTION_DOCUMENT_INFORMATION_GDV = 'Request correction of document information',\r\n UPLOAD_CTE_MDFE_GDV = 'Upload CTE MDFE',\r\n APPROVE_CANCELLATION_LOAD_ORDER_GDV = 'Approve cancellation of Load Order',\r\n SHOW_FREIGHT_SIMULATOR_ETCD = 'Show Freight Simulator Etcd',\r\n CREATE_UPDATE_FREIGHT_SIMULATOR_ETCD = 'Create Update Freight Simulator Etcd',\r\n APPROVE_REPROVE_ETCD_SIMULATION = 'Approve Reprove Etcd Simulation',\r\n ADVANCE_AND_DISCHARGE_PAYMENT = 'Advance and discharge payment',\r\n PAYMENT_ENGINE = 'Payment Engine',\r\n PAYMENT_STATEMENT = 'Payment Statement',\r\n EDIT_CARRIER_SUSTAINABLE = 'Edit Carrier Sustainable',\r\n SHOW_CARRIER_SUSTAINABLE = 'Show Carrier Sustainable',\r\n SHOW_ORDER_TRAKING = 'Show OrderTraking',\r\n SHOW_ORDER_TRAKING_EXCEL = 'Show OrderTrakingExcel',\r\n EDIT_ORDER_TRAKING_CONFIG = 'Edit OrderTrakingConfig',\r\n SEND_DOCUMENTS_TRIP_MANUAL = 'Send Documents Trip Manual',\r\n DELETE_DOCUMENTS_TRIP_MANUAL = 'Delete Documents Trip Manual',\r\n SEND_DOCUMENTS_CARGO_MANUAL = 'Send Documents Cargo Manual',\r\n ADD_POOLOFFERT = 'Add PoolOffert',\r\n DELETE_POOLOFFERT = 'Delete PoolOffert',\r\n SHOW_POOLOFFERT = 'Show PoolOffert',\r\n EDIT_POOLOFFERT = 'Edit PoolOffert',\r\n DOCUMENTARY_IRREGULARITY = 'documentaryIrregularity',\r\n DOCUMENTARY_IRREGULARITY_FULL_SEARCH = 'documentaryIrregularityFullSearch',\r\n BLOCK_USER_ACCESS = 'Block User Access',\r\n SHOW_DRIVER_DASHBOARD = 'Show Driver Dashboard',\r\n ENABLE_DISABLE_BROADCAST_GRID = 'Enabled-Disabled broadcast in grid',\r\n SHOW_BIDDING = 'Show Bidding',\r\n ADD_FREIGHT_RATE = 'Add Freight Rate',\r\n ADD_MANUAL_CARGO = 'Add Manual Cargo',\r\n EDIT_TRIP_OFFER = 'Trip Offer Edit',\r\n SHOW_TRIP_OFFER = 'Trip Offer Show',\r\n SHOW_PEND_SERVICES = 'Show Pend Services',\r\n SHOW_PEND_SERVICES_ONLY = 'Show Pend Services Only',\r\n CANCEL_TRIP_OFFER_CARGO_MATCH = 'Trip Offer Cargo Match Cancel',\r\n CREATE_EDIT_ETCD_MANUAL = 'Create Edit Etcd Manual',\r\n DUPLICATE_LOT = 'Duplicar Lote',\r\n ADD_LOT_NORMAL = 'Add Lot Normal',\r\n DUPLICATE_CARGO = 'Duplicar Carga',\r\n DISCLOSURE_IN_MASS = 'Disclosure En Masse',\r\n EDIT_BIDDING = 'Edit Bidding',\r\n SHOW_CHECKLIST_PARAMETER = 'Show Checklist Parameter',\r\n ADD_CHECKLIST_PARAMETER = 'Add Checklist Parameter',\r\n EDIT_CHECKLIST_PARAMETER = 'Edit Checklist Parameter',\r\n DELETE_CHECKLIST_PARAMETER = 'Delete Checklist Parameter',\r\n SHOW_CHECKLIST_PARAMETER_HISTORY = 'Show Checklist Parameter History',\r\n ADD_CHECKLIST_PARAMETER_TYPE = 'Add Checklist Parameter Type',\r\n ADD_MAIL_LOTS = 'Add Mails Lots',\r\n ADD_ROUTE = 'Add Route',\r\n ADD_CASH_ADVANCE = 'Add Cash Advance',\r\n ADD_HAS_TOLL = 'Add Has Toll',\r\n EDIT_FREIGHT_RATE = 'Edit Freight Rate',\r\n ADD_FREIGHT_RATE_SON = 'Add Freight Rate Son',\r\n EDIT_FREIGHT_RATE_SON = 'Edit Freight Rate Son',\r\n CHANGE_IS_POC = 'ChangeIsPOC',\r\n APPROVE_BIDDING_CLOSURE = 'Aprovar encerramento do Bidding',\r\n APPROVE_BIDDING_WITH_GREATER_VALUE = 'Aprovar Bidding com valor maior que o menor valor',\r\n VEHICLE_SHOW_SHIPPER_PETROBRAS = 'Vehicle Show Shipper Petrobras',\r\n DRIVER_SHOW_SHIPPER_PETROBRAS = 'Driver Show Shipper Petrobras',\r\n CARRIER_SHOW_SHIPPER_PETROBRAS = 'Carrier Show Shipper Petrobras',\r\n SHOW_CARRIER_DOCUMENTS = 'Show Carrier Documents',\r\n EDIT_CARRIER_DOCUMENTS = 'Edit Carrier Documents',\r\n CARRIER_VALIDATE_DOCUMENTS = 'Carrier Validate Documents',\r\n SHOW_VEHICLE_DOCUMENTS = 'Show Vehicle Documents',\r\n SAVE_VEHICLE_DOCUMENTS = 'Save Vehicle Documents',\r\n VEHICLE_VALIDATE_DOCUMENTS = 'Vehicle Validate Documents',\r\n SAVE_DRIVER_DOCUMENTS = 'Save Driver Documents',\r\n SHOW_DRIVER_DOCUMENTS = 'Show Driver Documents',\r\n DRIVER_VALIDATE_DOCUMENTS = 'Driver Validate Documents',\r\n ONLY_SHOW_PROFILE_PETROBRAS = 'Only Show Profile Petrobras',\r\n SHOW_PARAMETERS_CARRIER = 'Show Parameters Carrier',\r\n SAVE_CARRIERS_DOCUMENTS = 'Save Carriers Documents',\r\n APRV_Validation = 'APRV_Validation',\r\n SHOW_PLANNED_TRIPS = 'Show Planned Trips',\r\n ADD_PLANNED_TRIPS = 'Add Planned Trips',\r\n ADD_MONITORING_PLANNED_TRIPS = 'Add Monitoring Planned Trips',\r\n SHOW_MONITORING_PLANNED_TRIPS = 'Show Monitoring Planned Trips',\r\n SHOW_DRIVER_TRIP_INFO_DETAIL = 'Show Driver Trip Info Detail',\r\n MANUAL_CHECKLIST_APPLICATION = 'Manual Checklist Application',\r\n SUPPLIER_UPDATE_CHECKIN_CHECKOUT = 'Supplier Update CheckIn CheckOut',\r\n RETROACTIVE_STEP_ADVANCEMENT = 'Retroactive Show',\r\n EDIT_CONFIGURATION = 'Edit Configuration',\r\n DELETE_ROTOGRAM = 'Delete Rotogram',\r\n ADD_OBSERVATION_EVENT = 'Add Observation Event',\r\n APPROVED_EVENT = 'Approved Event',\r\n SHOW_ROUTE_PLANNED_TRIP = 'Show Route Planned Trip',\r\n NEW_ROUTE_PLANNED_TRIP = 'New Route Planned Trip',\r\n EDIT_ROUTE_PLANNED_TRIP = 'Edit Route Planned Trip',\r\n NEW_ROTOGRAM = 'New Rotogram',\r\n SHOW_ROTROGRAM = 'Show Rotogram',\r\n LOW_FUEL_STOCK_RECEPTION_PRODUCT = 'Low Fuel Stock Reception Product',\r\n SHOW_TELEMETRY_POINT = 'Show TelemetryPoints',\r\n ADD_BLOCK_HAZMAT = 'Add Block Hazmat',\r\n SHOW_BLOCK_HAZMAT = 'Show Block Hazmat',\r\n EDIT_BLOCK_HAZMAT = 'Edit Block Hazmat',\r\n CONFIGURE_APPROVAL_AUTHORITY = 'Configure Approval Authority',\r\n SHOW_APPROVAL_AUTHORITY_CONFIG = 'Show Approval Authority Config',\r\n BUY_VALE_PEDAGIO = 'Buy Vale Pedagio',\r\n CANCEL_VALE_PEDAGIO = 'Cancel Vale Pedagio',\r\n SHOW_INFO_VALE_PEDAGIO = 'Show Info Vale Pedagio',\r\n SHOW_ORDER_TRAKING_UNTIL_TRIP_EN = 'Show OrderTraking Until Trip EN',\r\n AUDIT_CHECKLIST = 'Audit CheckList',\r\n ADD_SURVEY_DRIVER = 'Add Survey Driver',\r\n SHOW_SURVEY_DRIVER = 'Show Survey Driver',\r\n EDIT_SURVEY_DRIVER = 'Edit Survey Driver',\r\n DELETE_SURVEY_DRIVER = 'Delete Survey Driver',\r\n SHOW_SHIPPING_FREIGHT = 'Show Shipping Freight',\r\n MANAGE_SHIPPING_FREIGHT = 'Manage Shipping Freight',\r\n UPDATE_TRAVEL_APPROVAL = 'Update Travel Approval',\r\n CONFIGURE_WAITING_LINES = 'Configure Waiting Lines',\r\n ADD_WAITING_LINES = 'Add Waiting Lines',\r\n SHOW_WAITING_LINES = 'Show Waiting Lines',\r\n CALL_DRIVER_WAITING_LINES = 'Call Driver Waiting Lines',\r\n MONITORING_HANDLE_EVENT = 'Monitoring Handle Event',\r\n MONITORING_JUSTIFY_EVENT = 'Monitoring Justify Event',\r\n APPROVE_POOL_BIDDING_CLOSURE = 'Aprovar Encerramento Pool Bidding',\r\n APPROVE_POOL_BIDDING_LESSER_VALUE = 'Aprovar Bidding Pool Com Valor Maior Que Menor Valor',\r\n SHOW_GR_VECTOR_PARAMETERS = 'Show GR Vector Parameters',\r\n ACTIVATE_OR_INACTIVATE_GR_PARAMETERS = 'Activate or Inactivate GR Parameters',\r\n UPDATE_GR_PARAMETERS = 'Update GR Parameters',\r\n CREATE_GR_VECTOR = 'Create GR Vector',\r\n APPROVE_OR_DISAPROVE_GR = 'Approve Or Disaprove Gr',\r\n SHOW_GR_VECTOR = 'Show GR Vector',\r\n ADD_DRIVER_MULTICARRIER = 'Add Driver MultiCarrier',\r\n ADD_VEHICLE_MULTICARRIER = 'Add Vehicle MultiCarrier',\r\n APPROVE_OR_DISAPPROVE_ANALYSIS = 'Approve Or Disapprove Analysis',\r\n VIEW_LOCATION_GROUP = 'View Location Group',\r\n CREATE_LOCATION_GROUP = 'Create Location Group',\r\n EDIT_LOCATION_GROUP = 'Edit Location Group',\r\n DEACTIVATE_LOCATION_GROUP = 'Deactivate Location Group',\r\n DELIVERY_TOLL_CARD = 'Delivery Toll Card',\r\n SHOW_TOLL_CARD = 'View Toll Card',\r\n EDIT_TOLL_CARD = 'Edit Toll Card',\r\n SENT_TO_SAP_SUPPLY = 'Sent To Sap Supply',\r\n SAVE_NFSAP_DOCUMENTS = 'Save NFSap Documents',\r\n SHOW_LOT_PARAMETER_SHIPPER = 'Show Lot Parameter Shipper',\r\n SAVE_LOT_PARAMETER_SHIPPER = 'Save Lot Parameter Shipper',\r\n SHOW_CARGO_PARAMETER_SHIPPER = 'Show Cargo Parameter Shipper',\r\n SAVE_CARGO_PARAMETER_SHIPPER = 'Save Cargo Parameter Shipper',\r\n SHOW_GENERAL_PARAMETERS = 'Show General Parameters',\r\n SHOW_DISTRIBUTION_OF_VACANCIES = 'Show Distribution Of Vacancies',\r\n SHOW_SCHEDULE_SCHEDULING_MANAGEMENT = 'Show Schedule Scheduling Management',\r\n SHOW_HISTORICAL_SCHEDULING_MANAGEMENT = 'Show Historical Scheduling Management',\r\n DELETE_SUPPLIER_SCHEDULING_MANAGEMENT = 'Delete Supplier Scheduling Management',\r\n EDIT_VECTOR_SHIFT_VACANCIES = 'Edit Vector Shift Vacancies',\r\n SHOW_ESTIMATED_TIME_TO_ARRIVE = 'Show Estimated Time To Arrive',\r\n EDIT_ESTIMATED_TIME_TO_ARRIVE = 'Edit Estimated Time To Arrive',\r\n SHOW_ETA_VECTOR = 'Show Eta Vector',\r\n SHOW_PROFILEUSER = 'Show ProfileUser',\r\n EDIT_PROFILEUSER = 'Edit ProfileUser',\r\n CREATE_PROFILEUSER = 'Create ProfileUser',\r\n ACTIVATE_PROFILEUSER = 'Activate ProfileUser',\r\n DEACTIVATE_PROFILEUSER = 'Deactivate ProfileUser',\r\n ADD_SUPPLY_MANUAL = 'Add Supply Manual',\r\n SHOW_ISS_PARAMS = 'Show Iss Param',\r\n SHOW_PGR_INSURANCE = 'Show PGR Insurance',\r\n ADD_PGR_CONTRACTS = 'Add PGR Contracts',\r\n DELETE_PGR_CONTRACTS = 'Delete PGR Contracts',\r\n ADD_PGR_RULES = 'Add PGR Rules',\r\n DELETE_PGR_RULES = 'Delete PGR Rules',\r\n ADD_PGR_CONFIGURATIONS = 'Add PGR Configurations',\r\n CREATE_ISS_PARAMS = 'Create Iss Param',\r\n EDIT_ISS_PARAMS = 'Edit Iss Param',\r\n DELETE_LOCATION_SHIFT_PRIORITY = 'Delete Location Shift Priority',\r\n ADD_LOCATION_SHIFT_PRIORITY = 'Add Location Shift Priority',\r\n SAVE_CLIENT_ORDER_TRACKING = 'Save Client Order Tracking',\r\n SHOW_CLIENT_ORDER_TRACKING = 'Show Client Order Tracking',\r\n SHOW_PARAMETER_ORDER_TRACKING = 'Show Parameter Order Tracking',\r\n SAVE_PARAMETER_ORDER_TRACKING = 'Save Parameter Order Tracking',\r\n SHOW_PARAMETERS_MONITORING = 'Show Parameters Monitoring',\r\n ADD_PARAMETERS_MONITORING = 'Add Parameters Monitoring',\r\n FINALIZE_PLANNED_TRIP_PENDING_FINISH = 'Finalize Planned Trip Pending Finish',\r\n SHOW_PLANNED_TRIP_LOGS = 'Show Planned Trip Logs',\r\n CONTROL_CADASTRO_EXCEL_EXPORT = 'Control Cadastro Excel Export',\r\n OPEN_SHIFTS_MANUALLY = 'Open Shifts Manually',\r\n OPEN_PROGRAMABILITY_SHIFT = 'Open Programability Shift',\r\n SHOW_TRIPS_REFUSED = 'Show Trips Refused',\r\n SHOW_GTFROTA_PENDING_SUPPLY_LOG = 'Show GtFrotaPendingSupplylog',\r\n CREDIT_LIMIT_MANAGEMENT = 'Credit Limit Management',\r\n LOCATION_SCHEDULE_INTEGRATION_EDIT = 'Location Schedule Integration Edit',\r\n LIST_TOLL_CARD = 'List Toll Card',\r\n LINK_TOLL_CARD = 'Link Toll Card',\r\n SHOW_TRIP_VECTOR_PAY = 'Exibir Parâmetros Viagem',\r\n EDIT_TRIP_VECTOR_PAY = 'Editar Parâmetros Viagem',\r\n N2_APPROVAL_HISTORICAL_LINKAGE_LOT = 'N2 Approval Historical Linkage Lot',\r\n N1_APPROVAL_HISTORICAL_LINKAGE_LOT = 'N1 Approval Historical Linkage Lot',\r\n SHOW_SHIPPER_LOTCADENCECONFIGURATION = 'Show ShipperLotCadenceConfiguration',\r\n EDIT_SHIPPER_LOTCADENCECONFIGURATION = 'Edit ShipperLotCadenceConfiguration',\r\n SHOW_LOTCADENCECONFIGURATION = 'Show LotCadenceConfiguration',\r\n EDIT_LOTCADENCECONFIGURATION = 'Edit LotCadenceConfiguration',\r\n EDIT_LOTDAILYCADENCES = 'Edit LotDailyCadences',\r\n PERMISSION_N2_CHANGE_FREIGHT = 'Permission N2 Change Freight',\r\n PERMISSION_N3_CHANGE_FREIGHT = 'Permission N3 Change Freight',\r\n PERMISSION_N4_CHANGE_FREIGHT = 'Permission N4 Change Freight',\r\n CLEAN_OLD_LOTDAILYCADENCES = 'Clean Old LotDailyCadences',\r\n SHOW_CONTROL_CARD_ADMIN = 'Toll Card Admin',\r\n SHOW_CONTROL_CARD_PARTNER = 'Toll Card Partner',\r\n SHOW_HEAT_MAP = 'Show Heat Map',\r\n SHOW_STATUS_MAP = 'Show Status Map',\r\n BUNGE_REFUND_TOTAL = 'Bunge Estorno Total',\r\n TOLL_MANAGEMENT = 'Gestão de Pedágio',\r\n DASHBOARD_VECTORPAY = 'Dashboard VectorPay',\r\n BUNGE_REFUND_PARTIAL = 'Bunge Estorno Parcial',\r\n ADD_REFUND_PARTIAL = 'AdicionarEstornoParcial',\r\n SEARCH_PAYMENT_TAG_HISTORY = 'Search Tag History',\r\n CAN_ADD_AGGREGATOR = 'Adicionar Agenciados',\r\n CAN_ACTIVATE_AGGREGATOR = 'Ativar Agenciadores',\r\n SHOW_SPLIT_FREIGHT = 'Visualizar Split de Frete',\r\n EDIT_SPLIT_FREIGHT = 'Editar Split de Frete',\r\n EDIT_PARAM_VECTORPAY = 'Editar Parâmetros VectorPay',\r\n SHOW_PARAM_VECTORPAY = 'Visualizar Parâmetros VectorPay',\r\n EDIT_PARAM_TOLL = 'Parametros Pedagio',\r\n CADOC_4111 = 'Documento De Saldos Contábeis Diários 4111',\r\n CADOC_1201 = 'Documento De Saldos Contábeis Diários 1201',\r\n EDIT_SCHEDULE_CHECKED_IN = 'Edit Schedule (Checked-in)',\r\n SHOW_IRREGULARITY = 'Show Irregularity',\r\n LOG_DISCHARGE_PAYMENT = 'Log Quitacao',\r\n EDIT_ISS = 'Editar ISS',\r\n EDIT_ICMS = 'Editar ICMS',\r\n CREATE_ICMS_PARAMS = 'Create Icms Param',\r\n EDIT_ICMS_PARAMS = 'Edit Icms Param',\r\n SHOW_ICMS_PARAMS = 'Show Icms Param',\r\n APPROVE_PAYMENT_CARRIER_ADMIN = 'Approve Payment - Carrier Admin',\r\n REQUEST_GR_RESULT_CHANGE = 'Request Gr Result Change',\r\n APPROVE_OR_DISAPPROVE_REQUEST_GR_RESULT_CHANGE = 'Approve Or Disaprove Request Gr Result Change',\r\n SHOW_GR_VECTOR_PANEL = 'Show GR Vector Panel',\r\n CAN_REQUEST_FREIGHT_AGENT = 'Pode Adicionar Agenciados',\r\n CAN_ACTIVATE_FREIGHT_AGENT = 'Pode Habilitar Agentes De Frete',\r\n INDICATE_TRIP_DELIVERY = 'Indicate Trip Delivery',\r\n INDICATE_TRIPOFFER_DELIVERY = 'Indicate TripOffer Delivery',\r\n POWER_BI_VISUALIZAR_DASH = 'PowerBi Visualizar Dash',\r\n SHOW_TRACK_PASS = 'Show Track Pass',\r\n SHOW_CARRIER_NEW = 'Show Carrier New',\r\n SHOW_VEHICLE_NEW = 'Show Vehicle New',\r\n SHOW_COKPIT = 'Show Cokpit',\r\n SHOW_AUTOMATIC_DIVULGATION_LOTS = 'Show Automatic Divulgation lots',\r\n SHOW_PANEL = 'Show Panel',\r\n ACOMPANHAMENTO_DE_BOLETO = 'Acompanhamento De Boleto',\r\n CARD_MANAGEMENT = 'CardManagement',\r\n SHOW_TRIP = 'Show Trip',\r\n SHOW_DIGITAL_DISCHARGE_VECTORPAY = 'Show Digital Discharge VectorPay',\r\n SHOW_REQUEST_BREAK_ALLOWANCE = 'Exibir Solicitações',\r\n CREATE_REQUEST_BREAK_ALLOWANCE = 'Criar Solicitações',\r\n CREATE_APPROVERS_REQUEST_BREAK_ALLOWANCE = 'Cadastrar Aprovadores',\r\n CREATE_REASONS_REQUEST_BREAK_ALLOWANCE = 'Cadastrar Motivos',\r\n APPROVE_REJECT_REQUEST_BREAK_ALLOWANCE = 'Aprovar/Rejeitar Solicitações',\r\n SHOW_DIGITAL_SHIPPER = 'Show Digital Shipper',\r\n RELATORIO_DE_FRETE_VECTORPAY = 'Relatorio De Frete VectorPay',\r\n SECURITY_TRAINING = 'Security Training',\r\n SHOW_SCHEDULE_OFF_PRODUCTS = 'Show Schedule Off Products',\r\n GR_VECTOR_CENTRAL = 'Gr Vector Central',\r\n GR_VECTOR_BACKOFFICE = 'Gr Vector Backoffice',\r\n GR_VECTOR_ADMIN = 'Gr Vector Admin',\r\n REPROCESS_GR_REGISTRATION_PENDING = 'Reprocess Gr Registration Pending',\r\n REPROCESS_GR_ANALYSIS_REQUIRED = 'Reprocess Gr Analysis Required',\r\n CHANGE_MINIMAL_FREIGHT_OPTION = 'Pode Alterar Configuracao Tabela Minima',\r\n FREIGHT_AGENT_REPORT = 'Freight Agent Report',\r\n TAX_REVENUE_REPORT = 'Relatorio Receita de Taxas',\r\n SHOW_ORDER_APPROVAL = 'Consulta de Pagamento',\r\n SHOW_ACCOUNTS_RECEIVABLE = 'Conciliacao de Contas',\r\n SHOW_VOLUME_ESTIMATE = 'Cadastro Estimativa Por Volume',\r\n CAN_CHANGE_VALUE_SELECTIVE = 'Pode Alterar Valor Seletivo',\r\n TRIP_OFFER_CANCEL = 'Trip Offer Cancel',\r\n SCHEDULE_PRODUCT_QUANTITIES = 'Schedule Product Quantities',\r\n ADD_MANUAL_CARGO_EXCEL = 'Add Manual Cargo Excel',\r\n SHOW_MANUAL_CARGO_EXCEL_RESULT = 'Show Manual Cargo Excel Result',\r\n APPROVER_N2_LOT_DIVULGATION = 'Approver N2 Lot Divulgation',\r\n APPROVER_N2_LOT_PARTNER = 'Approver N2 Lot Partner',\r\n CREATE_TRIPS_ROUTES_FROM_TRIP_OFFER = 'Create trips routes from TripOffer',\r\n TRIPS_LC = 'Trips LC',\r\n SCHEDULE_TRIPS = 'Agendar Viagens',\r\n TRIPS_PAGBEM = 'Trips Pagbem',\r\n CHARGING_INSTRUCTIONS = 'Charging Instructions',\r\n BYPASS_ADVANCE_PARAMETER_LOTS = 'Desconsiderar Parâmetro de Adiantamento Lots',\r\n BYPASS_ADVANCE_PARAMETER_CARGO = 'Desconsiderar Parâmetro de Adiantamento Cargo',\r\n MANAGE_MY_LOTS = 'Manage My Lots',\r\n SHOW_SEGMENTS = 'Show Segments',\r\n EDIT_SEGMENTS = 'Edit Segments',\r\n VISUALIZE_PMF_ALERT = 'Visualizar Alerta PMF',\r\n SHOW_LOT_LOCATIONS_ETCD = 'Show Lot Locations Etcd',\r\n SHOW_DISCLOSURE_PANEL = 'Show Disclosure panel',\r\n SHOW_DASHBOARD_LOT_DIVULGATION = 'Show DashboardLotDivulgation',\r\n VISUALIZE_PMF_IN_LOT = 'Visualizar Tabela Minima De Frete No Lote',\r\n SHOW_PAYMENT_DEDUCTION = 'Payment Deduction',\r\n ENABLED_CHANGE_FREIGHTRATE_IN_LOT_MASSIVELY = 'Enabled Change FreightRate In Lot Massively',\r\n RECEIVABLE_CHARGE = 'ReceivableCharge',\r\n CAMPAIGN = 'Campanha',\r\n LINK_GENERATOR = 'Gerador De Link',\r\n ADD_BLOCK_CARRIER = 'Add Block Carrier',\r\n SHOW_BLOCK_CARRIER = 'Show Block Carrier',\r\n EDIT_BLOCK_CARRIER = 'Edit Block Carrier',\r\n}\r\n","export enum Role {\r\n ADMIN = 'ADMIN',\r\n}\r\n","export enum Status {\r\n PENDING,\r\n APPROVED,\r\n REJECTED,\r\n INFO,\r\n NOT_EXECUTEDCOUNT\r\n}\r\n","export enum View {\r\n HOME,\r\n ADMIN,\r\n DIGITAL_CARRIER,\r\n RISK_MANAGER,\r\n VECTOR_CLUB,\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Status } from '../../models';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-badge',\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n})\r\nexport class BadgeComponent implements OnInit {\r\n @Input()\r\n public type?: Status;\r\n @Input()\r\n public label?: string;\r\n @Input()\r\n public customColor?: string;\r\n @Input()\r\n public customBackgroundColor?: string;\r\n @Input()\r\n public tooltip?: string;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public getStatusColor() {\r\n switch (this.type) {\r\n case Status.PENDING:\r\n return 'badge-warning';\r\n case Status.APPROVED:\r\n return 'badge-success';\r\n case Status.REJECTED:\r\n return 'badge-error';\r\n case Status.INFO:\r\n return 'badge-info';\r\n }\r\n return '';\r\n }\r\n}\r\n","<div\r\n class=\"badge\"\r\n [class]=\"getStatusColor()\"\r\n [ngStyle]=\"{ 'background-color': customBackgroundColor, color: customColor }\"\r\n [pTooltip]=\"tooltip || ''\"\r\n tooltipPosition=\"top\"\r\n>\r\n {{ label }}\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n standalone: false,\r\n name: 'currencyBrl',\r\n})\r\nexport class CurrencyBrlPipe implements PipeTransform {\r\n transform(value: number = 0): string {\r\n if (!value) value = 0;\r\n return `${value.toLocaleString('pt-BR', { currency: 'BRL', minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;\r\n }\r\n}\r\n","export class CpfCnpjValidator {\r\n private static charToValue(char: string): number {\r\n return char.toUpperCase().charCodeAt(0) - 48;\r\n }\r\n\r\n public static validateCpfOrCnpj(taxId: string) {\r\n const stripped = taxId.replace(/[.\\/-]/g, '');\r\n\r\n if (stripped.length == 11) {\r\n return this.validateCpf(stripped);\r\n } else if (stripped.length == 14) {\r\n return this.validateCnpj(stripped);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public static validateCpf(cpf: string) {\r\n if (!cpf?.trim() || cpf.length !== 11 || !cpf.match('^[0-9]+$')) {\r\n return false;\r\n }\r\n\r\n if (\r\n [\r\n '00000000000',\r\n '11111111111',\r\n '22222222222',\r\n '33333333333',\r\n '44444444444',\r\n '55555555555',\r\n '66666666666',\r\n '77777777777',\r\n '88888888888',\r\n '99999999999',\r\n ].includes(cpf)\r\n ) {\r\n return false;\r\n }\r\n let num: number = 0;\r\n let caracter: string = '';\r\n let counter: number = 10;\r\n let sum: number = 0;\r\n let rest: number = 0;\r\n let firstDigit: number = 0;\r\n let secondDigit: number = 0;\r\n let cpfAux: string = '';\r\n cpfAux = cpf.substring(0, 9);\r\n for (let i: number = 0; i < 9; i++) {\r\n caracter = cpfAux.charAt(i);\r\n num = Number(caracter);\r\n sum = sum + num * counter;\r\n counter--;\r\n }\r\n rest = sum % 11;\r\n firstDigit = 11 - rest;\r\n if (firstDigit > 9) {\r\n firstDigit = 0;\r\n }\r\n counter = 11;\r\n sum = 0;\r\n cpfAux = cpfAux + firstDigit;\r\n for (let i: number = 0; i < 10; i++) {\r\n caracter = cpfAux.charAt(i);\r\n num = Number(caracter);\r\n sum = sum + num * counter;\r\n counter--;\r\n }\r\n rest = sum % 11;\r\n secondDigit = 11 - rest;\r\n if (secondDigit > 9) {\r\n secondDigit = 0;\r\n }\r\n cpfAux = cpfAux + secondDigit;\r\n return cpf === cpfAux;\r\n }\r\n\r\n public static validateCnpj(cnpj: string) {\r\n cnpj = cnpj.replace(/[.\\/-]/g, '');\r\n\r\n if (cnpj == '') return false;\r\n\r\n if (cnpj.length != 14) return false;\r\n\r\n const body = cnpj.substring(0, 12).toUpperCase();\r\n const digits = cnpj.substring(12);\r\n\r\n if (!/^[A-Z0-9]{12}$/.test(body) || !/^\\d{2}$/.test(digits)) return false;\r\n\r\n if (/^(\\d)\\1{13}$/.test(cnpj)) return false;\r\n\r\n let size = 12;\r\n let sum = 0;\r\n let pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += this.charToValue(cnpj.charAt(size - i)) * pos--;\r\n if (pos < 2) pos = 9;\r\n }\r\n let resultado = sum % 11 < 2 ? 0 : 11 - (sum % 11);\r\n if (resultado != parseInt(digits.charAt(0))) return false;\r\n\r\n size = 13;\r\n sum = 0;\r\n pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += this.charToValue(cnpj.charAt(size - i)) * pos--;\r\n if (pos < 2) pos = 9;\r\n }\r\n resultado = sum % 11 < 2 ? 0 : 11 - (sum % 11);\r\n if (resultado != parseInt(digits.charAt(1))) return false;\r\n\r\n return true;\r\n }\r\n}\r\n","import { saveAs } from 'file-saver';\r\n\r\nexport class FileUtil {\r\n public static getBlob(base64StringData: string, mimeType: string) {\r\n const decodedData = atob(base64StringData);\r\n const byteNumbers = new Array(decodedData.length);\r\n for (let i = 0; i < decodedData.length; i++) {\r\n byteNumbers[i] = decodedData.charCodeAt(i);\r\n }\r\n return new Blob([new Uint8Array(byteNumbers)], { type: mimeType });\r\n }\r\n public static downloadFile(mimeType: string, base64StringData: string, fileName: string) {\r\n saveAs(FileUtil.getBlob(base64StringData, mimeType), fileName);\r\n }\r\n}\r\n","const CPF_PATTERN = '###.###.###-##';\r\nconst CNPJ_PATTERN = '##.###.###/####-##';\r\nconst BOLETO_PATTERN = '#####.##### #####.###### #####.###### # ############## #';\r\nconst POSTALCODE_PATTERN = '#####-###';\r\nconst CELLPHONE_PATTERN = '(##) #####-####';\r\nconst PHONE_PATTERN = '(##) ####-####';\r\nconst PLATE_PATTERN = '###-####';\r\nconst HOURS_MINUTES_PATTERN = '##:##';\r\nconst DNI_PATTERN = '##.###.###';\r\nconst CUIT_PATTERN = '##-########-#';\r\n\r\nexport class MaskUtil {\r\n public static CPF_TEXT_FIELD_PATTERN = '999.999.999-99';\r\n public static CNPJ_TEXT_FIELD_PATTERN = '**.***.***/****-99';\r\n public static BOLETO_TEXT_FIELD_PATTERN = '99999.99999 99999.999999 99999.999999 9 99999999999999 9';\r\n public static CELLPHONE_TEXT_FIELD_PATTERN = '(99) 99999-9999';\r\n public static URUGUAY_CELLPHONE_TEXT_FIELD_PATTERN = '+999 99 999 999';\r\n public static PARAGUAY_CELLPHONE_TEXT_FIELD_PATTERN = '+999 999 999999';\r\n public static PHONE_TEXT_FIELD_PATTERN = '(99) 9999-9999';\r\n public static POSTALCODE_TEXT_FIELD_PATTERN = '99999-999';\r\n public static PLATE_FIELD_PATTERN = 'aaa-9*99';\r\n public static HOURS_MINUTES_FIELD_PATTERN = '99:99';\r\n public static DNI_FIELD_PATTERN = '99.999.999';\r\n public static CUIT_FIELD_PATTERN = '99.99999999.9';\r\n\r\n public static stripDocumentFormatting(value: string): string {\r\n return value ? value.replace(/[.\\/-\\s]/g, '') : '';\r\n }\r\n\r\n public static formatDocument(stringValue: string) {\r\n if (!stringValue) {\r\n return '';\r\n }\r\n\r\n const stripped = this.stripDocumentFormatting(stringValue);\r\n\r\n if (stripped.length === 11) {\r\n return this.doMaskString(stripped, CPF_PATTERN);\r\n }\r\n\r\n if (stripped.length === 14) {\r\n return this.doMaskString(stripped, CNPJ_PATTERN);\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n public static formatPostalCode(stringValue: string) {\r\n return this.doMaskString(stringValue, POSTALCODE_PATTERN);\r\n }\r\n\r\n public static formatBoleto(stringValue: string) {\r\n return this.doMaskString(stringValue, BOLETO_PATTERN);\r\n }\r\n\r\n public static formatPhone(stringValue: string) {\r\n if (!stringValue) {\r\n return '';\r\n }\r\n\r\n if (stringValue.length === 11) {\r\n return this.doMaskString(stringValue, CELLPHONE_PATTERN);\r\n } else if (stringValue.length === 10) {\r\n return this.doMaskString(stringValue, PHONE_PATTERN);\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n public static formatHoursMinutes(stringValue: string) {\r\n return this.doMaskString(stringValue, HOURS_MINUTES_PATTERN);\r\n }\r\n\r\n public static formatPlate(stringValue: string) {\r\n return this.doMaskString(stringValue, PLATE_PATTERN);\r\n }\r\n\r\n public static formatDni(stringValue: string) {\r\n return this.doMaskString(stringValue, DNI_PATTERN);\r\n }\r\n\r\n public static formatCuit(stringValue: string) {\r\n return this.doMaskString(stringValue, CUIT_PATTERN);\r\n }\r\n\r\n public static doMaskString(str: string, pattern?: string) {\r\n if (!str?.trim()) {\r\n return '';\r\n }\r\n\r\n if (!pattern || !pattern.includes('#')) {\r\n console.warn('Utilize uma máscara válida. Ex.: (##) #####-####');\r\n return str;\r\n }\r\n let i = 0;\r\n return pattern.replace(/#/g, () => str[i++]);\r\n }\r\n}\r\n","export class ObjectUtil {\r\n public static getObjectKeys<T>(obj: Object): Array<keyof T> {\r\n if (!obj) {\r\n return [];\r\n }\r\n\r\n return Object.keys(obj).map((key: string) => key as keyof T);\r\n }\r\n\r\n public static isValid(obj: any) {\r\n return obj !== null && obj !== undefined;\r\n }\r\n\r\n public static getCodes(obj: any): any {\r\n if (!obj) {\r\n return {};\r\n }\r\n\r\n return Object.keys(obj).reduce((acc, curr) => {\r\n let value = obj[curr];\r\n try {\r\n value = JSON.parse(obj[curr]);\r\n } catch (_) {\r\n value = obj[curr];\r\n }\r\n return { ...acc, [curr]: value?.code || value };\r\n }, {});\r\n }\r\n}\r\n","export class StringUtil {\r\n public static getInitials(nameString?: string) {\r\n if (!nameString) {\r\n return '';\r\n }\r\n\r\n const initials = nameString.split(' ').map((namePart) => namePart.substr(0, 1));\r\n return initials ? `${initials[0]}${initials[initials.length - 1]}` : '';\r\n }\r\n\r\n public static revertString(str: string) {\r\n if (!str) {\r\n return '';\r\n }\r\n\r\n return str.split('').reverse().join('');\r\n }\r\n\r\n public static convertTimeToMinutes(timeText: string): number {\r\n const parts = timeText.split(':');\r\n const minutes = parseInt(parts[0]);\r\n const seconds = parseInt(parts[1]);\r\n const minutesTotals = minutes + seconds / 60;\r\n return minutesTotals;\r\n }\r\n\r\n public static convertMinutesToTime(minutesTotal: number): string {\r\n const minutes = Math.floor(minutesTotal);\r\n const seconds = Math.round((minutesTotal - minutes) * 60);\r\n\r\n const minutesText = `${minutes}`.padStart(2, '0');\r\n const secondsText = `${seconds}`.padStart(2, '0');\r\n\r\n return `${minutesText}:${secondsText}`;\r\n }\r\n\r\n public static convertObjectToQueryString(obj: Record<string, any>): string {\r\n const queryParams: string[] = [];\r\n for (const key in obj) {\r\n if (obj.hasOwnProperty(key) && obj[key]) {\r\n queryParams.push(`${key}=${obj[key]}`);\r\n }\r\n }\r\n return queryParams.join('&');\r\n }\r\n\r\n public static convertToUppercaseWithoutSymbols(stringValue: string, withSpace?: boolean): string {\r\n const convert = stringValue\r\n .toUpperCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .replace(/[^\\w\\s]/g, '');\r\n\r\n if (withSpace) {\r\n return convert.replace(/\\s+/g, ' ');\r\n } else {\r\n return convert.replace(/\\s+/g, '');\r\n }\r\n }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { ObjectUtil } from './object.util';\r\n\r\nexport class ValidationUtil {\r\n public static email(control: AbstractControl): ValidationErrors | null {\r\n const email = control.value as string;\r\n\r\n if (!email || email === '') {\r\n return null;\r\n }\r\n\r\n if (\r\n !email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/) ||\r\n email.match(/['`~!#%^&*()|+¨=?;:'´\",<>\\{\\}\\[\\]\\\\\\/]/gi)\r\n ) {\r\n return {\r\n email: true,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static fullName(control: AbstractControl): ValidationErrors | null {\r\n const name: string = control.value;\r\n if (!name) {\r\n return null;\r\n }\r\n\r\n const splittedName = name\r\n .trim()\r\n .split(' ')\r\n .map((namePart) => namePart.trim());\r\n\r\n if (splittedName.length < 2) {\r\n return { invalid: 'Deve conter pelo menos um nome e sobrenome.' };\r\n }\r\n return null;\r\n }\r\n\r\n public static noMultipleWhitespace(control: AbstractControl): ValidationErrors | null {\r\n const name: string = control.value;\r\n\r\n if (name) {\r\n if (!name.match(/^([a-zA-ZÀ-ú0-9]+\\s)*[a-zA-ZÀ-ú0-9]+$/)) {\r\n return { haveWhiteSpace: true };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public static isValidTaxId(control: AbstractControl): ValidationErrors | null {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n const stripped = (control.value as string).replace(/[.\\/-]/g, '');\r\n\r\n if (stripped.length === 11) {\r\n return ValidationUtil.isValidCpf(control);\r\n }\r\n if (stripped.length === 14) {\r\n return ValidationUtil.isValidCnpj(control);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static isValidCpf(control: AbstractControl): ValidationErrors | null {\r\n const cpf = control.value;\r\n if (cpf) {\r\n let numbers, digits, sum, i, result, equalDigits;\r\n equalDigits = 1;\r\n if (cpf.length < 11) {\r\n return null;\r\n }\r\n\r\n for (i = 0; i < cpf.length - 1; i++) {\r\n if (cpf.charAt(i) !== cpf.charAt(i + 1)) {\r\n equalDigits = 0;\r\n break;\r\n }\r\n }\r\n\r\n if (!equalDigits) {\r\n numbers = cpf.substring(0, 9);\r\n digits = cpf.substring(9);\r\n sum = 0;\r\n for (i = 10; i > 1; i--) {\r\n sum += numbers.charAt(10 - i) * i;\r\n }\r\n\r\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\r\n\r\n if (result !== Number(digits.charAt(0))) {\r\n return { cpfNotValid: true };\r\n }\r\n numbers = cpf.substring(0, 10);\r\n sum = 0;\r\n\r\n for (i = 11; i > 1; i--) {\r\n sum += numbers.charAt(11 - i) * i;\r\n }\r\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\r\n\r\n if (result !== Number(digits.charAt(1))) {\r\n return { cpfNotValid: true };\r\n }\r\n return null;\r\n } else {\r\n return { cpfNotValid: true };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private static charToValue(char: string): number {\r\n return char.toUpperCase().charCodeAt(0) - 48;\r\n }\r\n\r\n public static isValidCnpj(control: AbstractControl): ValidationErrors | null {\r\n let cnpj: string = control.value;\r\n cnpj = cnpj.replace(/[.\\/-]/g, '');\r\n\r\n if (cnpj.length !== 14) {\r\n return { cnpjNotValid: true };\r\n }\r\n\r\n const body = cnpj.substring(0, 12).toUpperCase();\r\n const digits = cnpj.substring(12);\r\n\r\n if (!/^[A-Z0-9]{12}$/.test(body) || !/^\\d{2}$/.test(digits)) {\r\n return { cnpjNotValid: true };\r\n }\r\n\r\n if (/^(\\d)\\1{13}$/.test(cnpj)) {\r\n return { cnpjNotValid: true };\r\n }\r\n\r\n const calc = (x: number) => {\r\n let y = x - 7,\r\n s = 0;\r\n for (let i = x; i >= 1; i--) {\r\n s += this.charToValue(cnpj.charAt(x - i)) * y--;\r\n if (y < 2) y = 9;\r\n }\r\n const r = 11 - (s % 11);\r\n return r > 9 ? 0 : r;\r\n };\r\n\r\n const d1 = parseInt(digits.charAt(0));\r\n const d2 = parseInt(digits.charAt(1));\r\n\r\n if (calc(12) === d1 && calc(13) === d2) {\r\n return null;\r\n } else {\r\n return { cnpjNotValid: true };\r\n }\r\n }\r\n\r\n public static majorAge(control: AbstractControl): ValidationErrors | null {\r\n if (!control.value) {\r\n return null;\r\n }\r\n const age = ~~((Date.now() - control.value) / 31557600000);\r\n\r\n if (age < 18) {\r\n return { isNotMajorAge: true };\r\n }\r\n return null;\r\n }\r\n\r\n public static matchField(anotherField: AbstractControl | null): ValidatorFn {\r\n const validator = (control: AbstractControl) => {\r\n if (!control.value || !anotherField?.value) {\r\n return null;\r\n }\r\n if (control.value !== anotherField?.value) {\r\n return { fieldDoesNotMatch: true };\r\n }\r\n\r\n return null;\r\n };\r\n return validator;\r\n }\r\n\r\n public static cellphone(control: AbstractControl): ValidationErrors | null {\r\n if (!control.value || control.value.length < 11) {\r\n return null;\r\n }\r\n\r\n const firstNumber = control.value.substring(2, 3);\r\n\r\n if (firstNumber != '9') {\r\n return { cellphoneInvalid: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static lowerThanOrEqualTo(greaterControlName: string): ValidatorFn {\r\n const validator = (control: AbstractControl) => {\r\n const lowerValue = control.value;\r\n const greaterValue = control.parent?.get(greaterControlName)?.value;\r\n if (!control.parent?.get(greaterControlName)) {\r\n console.log(`Control with name ${greaterControlName} not registered`);\r\n return {};\r\n }\r\n if (\r\n ObjectUtil.isValid(lowerValue) &&\r\n ObjectUtil.isValid(greaterValue) &&\r\n lowerValue !== '' &&\r\n greaterValue !== '' &&\r\n +lowerValue > +greaterValue\r\n ) {\r\n return {\r\n invalid: 'Valor mínimo deve ser menor ou igual ao valor máximo',\r\n };\r\n }\r\n return {};\r\n };\r\n return validator;\r\n }\r\n\r\n public static greaterThanOrEqualTo(lowerControlName: string): ValidatorFn {\r\n const validator = (control: AbstractControl) => {\r\n const greaterValue = control.value;\r\n const lowerValue = control.parent?.get(lowerControlName)?.value;\r\n if (!control.parent?.get(lowerControlName)) {\r\n console.log(`Control with name ${lowerControlName} not registered`);\r\n return {};\r\n }\r\n if (\r\n ObjectUtil.isValid(lowerValue) &&\r\n ObjectUtil.isValid(greaterValue) &&\r\n lowerValue !== '' &&\r\n greaterValue !== '' &&\r\n +lowerValue > +greaterValue\r\n ) {\r\n return {\r\n invalid: 'Valor máximo deve ser maior ou igual ao valor mínimo',\r\n };\r\n }\r\n return {};\r\n };\r\n return validator;\r\n }\r\n\r\n public static notSequentialNumbers(length: number): ValidatorFn {\r\n const validator = (control: AbstractControl): ValidationErrors | null => {\r\n const controlValue = control.value;\r\n const sequentialNumbers = '01234567890123456789';\r\n\r\n if (controlValue) {\r\n if (controlValue.length === length) {\r\n if (~sequentialNumbers.indexOf(control.value)) {\r\n return { isSequential: true };\r\n } else if (!!controlValue.match(/^(\\d)\\1+$/)) {\r\n return { isSequential: true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n return validator;\r\n }\r\n\r\n public static firstLetterIsUppercase(control: AbstractControl): ValidationErrors | null {\r\n const controlValue = control.value as string;\r\n const regex = /^([A-ZÀ-Ú][a-zà-ú]*)(?:\\s+([A-ZÀ-Ú][a-zà-ú]*))*$/;\r\n\r\n if (!!controlValue) {\r\n if (!controlValue.match(regex)) {\r\n return { invalidField: true };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n\r\n public static containsLettersAndNumbers(control: AbstractControl): ValidationErrors | null {\r\n const controlValue = control.value as string;\r\n const regex = /^(?=.*[0-9])(?=.*[A-z])([A-z0-9_-]+)$/;\r\n\r\n if (!!controlValue) {\r\n if (!!!controlValue.match(regex)) {\r\n return { isNotAlphaNumeric: true };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n\r\n public static greaterThanTo(lowerControlName: string): ValidatorFn {\r\n const validator = (control: AbstractControl) => {\r\n const greaterValue = control.value;\r\n const lowerValue = control.parent?.get(lowerControlName)?.value;\r\n if (!control.parent?.get(lowerControlName)) {\r\n console.log(`Control with name ${lowerControlName} not registered`);\r\n return {};\r\n }\r\n if (\r\n ObjectUtil.isValid(lowerValue) &&\r\n ObjectUtil.isValid(greaterValue) &&\r\n lowerValue !== '' &&\r\n greaterValue !== '' &&\r\n +lowerValue >= +greaterValue\r\n ) {\r\n return {\r\n invalid: ` Este valor não pode ser igual ou menor que o valor inicial`,\r\n };\r\n }\r\n return {};\r\n };\r\n return validator;\r\n }\r\n\r\n public static onlyLetters(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value as string;\r\n\r\n if (!value || value === '') {\r\n return null;\r\n }\r\n\r\n if (/[\\d\\W]/.test(value)) {\r\n return { invalid: 'O lembrete de senha só pode conter letras.' };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","export class WindowUtil {\r\n static isSmallDevice() {\r\n return window.innerWidth < 640;\r\n }\r\n static isDesktop() {\r\n return window.innerWidth >= 1024;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MaskUtil } from '../utils';\r\n\r\n@Pipe({\r\n standalone: false,\r\n name: 'formatDocument',\r\n})\r\nexport class FormatDocumentPipe implements PipeTransform {\r\n transform(value: string = ''): string {\r\n return MaskUtil.formatDocument(value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MaskUtil } from '../utils';\r\n\r\n@Pipe({\r\n standalone: false,\r\n name: 'mask',\r\n})\r\nexport class MaskPipe implements PipeTransform {\r\n transform(value: string = '', mask: string): string {\r\n if (!mask || !mask.includes('#')) {\r\n console.warn('Uma máscara válida deve ser passada para o MaskPipe. Ex.: (##) #####-####');\r\n return value;\r\n }\r\n return MaskUtil.doMaskString(value, mask);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n standalone: false,\r\n name: 'notHidden',\r\n})\r\nexport class NotHiddenPipe implements PipeTransform {\r\n transform(value: any[]): any[] {\r\n return value?.filter((item) => !item.hidden) || [];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n standalone: false,\r\n name: 'onlyActive',\r\n})\r\nexport class OnlyActivePipe implements PipeTransform {\r\n transform(value: any[]): any[] {\r\n return value?.filter((item) => item.active) || [];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n standalone: false,\r\n name: 'removeLastChild',\r\n})\r\nexport class RemoveLastChildPipe implements PipeTransform {\r\n transform(value: any[]): any[] {\r\n const newArray = [...value];\r\n newArray.pop();\r\n return newArray;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { VectorNotification } from '../models/vector-notification.model';\r\n\r\n@Pipe({ name: 'unreadNotifications', standalone: false })\r\nexport class UnreadNotificationsPipe implements PipeTransform {\r\n constructor() {}\r\n transform(notifications: VectorNotification[] | null) {\r\n return notifications?.filter((item) => !item.wasRead) ?? [];\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CurrencyBrlPipe } from './currency-brl.pipe';\r\nimport { FormatDocumentPipe } from './format-document.pipe';\r\nimport { MaskPipe } from './mask.pipe';\r\nimport { NotHiddenPipe } from './not-hidden.pipe';\r\nimport { OnlyActivePipe } from './only-active.pipe';\r\nimport { RemoveLastChildPipe } from './remove-last-child.pipe';\r\nimport { UnreadNotificationsPipe } from './unread-notifications.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n RemoveLastChildPipe,\r\n CurrencyBrlPipe,\r\n NotHiddenPipe,\r\n OnlyActivePipe,\r\n FormatDocumentPipe,\r\n MaskPipe,\r\n UnreadNotificationsPipe,\r\n ],\r\n exports: [\r\n RemoveLastChildPipe,\r\n CurrencyBrlPipe,\r\n NotHiddenPipe,\r\n OnlyActivePipe,\r\n FormatDocumentPipe,\r\n MaskPipe,\r\n UnreadNotificationsPipe,\r\n ],\r\n})\r\nexport class PipesModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { PipesModule } from '../pipes';\r\n\r\n@NgModule({\r\n exports: [CommonModule, TooltipModule, PipesModule],\r\n imports: [TranslateModule],\r\n})\r\nexport class SharedModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { BadgeComponent } from './badge.component';\r\n\r\n@NgModule({\r\n declarations: [BadgeComponent],\r\n imports: [SharedModule, TooltipModule],\r\n exports: [BadgeComponent],\r\n})\r\nexport class BadgeModule {}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { AppName, MenuItem } from '../models';\r\n\r\nexport interface Environment {\r\n production: boolean;\r\n appName: string;\r\n API_URL: string;\r\n LOGITECH_URL: string;\r\n LOGTECH_ASPX_URL: string;\r\n PORTAL_URL: string;\r\n FINTECH_URL: string;\r\n MARKETPLACE_URL: string;\r\n SURVEY_URL: string;\r\n API_KEY: string;\r\n}\r\n\r\nexport const APP_NAME = new InjectionToken<AppName>('APP_NAME');\r\nexport const ENVIRONMENT = new InjectionToken<Environment>('ENVIRONMENT');\r\nexport const MENU_OPTIONS = new InjectionToken<MenuItem[]>('MENU_OPTIONS');\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BreadcrumbService {\r\n private readonly _titleAdditionalInfo$ = new BehaviorSubject<string | null>(null);\r\n public readonly titleAdditionalInfo$ = this._titleAdditionalInfo$.asObservable();\r\n\r\n public setTitleAdditionalInfo(value: string | null): void {\r\n this._titleAdditionalInfo$.next(value);\r\n }\r\n\r\n public clearTitleAdditionalInfo(): void {\r\n this._titleAdditionalInfo$.next(null);\r\n }\r\n}\r\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { ENVIRONMENT, MENU_OPTIONS } from '../../injections';\r\nimport { MenuItem } from '../../models';\r\nimport { BreadcrumbService } from '../../services/breadcrumb.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n})\r\nexport class BreadcrumbComponent implements OnInit, OnDestroy {\r\n public appName = this.environment.appName;\r\n public routeFragments: MenuItem[] = [];\r\n public titleAdditionalInfo: string | null = null;\r\n private subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n @Inject(ENVIRONMENT) private environment: any,\r\n @Inject(MENU_OPTIONS) private menuOptions: MenuItem[],\r\n private breadcrumbService: BreadcrumbService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.breadcrumbService.titleAdditionalInfo$.subscribe((value) => {\r\n this.titleAdditionalInfo = value;\r\n }),\r\n );\r\n\r\n this.subscription.add(\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.breadcrumbService.clearTitleAdditionalInfo();\r\n this.routeFragments = [];\r\n let url = event.urlAfterRedirects.replace('/', '');\r\n if (url.includes('?')) {\r\n url = url.substring(0, url.indexOf('?'));\r\n }\r\n this.extractRouteFragmentsFromMenu(url, this.menuOptions);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public navigateToFragment(fragment: MenuItem) {\r\n this.router.navigate([fragment.route], { queryParamsHandling: 'preserve' });\r\n }\r\n\r\n private extractRouteFragmentsFromMenu(url: string, currentChildren: MenuItem[]): boolean {\r\n let foundItem = false;\r\n for (let i = 0; i < currentChildren.length; i++) {\r\n if (currentChildren[i].route) {\r\n if (\r\n currentChildren[i].route &&\r\n (currentChildren[i].route!.startsWith(url) || url.startsWith(currentChildren[i].route || ''))\r\n ) {\r\n this.routeFragments = [currentChildren[i]];\r\n foundItem = true;\r\n }\r\n }\r\n\r\n if (currentChildren[i].children && this.extractRouteFragmentsFromMenu(url, currentChildren[i].children || [])) {\r\n this.routeFragments = [currentChildren[i]].concat(this.routeFragments);\r\n foundItem = true;\r\n break;\r\n }\r\n }\r\n\r\n return foundItem;\r\n }\r\n}\r\n","<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span\r\n class=\"route-fragment\"\r\n [ngClass]=\"{ clickable: fragment.route }\"\r\n *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n (click)=\"navigateToFragment(fragment)\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment.label }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1].label }}\r\n {{ titleAdditionalInfo }}\r\n </span>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { BreadcrumbComponent } from './breadcrumb.component';\r\n\r\n@NgModule({\r\n declarations: [BreadcrumbComponent],\r\n exports: [BreadcrumbComponent],\r\n imports: [SharedModule],\r\n})\r\nexport class BreadcrumbModule {}\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { CrudMode } from '../../models/crud-mode.enum';\r\n\r\n@Component({\r\n standalone: false,\r\n template: '',\r\n})\r\nexport class CrudBaseComponent implements OnDestroy {\r\n public crudMode = CrudMode.NEW;\r\n public isReadonly = false;\r\n public form = new UntypedFormGroup({});\r\n protected subscription = new Subscription();\r\n\r\n constructor(protected activatedRoute: ActivatedRoute) {\r\n this.crudMode = this.getCrudModeByRoute(this.activatedRoute.snapshot.url[0].path);\r\n this.isReadonly = this.crudMode === CrudMode.VIEW;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public isInsertion() {\r\n return this.crudMode === CrudMode.NEW;\r\n }\r\n\r\n public isEdition() {\r\n return this.crudMode === CrudMode.EDIT;\r\n }\r\n\r\n private getCrudModeByRoute(route: string) {\r\n switch (route) {\r\n case 'new':\r\n return CrudMode.NEW;\r\n case 'edit':\r\n return CrudMode.EDIT;\r\n case 'view':\r\n return CrudMode.VIEW;\r\n default:\r\n return CrudMode.NEW;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\ntype ButtonType =\r\n | 'success'\r\n | 'success-outlined'\r\n | 'default'\r\n | 'default-filled'\r\n | 'default-outlined'\r\n | 'default-outlined-gray'\r\n | 'default-outlined-gray-icon-red'\r\n | 'default-outlined-gray-icon-gray'\r\n | 'cancel'\r\n | 'cancel-filled'\r\n | 'light-outline';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n})\r\nexport class ButtonComponent {\r\n @Input()\r\n public disabled = false;\r\n @Input()\r\n public label = '';\r\n @Input()\r\n public type: ButtonType = 'default';\r\n @Input()\r\n public leftIcon = '';\r\n @Input()\r\n public rightIcon = '';\r\n @Input()\r\n public noShadow = false;\r\n @Input()\r\n public round = false;\r\n @Input()\r\n public style: any = {};\r\n @Input()\r\n public loading: boolean = false;\r\n @Output()\r\n public onClick = new EventEmitter<any>();\r\n\r\n get styleClass() {\r\n return `button shadow-3 ${this.type} ${this.noShadow && 'no-shadow'}`;\r\n }\r\n}\r\n","<p-button\r\n [styleClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon || rightIcon\"\r\n [iconPos]=\"rightIcon ? 'right' : 'left'\"\r\n [style]=\"style\"\r\n (onClick)=\"onClick.emit($event)\"\r\n [ngClass]=\"{ round: round }\"\r\n [loading]=\"loading\"\r\n></p-button>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\ntype ButtonType = 'success' | 'success-outlined' | 'default' | 'default-filled' | 'cancel' | 'cancel-filled';\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-crud-footer',\r\n templateUrl: './crud-footer.component.html',\r\n styleUrls: ['./crud-footer.component.scss'],\r\n})\r\nexport class CrudFooterComponent implements OnInit {\r\n @Input()\r\n public submitDisabled = false;\r\n @Input()\r\n public submitHidden = false;\r\n @Input()\r\n public goBackHidden = false;\r\n\r\n @Input()\r\n public labelGoBack?: string;\r\n @Input()\r\n public typeGoBack?: ButtonType;\r\n @Input()\r\n public leftIconGoBack?: string;\r\n @Input()\r\n public labelGoSubmit?: string;\r\n @Input()\r\n public typeGoSubmit?: ButtonType;\r\n @Input()\r\n public leftIconGoSubmit?: string;\r\n\r\n @Input()\r\n public actionHidden = true;\r\n @Input()\r\n public actionDisabled = false;\r\n @Input()\r\n public labelAction?: string;\r\n @Input()\r\n public typeAction?: ButtonType;\r\n @Input()\r\n public leftIconAction?: string;\r\n\r\n @Output()\r\n public onGoBack = new EventEmitter<void>();\r\n @Output()\r\n public onSubmit = new EventEmitter<void>();\r\n @Output()\r\n public onAction = new EventEmitter<void>();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"footer-container shadow-3\">\r\n @if (!actionHidden) {\r\n <div class=\"button\">\r\n <vector-button\r\n [label]=\"labelAction || ''\"\r\n [type]=\"typeAction ? typeAction : 'default'\"\r\n [leftIcon]=\"leftIconAction || ''\"\r\n [disabled]=\"actionDisabled\"\r\n (onClick)=\"onAction.emit()\"\r\n ></vector-button>\r\n </div>\r\n }\r\n @if (!goBackHidden) {\r\n <div class=\"button\">\r\n <vector-button\r\n [label]=\"labelGoBack ? labelGoBack : ('enums.Options.GO_BACK' | translate)\"\r\n [type]=\"typeGoBack ? typeGoBack : 'default'\"\r\n [leftIcon]=\"leftIconGoBack || ''\"\r\n (onClick)=\"onGoBack.emit()\"\r\n >\r\n </vector-button>\r\n </div>\r\n }\r\n\r\n @if (!submitHidden) {\r\n <div class=\"button\">\r\n <vector-button\r\n [label]=\"labelGoSubmit ? labelGoSubmit : ('enums.Options.SAVE' | translate)\"\r\n [type]=\"typeGoSubmit ? typeGoSubmit : 'success'\"\r\n [leftIcon]=\"leftIconGoSubmit || ''\"\r\n (onClick)=\"onSubmit.emit()\"\r\n [disabled]=\"submitDisabled\"\r\n ></vector-button>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-panel',\r\n templateUrl: './panel.component.html',\r\n styleUrls: ['./panel.component.scss'],\r\n})\r\nexport class PanelComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<p-panel [showHeader]=\"false\">\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"shadow-3\"><ng-content></ng-content></div></ng-template\r\n></p-panel>\r\n","import { NgModule } from '@angular/core';\r\nimport { PanelModule as PrimeNgPanel } from 'primeng/panel';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { PanelComponent } from './panel.component';\r\n\r\n@NgModule({\r\n declarations: [PanelComponent],\r\n exports: [PanelComponent],\r\n imports: [SharedModule, PrimeNgPanel],\r\n})\r\nexport class PanelModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-score',\r\n templateUrl: './score.component.html',\r\n styleUrls: ['./score.component.scss'],\r\n})\r\nexport class ScoreComponent implements OnInit {\r\n @Input()\r\n public score: number = 0;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"container\">\r\n <span class=\"score\">{{ score }}</span>\r\n <em class=\"fas fa-star star\"></em>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ScoreComponent } from './score.component';\r\n\r\n@NgModule({\r\n declarations: [ScoreComponent],\r\n exports: [ScoreComponent],\r\n})\r\nexport class ScoreModule {}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { ProfileService, StorageService } from '.';\r\nimport { ENVIRONMENT, Environment } from '../injections';\r\nimport { Role } from '../models';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthService {\r\n public readonly role$ = new BehaviorSubject<Role>(this.storageService.getRole());\r\n private parentWindowUrl = '';\r\n private subscription = new Subscription();\r\n private readonly baseUrl: string;\r\n\r\n constructor(\r\n @Inject(ENVIRONMENT) private environment: Environment,\r\n private http: HttpClient,\r\n private storageService: StorageService,\r\n private profileService: ProfileService,\r\n private activatedRoute: ActivatedRoute\r\n ) {\r\n this.baseUrl = this.environment.API_URL.endsWith('/api') ? 'Auth' : 'api/Auth';\r\n\r\n this.subscription.add(\r\n this.activatedRoute.queryParams.subscribe((params) => {\r\n if (params['parent']) {\r\n this.parentWindowUrl = decodeURIComponent(params['parent']);\r\n }\r\n })\r\n );\r\n }\r\n\r\n public getTokenByGuid(tokenGuid: string): Observable<any> {\r\n let response: any;\r\n return this.http.get<any>(`${this.baseUrl}/TemporaryAccessToken/${tokenGuid}`).pipe(\r\n switchMap((tokenResponse: any) => {\r\n response = tokenResponse;\r\n this.storageService.setToken(tokenResponse.accessToken);\r\n this.storageService.setUsername(tokenResponse.userName);\r\n this.storageService.setRefreshToken(tokenResponse.refreshToken);\r\n return this.profileService.getUserProfile();\r\n }),\r\n map(() => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n public getTokenByRefreshToken(refreshToken: string) {\r\n const headers = new HttpHeaders()\r\n .set('Content-Type', 'application/x-www-form-urlencoded')\r\n .set('no-spinner', 'true');\r\n return this.http\r\n .post<any>(\r\n `connect/token`,\r\n `username=${this.storageService.getUsername()}&grant_type=refresh_token&refresh_token=${refreshToken}`,\r\n { headers }\r\n )\r\n .pipe(\r\n tap((response) => {\r\n if (response?.access_token && response?.refresh_token) {\r\n this.storageService.setToken(`Bearer ${response.access_token}`);\r\n this.storageService.setRefreshToken(response.refresh_token);\r\n }\r\n })\r\n );\r\n }\r\n\r\n public generateTokenGuid(): Observable<string> {\r\n return this.http\r\n .post<any>(`${this.baseUrl}/TemporaryAccessToken/generate`, {\r\n RefreshToken: this.storageService.getRefreshToken(),\r\n })\r\n .pipe(map((response) => response?.accessToken || ''));\r\n }\r\n\r\n public logout(): void {\r\n this.storageService.clear();\r\n if (window.parent == window) {\r\n window.location.href = this.environment.PORTAL_URL;\r\n } else {\r\n window.parent.postMessage({ logout: true }, this.parentWindowUrl);\r\n }\r\n }\r\n}\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { HttpResponseGridPaged } from '../models/http-response.model';\r\n\r\nexport class CrudBaseService<T> {\r\n public dataset$ = new BehaviorSubject<HttpResponseGridPaged<T>>({\r\n data: [],\r\n draw: 0,\r\n recordsFiltered: 0,\r\n recordsTotal: 0,\r\n });\r\n public flatUnpagedDataset$ = new BehaviorSubject<T[]>([]);\r\n public getHistory(entityId: string) {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ListItem } from '../models/list-item.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class EnumService {\r\n constructor(private translateService: TranslateService) {}\r\n public getTranslatedListItemsFromEnum(enumType: any, enumName: string): Observable<ListItem[]> {\r\n return this.getEnumTranslations(enumName).pipe(\r\n map((enumTranslations: any) => {\r\n return Object.keys(enumType)\r\n .filter((item) => isNaN(+item))\r\n .map((item: string) => {\r\n return {\r\n name: enumTranslations[item],\r\n code: enumType[item],\r\n };\r\n });\r\n })\r\n );\r\n }\r\n\r\n public getEnumTranslations(enumName: string): Observable<any> {\r\n return this.translateService.get('enums').pipe(\r\n map((translations) => {\r\n return translations[enumName];\r\n })\r\n );\r\n }\r\n\r\n public getListItemsFromEnum(enumType: any): ListItem[] {\r\n return Object.keys(enumType)\r\n .filter((item) => isNaN(+item))\r\n .map((item: string) => {\r\n return {\r\n name: enumType[item],\r\n code: enumType[item],\r\n };\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ErrorMessageService {\r\n public hasToken$ = new Subject<boolean>();\r\n public genericModalErrorMessage$ = new Subject<string | undefined>();\r\n}\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { IpInfo } from '../models/ip-info.enum';\r\n\r\n@Injectable()\r\nexport class GeolocationService {\r\n private customHttpClient: HttpClient;\r\n\r\n constructor(private http: HttpClient, private backend: HttpBackend) {\r\n this.customHttpClient = new HttpClient(backend);\r\n }\r\n\r\n public getGeoLoc() {\r\n return this.customHttpClient.get<IpInfo>('https://api.ipify.org/?format=json');\r\n }\r\n\r\n public createUserLoginInfo(userInfo: any) {\r\n return this.http.post(`Telemetry/CreateUserLogInfo`, userInfo);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LoadingService {\r\n public loading$ = new Subject<boolean>();\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ProfileModule, Role } from '../models';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StorageService {\r\n public clear(): void {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n }\r\n\r\n public clearSession(): void {\r\n sessionStorage.clear();\r\n }\r\n\r\n public get(key: string): any {\r\n const storageItem = localStorage.getItem(key);\r\n try {\r\n return storageItem ? JSON.parse(storageItem) : '';\r\n } catch (e) {\r\n return storageItem;\r\n }\r\n }\r\n\r\n public set(key: string, value: any): void {\r\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));\r\n }\r\n\r\n public remove(key: string): void {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n public getSession(key: string): any {\r\n const storageItem = sessionStorage.getItem(key);\r\n try {\r\n return storageItem ? JSON.parse(storageItem) : '';\r\n } catch (e) {\r\n return storageItem;\r\n }\r\n }\r\n\r\n public setSession(key: string, value: any): void {\r\n sessionStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));\r\n }\r\n\r\n public removeSession(key: string): void {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n public getToken(): string {\r\n return localStorage.getItem('token') || '';\r\n }\r\n\r\n public setToken(token: string) {\r\n localStorage.setItem('token', token);\r\n }\r\n\r\n public removeToken() {\r\n localStorage.removeItem('token');\r\n }\r\n\r\n public getRefreshToken(): string {\r\n return sessionStorage.getItem('refreshToken') || '';\r\n }\r\n\r\n public setRefreshToken(refreshToken: string) {\r\n sessionStorage.setItem('refreshToken', refreshToken);\r\n }\r\n\r\n public removeRefreshToken() {\r\n sessionStorage.removeItem('refreshToken');\r\n }\r\n\r\n public getUsername(): string {\r\n return sessionStorage.getItem('username') || '';\r\n }\r\n\r\n public setUsername(username: string) {\r\n sessionStorage.setItem('username', username);\r\n }\r\n\r\n public removeUsername() {\r\n sessionStorage.removeItem('username');\r\n }\r\n\r\n public getUserId(): number {\r\n const userId = sessionStorage.getItem('userId');\r\n return userId ? +atob(userId) : 0;\r\n }\r\n\r\n public setUserId(userId: number) {\r\n sessionStorage.setItem('userId', btoa(`${userId}`));\r\n }\r\n\r\n public clearUserId() {\r\n sessionStorage.removeItem('userId');\r\n }\r\n\r\n public getRole(): Role {\r\n return atob(sessionStorage.getItem('role') || '') as Role;\r\n }\r\n\r\n public setRole(role?: string) {\r\n sessionStorage.setItem('role', role || '');\r\n }\r\n\r\n public clearRole() {\r\n sessionStorage.removeItem('role');\r\n }\r\n\r\n public getProfile(): {\r\n marketplace: ProfileModule | undefined;\r\n fintech: ProfileModule | undefined;\r\n allModules: ProfileModule[] | undefined;\r\n } {\r\n const data = sessionStorage.getItem('profile') || '';\r\n return data ? JSON.parse(data) : data;\r\n }\r\n\r\n public setProfile(profiles: {\r\n marketplace: ProfileModule | undefined;\r\n fintech: ProfileModule | undefined;\r\n allModules: ProfileModule[] | undefined;\r\n }) {\r\n sessionStorage.setItem('profile', JSON.stringify(profiles || ''));\r\n }\r\n\r\n public removeProfile() {\r\n sessionStorage.removeItem('profile');\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport {\r\n Profile,\r\n ProfileModule,\r\n ProfileModuleActionType,\r\n ProfileModuleType,\r\n ProfileTypeEnum,\r\n} from '../models/profile.model';\r\nimport { StorageService } from './storage.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ProfileService {\r\n public readonly moduleProfile$ = new BehaviorSubject<ProfileModule[] | undefined>(\r\n this.storageService.getProfile().allModules\r\n );\r\n\r\n public readonly profileFirstName$ = new BehaviorSubject<string | undefined>(undefined);\r\n public readonly profileTypeItens$ = new BehaviorSubject<\r\n { shipper: number; carrierId: number; profileTypeId: number } | undefined\r\n >(undefined);\r\n public hasFintechAdminPermission = false;\r\n public hasMarketplaceAdminPermission = false;\r\n public hasAnyFintechPermission = false;\r\n public hasAnyMarketplacePermission = false;\r\n\r\n constructor(private http: HttpClient, private storageService: StorageService) {\r\n const { fintech, marketplace } = this.storageService.getProfile();\r\n this.hasFintechAdminPermission = !!fintech?.actions.some((act) =>\r\n [\r\n ProfileModuleActionType.FINTECH_BANK_ADMIN.toString(),\r\n ProfileModuleActionType.FINTECH_CREDIT_ADMIN.toString(),\r\n ].includes(act.name)\r\n );\r\n this.hasMarketplaceAdminPermission = !!marketplace?.actions.some(\r\n (act) => act.name === ProfileModuleActionType.ADMIN_MARKEPLACE\r\n );\r\n this.hasAnyFintechPermission = !!fintech?.actions?.length;\r\n this.hasAnyMarketplacePermission = !!marketplace?.actions?.length;\r\n }\r\n\r\n private getProfileTypeEnum(profileTypeId: number) {\r\n if (profileTypeId) return profileTypeId as ProfileTypeEnum;\r\n else return null;\r\n }\r\n\r\n public getUserProfile() {\r\n return this.http.get<any>('connect/userinfo').pipe(\r\n tap((response) => {\r\n if (response.firstName) {\r\n this.profileFirstName$.next(response.firstName);\r\n }\r\n if (response) {\r\n let dataObject = {\r\n shipper: response?.shipper,\r\n carrierId: response?.carrierId,\r\n profileTypeId: response?.profile.profileTypeId,\r\n profileName: response?.profile.name,\r\n userId: response?.id,\r\n profileTypeEnum: this.getProfileTypeEnum(response?.profile.profileTypeId),\r\n isEtcd: response?.isEtcd,\r\n shipperEtcd: response?.shipperEtcd,\r\n userName: response.firstName,\r\n regionalId: response?.regionalId,\r\n regionalUserList: response?.regionalUserList,\r\n };\r\n if (response.id) {\r\n this.storageService.setUserId(response.id);\r\n }\r\n this.storageService.setSession('userInfo', dataObject);\r\n this.profileTypeItens$.next(dataObject);\r\n }\r\n\r\n const completeProfile: Profile = response.profile;\r\n const marketplaceProfileModule = completeProfile.modules.find((mod) => mod.name === 'Marketplace');\r\n const fintechProfileModule = completeProfile.modules.find((mod) => mod.name === 'Fintech');\r\n const allModules = completeProfile.modules;\r\n this.hasFintechAdminPermission = !!fintechProfileModule?.actions.some((act) =>\r\n [\r\n ProfileModuleActionType.FINTECH_BANK_ADMIN.toString(),\r\n ProfileModuleActionType.FINTECH_CREDIT_ADMIN.toString(),\r\n ].includes(act.name)\r\n );\r\n this.hasMarketplaceAdminPermission = !!marketplaceProfileModule?.actions.some(\r\n (act) => act.name === ProfileModuleActionType.ADMIN_MARKEPLACE\r\n );\r\n this.hasAnyFintechPermission = !!fintechProfileModule?.actions?.length;\r\n this.storageService.setProfile({\r\n marketplace: marketplaceProfileModule,\r\n fintech: fintechProfileModule,\r\n allModules,\r\n });\r\n this.moduleProfile$.next(allModules);\r\n })\r\n );\r\n }\r\n\r\n public userHasPermission(\r\n action: ProfileModuleActionType | ProfileModuleType | ProfileModuleActionType[] | ProfileModuleType[] | undefined\r\n ) {\r\n if (!action) {\r\n return true;\r\n }\r\n if (!this.moduleProfile$.value) {\r\n return false;\r\n }\r\n\r\n if (Array.isArray(action)) {\r\n return action.some((act) => {\r\n if (Object.values(ProfileModuleActionType).some((val) => val === act)) {\r\n return this.moduleProfile$.value?.some((module) =>\r\n module.actions.some((moduleAction) => moduleAction.name === act)\r\n );\r\n }\r\n\r\n if (Object.values(ProfileModuleType).some((val) => val === act)) {\r\n return this.moduleProfile$.value?.some((module) => module.name === act);\r\n }\r\n\r\n return false;\r\n });\r\n } else {\r\n if (Object.values(ProfileModuleActionType).some((val) => val === action)) {\r\n return this.moduleProfile$.value.some((module) => module.actions.some((act) => act.name === action));\r\n }\r\n\r\n if (Object.values(ProfileModuleType).some((val) => val === action)) {\r\n return this.moduleProfile$.value.some((module) => module.name === action);\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public getUserInfo(): Observable<any> {\r\n return this.http.get<any>(`connect/userinfo`);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { APP_NAME, ENVIRONMENT, Environment, MENU_OPTIONS } from '../injections';\r\nimport { AppName, MenuItem, View } from '../models';\r\nimport { VectorApp } from '../models/vector-app.model';\r\nimport { AuthService } from './auth.service';\r\nimport { ProfileService } from './profile.service';\r\nimport { StorageService } from './storage.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MenuService {\r\n public toggleMenu$ = new Subject<void>();\r\n public menuOpened$ = new Subject<boolean>();\r\n public frameUrl$ = new Subject<string | undefined>();\r\n public menuNotifications: { [menuId: string]: number } = {};\r\n\r\n constructor(\r\n @Inject(ENVIRONMENT) private environment: Environment,\r\n @Inject(MENU_OPTIONS) private menuOptions: MenuItem[],\r\n @Inject(APP_NAME) private appName: string,\r\n private profileService: ProfileService,\r\n private storageService: StorageService,\r\n private router: Router,\r\n private authService: AuthService\r\n ) {}\r\n\r\n public getSideMainMenuOptions(): MenuItem[] {\r\n return this.menuOptions\r\n .filter(\r\n (menu) =>\r\n (!menu.view || ![View.HOME, View.ADMIN].includes(menu.view)) &&\r\n !menu.hidden &&\r\n this.profileService.userHasPermission(menu.permission)\r\n )\r\n .map((menu) => this.removeHiddenChildren(menu))\r\n .filter((menu) => !menu.hidden)\r\n .map((menu, index) => this.generateId(menu, index));\r\n }\r\n\r\n public getSideAdminMenuOptions(): MenuItem[] {\r\n return this.menuOptions\r\n .filter(\r\n (menu) => menu.view === View.ADMIN && !menu.hidden && this.profileService.userHasPermission(menu.permission)\r\n )\r\n .map((menu) => this.removeHiddenChildren(menu))\r\n .filter((menu) => !menu.hidden)\r\n .map((menu, index) => this.generateId(menu, index));\r\n }\r\n\r\n public navigateToPortal(params: Partial<VectorApp>): void {\r\n this.authService.generateTokenGuid().subscribe((tokenGuid) => {\r\n const userId = this.storageService.getUserId();\r\n if (params.navigate) {\r\n params.navigate(tokenGuid, userId);\r\n } else {\r\n switch (this.appName) {\r\n case AppName.FINTECH:\r\n this.handleFintechRedirects(params, tokenGuid, userId);\r\n break;\r\n case AppName.MARKETPLACE:\r\n this.handleMarketplaceRedirects(params, tokenGuid, userId);\r\n break;\r\n case AppName.LOGTECH:\r\n this.handleLogtechRedirects(params, tokenGuid, userId);\r\n break;\r\n }\r\n this.storageService.clear();\r\n }\r\n });\r\n }\r\n\r\n public addMenuNotification(menuId: string) {\r\n this.updateMenuNotifications(menuId, (this.menuNotifications[menuId] || 0) + 1);\r\n }\r\n\r\n public subtractMenuNotification(menuId: string) {\r\n this.updateMenuNotifications(menuId, this.menuNotifications[menuId] ? this.menuNotifications[menuId] - 1 : 0);\r\n }\r\n\r\n public updateMenuNotifications(menuId: string, notificationsCount: number): void {\r\n this.menuNotifications[menuId] = notificationsCount;\r\n }\r\n\r\n private removeHiddenChildren(menu: MenuItem) {\r\n const newMenu = { ...menu };\r\n const hadChildren = !!newMenu.children?.length;\r\n newMenu.children = newMenu.children\r\n ?.filter((child) => !child.hidden && this.profileService.userHasPermission(child.permission))\r\n .map((menu) => this.removeHiddenChildren(menu))\r\n .filter((child) => !child.hidden);\r\n if (\r\n hadChildren &&\r\n !newMenu.children?.length &&\r\n !newMenu.route &&\r\n !newMenu.frameUrl &&\r\n !newMenu.externalUrl &&\r\n !newMenu.command\r\n ) {\r\n newMenu.hidden = true;\r\n }\r\n return newMenu;\r\n }\r\n\r\n private generateId(menu: MenuItem, index: number, parentId: string = '') {\r\n menu.id = `${parentId}${index}`;\r\n menu.children = menu.children?.map((child, childIndex) => this.generateId(child, childIndex, menu.id));\r\n return menu;\r\n }\r\n\r\n private handleFintechRedirects(params: Partial<VectorApp>, tokenGuid: string, userId: number) {\r\n if (params.appName === AppName.FINTECH) {\r\n this.router.navigate([''], {\r\n queryParams: { Token: tokenGuid, role: params.isAdmin ? btoa('ADMIN') : '', userId },\r\n });\r\n } else {\r\n let url =\r\n params.appName === AppName.MARKETPLACE ? this.environment.MARKETPLACE_URL : this.environment.LOGITECH_URL;\r\n url += `?Token=${tokenGuid}&userId=${userId}`;\r\n if (params.isAdmin) {\r\n url += `&role=${btoa('ADMIN')}`;\r\n }\r\n window.location.href = url;\r\n }\r\n }\r\n\r\n private handleMarketplaceRedirects(params: Partial<VectorApp>, tokenGuid: string, userId: number) {\r\n if (params.appName === AppName.MARKETPLACE) {\r\n this.router.navigate([''], {\r\n queryParams: { Token: tokenGuid, role: params.isAdmin ? btoa('ADMIN') : '', userId: btoa(`${userId}`) },\r\n });\r\n } else {\r\n let url = params.appName === AppName.FINTECH ? this.environment.FINTECH_URL : this.environment.LOGITECH_URL;\r\n url += `?Token=${tokenGuid}&userId=${userId}`;\r\n if (params.isAdmin) {\r\n url += `&role=${btoa('ADMIN')}`;\r\n }\r\n window.location.href = url;\r\n }\r\n }\r\n\r\n private handleLogtechRedirects(params: Partial<VectorApp>, tokenGuid: string, userId: number) {\r\n if (params.appName === AppName.LOGTECH) {\r\n this.router.navigate([''], {\r\n queryParams: { Token: tokenGuid, userId: btoa(`${userId}`) },\r\n });\r\n } else {\r\n let url = params.appName === AppName.FINTECH ? this.environment.FINTECH_URL : this.environment.MARKETPLACE_URL;\r\n url += `?Token=${tokenGuid}&userId=${userId}`;\r\n if (params.isAdmin) {\r\n url += `&role=${btoa('ADMIN')}`;\r\n }\r\n window.location.href = url;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ModalService {\r\n public showModalBackground$ = new Subject<boolean>();\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, of } from 'rxjs';\r\nimport { VectorNotification } from '../models';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NotificationsService {\r\n public notifications$ = new BehaviorSubject<VectorNotification[]>([]);\r\n\r\n private readonly baseUrl = 'api/Notifications'; //to do: confirmar api\r\n constructor(private http: HttpClient) {}\r\n\r\n public getUserNotifications(): void {\r\n of(NOTIFICATIONS_MOCK).subscribe((notifications) => this.notifications$.next(notifications));\r\n // return this.http.get(`${this.baseUrl}`);\r\n }\r\n}\r\n\r\nconst NOTIFICATIONS_MOCK: VectorNotification[] = [\r\n {\r\n title: 'Lorem ipsum dolor sit amet',\r\n description: 'Conference Room 3B',\r\n },\r\n {\r\n title: 'Lorem ipsum dolor sit amet',\r\n description: 'Conference Room 3B',\r\n needsApproval: true,\r\n },\r\n {\r\n title: 'Lorem ipsum dolor sit amet',\r\n description: 'Conference Room 3B',\r\n warning: 'Lorem',\r\n },\r\n {\r\n title: 'Lorem ipsum dolor sit amet',\r\n description: 'Conference Room 3B',\r\n },\r\n {\r\n title: 'Lorem ipsum dolor sit amet',\r\n description: 'Conference Room 3B',\r\n warning: 'Lorem',\r\n wasRead: true,\r\n },\r\n {\r\n title: 'Lorem ipsum dolor sit amet',\r\n description: 'Conference Room 3B',\r\n wasRead: true,\r\n },\r\n {\r\n title: 'Lorem ipsum dolor sit amet',\r\n description: 'Conference Room 3B',\r\n warning: 'Lorem',\r\n wasRead: true,\r\n },\r\n {\r\n title: 'Lorem ipsum dolor sit amet',\r\n description: 'Conference Room 3B',\r\n wasRead: true,\r\n },\r\n];\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-field-error-message',\r\n templateUrl: './field-error-message.component.html',\r\n styleUrls: ['./field-error-message.component.scss'],\r\n})\r\nexport class FieldErrorMessageComponent implements OnInit {\r\n @Input()\r\n public control: any;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public fieldErrorLabel(): string {\r\n if (this.control && this.control.invalid && this.control.touched) {\r\n if (this.control.hasError('required')) {\r\n return 'Campo obrigatório';\r\n }\r\n\r\n if (this.control.hasError('minlength')) {\r\n return `Tamanho mínimo: ${this.control.errors['minlength'].requiredLength}`;\r\n }\r\n\r\n if (this.control.hasError('maxlength')) {\r\n return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;\r\n }\r\n\r\n if (this.control.hasError('fieldDoesNotMatch')) {\r\n return typeof this.control.errors['fieldDoesNotMatch'] === 'string'\r\n ? this.control.errors['fieldDoesNotMatch']\r\n : 'Campo inválido';\r\n }\r\n\r\n return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","<span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { ModalService } from '../../../services';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-calendar-field',\r\n templateUrl: './calendar-field.component.html',\r\n styleUrls: ['./calendar-field.component.scss'],\r\n})\r\nexport class CalendarComponent {\r\n @Input()\r\n public isRequired: boolean = false;\r\n @Input()\r\n public control: any;\r\n @Input()\r\n public label: string = '';\r\n @Input()\r\n public showCalendarOnFocus = true;\r\n @Input()\r\n public min?: any = DateTime.fromFormat('01/01/1900', 'dd/MM/yyyy').toJSDate();\r\n @Input()\r\n public max?: any = DateTime.now().startOf('day').plus({ years: 1 }).toJSDate();\r\n @Input()\r\n public disabledDates: Date[] = [];\r\n @Input()\r\n public disabled: boolean = false;\r\n @Input()\r\n public defaultDate: Date = DateTime.now().toJSDate();\r\n @Input()\r\n public hiddenErrorMessage: boolean = false;\r\n @Input()\r\n public showTime = false;\r\n @Input()\r\n public showSeconds = false;\r\n @Input()\r\n public stepMinute = 1;\r\n @Input()\r\n public stepHour = 1;\r\n @Input()\r\n public stepSecond = 1;\r\n @Input()\r\n public timeOnly: boolean = false;\r\n @Input()\r\n public hourFormat: string = '24';\r\n\r\n @Output()\r\n public onFocus = new EventEmitter<Event>();\r\n @Output()\r\n public onBlur = new EventEmitter<Event>();\r\n @Output()\r\n public onInput = new EventEmitter<Event>();\r\n @Output()\r\n public onSelect = new EventEmitter<Date>();\r\n\r\n get placeholder() {\r\n if (!this.label) {\r\n return '';\r\n }\r\n return `${this.label}${this.isRequired ? '*' : ''}`;\r\n }\r\n\r\n public keyFilter = '';\r\n\r\n constructor(private modalService: ModalService) {}\r\n\r\n public fieldErrorLabel(): string {\r\n if (this.control && this.control.invalid && this.control.touched) {\r\n if (this.control.hasError('required')) {\r\n return 'Campo obrigatório';\r\n }\r\n\r\n if (this.control.hasError('maxlength')) {\r\n return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;\r\n }\r\n\r\n return 'Campo inválido';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public onShowCalendar() {\r\n this.modalService.showModalBackground$.next(true);\r\n }\r\n\r\n public onHideCalendar() {\r\n this.modalService.showModalBackground$.next(false);\r\n }\r\n}\r\n","<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <p-datepicker\r\n appendTo=\"body\"\r\n icon=\"fas fa-calendar-day\"\r\n (onClose)=\"onHideCalendar()\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onSelect)=\"onSelect.emit($event)\"\r\n (onInput)=\"onInput.emit()\"\r\n [defaultDate]=\"defaultDate\"\r\n [disabled]=\"disabled\"\r\n [disabledDates]=\"disabledDates\"\r\n [formControl]=\"control\"\r\n [maxDate]=\"max\"\r\n [minDate]=\"min\"\r\n [readonlyInput]=\"false\"\r\n [showIcon]=\"true\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [showSeconds]=\"showSeconds\"\r\n [showTime]=\"showTime\"\r\n [stepMinute]=\"stepMinute\"\r\n [timeOnly]=\"timeOnly\"\r\n [stepHour]=\"stepHour\"\r\n [stepSecond]=\"stepSecond\"\r\n [hourFormat]=\"hourFormat\"\r\n ></p-datepicker>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ListItem } from '../../../models';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-checkbox-field',\r\n templateUrl: './checkbox-field.component.html',\r\n styleUrls: ['./checkbox-field.component.scss'],\r\n})\r\nexport class CheckboxFieldComponent implements OnInit {\r\n @Input()\r\n public isRequired: boolean = false;\r\n @Input()\r\n public control: any;\r\n @Input()\r\n public label: string = '';\r\n @Input()\r\n public rounded: boolean = false;\r\n @Input()\r\n public labelSize: 'default' | 'large' = 'default';\r\n @Input()\r\n public value: boolean | undefined = false;\r\n @Input()\r\n public groupName: string = '';\r\n @Input()\r\n public options: ListItem[] | null = null;\r\n @Input()\r\n public disabled: boolean = false;\r\n @Output()\r\n public valueChange = new EventEmitter<boolean>();\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n if (this.disabled) {\r\n this.control?.disable();\r\n } else {\r\n this.control?.enable();\r\n }\r\n }\r\n\r\n public toggleValue(): void {\r\n if (this.control) {\r\n this.control.setValue(!this.control.value);\r\n } else {\r\n this.value = !this.value;\r\n this.valueChange.emit(this.value);\r\n }\r\n }\r\n}\r\n","<div class=\"checkbox-container flex-wrap\">\r\n <ng-container *ngIf=\"control && groupName; else elseBlock\">\r\n <div class=\"checkbox-item mb-3 mr-3\" *ngFor=\"let option of options\">\r\n <p-checkbox\r\n [name]=\"groupName\"\r\n [formControl]=\"control\"\r\n [value]=\"option\"\r\n checkboxIcon=\"fas fa-check\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n [inputId]=\"option.code\"\r\n ></p-checkbox>\r\n <label [for]=\"option.code\"> {{ option.name }}</label>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #elseBlock>\r\n <p-checkbox\r\n *ngIf=\"control && !groupName\"\r\n [formControl]=\"control\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n [disabled]=\"disabled\"\r\n ></p-checkbox>\r\n <p-checkbox\r\n *ngIf=\"!control && !groupName\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"value = $event; valueChange.emit($event)\"\r\n checkboxIcon=\"fas fa-check\"\r\n [binary]=\"true\"\r\n [class.rounded-checkbox]=\"rounded\"\r\n [disabled]=\"disabled\"\r\n ></p-checkbox>\r\n <label *ngIf=\"label\" [class.large-label]=\"labelSize === 'large'\" (click)=\"toggleValue()\"\r\n >{{ label }}\r\n <span class=\"red-label\" *ngIf=\"isRequired\"> (*)</span>\r\n </label>\r\n </ng-template>\r\n</div>\r\n","export enum Currency {\r\n BR = 'R$ ',\r\n AR = '$ ',\r\n US = '$ ',\r\n}\r\n","export enum Locale {\r\n BR = 'pt-BR',\r\n AR = 'es-AR',\r\n US = 'en-US',\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { InputNumber } from 'primeng/inputnumber';\r\nimport { Currency } from '../../../models/currency.enum';\r\nimport { Locale } from '../../../models/locale.enum';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-currency-field',\r\n templateUrl: './currency-field.component.html',\r\n styleUrls: ['./currency-field.component.scss'],\r\n})\r\nexport class CurrencyFieldComponent implements AfterViewInit {\r\n @Input()\r\n public minValue = 0;\r\n @Input()\r\n public maxValue = 999999999;\r\n @Input()\r\n public placeholder: string = '';\r\n @Input()\r\n public numberOfDecimals: number = 2;\r\n @Input()\r\n public control: any;\r\n @Input()\r\n public outlined = false;\r\n @Input()\r\n public rounded = false;\r\n @Input()\r\n public label?: string;\r\n @Input()\r\n public isBankingField: boolean = false;\r\n @Input()\r\n public inputClassName = '';\r\n @Input()\r\n public localePrefix: Locale | string = Locale.BR;\r\n @Input()\r\n public currencyPrefix: Currency | string = Currency.BR;\r\n @Input()\r\n public disabled = false;\r\n @Input()\r\n public centered = false;\r\n @Input()\r\n public inputId?: string;\r\n\r\n @Output()\r\n public onBlur = new EventEmitter<Event>();\r\n\r\n @ViewChild(InputNumber)\r\n private inputElement?: InputNumber;\r\n\r\n ngAfterViewInit() {\r\n const inputElement = this.inputElement?.el.nativeElement.querySelector('input');\r\n inputElement.addEventListener(\r\n 'select',\r\n () => {\r\n inputElement.selectionStart = inputElement.selectionEnd;\r\n },\r\n false\r\n );\r\n }\r\n\r\n public getInputNgClass() {\r\n return { outlined: this.outlined, rounded: this.rounded, [this.inputClassName]: !!this.inputClassName };\r\n }\r\n\r\n public focusLastIndex($event: Event): void {\r\n const target = $event.target as HTMLInputElement;\r\n const selectionIndex = target?.value.length || 0;\r\n target?.setSelectionRange(selectionIndex, selectionIndex);\r\n }\r\n\r\n public inputNextChar($event: KeyboardEvent): void {\r\n const target = $event.target as HTMLInputElement;\r\n const valueTyped = $event.key;\r\n let newValue = target.value.replace('R$ ', '').replace(/[\\.,]/g, '');\r\n const isDeleteOrBackspace = ['Delete', 'Backspace'].includes($event.key);\r\n if (isDeleteOrBackspace) {\r\n newValue = newValue.substring(0, newValue.length - 1).padStart(3, '0');\r\n } else if (!isNaN(+valueTyped)) {\r\n newValue += valueTyped;\r\n newValue = `${+newValue}`.padStart(3, '0');\r\n }\r\n target.value = `${this.outlined ? 'R$ ' : ''}${Number(\r\n `${newValue.substring(0, newValue.length - 2)}.${newValue.substring(newValue.length - 2, newValue.length)}`\r\n ).toLocaleString('pt-BR', {\r\n currency: 'BRL',\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: this.numberOfDecimals,\r\n })}`;\r\n this.focusLastIndex($event);\r\n }\r\n\r\n public clearValue() {\r\n this.control.setValue(0);\r\n }\r\n}\r\n","<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">{{ currencyPrefix }} </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"getInputNgClass()\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"numberOfDecimals\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? currencyPrefix : ''\"\r\n [disabled]=\"disabled\"\r\n [locale]=\"localePrefix ? localePrefix : 'pt-BR'\"\r\n (click)=\"isBankingField ? focusLastIndex($event) : null\"\r\n (onKeyDown)=\"isBankingField ? inputNextChar($event) : null\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n [inputId]=\"inputId\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { DocumentType, ListItem } from '../../../models';\r\nimport { MaskUtil } from '../../../utils';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-text-field',\r\n templateUrl: './text-field.component.html',\r\n styleUrls: ['./text-field.component.scss'],\r\n})\r\nexport class TextFieldComponent implements OnInit, OnDestroy {\r\n @Input()\r\n public isRequired: boolean = false;\r\n @Input()\r\n public label: string = '';\r\n @Input()\r\n public maxlength: string = '';\r\n @Input()\r\n public isPassword = false;\r\n @Input()\r\n public numeric = false;\r\n @Input()\r\n public numericPositive = false;\r\n @Input()\r\n public numericDotComma = false;\r\n @Input()\r\n public decimal = false;\r\n @Input()\r\n public onlyText = false;\r\n @Input()\r\n public noSpecialCharacters = false;\r\n @Input()\r\n public alphaNumeric = false;\r\n @Input()\r\n public alphaNumericAndWhitespace = false;\r\n @Input()\r\n public mask?: string;\r\n @Input()\r\n public autoClear = true;\r\n @Input()\r\n public readonly = false;\r\n @Input()\r\n public rightIcon = '';\r\n @Input()\r\n public centered = false;\r\n @Input()\r\n public _enableDocumentTypeChoice = false;\r\n @Input() set enableDocumentTypeChoice(value: boolean) {\r\n this._enableDocumentTypeChoice = value;\r\n this.handleDocumentTypeChange();\r\n }\r\n get enableDocumentTypeChoice(): boolean {\r\n return this._enableDocumentTypeChoice;\r\n }\r\n @Input()\r\n public hiddenErrorMessage: boolean = false;\r\n @Input()\r\n public leftLabel?: string;\r\n @Input()\r\n set control(_control: any) {\r\n this._control = _control;\r\n if (this._enableDocumentTypeChoice) {\r\n this.handleInitialDocumentTypeState();\r\n }\r\n\r\n if (this.controlSubscription) {\r\n this.controlSubscription.unsubscribe();\r\n this.controlSubscription = new Subscription();\r\n }\r\n this.controlSubscription.add(\r\n this.control.valueChanges.subscribe((value: string) => {\r\n if (this._enableDocumentTypeChoice && !this.lastTypedValue && value?.length > 11) {\r\n this.handleInitialDocumentTypeState();\r\n }\r\n this.lastTypedValue = value;\r\n })\r\n );\r\n }\r\n @Input()\r\n public inputId?: string;\r\n @Input()\r\n public slotChar = '_';\r\n @Input()\r\n public disabled: boolean = false;\r\n @Input()\r\n public pattern: string = '';\r\n @Output()\r\n public blurEvent = new EventEmitter();\r\n @Output()\r\n public inputEvent = new EventEmitter();\r\n @Output()\r\n public enterKeyPress = new EventEmitter();\r\n @Output()\r\n public backSpaceKeyPress = new EventEmitter();\r\n @Output()\r\n public focusEvent = new EventEmitter();\r\n @Output()\r\n public onDocumentTypeChange = new EventEmitter<ListItem>();\r\n\r\n public isPasswordVisible = false;\r\n public validateOnly = false;\r\n\r\n get placeholder() {\r\n if (!this.label) {\r\n return '';\r\n }\r\n return `${this.label}${this.isRequired ? '*' : ''}`;\r\n }\r\n\r\n get keyfilter() {\r\n this.validateOnly = false;\r\n if (this.numeric) {\r\n return 'int';\r\n }\r\n if (this.numericPositive) {\r\n return 'pint';\r\n }\r\n if (this.decimal) {\r\n this.validateOnly = true;\r\n return /^(\\d+(?:[\\,]\\d{2})?)$/;\r\n }\r\n if (this.onlyText) {\r\n this.validateOnly = true;\r\n return /^[a-zA-ZÀ-ú\\s]*$/gm;\r\n }\r\n if (this.alphaNumeric) {\r\n return 'alphanum';\r\n }\r\n if (this.alphaNumericAndWhitespace) {\r\n return /^[A-Za-zÀ-ú0-9 ]*$/gm;\r\n }\r\n if (this.numericDotComma) {\r\n return 'money';\r\n }\r\n if (this.noSpecialCharacters) {\r\n return /^[a-zA-ZÀ-ÖØ-öø-ÿ0-9\\s]+$/;\r\n }\r\n return /[\\s\\S]*/;\r\n }\r\n\r\n get control() {\r\n return this._control;\r\n }\r\n\r\n get showPasswordIcon() {\r\n return this.isPasswordVisible ? 'fas fa-eye' : 'fas fa-eye-slash';\r\n }\r\n\r\n public documentTypes: ListItem[] = [\r\n {\r\n name: 'CPF',\r\n code: DocumentType.CPF,\r\n },\r\n {\r\n name: 'CNPJ',\r\n code: DocumentType.CNPJ,\r\n },\r\n ];\r\n\r\n public selectedDocumentType = this.documentTypes[1];\r\n\r\n private lastBlurValue = '';\r\n private lastTypedValue = '';\r\n private subscription = new Subscription();\r\n private controlSubscription = new Subscription();\r\n private _control: any;\r\n\r\n ngOnInit() {\r\n if (this._enableDocumentTypeChoice) {\r\n this.setDocumentType(this.selectedDocumentType.code);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n this.controlSubscription.unsubscribe();\r\n }\r\n\r\n public onBlur() {\r\n this.control.markAsTouched();\r\n if (this.lastBlurValue !== this.control.value) {\r\n this.lastBlurValue = this.control.value;\r\n setTimeout(() => {\r\n this.blurEvent.emit(this.control.value);\r\n });\r\n }\r\n }\r\n\r\n public onInput($event: Event) {\r\n const target = $event.target as HTMLInputElement;\r\n this.inputEvent.emit(target.value);\r\n }\r\n\r\n public onEnterPress() {\r\n this.onBlur();\r\n this.enterKeyPress.emit();\r\n }\r\n public onBackSpacePress() {\r\n this.onBlur();\r\n this.backSpaceKeyPress.emit();\r\n }\r\n\r\n public onFocus($event: Event) {\r\n const target = $event.target as HTMLInputElement;\r\n if (this.mask) {\r\n const firstUnderscore = target?.value.indexOf('_');\r\n const selectionIndex = (firstUnderscore >= 0 ? firstUnderscore : target?.value.length) || 0;\r\n target?.setSelectionRange(selectionIndex, selectionIndex);\r\n }\r\n this.focusEvent.emit(target?.value);\r\n }\r\n\r\n public toggleShowPassword() {\r\n this.isPasswordVisible = !this.isPasswordVisible;\r\n }\r\n\r\n public handleDocumentTypeChange() {\r\n if (this.selectedDocumentType.code === DocumentType.CNPJ) {\r\n this.setDocumentType(DocumentType.CPF);\r\n } else {\r\n this.setDocumentType(DocumentType.CNPJ);\r\n }\r\n }\r\n\r\n private handleInitialDocumentTypeState() {\r\n if (this.control?.value) {\r\n if (this.control.value.length === 11) {\r\n this.setDocumentType(DocumentType.CPF);\r\n } else {\r\n this.setDocumentType(DocumentType.CNPJ);\r\n }\r\n } else {\r\n this.setDocumentType(DocumentType.CPF);\r\n }\r\n }\r\n\r\n private setDocumentType(documentType: DocumentType) {\r\n if (this._enableDocumentTypeChoice) {\r\n switch (documentType) {\r\n case DocumentType.CNPJ:\r\n this.selectedDocumentType = this.documentTypes[1];\r\n this.mask = MaskUtil.CNPJ_TEXT_FIELD_PATTERN;\r\n break;\r\n case DocumentType.CPF:\r\n this.selectedDocumentType = this.documentTypes[0];\r\n this.mask = MaskUtil.CPF_TEXT_FIELD_PATTERN;\r\n break;\r\n }\r\n } else {\r\n this.mask = '';\r\n }\r\n this.onDocumentTypeChange.emit(this.selectedDocumentType);\r\n }\r\n}\r\n","<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\" *ngIf=\"!inputId\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <span *ngIf=\"leftLabel\" class=\"left-label\">\r\n {{ leftLabel }}\r\n </span>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pValidateOnly]=\"validateOnly\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (blur)=\"onBlur()\"\r\n (input)=\"onInput($event)\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (keydown.backspace)=\"onBackSpacePress()\"\r\n (click)=\"onFocus($event)\"\r\n [readonly]=\"readonly ? true : null\"\r\n [pattern]=\"pattern\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [inputId]=\"inputId || 'mask-field'\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (keydown.backspace)=\"onBackSpacePress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n [slotChar]=\"slotChar\"\r\n (click)=\"onFocus($event)\"\r\n [pattern]=\"pattern\"\r\n ></p-inputMask>\r\n </div>\r\n <div class=\"p-inputgroup\" *ngIf=\"inputId\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <span *ngIf=\"leftLabel\" class=\"left-label\">\r\n {{ leftLabel }}\r\n </span>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n [id]=\"inputId\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pValidateOnly]=\"validateOnly\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (blur)=\"onBlur()\"\r\n (input)=\"onInput($event)\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (keydown.backspace)=\"onBackSpacePress()\"\r\n (click)=\"onFocus($event)\"\r\n [readonly]=\"readonly ? true : null\"\r\n [pattern]=\"pattern\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [inputId]=\"inputId || 'mask-field'\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (keydown.backspace)=\"onBackSpacePress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n [slotChar]=\"slotChar\"\r\n (click)=\"onFocus($event)\"\r\n [pattern]=\"pattern\"\r\n ></p-inputMask>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</form>\r\n","import { Component, EventEmitter, Input, Output, Renderer2, signal } from '@angular/core';\r\nimport { MultiSelectFilterEvent } from 'primeng/multiselect';\r\nimport { ListItem } from '../../../models';\r\nimport { BaseDropdown } from '../../../services';\r\nimport { ObjectUtil } from '../../../utils';\r\n\r\nexport type ListItemExtend = ListItem & {\r\n key?: number | string;\r\n id?: number | string;\r\n};\r\n\r\nexport type ListItemOptionsFlagType = ListItem & {\r\n align: 'center' | 'left';\r\n showDescriptionOnRight: boolean;\r\n type: 'img' | 'icon';\r\n iconSource?: string;\r\n iconSize?: '1em' | '1.25em' | '1.5em' | '1.75em' | '2em';\r\n iconClass?: string;\r\n imgSource?: string;\r\n imgSize?: '15' | '20' | '25';\r\n imgClass?: string;\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-multiselect-field',\r\n templateUrl: './multiselect-field.component.html',\r\n styleUrls: ['./multiselect-field.component.scss'],\r\n})\r\nexport class MultiselectFieldComponent {\r\n @Input()\r\n set pagedSugestion(_pagedSugestion: ListItem[]) {\r\n this._pagedSugestion = _pagedSugestion;\r\n this.options = this.pagedSugestion || [];\r\n }\r\n @Input()\r\n public isRequired: boolean = false;\r\n @Input()\r\n public control: any;\r\n @Input()\r\n public label: string = '';\r\n @Input()\r\n public options: ListItem[] | ListItemExtend[] | ListItemOptionsFlagType[] = [];\r\n @Input()\r\n public filter = false;\r\n @Input()\r\n public showSelectAllOption: boolean = true;\r\n @Input()\r\n public display: string = 'comma';\r\n @Input()\r\n public paged = true;\r\n @Input()\r\n public disabled: boolean = false;\r\n @Input()\r\n public minLengthToService: number = 0;\r\n @Input()\r\n public initialLoad = true;\r\n @Input()\r\n public service: BaseDropdown | undefined;\r\n @Input()\r\n public filterVirtualScrool = false;\r\n @Input()\r\n public showHeader: boolean = true;\r\n @Input()\r\n public showFlags: boolean = false;\r\n private _showFlagsOptions?: ListItemOptionsFlagType[] | undefined;\r\n\r\n @Input()\r\n public dependencies: any;\r\n @Input()\r\n public limitScrollPage: number = 20;\r\n @Input()\r\n public forceSelection = true;\r\n\r\n @Input()\r\n set showFlagsOptions(value: ListItemOptionsFlagType[]) {\r\n if (!this.showFlags) {\r\n throw new Error('showFlags is set to false. Setting showFlagsOptions is not allowed.');\r\n }\r\n value.forEach((option) => {\r\n if (option.type === 'img') {\r\n if (!option.imgSource) {\r\n throw new Error(\"imgSource is required when type is 'img'\");\r\n }\r\n if (!option.imgSize) {\r\n throw new Error(\"imgSize is required when type is 'img'\");\r\n }\r\n } else if (option.type === 'icon') {\r\n if (!option.iconSource) {\r\n throw new Error(\"iconSource is required when type is 'icon'\");\r\n }\r\n if (!option.iconSize) {\r\n throw new Error(\"iconSize is required when type is 'icon'\");\r\n }\r\n }\r\n });\r\n this._showFlagsOptions = value;\r\n }\r\n\r\n get showFlagsOptions(): ListItemOptionsFlagType[] {\r\n if (!this._showFlagsOptions) {\r\n throw new Error('showFlagsOptions was not set');\r\n }\r\n return this._showFlagsOptions;\r\n }\r\n\r\n @Output()\r\n public onChange = new EventEmitter();\r\n @Output()\r\n public onClosePanel = new EventEmitter();\r\n\r\n private currentSearchQuery = '';\r\n private currentScrollPage = -1;\r\n private currentScrollIndex = 0;\r\n\r\n public unlistenAutocompleteVirtualScroll = () => {};\r\n\r\n get placeholder() {\r\n if (!this.label) {\r\n return '';\r\n }\r\n return `${this.label}${this.isRequired ? '*' : ''}`;\r\n }\r\n\r\n get pagedSugestion() {\r\n return this._pagedSugestion;\r\n }\r\n\r\n private _pagedSugestion: ListItem[] = [];\r\n private signalOptions = signal<ListItem[]>([]);\r\n\r\n constructor(private renderer: Renderer2) {}\r\n\r\n ngOnInit(): void {\r\n if (this.initialLoad && this.filterVirtualScrool) {\r\n this.search(null, true);\r\n }\r\n\r\n if (this.control && this.disabled) {\r\n this.control.disable();\r\n } else {\r\n this.control.enable();\r\n }\r\n\r\n if (this.service && this.control && this.control.value && Array.isArray(this.control.value)) {\r\n const controlValueArray = this.control.value.map((value: any) => value);\r\n if (controlValueArray.length) {\r\n this.loadInitialSelectedValues(controlValueArray);\r\n }\r\n }\r\n }\r\n\r\n public fieldErrorLabel(): string {\r\n if (this.control && this.control.invalid && this.control.touched) {\r\n if (this.control.hasError('required')) {\r\n return 'Campo obrigatório';\r\n }\r\n\r\n return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public customFormattingMultiSelectFieldWithFlags(): void {\r\n this.onloadAutocompletePanelService();\r\n\r\n setTimeout(() => {\r\n const vectorMultiselectField = document.querySelector('vector-multiselect-field.multiselect-flags');\r\n\r\n if (vectorMultiselectField) {\r\n const pOverlayElement = vectorMultiselectField.querySelector('p-overlay');\r\n\r\n if (pOverlayElement) {\r\n const classList = Array.from(pOverlayElement.classList);\r\n const targetClass = classList.find((className) => className.startsWith('ng-tns-'));\r\n\r\n if (targetClass) {\r\n const classReferenceCode = targetClass.replace('ng-tns-', '');\r\n const targetDivWithRefCode = document.querySelector(`div.ng-tns-${classReferenceCode}`);\r\n\r\n if (targetDivWithRefCode) {\r\n targetDivWithRefCode.classList.add('multiselect-flags');\r\n }\r\n }\r\n }\r\n }\r\n }, 200);\r\n }\r\n\r\n private onloadAutocompletePanelService(): void {\r\n if (this.service) {\r\n this.search();\r\n this.currentScrollPage++;\r\n\r\n this.service\r\n .getPaged(\r\n encodeURIComponent(this.currentSearchQuery),\r\n this.currentScrollPage,\r\n this.limitScrollPage,\r\n this.dependencies\r\n )\r\n .subscribe({\r\n next: (response) => {\r\n if (response && response.length) {\r\n const currentSignalOptions = this.signalOptions() || [];\r\n const combined = [\r\n ...currentSignalOptions,\r\n ...response,\r\n ...(this.currentScrollPage === 0 ? [] : (this.options as (ListItem | ListItemOptionsFlagType)[])),\r\n ];\r\n const uniqueOptions = combined.filter(\r\n (item, index, self) => self.findIndex((i) => i.code === item.code) === index\r\n );\r\n\r\n this.options = uniqueOptions;\r\n this.signalOptions.set(uniqueOptions);\r\n } else {\r\n this.options = this.currentScrollPage === 0 ? [] : this.options;\r\n this.signalOptions.set(this.options);\r\n }\r\n\r\n const controlValue = typeof this.control.value == 'object' ? this.control.value?.code : this.control.value;\r\n\r\n if (this.control.value && this.options?.find((item) => item.code == controlValue)) {\r\n this.setControlValueFromSuggestions();\r\n }\r\n\r\n if (this.forceSelection) {\r\n this.handleSearchErrors();\r\n }\r\n },\r\n error: (err) => {},\r\n });\r\n }\r\n }\r\n\r\n private loadInitialSelectedValues(controlValueArray: any[]): void {\r\n if (!this.service) return;\r\n this.service.getPaged('', 0, this.limitScrollPage, this.dependencies).subscribe({\r\n next: (response) => {\r\n this.options = response;\r\n this.setInitialControlValues(controlValueArray);\r\n },\r\n error: (err) => {},\r\n });\r\n }\r\n\r\n private setInitialControlValues(values: any[]): void {\r\n const selectedItems = (this.options as ListItemExtend[])\r\n .filter((item) => values.includes(item.code || item.key || item.id))\r\n .map((el) => (el.code = el.key ? el.key : el.id ? el.id : el.code));\r\n this.control.setValue(selectedItems, { emitEvent: false });\r\n }\r\n\r\n public onOpenAutocompletePanel(): void {\r\n this.search();\r\n const multiSelectPanel = document.querySelector('.p-multiselect-items-wrapper');\r\n\r\n if (multiSelectPanel && this.paged && this.currentSearchQuery.length >= this.minLengthToService) {\r\n this.unlistenAutocompleteVirtualScroll = this.renderer.listen(multiSelectPanel, 'scroll', (event) => {\r\n const eventHeight = event.target.scrollHeight - event.target.clientHeight - 150;\r\n\r\n if (Math.round(event.target.scrollTop) >= eventHeight) {\r\n this.pageResults();\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onHideAutocompletePanel(): void {\r\n if (this.paged) {\r\n this.unlistenAutocompleteVirtualScroll();\r\n }\r\n }\r\n\r\n public search($event?: any, forceSearch = false): void {\r\n this.currentSearchQuery = $event?.filter.toUpperCase() || '';\r\n this.currentScrollPage = -1;\r\n this.currentScrollIndex = 0;\r\n if (forceSearch || this.currentSearchQuery.length >= this.minLengthToService) {\r\n this.pageResults();\r\n } else {\r\n this.options = [];\r\n }\r\n }\r\n\r\n public onFilterChange($event?: MultiSelectFilterEvent): void {\r\n if (!$event || !$event.filter) return;\r\n\r\n if (this.service && $event?.filter.length >= this.minLengthToService) {\r\n this.service.getPaged($event.filter, this.currentScrollPage, this.limitScrollPage, this.dependencies).subscribe({\r\n next: (response: ListItem[]) => {\r\n if (response && response.length) {\r\n const currentSignalOptions = this.signalOptions() || [];\r\n const combined = [...response, ...currentSignalOptions, ...(this.options as ListItem[])];\r\n const uniqueOptions = combined.filter(\r\n (item, index, self) => self.findIndex((i) => i.code === item.code) === index\r\n );\r\n\r\n this.options = uniqueOptions;\r\n this.signalOptions.set(uniqueOptions);\r\n }\r\n },\r\n error: (err) => {},\r\n });\r\n }\r\n }\r\n\r\n private pageResults(): void {\r\n const filteredOptions = this.filterListByQuery(this.pagedSugestion, this.currentSearchQuery.toUpperCase());\r\n this.options = filteredOptions.slice(0, this.currentScrollIndex + 20);\r\n\r\n if (this.pagedSugestion?.length && this.pagedSugestion.length > 20) {\r\n this.currentScrollIndex = this.currentScrollIndex + 20;\r\n }\r\n\r\n this.setControlValueFromSuggestions();\r\n }\r\n\r\n private filterListByQuery(list: ListItem[] = [], query: string): ListItem[] {\r\n return list.filter(\r\n (opt) => String(opt.code).toUpperCase().includes(query) || opt.name.toUpperCase().includes(query)\r\n );\r\n }\r\n\r\n private setControlValueFromSuggestions() {\r\n const code =\r\n (ObjectUtil.isValid(this.control.value?.code) && `${this.control.value?.code}`) || `${this.control.value}`;\r\n if (this.control.value && this.options?.length) {\r\n let itemsArray = this.options;\r\n if (this.options?.length) {\r\n itemsArray = this.options;\r\n }\r\n const itemFromSuggestions = itemsArray.find((opt) => `${opt.code}`.toUpperCase() === code.toUpperCase());\r\n if (itemFromSuggestions) {\r\n this.control.setValue(itemFromSuggestions, { emitEvent: false });\r\n } else {\r\n this.service?.getById(+code).subscribe((response) => {\r\n this.control.setValue(response, { emitEvent: false });\r\n });\r\n }\r\n } else if (this.control.value && !this.options?.length) {\r\n this.service?.getById(+code).subscribe((response) => {\r\n this.control.setValue(response, { emitEvent: false });\r\n });\r\n }\r\n }\r\n\r\n private handleSearchErrors() {\r\n if (this.options?.length) {\r\n delete this.control.errors?.itemNotFound;\r\n } else if (this.currentSearchQuery) {\r\n this.control.setErrors({ itemNotFound: true });\r\n }\r\n }\r\n}\r\n","<div class=\"multiselect-field-input-container\">\r\n <p-multiSelect\r\n *ngIf=\"!filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onPanelHide)=\"onClosePanel.emit($event)\"\r\n (onPanelShow)=\"customFormattingMultiSelectFieldWithFlags()\"\r\n (onFilter)=\"onFilterChange($event)\"\r\n [disabled]=\"disabled\"\r\n [showHeader]=\"showHeader\"\r\n >\r\n <ng-container *ngIf=\"showFlags\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"grid-nogutter w-full flex\">\r\n <div\r\n class=\"md:col-6 sm:col-12 align-content-center\"\r\n [ngClass]=\"option.align === 'center' ? 'md:text-center' : 'md:text-left'\"\r\n >\r\n <img\r\n *ngIf=\"option.type == 'img'\"\r\n [src]=\"option.imgSource\"\r\n [ngClass]=\"option.imgClass\"\r\n [style]=\"{ height: option.imgSize + 'px' }\"\r\n />\r\n <i\r\n *ngIf=\"option.type == 'icon'\"\r\n [className]=\"option.iconSource\"\r\n [ngClass]=\"option.iconClass\"\r\n [style]=\"{ 'font-size': option.iconSize }\"\r\n ></i>\r\n </div>\r\n\r\n <div *ngIf=\"option.showDescriptionOnRight\" class=\"col-6 hidden md:block align-content-center\">\r\n <span class=\"block\">{{ option.name }}</span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </p-multiSelect>\r\n\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ListItem } from '../../../models';\r\nimport { BaseDropdown } from '../../../services';\r\nimport { ObjectUtil } from '../../../utils';\r\n\r\nexport type DropdownButtonAction = {\r\n label: string;\r\n onClick: (value: any) => void;\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-dropdown-field',\r\n templateUrl: './dropdown-field.component.html',\r\n styleUrls: ['./dropdown-field.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DropdownFieldComponent implements OnInit, OnDestroy {\r\n @Input()\r\n set options(_options: ListItem[]) {\r\n this._options = _options;\r\n this.pagedSuggestions = this.options || [];\r\n }\r\n @Input()\r\n public isNgContent = false;\r\n @Input()\r\n public forceSelection = true;\r\n @Input()\r\n public isRequired: boolean | undefined = false;\r\n @Input()\r\n set control(_control: any) {\r\n this._control = _control;\r\n if (this.control) {\r\n this.subscription.add(\r\n this.control.valueChanges.subscribe(() => {\r\n this.setControlValueFromSuggestions();\r\n }),\r\n );\r\n }\r\n }\r\n @Input()\r\n public label: string = '';\r\n @Input()\r\n public service: BaseDropdown | undefined;\r\n @Input()\r\n public paged = true;\r\n @Input()\r\n public buttonAction: DropdownButtonAction | undefined;\r\n @Input()\r\n public dependencies: any;\r\n @Input()\r\n public hiddenErrorMessage: boolean = false;\r\n @Input()\r\n public dynamicFilters?: ListItem[];\r\n @Input()\r\n public minLengthToService: number = 0;\r\n @Input()\r\n public initialLoad = true;\r\n @Input()\r\n public disabled = false;\r\n @Input()\r\n public limitScrollPage: number = 20;\r\n @Input()\r\n public inputId?: string;\r\n @Output()\r\n public onFocus = new EventEmitter();\r\n @Output()\r\n public onChange = new EventEmitter();\r\n\r\n get control() {\r\n return this._control;\r\n }\r\n\r\n get options() {\r\n return this._options;\r\n }\r\n\r\n get placeholder() {\r\n if (!this.label) {\r\n return '';\r\n }\r\n return `${this.label}${this.isRequired ? '*' : ''}`;\r\n }\r\n\r\n public pagedSuggestions: ListItem[] = [];\r\n public unlistenAutocompleteVirtualScroll = () => {};\r\n public selectedDynamicFilter: any = this.dynamicFilters ? this.dynamicFilters[0].code : undefined;\r\n\r\n private _control: any;\r\n private _options: any[] = [];\r\n private currentScrollPage = -1;\r\n private currentScrollIndex = 0;\r\n private subscription = new Subscription();\r\n private currentSearchQuery = '';\r\n\r\n constructor(private renderer: Renderer2) {}\r\n\r\n ngOnInit(): void {\r\n if (this.control && this.disabled) {\r\n this.control.disable();\r\n } else {\r\n this.control.enable();\r\n }\r\n\r\n if (this.initialLoad) {\r\n this.search(null, true);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n if (this.unlistenAutocompleteVirtualScroll) {\r\n this.unlistenAutocompleteVirtualScroll();\r\n }\r\n }\r\n\r\n public fieldErrorLabel(): string {\r\n if (this.control?.invalid && this.control.touched) {\r\n if (this.control.hasError('required')) {\r\n return 'Campo obrigatório';\r\n }\r\n\r\n return this.control?.errors && typeof this.control.errors['invalid'] === 'string'\r\n ? this.control?.errors['invalid']\r\n : 'Campo inválido';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public search($event?: any, forceSearch = false): void {\r\n this.currentSearchQuery = $event?.query.toUpperCase() || '';\r\n this.currentScrollPage = -1;\r\n this.currentScrollIndex = 0;\r\n if (forceSearch || this.currentSearchQuery.length >= this.minLengthToService) {\r\n this.pageResults();\r\n } else {\r\n this.pagedSuggestions = [];\r\n }\r\n }\r\n\r\n public onOpenAutocompletePanel(): void {\r\n const autocompletePanel = document.querySelector('.p-autocomplete-panel');\r\n if (autocompletePanel && this.paged && this.currentSearchQuery.length >= this.minLengthToService) {\r\n this.unlistenAutocompleteVirtualScroll = this.renderer.listen(autocompletePanel, 'scroll', (event) => {\r\n const eventHeight = event.target.scrollHeight - event.target.clientHeight - 150;\r\n\r\n if (Math.round(event.target.scrollTop) >= eventHeight) {\r\n this.pageResults();\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onHideAutocompletePanel(): void {\r\n if (this.paged) {\r\n this.unlistenAutocompleteVirtualScroll();\r\n }\r\n }\r\n\r\n private pageResults(): void {\r\n if (this.service) {\r\n this.currentScrollPage++;\r\n this.service\r\n .getPaged(\r\n encodeURIComponent(this.currentSearchQuery),\r\n this.currentScrollPage,\r\n this.limitScrollPage,\r\n this.dependencies,\r\n )\r\n .subscribe({\r\n next: (response) => {\r\n const formattedResponse = response.map((item) => ({\r\n ...item,\r\n name: this.formatDropdownValue(item.name),\r\n }));\r\n this.pagedSuggestions =\r\n this.currentScrollPage === 0 ? formattedResponse : this.pagedSuggestions?.concat(formattedResponse);\r\n const controlValue = typeof this.control.value == 'object' ? this.control.value?.code : this.control.value;\r\n if (this.control.value && this.pagedSuggestions?.find((item) => item.code == controlValue)) {\r\n this.setControlValueFromSuggestions();\r\n }\r\n if (this.forceSelection) {\r\n this.handleSearchErrors();\r\n }\r\n },\r\n error: (err) => {},\r\n });\r\n } else {\r\n const filteredOptions = this.filterListByQuery(this.options, this.currentSearchQuery.toUpperCase());\r\n this.pagedSuggestions = filteredOptions.slice(0, this.currentScrollIndex + this.limitScrollPage);\r\n\r\n if (this.options?.length && this.options.length > this.limitScrollPage) {\r\n this.currentScrollIndex = this.currentScrollIndex + this.limitScrollPage;\r\n }\r\n\r\n this.setControlValueFromSuggestions();\r\n if (this.forceSelection) {\r\n this.handleSearchErrors();\r\n }\r\n }\r\n }\r\n\r\n private setControlValueFromSuggestions() {\r\n const code =\r\n (ObjectUtil.isValid(this.control.value?.code) && `${this.control.value?.code}`) || `${this.control.value}`;\r\n if (this.control.value && this.pagedSuggestions?.length) {\r\n let itemsArray = this.pagedSuggestions;\r\n if (this.options?.length) {\r\n itemsArray = this.options;\r\n }\r\n const itemFromSuggestions = itemsArray.find((opt) => `${opt.code}`.toUpperCase() === code.toUpperCase());\r\n if (itemFromSuggestions) {\r\n this.control.setValue(itemFromSuggestions, { emitEvent: false });\r\n } else {\r\n this.service?.getById(+code).subscribe((response) => {\r\n this.control.setValue(response, { emitEvent: false });\r\n });\r\n }\r\n } else if (this.control.value && !this.pagedSuggestions?.length) {\r\n this.service?.getById(+code).subscribe((response) => {\r\n this.control.setValue(response, { emitEvent: false });\r\n });\r\n }\r\n }\r\n\r\n private handleSearchErrors() {\r\n if (this.pagedSuggestions?.length) {\r\n delete this.control.errors?.itemNotFound;\r\n } else if (this.currentSearchQuery) {\r\n this.control.setErrors({ itemNotFound: true });\r\n }\r\n }\r\n\r\n private filterListByQuery(list: ListItem[] = [], query: string): ListItem[] {\r\n return list.filter(\r\n (opt) => String(opt.code).toUpperCase().includes(query) || opt.name.toUpperCase().includes(query),\r\n );\r\n }\r\n\r\n formatDropdownValue(value: string): string {\r\n const firstDigitIndex = value.search(/\\d/);\r\n if (firstDigitIndex === -1) return value;\r\n\r\n const prefix = value.slice(0, firstDigitIndex);\r\n\r\n const remainingValue = value.slice(firstDigitIndex);\r\n\r\n const match = remainingValue.match(/^([a-zA-Z0-9]+)(.*)$/);\r\n if (!match) return value;\r\n\r\n const rawNumber = match[1];\r\n const suffix = match[2];\r\n\r\n const formatted = this.applyDynamicCpfCnpjMask(rawNumber);\r\n\r\n return `${prefix}${formatted}${suffix}`;\r\n }\r\n\r\n private applyDynamicCpfCnpjMask(value: string): string {\r\n if (!value) return '';\r\n\r\n const alphanumerics = value.replace(/[^a-zA-Z0-9]/g, '');\r\n if (!this.isCpfOrCnpj(alphanumerics)) return value;\r\n\r\n let masked = '';\r\n const isCpf = alphanumerics.length <= 11;\r\n\r\n if (isCpf) {\r\n for (let i = 0; i < alphanumerics.length; i++) {\r\n masked += alphanumerics[i];\r\n if (i === 2 || i === 5) masked += '.';\r\n else if (i === 8) masked += '-';\r\n }\r\n } else {\r\n for (let i = 0; i < alphanumerics.length; i++) {\r\n masked += alphanumerics[i];\r\n if (i === 1 || i === 4) masked += '.';\r\n else if (i === 7) masked += '/';\r\n else if (i === 11) masked += '-';\r\n }\r\n }\r\n\r\n return masked;\r\n }\r\n\r\n private isCpfOrCnpj(value: string): boolean {\r\n const cleaned = value.replace(/\\D/g, '');\r\n return this.isValidCpf(cleaned) || this.isValidCnpj(cleaned);\r\n }\r\n\r\n private isValidCpf(cpf: string): boolean {\r\n if (cpf.length !== 11 || /^(\\d)\\1+$/.test(cpf)) return false;\r\n\r\n const digits = cpf.split('').map(Number);\r\n\r\n const calcVerifier = (factor: number) => {\r\n let total = 0;\r\n for (let i = 0; i < factor - 1; i++) {\r\n total += digits[i] * (factor - i);\r\n }\r\n const rest = total % 11;\r\n return rest < 2 ? 0 : 11 - rest;\r\n };\r\n\r\n const dv1 = calcVerifier(10);\r\n const dv2 = calcVerifier(11);\r\n\r\n return dv1 === digits[9] && dv2 === digits[10];\r\n }\r\n\r\n private isValidCnpj(cnpj: string): boolean {\r\n if (cnpj.length !== 14 || /^(\\d)\\1+$/.test(cnpj)) return false;\r\n\r\n const digits = cnpj.split('').map(Number);\r\n const calcVerifier = (length: number) => {\r\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];\r\n\r\n const total = digits.slice(0, length).reduce((sum, num, idx) => sum + num * weights[idx], 0);\r\n\r\n const rest = total % 11;\r\n return rest < 2 ? 0 : 11 - rest;\r\n };\r\n\r\n const dv1 = calcVerifier(12);\r\n const dv2 = calcVerifier(13);\r\n\r\n return dv1 === digits[12] && dv2 === digits[13];\r\n }\r\n}\r\n","<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <div class=\"input-inner-container\" *ngIf=\"!isNgContent\">\r\n <p-select\r\n *ngIf=\"dynamicFilters\"\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n [(ngModel)]=\"selectedDynamicFilter\"\r\n [options]=\"dynamicFilters\"\r\n [disabled]=\"disabled\"\r\n [inputId]=\"inputId\"\r\n >\r\n </p-select>\r\n <p-autoComplete\r\n appendTo=\"body\"\r\n field=\"name\"\r\n [forceSelection]=\"forceSelection\"\r\n [dropdown]=\"true\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"pagedSuggestions\"\r\n [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\r\n [delay]=\"800\"\r\n (completeMethod)=\"search($event)\"\r\n (onShow)=\"onOpenAutocompletePanel()\"\r\n (onHide)=\"onHideAutocompletePanel()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onChange)=\"onChange.emit($event)\"\r\n [disabled]=\"disabled\"\r\n [inputId]=\"inputId\"\r\n >\r\n </p-autoComplete>\r\n </div>\r\n\r\n <div class=\"input-inner-container\" *ngIf=\"isNgContent\">\r\n <p-autoComplete\r\n appendTo=\"body\"\r\n field=\"name\"\r\n [forceSelection]=\"forceSelection\"\r\n [dropdown]=\"true\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"pagedSuggestions\"\r\n [dropdownIcon]=\"dynamicFilters ? 'pi pi-search' : 'pi pi-chevron-down'\"\r\n [delay]=\"800\"\r\n (completeMethod)=\"search($event)\"\r\n (onShow)=\"onOpenAutocompletePanel()\"\r\n (onHide)=\"onHideAutocompletePanel()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onChange)=\"onChange.emit($event)\"\r\n [disabled]=\"disabled\"\r\n [inputId]=\"inputId\"\r\n >\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"option-content\">\r\n <span class=\"option-label\">{{ option.name }}</span>\r\n <br />\r\n <span class=\"option-sublabel\">{{ option.code }}</span>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </div>\r\n\r\n <vector-button\r\n *ngIf=\"buttonAction\"\r\n [label]=\"buttonAction.label\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"buttonAction.onClick(control.value)\"\r\n ></vector-button>\r\n </div>\r\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { ListItem } from '../../../models';\r\n\r\nexport type SelectButtonVariant = 'primary' | 'secondary';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-select-button-field',\r\n templateUrl: './select-button-field.component.html',\r\n styleUrls: ['./select-button-field.component.scss'],\r\n})\r\nexport class SelectButtonFieldComponent {\r\n @Input()\r\n public options: ListItem[] = [];\r\n @Input()\r\n public control: any;\r\n @Input()\r\n public disabled: boolean = false;\r\n @Input()\r\n public variant: SelectButtonVariant = 'primary';\r\n\r\n @HostBinding('class.is-secondary')\r\n get isSecondary(): boolean {\r\n return this.variant === 'secondary';\r\n }\r\n\r\n constructor() {}\r\n}\r\n","<div class=\"input-container p-input-icon-right\">\r\n <p-selectButton\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n [disabled]=\"disabled\"\r\n ></p-selectButton>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { ListItem } from '../../../models';\r\nimport { BaseDropdown } from '../../../services';\r\nimport { ObjectUtil, ValidationUtil } from '../../../utils';\r\n\r\nexport enum FieldType {\r\n DROPDOWN,\r\n TEXT,\r\n DATE,\r\n NUMBER,\r\n CURRENCY,\r\n DYNAMIC_DROPDOWN,\r\n SELECT_BUTTON,\r\n DATE_RANGE,\r\n MULTISELECT,\r\n}\r\n\r\nexport type FilterField = {\r\n name: string;\r\n type: FieldType;\r\n minLength?: number;\r\n maxLength?: number;\r\n min?: number;\r\n max?: number;\r\n required?: boolean;\r\n readonly?: boolean;\r\n disabled?: boolean;\r\n label?: string;\r\n mask?: string;\r\n options?: ListItem[];\r\n filterTypes?: ListItem[];\r\n service?: BaseDropdown;\r\n defaultValue?: any;\r\n placeholder?: string;\r\n hidden?: boolean;\r\n dependencies?: string[];\r\n size?: 'small' | 'medium' | 'large' | 'largest' | 'full';\r\n minLengthToService?: number;\r\n initiateValue?: boolean;\r\n tooltip?: string;\r\n controler?: UntypedFormControl;\r\n dateMin?: Date;\r\n dateMax?: Date;\r\n class?: string;\r\n limitScrollPage?: number;\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-filters',\r\n templateUrl: './filters.component.html',\r\n styleUrls: ['./filters.component.scss'],\r\n})\r\nexport class FiltersComponent implements OnInit, OnDestroy {\r\n @Input()\r\n public set fields(_fields: FilterField[]) {\r\n const isFirstSet = !this._fields.length && _fields?.length;\r\n this._fields = _fields;\r\n this.formGroup = new UntypedFormGroup({});\r\n\r\n this.fieldsSubscription.unsubscribe();\r\n this.fieldsSubscription = new Subscription();\r\n\r\n this.fields?.forEach((field) => {\r\n if (field?.defaultValue && typeof field?.defaultValue === 'object') {\r\n field.initiateValue = !!field.defaultValue?.code;\r\n } else {\r\n field.initiateValue = !!field.defaultValue;\r\n }\r\n if (field.type === FieldType.DATE_RANGE) {\r\n this.formGroup.addControl(\r\n field.name,\r\n new UntypedFormGroup({\r\n startDate: new UntypedFormControl({ value: field.defaultValue?.startDate, disabled: field.readonly }, [\r\n ...this.buildValidators(field),\r\n ValidationUtil.lowerThanOrEqualTo('endDate'),\r\n ]),\r\n endDate: new UntypedFormControl({ value: field.defaultValue?.endDate, disabled: field.readonly }, [\r\n ...this.buildValidators(field),\r\n ValidationUtil.greaterThanOrEqualTo('startDate'),\r\n ]),\r\n })\r\n );\r\n } else {\r\n if (field.controler) {\r\n this.formGroup.addControl(field.name, field.controler);\r\n } else {\r\n this.formGroup.addControl(\r\n field.name,\r\n new UntypedFormControl({ value: field.defaultValue, disabled: field.readonly }, this.buildValidators(field))\r\n );\r\n }\r\n }\r\n\r\n if (!field.limitScrollPage) {\r\n field.limitScrollPage = 20;\r\n }\r\n });\r\n\r\n this.fields\r\n ?.filter((field) => field.dependencies)\r\n .forEach((field) => {\r\n field.dependencies?.forEach((dependency) => {\r\n this.fieldsSubscription.add(\r\n this.formGroup.get(dependency)?.valueChanges.subscribe((value) => {\r\n this.formGroup.get(field.name)?.reset();\r\n })\r\n );\r\n });\r\n });\r\n\r\n this.patchFormFromQueryParams({ ...this.activatedRoute.snapshot.queryParams });\r\n\r\n if (this._fields?.length && this.formGroup.valid && isFirstSet) {\r\n this.search();\r\n }\r\n this.formBuilded.emit();\r\n\r\n this.fieldsSubscription.add(\r\n this.activatedRoute.queryParams.subscribe((queryParams) => {\r\n this.patchFormFromQueryParams({ ...queryParams });\r\n })\r\n );\r\n }\r\n\r\n @Output()\r\n public onSearch = new EventEmitter<any>();\r\n @Output()\r\n public formBuilded = new EventEmitter<void>();\r\n\r\n public get fields() {\r\n return this._fields;\r\n }\r\n\r\n public fieldTypes = FieldType;\r\n public formGroup = new UntypedFormGroup({});\r\n\r\n private _fields: FilterField[] = [];\r\n private fieldsSubscription = new Subscription();\r\n\r\n get hideFilters() {\r\n return !this.fields?.filter((item) => !item.hidden).length;\r\n }\r\n\r\n constructor(private activatedRoute: ActivatedRoute) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnDestroy() {\r\n this.fieldsSubscription.unsubscribe();\r\n }\r\n\r\n public search() {\r\n this.formGroup.markAllAsTouched();\r\n if (this.formGroup.valid) {\r\n const filterValue = this.formGroup.getRawValue();\r\n Object.keys(filterValue).forEach((key) => {\r\n if (filterValue[key]?.hasOwnProperty('code')) {\r\n filterValue[key] = filterValue[key].code;\r\n }\r\n if (!ObjectUtil.isValid(filterValue[key])) {\r\n const fieldType = this.fields.find((field) => field.name === key)?.type ?? FieldType.TEXT;\r\n filterValue[key] = [FieldType.DROPDOWN, FieldType.NUMBER].includes(fieldType) ? -1 : '';\r\n }\r\n });\r\n this.onSearch.emit(filterValue);\r\n }\r\n }\r\n\r\n public isTextFieldType(field: FilterField) {\r\n return [FieldType.TEXT, FieldType.NUMBER].includes(field.type);\r\n }\r\n\r\n public getFieldDependencies(field: FilterField) {\r\n if (!field.dependencies) {\r\n return undefined;\r\n }\r\n return field.dependencies.reduce((prev, curr) => {\r\n let depValue: any = this.formGroup.get(curr)?.value?.code;\r\n if (!ObjectUtil.isValid(depValue)) {\r\n depValue = -1;\r\n }\r\n return {\r\n ...prev,\r\n [curr]: depValue,\r\n };\r\n }, {});\r\n }\r\n\r\n public getGridClass(field: FilterField) {\r\n switch (field.size) {\r\n case 'small':\r\n return 'md:col-1';\r\n case 'medium':\r\n return 'md:col-3';\r\n case 'large':\r\n return 'md:col-4';\r\n case 'largest':\r\n return 'md:col-8';\r\n case 'full':\r\n return 'md:col-12';\r\n default:\r\n return 'md:col-4';\r\n }\r\n }\r\n\r\n private patchFormFromQueryParams(queryParams: any) {\r\n if (Object.keys(queryParams).length) {\r\n this.fields.forEach((field) => {\r\n if (queryParams.hasOwnProperty(field.name)) {\r\n try {\r\n queryParams[field.name] = queryParams[field.name]\r\n ? JSON.parse(queryParams[field.name])\r\n : queryParams[field.name];\r\n } catch (_) {}\r\n if (field.type === FieldType.DATE_RANGE) {\r\n queryParams[field.name] = {\r\n startDate: queryParams[field.name].startDate ? new Date(queryParams[field.name].startDate) : undefined,\r\n endDate: queryParams[field.name].endDate ? new Date(queryParams[field.name].endDate) : undefined,\r\n };\r\n }\r\n if (field.type === FieldType.DATE) {\r\n queryParams[field.name] = queryParams[field.name] ? new Date(queryParams[field.name]) : undefined;\r\n }\r\n }\r\n });\r\n this.formGroup.patchValue(queryParams);\r\n }\r\n }\r\n\r\n private buildValidators(field: FilterField): ValidatorFn[] {\r\n const validators = [];\r\n if (field.required) {\r\n validators.push(Validators.required);\r\n }\r\n if (field.minLength) {\r\n validators.push(Validators.minLength(field.minLength));\r\n }\r\n if (field.maxLength) {\r\n validators.push(Validators.maxLength(field.maxLength));\r\n }\r\n if (field.min) {\r\n validators.push(Validators.min(field.min));\r\n }\r\n if (field.max) {\r\n validators.push(Validators.max(field.max));\r\n }\r\n return validators;\r\n }\r\n}\r\n","<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label\r\n >{{ field.label }}\r\n <i\r\n *ngIf=\"field.tooltip\"\r\n class=\"fas fa-info-circle mt-1 pl-2 ch\"\r\n pTooltip=\"{{ field.tooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i\r\n ></label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n [class]=\"field.class\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\r\n [dynamicFilters]=\"field.filterTypes\"\r\n [disabled]=\"field.disabled\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [minLengthToService]=\"field.minLengthToService || 0\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n [initialLoad]=\"field.initiateValue\"\r\n [limitScrollPage]=\"field.limitScrollPage\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n [disabled]=\"field.disabled\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n <vector-select-button-field\r\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options\"\r\n (click)=\"search()\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-select-button-field>\r\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.startDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n ></vector-calendar-field>\r\n Até\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.endDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n </div>\r\n <vector-multiselect-field\r\n *ngIf=\"field.type === fieldTypes.MULTISELECT\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options || []\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-multiselect-field>\r\n </div>\r\n <div class=\"search-button sm:col-4\">\r\n <vector-button\r\n [label]=\"'app.label.search' | translate\"\r\n (click)=\"search()\"\r\n [disabled]=\"!formGroup.valid\"\r\n [round]=\"true\"\r\n type=\"default-filled\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\r\nimport { Menu } from 'primeng/menu';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { FilterChangedEvent, ListItem, Status } from '../../../models';\r\nimport { DataTableLazyLoadEvent, TableColumn, TableColumnType } from '../../../models/data-table.model';\r\nimport { MaskUtil } from '../../../utils';\r\nimport { FilterField, FiltersComponent } from '../filters/filters.component';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-data-table',\r\n templateUrl: './data-table.component.html',\r\n styleUrls: ['./data-table.component.scss'],\r\n})\r\nexport class DataTableComponent implements OnInit, OnDestroy {\r\n private static readonly MENU_SCROLL_GRACE_MS = 250;\r\n\r\n @Input()\r\n public columns: TableColumn[] = [];\r\n @Input()\r\n public set data(_data: any[]) {\r\n this._data = _data;\r\n this.selectedItems = this._data?.filter((item) => item.selected) || [];\r\n }\r\n public get data() {\r\n return this._data;\r\n }\r\n private _data: any[] = [];\r\n @Input()\r\n public exportExcel = false;\r\n @Input()\r\n public exportPDF = false;\r\n @Input()\r\n public customFunction: { label: string; icon?: string; clickFunction: Function }[] | undefined;\r\n @Input()\r\n public totalRecords = 0;\r\n @Input()\r\n public disabledHeadercheckbox = false;\r\n @Input()\r\n public hideHeaderCheckbox = false;\r\n @Input()\r\n public filters: FilterField[] = [];\r\n @Input()\r\n public addItemLabel = '';\r\n @Input()\r\n public pagination = true;\r\n @Input()\r\n public virtualPagination = false;\r\n @Input()\r\n public set tabs(_tabs: ListItem[]) {\r\n this._tabs = _tabs;\r\n this._tabSelected = _tabs[0];\r\n }\r\n @Input()\r\n public customButtons: { label: string; clickFunction: Function; disabled?: boolean }[] | undefined;\r\n @Input()\r\n public addItemButtonPlusSign = false;\r\n @Input()\r\n public hasActions: boolean = true;\r\n @Input()\r\n public hasExpandableIcon = false;\r\n @Input()\r\n public addNameColumnExpand = '';\r\n @Input() expandable = false;\r\n @Input() expansionTemplate!: TemplateRef<any> | null;\r\n @Input()\r\n public set selectionMode(_selectionMode) {\r\n switch (_selectionMode) {\r\n case 'single':\r\n this._selectionMode = 'single';\r\n break;\r\n case 'multiple':\r\n this._selectionMode = 'multiple';\r\n break;\r\n default:\r\n this._selectionMode = null;\r\n break;\r\n }\r\n }\r\n @Input()\r\n public selectionType: 'checkbox' | 'radiobutton' | null = null;\r\n @Input()\r\n public set height(_height: string) {\r\n switch (_height) {\r\n case 'small':\r\n this._height = '300px';\r\n break;\r\n case 'medium':\r\n this._height = '500px';\r\n break;\r\n case 'large':\r\n this._height = '700px';\r\n break;\r\n case 'full':\r\n this._height = 'flex';\r\n break;\r\n default:\r\n this._height = '300px';\r\n }\r\n }\r\n @Input()\r\n public showLimitBalance = false;\r\n @Input()\r\n public showDataBalance = false;\r\n @Input()\r\n public dataAccountBalance: { visible: boolean; name: string; valueBalance: number; showBalance: boolean }[] = [];\r\n\r\n @Output()\r\n public onLazyLoad = new EventEmitter<DataTableLazyLoadEvent>();\r\n @Output()\r\n public onFilter = new EventEmitter<any>();\r\n @Output()\r\n public onAdd = new EventEmitter<void>();\r\n @Output()\r\n public onExportExcel = new EventEmitter<void>();\r\n @Output()\r\n public onExportPDF = new EventEmitter<void>();\r\n @Output()\r\n public onSelectedRows = new EventEmitter<any>();\r\n @Output()\r\n public onFilterChanged = new EventEmitter<FilterChangedEvent>();\r\n @Output()\r\n public onTabSelected = new EventEmitter<ListItem>();\r\n @Output()\r\n public onExpandRow: EventEmitter<any> = new EventEmitter();\r\n @Output()\r\n public onCellEdit = new EventEmitter<{ item: any; field: string; value: any }>();\r\n\r\n @Input()\r\n public firstLazyLoad = false;\r\n @Input()\r\n public shouldLazyLoadWithoutFilter = false;\r\n @Input()\r\n public reorderableColumns = false;\r\n @Input()\r\n public disableInitialSearch = false;\r\n\r\n @ViewChild(FiltersComponent, { static: true })\r\n public filtersComponent: FiltersComponent | undefined;\r\n\r\n public selectedItems: any = [];\r\n\r\n get balance(): (itemAccount?: any) => number | string {\r\n return (itemAccount?: any): number | string => {\r\n return itemAccount.showBalance\r\n ? itemAccount.valueBalance.toLocaleString('pt-BR', {\r\n currency: 'BRL',\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n })\r\n : '-,--';\r\n };\r\n }\r\n\r\n get tabs() {\r\n return this._tabs;\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n get selectionMode() {\r\n return this._selectionMode;\r\n }\r\n\r\n private _selectionMode: 'single' | 'multiple' | null = null;\r\n private _height: string = 'small';\r\n private _tabs: ListItem[] = [];\r\n private _draw = 1;\r\n private _firstLazyLoadedDone = this.firstLazyLoad;\r\n private _lastLazyLoadEvent: DataTableLazyLoadEvent | undefined;\r\n private _tabSelected: ListItem | undefined;\r\n private _filterSubscription = new Subscription();\r\n\r\n constructor(public cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.height) {\r\n this.height = 'small';\r\n }\r\n\r\n if (!this.pagination || this.virtualPagination) {\r\n this.filtersComponent?.search();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._filterSubscription.unsubscribe();\r\n }\r\n\r\n getColStyle(col: TableColumn) {\r\n return { 'min-width': col.width };\r\n }\r\n\r\n lazyLoaded(params: { filter: boolean; data: any } = { filter: false, data: { start: 0, rows: 10 } }) {\r\n if (this.disableInitialSearch) {\r\n this.disableInitialSearch = false;\r\n return;\r\n }\r\n if (!params.filter && !this.shouldLazyLoadWithoutFilter) {\r\n const columns = this.columns.map((col) => {\r\n return {\r\n data: col.field,\r\n name: `${col.field.substring(0, 1).toUpperCase()}${col.field.substring(1, col.field.length)}`,\r\n orderable: true,\r\n search: { value: '', regex: false },\r\n searchable: true,\r\n };\r\n });\r\n if (this.hasActions) {\r\n columns.unshift({\r\n data: 'active',\r\n name: 'Active',\r\n orderable: true,\r\n search: { value: '', regex: false },\r\n searchable: true,\r\n });\r\n }\r\n this._lastLazyLoadEvent = {\r\n ...(this._lastLazyLoadEvent || ({} as any)),\r\n page: params.data.first / params.data.rows + 1,\r\n start: params.data.first,\r\n length: params.data.rows,\r\n draw: this._draw++,\r\n order: params.data.sortField\r\n ? [\r\n {\r\n column:\r\n this.columns.findIndex((col) => col.field === params.data.sortField) + (this.hasActions ? 1 : 0),\r\n dir: params.data.sortOrder > 0 ? 'asc' : 'desc',\r\n },\r\n ]\r\n : [{ column: 0, dir: 'desc' }],\r\n columns: columns,\r\n tab: this._tabSelected,\r\n };\r\n } else {\r\n this._lastLazyLoadEvent = {\r\n ...this._lastLazyLoadEvent,\r\n ...params.data,\r\n start: 0,\r\n };\r\n if (this._tabSelected) {\r\n this._lastLazyLoadEvent = {\r\n ...(this._lastLazyLoadEvent || ({} as any)),\r\n ...{ Status: this._tabSelected.code },\r\n tab: this._tabSelected,\r\n };\r\n }\r\n }\r\n\r\n if (this._firstLazyLoadedDone || this.firstLazyLoad) {\r\n this.onLazyLoad.emit(this._lastLazyLoadEvent);\r\n }\r\n this._firstLazyLoadedDone = true;\r\n }\r\n\r\n getCellContent(item: any, col: TableColumn) {\r\n const cellText = this.getCellText(item, col);\r\n let content = `<span class=\"p-column-title\">${col.header}</span><span class=\"w-100\">`;\r\n if (\r\n !col.type ||\r\n [TableColumnType.ENUM, TableColumnType.TEXT, TableColumnType.DATETIME, TableColumnType.DATE].includes(col.type)\r\n ) {\r\n content += cellText;\r\n }\r\n switch (col.type) {\r\n case TableColumnType.CUSTOM_STYLE:\r\n content += `<span class=\"${col.textFieldClass ? item[col.textFieldClass] : ''}\">${cellText}</span>`;\r\n break;\r\n case TableColumnType.BOOLEAN:\r\n content += `<div class=\"text-centered\"><i class=\" status-table-field fas fa-${\r\n cellText ? 'check boolean-value-positive' : 'times boolean-value-negative'\r\n }\"></i></div>`;\r\n break;\r\n case TableColumnType.STATUS_BADGE:\r\n content += `<div class=\"text-centered\"><i class=\"fas fa-circle status-table-field ${this.getStatusColor(\r\n cellText,\r\n )}\"></i></div>`;\r\n break;\r\n case TableColumnType.ACTIVE_BOOLEAN_BADGE:\r\n content += `<div class=\"text-centered\"><i class=\"fas fa-circle status-table-field ${this.getActiveStatusColor(\r\n cellText,\r\n )}\"></i></div>`;\r\n break;\r\n case TableColumnType.BUTTON:\r\n let iconClass = '';\r\n if (typeof col.icon === 'function') {\r\n iconClass = col.icon(item);\r\n } else {\r\n iconClass = col.icon || 'fas fa-circle';\r\n }\r\n content += `<div class=\"text-centered\"><i class=\"${iconClass} status-table-field table-button\"></i></div>`;\r\n break;\r\n case TableColumnType.MASK:\r\n if (col.mask === 'dynamicCpfCnpj') {\r\n content += MaskUtil.formatDocument(cellText);\r\n } else {\r\n content += MaskUtil.doMaskString(cellText, col.mask);\r\n }\r\n break;\r\n case TableColumnType.CURRENCY:\r\n content += Number(cellText).toLocaleString('pt-BR', {\r\n currency: col.currencyType || 'BRL',\r\n currencyDisplay: 'narrowSymbol',\r\n style: 'currency',\r\n });\r\n }\r\n\r\n content += `</span>`;\r\n return content;\r\n }\r\n\r\n public getCellText(item: any, col: TableColumn) {\r\n if (col.getEnumTranslated) {\r\n return col.getEnumTranslated(item[col.field]);\r\n }\r\n if (col.type === TableColumnType.DATETIME && item[col.field]) {\r\n const dateTime =\r\n item[col.field] instanceof Date ? DateTime.fromJSDate(item[col.field]) : DateTime.fromISO(item[col.field]);\r\n return dateTime.toUTC().toFormat('dd/MM/yyyy HH:mm');\r\n }\r\n if (col.type === TableColumnType.DATE && item[col.field]) {\r\n const dateTime =\r\n item[col.field] instanceof Date ? DateTime.fromJSDate(item[col.field]) : DateTime.fromISO(item[col.field]);\r\n return dateTime.toUTC().toFormat('dd/MM/yyyy');\r\n }\r\n if (col.type === TableColumnType.STACK_BADGE) {\r\n if (!item[col.field].length || item[col.field].length === 1) {\r\n return item[col.field];\r\n } else {\r\n return `+${item[col.field].length}`;\r\n }\r\n }\r\n if (col.type === TableColumnType.STATUS_BADGE) {\r\n return item[col.field] == 0 ? 0 : item[col.field];\r\n }\r\n\r\n return item[col.field || ''] || '';\r\n }\r\n\r\n public getTooltipText(item: any, col: TableColumn) {\r\n if (\r\n !col.type ||\r\n ![TableColumnType.STACK_BADGE].includes(col.type) ||\r\n !Array.isArray(item[col.field]) ||\r\n item[col.field].length === 1\r\n ) {\r\n return null;\r\n }\r\n\r\n if (!Array.isArray(item[col.field])) {\r\n return item[col.field];\r\n }\r\n return item[col.field].join(' - ');\r\n }\r\n\r\n onTabChange($event: any) {\r\n this._tabSelected = this.tabs[$event.index];\r\n this.lazyLoaded({ filter: true, data: {} });\r\n this.onTabSelected.emit(this._tabSelected);\r\n }\r\n\r\n subscribeToFilterChanges() {\r\n this._filterSubscription.unsubscribe();\r\n this._filterSubscription = new Subscription();\r\n Object.keys(this.filtersComponent?.formGroup.controls || {}).forEach((key) => {\r\n this._filterSubscription.add(\r\n this.filtersComponent?.formGroup\r\n .get(key)\r\n ?.valueChanges.pipe(debounceTime(300))\r\n .subscribe((value) => {\r\n this.onFilterChanged.emit({ field: key, value });\r\n }),\r\n );\r\n this.onFilterChanged.emit({ field: key, value: this.filtersComponent?.formGroup.get(key)?.value });\r\n });\r\n }\r\n\r\n onRowClick(item: any) {\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.onExpandRow.emit(item);\r\n }\r\n\r\n get listHasActions() {\r\n return this.data.some((item) => item.actions?.length);\r\n }\r\n\r\n public changeSelectedItems(value: any) {\r\n this.onSelectedRows.emit(this.selectedItems);\r\n }\r\n\r\n public isHtmlCell(col: TableColumn) {\r\n return !col.type || !this.isBadgeCell(col);\r\n }\r\n\r\n public isEditableCell(col: TableColumn) {\r\n return this.isHtmlCell(col) && !!col.cellEdit;\r\n }\r\n\r\n public onCellEditComplete(item: any, col: TableColumn, value: any) {\r\n item[col.field] = value;\r\n this.onCellEdit.emit({ item, field: col.field, value });\r\n }\r\n\r\n public isBadgeCell(col: TableColumn) {\r\n return col.type && [TableColumnType.TEXT_BADGE, TableColumnType.STACK_BADGE].includes(col.type);\r\n }\r\n\r\n public isScoreCell(col: TableColumn) {\r\n return col.type === TableColumnType.SCORE;\r\n }\r\n\r\n public onSelectionChange(selection: any) {\r\n for (let i = selection.length - 1; i >= 0; i--) {\r\n let data = selection[i];\r\n if (data.disabledCheckBox) {\r\n selection.splice(i, 1);\r\n }\r\n }\r\n this.selectedItems = selection;\r\n }\r\n\r\n public onActionsMenuShow(menu: Menu): void {\r\n const noopScrollHandler: ConnectedOverlayScrollHandler = {\r\n element: null,\r\n listener: null,\r\n scrollableParents: null,\r\n bindScrollListener: () => {},\r\n unbindScrollListener: () => {},\r\n destroy: () => {},\r\n };\r\n menu.scrollHandler = noopScrollHandler;\r\n\r\n setTimeout(() => {\r\n if (menu.scrollHandler !== noopScrollHandler) {\r\n return;\r\n }\r\n menu.scrollHandler = null;\r\n if (menu.visible) {\r\n menu.bindScrollListener();\r\n }\r\n }, DataTableComponent.MENU_SCROLL_GRACE_MS);\r\n }\r\n\r\n public changeShowBalance(itemAccount?: any): void {\r\n if (itemAccount) {\r\n itemAccount.showBalance = !itemAccount.showBalance;\r\n }\r\n }\r\n\r\n private getStatusColor(status: Status) {\r\n switch (status) {\r\n case Status.PENDING:\r\n return 'warning';\r\n case Status.APPROVED:\r\n return 'success';\r\n case Status.REJECTED:\r\n return 'error';\r\n case Status.INFO:\r\n return 'info';\r\n }\r\n return '';\r\n }\r\n\r\n private getActiveStatusColor(active: boolean) {\r\n return active ? 'success' : 'error';\r\n }\r\n}\r\n","<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters\r\n [fields]=\"filters\"\r\n (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\r\n (formBuilded)=\"subscribeToFilterChanges()\"\r\n ></vector-filters>\r\n </div>\r\n <div\r\n class=\"table-header-actions field\"\r\n *ngIf=\"addItemLabel || exportExcel || exportPDF || customFunction || customButtons\"\r\n >\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file-excel\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file-pdf\"></i><span>PDF</span>\r\n </button>\r\n <button\r\n *ngFor=\"let button of customFunction\"\r\n (click)=\"button.clickFunction()\"\r\n class=\"export-button custom-function\"\r\n >\r\n <i *ngIf=\"button?.icon\" class=\"{{ button?.icon }}\"></i><span>{{ button?.label }}</span>\r\n </button>\r\n\r\n <vector-button\r\n *ngFor=\"let button of customButtons\"\r\n class=\"add-item-button\"\r\n [round]=\"true\"\r\n [label]=\"button.label\"\r\n (click)=\"button.clickFunction()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n [disabled]=\"button.disabled === true\"\r\n ></vector-button>\r\n <vector-button\r\n *ngIf=\"addItemLabel\"\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n [round]=\"true\"\r\n ></vector-button>\r\n </div>\r\n @if (showLimitBalance) {\r\n <div class=\"col-12 grid ml-0\">\r\n @for (itemAccount of dataAccountBalance; track $index) {\r\n @if (itemAccount.visible) {\r\n <div class=\"card balance-container\">\r\n <span class=\"card-header\">{{ itemAccount.name }}</span>\r\n <div class=\"card-content value-container\">\r\n <span>R$ </span>\r\n <span *ngIf=\"itemAccount.showBalance\" class=\"balance\">{{ balance(itemAccount) }}</span>\r\n <div class=\"hidden-balance\" *ngIf=\"!itemAccount.showBalance\"></div>\r\n <div class=\"icon-container\">\r\n <i\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-eye': !itemAccount.showBalance, 'fa-eye-slash': itemAccount.showBalance }\"\r\n (click)=\"changeShowBalance(itemAccount)\"\r\n ></i>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showDataBalance) {\r\n <div class=\"col-12 grid ml-0\">\r\n @for (itemAccount of dataAccountBalance; track $index) {\r\n <div class=\"card balance-container\">\r\n <span class=\"card-header\">{{ itemAccount.name }}</span>\r\n <div class=\"card-content value-container\">\r\n <span class=\"balance\">{{ itemAccount.valueBalance }}</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\">\r\n <ng-template pTemplate=\"header\">\r\n <em *ngIf=\"tab.icon\" [class]=\"tab.icon\">&nbsp;</em>\r\n <span>{{ tab.name }}</span>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} até {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n dataKey=\"id\"\r\n [scrollHeight]=\"height\"\r\n [selectionMode]=\"selectionType === 'checkbox' || selectionType === 'radiobutton' ? null : selectionMode\"\r\n [(selection)]=\"selectedItems\"\r\n (onRowSelect)=\"changeSelectedItems($event)\"\r\n (onHeaderCheckboxToggle)=\"changeSelectedItems($event)\"\r\n (onRowUnselect)=\"changeSelectedItems($event)\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [reorderableColumns]=\"reorderableColumns\"\r\n editMode=\"cell\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th *ngIf=\"reorderableColumns\" style=\"width: 5rem\"></th>\r\n\r\n <th *ngIf=\"selectionType === 'checkbox'\">\r\n <p-tableHeaderCheckbox\r\n *ngIf=\"!hideHeaderCheckbox\"\r\n [disabled]=\"disabledHeadercheckbox\"\r\n ></p-tableHeaderCheckbox>\r\n </th>\r\n <th\r\n class=\"px-1 w-max min-w-max white-space-nowrap text-center vertical-align-middle\"\r\n *ngIf=\"hasExpandableIcon\"\r\n >\r\n {{ addNameColumnExpand }}\r\n </th>\r\n <th *ngIf=\"hasActions\">{{ 'app.label.actions' | translate }}</th>\r\n <th *ngIf=\"selectionType === 'radiobutton'\">\r\n <div class=\"flex align-items-center\">\r\n <span></span>\r\n </div>\r\n </th>\r\n @for (col of columns; track $index) {\r\n @if (!col.hidden) {\r\n <th\r\n [ngStyle]=\"getColStyle(col)\"\r\n [pSortableColumn]=\"col.notSortable ? '' : col.field\"\r\n pReorderableColumn\r\n >\r\n <div class=\"flex align-items-center\">\r\n <span>{{ col.header }}</span> <p-sortIcon *ngIf=\"!col.notSortable\" [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n }\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item let-expanded=\"expanded\" let-index=\"rowIndex\">\r\n <tr\r\n class=\"row\"\r\n [pSelectableRow]=\"rowData\"\r\n [ngClass]=\"{ expandable: expandable }\"\r\n [pRowToggler]=\"item\"\r\n [pRowTogglerDisabled]=\"!expandable\"\r\n (click)=\"onRowClick(item)\"\r\n [pReorderableRow]=\"index\"\r\n >\r\n <ng-container *ngIf=\"reorderableColumns\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"justify-content-center align-items-center\">\r\n <span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectionType === 'checkbox'\">\r\n <td\r\n style=\"max-width: 3rem; padding-left: 10px\"\r\n class=\"justify-content-center align-items-center\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <p-tableCheckbox [value]=\"item\" [disabled]=\"item.disabledCheckBox\"></p-tableCheckbox>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectionType === 'radiobutton'\">\r\n <td\r\n style=\"max-width: 3rem; padding-left: 10px\"\r\n class=\"justify-content-center align-items-center\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\r\n </td>\r\n </ng-container>\r\n <td *ngIf=\"hasExpandableIcon\" class=\"px-1 w-auto text-center vertical-align-middle\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i\r\n [ngClass]=\"\r\n expanded ? 'actions-menu-button pi pi-chevron-down' : 'actions-menu-button pi pi-chevron-right'\r\n \"\r\n ></i>\r\n </td>\r\n <td *ngIf=\"hasActions\">\r\n <p-menu\r\n #menu\r\n [model]=\"item.actions\"\r\n [popup]=\"true\"\r\n appendTo=\"body\"\r\n (onShow)=\"item._menuOpen = true; onActionsMenuShow(menu)\"\r\n (onHide)=\"item._menuOpen = false\"\r\n ></p-menu>\r\n <i\r\n class=\"actions-menu-button fas fa-cog\"\r\n [class.active]=\"item._menuOpen\"\r\n (click)=\"menu.toggle($event)\"\r\n ></i>\r\n </td>\r\n @for (col of columns; track $index) {\r\n @if (!col.hidden) {\r\n <ng-container>\r\n <td\r\n *ngIf=\"isEditableCell(col)\"\r\n class=\"cell\"\r\n [pEditableColumn]=\"item\"\r\n [pEditableColumnField]=\"col.field\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n >\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-inputNumber\r\n *ngIf=\"!col.cellEdit?.editType || col.cellEdit?.editType === 'number'\"\r\n [(ngModel)]=\"item[col.field]\"\r\n [suffix]=\"col.cellEdit?.editSuffix || ''\"\r\n mode=\"decimal\"\r\n [maxFractionDigits]=\"col.cellEdit?.editMaxFractionDigits ?? 2\"\r\n [min]=\"col.cellEdit?.editMin ?? 0\"\r\n [max]=\"col.cellEdit?.editMax\"\r\n (onBlur)=\"onCellEditComplete(item, col, item[col.field])\"\r\n ></p-inputNumber>\r\n <input\r\n *ngIf=\"col.cellEdit?.editType === 'text'\"\r\n pInputText\r\n [(ngModel)]=\"item[col.field]\"\r\n (blur)=\"onCellEditComplete(item, col, item[col.field])\"\r\n />\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span>{{ item[col.field] }}{{ col.cellEdit?.editSuffix || '' }}</span>\r\n <i class=\"pi pi-pencil ml-2 text-primary\"></i>\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td\r\n *ngIf=\"isHtmlCell(col) && !col.cellEdit\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n <td\r\n *ngIf=\"(!isHtmlCell(col) && !!col.getStatus) || isScoreCell(col)\"\r\n class=\"cell\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n >\r\n <vector-badge\r\n *ngIf=\"isBadgeCell(col)\"\r\n [label]=\"getCellText(item, col)\"\r\n [type]=\"col.getStatus && col.getStatus(item[col.field])\"\r\n [tooltip]=\"getTooltipText(item, col)\"\r\n ></vector-badge>\r\n <vector-score *ngIf=\"isScoreCell(col)\" [score]=\"item[col.field]\"></vector-score>\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n <ng-template pTemplate=\"expandedrow\" let-item>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + (hasActions ? 1 : 0)\">\r\n <ng-container *ngTemplateOutlet=\"expansionTemplate; context: { item }\"> </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { FileSelectEvent, FileUpload } from 'primeng/fileupload';\r\n\r\ntype ButtonType =\r\n | 'success'\r\n | 'success-outlined'\r\n | 'default'\r\n | 'default-filled'\r\n | 'default-outlined'\r\n | 'default-outlined-gray'\r\n | 'default-outlined-gray-icon-red'\r\n | 'default-outlined-gray-icon-gray'\r\n | 'cancel'\r\n | 'cancel-filled'\r\n | 'light-outline';\r\n\r\nexport type InputFileButtonConfig = {\r\n label?: string;\r\n type?: ButtonType;\r\n leftIcon?: string;\r\n rightIcon?: string;\r\n};\r\n\r\nexport type InputFileAcceptExtension =\r\n | 'PDF'\r\n | 'DOC'\r\n | 'DOCX'\r\n | 'XLS'\r\n | 'XLSX'\r\n | 'PPT'\r\n | 'PPTX'\r\n | 'TXT'\r\n | 'CSV'\r\n | 'RTF'\r\n | 'JPG'\r\n | 'JPEG'\r\n | 'PNG'\r\n | 'GIF'\r\n | 'BMP'\r\n | 'WEBP'\r\n | 'SVG'\r\n | 'MP4'\r\n | 'MP3'\r\n | 'WAV'\r\n | 'ZIP'\r\n | 'RAR'\r\n | 'JSON'\r\n | 'XML';\r\n\r\nexport type UploadSingleFormValue = {\r\n originalFileName: string;\r\n friendlyFileName: string;\r\n fileExtension: string;\r\n fileSize: number;\r\n contentType: string;\r\n lastModified: number;\r\n convertedData: string | FormData | null;\r\n};\r\n\r\nexport type UploadSingleFormControls = {\r\n originalFileName: FormControl<string>;\r\n friendlyFileName: FormControl<string>;\r\n fileExtension: FormControl<string>;\r\n fileSize: FormControl<number>;\r\n contentType: FormControl<string>;\r\n lastModified: FormControl<number>;\r\n convertedData: FormControl<string | FormData | null>;\r\n};\r\n\r\nexport type UploadSingleFormGroup = FormGroup<UploadSingleFormControls>;\r\n\r\nexport type UploadMultipleFormArray = FormArray<UploadSingleFormGroup>;\r\n\r\n/**\r\n * Callback dos botões. Em modo single recebe um valor único; em modo multiple recebe a lista.\r\n * O componente decide qual formato passar com base em `uploadType`.\r\n */\r\nexport type InputFileButtonEvent = (value: UploadSingleFormValue | UploadSingleFormValue[]) => void | Promise<void>;\r\n\r\nconst UPLOAD_BUTTON_ATTACH_DEFAULTS: Required<InputFileButtonConfig> = {\r\n label: 'Anexar',\r\n type: 'default-filled',\r\n leftIcon: 'fas fa-paperclip',\r\n rightIcon: '',\r\n};\r\n\r\nconst UPLOAD_BUTTON_SEND_DEFAULTS: Required<InputFileButtonConfig> = {\r\n label: 'Enviar',\r\n type: 'default-outlined',\r\n leftIcon: 'fas fa-upload',\r\n rightIcon: '',\r\n};\r\n\r\nconst UPLOAD_BUTTON_CANCEL_DEFAULTS: Required<InputFileButtonConfig> = {\r\n label: 'Cancelar',\r\n type: 'cancel',\r\n leftIcon: 'fas fa-times',\r\n rightIcon: '',\r\n};\r\n\r\nconst EMPTY_UPLOAD_SINGLE_VALUE: UploadSingleFormValue = {\r\n originalFileName: '',\r\n friendlyFileName: '',\r\n fileExtension: '',\r\n fileSize: 0,\r\n contentType: '',\r\n lastModified: 0,\r\n convertedData: null,\r\n};\r\n\r\n/** Cria FormGroup vazio para modo single (ou item de FormArray no modo multiple). */\r\nexport function createUploadSingleForm(): UploadSingleFormGroup {\r\n return new FormGroup<UploadSingleFormControls>({\r\n originalFileName: new FormControl<string>('', { nonNullable: true }),\r\n friendlyFileName: new FormControl<string>('', { nonNullable: true }),\r\n fileExtension: new FormControl<string>('', { nonNullable: true }),\r\n fileSize: new FormControl<number>(0, { nonNullable: true }),\r\n contentType: new FormControl<string>('', { nonNullable: true }),\r\n lastModified: new FormControl<number>(0, { nonNullable: true }),\r\n convertedData: new FormControl<string | FormData | null>(null),\r\n });\r\n}\r\n\r\n/** Cria FormArray vazio para modo multiple. */\r\nexport function createUploadMultipleForm(): UploadMultipleFormArray {\r\n return new FormArray<UploadSingleFormGroup>([]);\r\n}\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-input-file',\r\n templateUrl: './input-file.component.html',\r\n styleUrl: './input-file.component.scss',\r\n})\r\nexport class InputFileComponent {\r\n /** Modo do upload: `'single'` = 1 arquivo (usa FormGroup) · `'multiple'` = vários (usa FormArray). Default: `'single'`. */\r\n @Input()\r\n public uploadType: 'single' | 'multiple' = 'single';\r\n\r\n /** Formato salvo em `convertedData`: `'base64'` (data URL string) ou `'formData'` (FormData pronto para POST). Default: `'formData'`. */\r\n @Input()\r\n public uploadFormat: 'formData' | 'base64' = 'formData';\r\n\r\n /** Criação de formulário: Single → `UploadSingleFormGroup` (use `createUploadSingleForm()`) · Multiple → `UploadMultipleFormArray` (use `createUploadMultipleForm()`). Se omitido, usa form interno. */\r\n @Input()\r\n public control?: UploadSingleFormGroup | UploadMultipleFormArray;\r\n\r\n /** Extensões aceitas, ex: `['PDF', 'JPG']` (vira `accept=\".pdf,.jpg\"`). Array vazio = aceita qualquer tipo. */\r\n @Input()\r\n public acceptExtensions: InputFileAcceptExtension[] = [];\r\n\r\n /** Tamanho máximo por arquivo em **MB** (ex: `5` = 5MB). `null` = sem limite. Convertido internamente pra bytes. */\r\n @Input()\r\n public maxFileSize: number | null = null;\r\n\r\n /** Quantidade máxima de arquivos no modo multiple (1 à 10). Ignorado em single (sempre 1). Default: `10`. */\r\n @Input()\r\n public maxFileNumberUploaded: number = 10;\r\n\r\n /** Renderiza o botão \"Enviar\" ao lado de \"Anexar\". Default: `false`. */\r\n @Input()\r\n public uploadButtonSendEnabled: boolean = false;\r\n\r\n /** Renderiza o botão \"Cancelar\" (limpa todos os arquivos ao clicar). Default: `false`. */\r\n @Input()\r\n public uploadButtonCancelEnabled: boolean = false;\r\n\r\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). */\r\n @Input()\r\n public uploadButtonAttachEvent?: InputFileButtonEvent;\r\n\r\n /** Callback do botão \"Enviar\". Enquanto a Promise retornada não resolve, `internalSending` fica `true` (botão em loading e demais desabilitados). */\r\n @Input()\r\n public uploadButtonSendEvent?: InputFileButtonEvent;\r\n\r\n /** Callback do botão \"Cancelar\". Chamado **após** o form já ter sido limpo — útil para notificar o consumidor. */\r\n @Input()\r\n public uploadButtonCancelEvent?: InputFileButtonEvent;\r\n\r\n /** Habilita clique na badge do arquivo para abrir modal de preview (imagem ou PDF). Default: `false`. */\r\n @Input()\r\n public enableModalView: boolean = false;\r\n\r\n @Output()\r\n public fileSelected = new EventEmitter<UploadSingleFormValue | UploadSingleFormValue[]>();\r\n @Output()\r\n public fileRemoved = new EventEmitter<void>();\r\n\r\n @ViewChild('fileUpload')\r\n public fileUploadRef?: FileUpload;\r\n\r\n public internalSending: boolean = false;\r\n public isModalViewOpen: boolean = false;\r\n /** Índice do arquivo que está sendo visualizado no modal (só usado em modo multiple). */\r\n public modalViewIndex: number | null = null;\r\n\r\n private _internalForm: UploadSingleFormGroup = createUploadSingleForm();\r\n private _internalArray: UploadMultipleFormArray = createUploadMultipleForm();\r\n\r\n /** Single: arquivo original (antes das conversões) + objectURL para preview. */\r\n private _selectedFile: File | null = null;\r\n private _previewObjectUrl: string | null = null;\r\n\r\n /** Multiple: arquivos originais por índice + objectURLs por índice, paralelo ao FormArray. */\r\n private _multipleFiles: File[] = [];\r\n private _multiplePreviewObjectUrls: (string | null)[] = [];\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n private _uploadButtonAttach: Required<InputFileButtonConfig> = { ...UPLOAD_BUTTON_ATTACH_DEFAULTS };\r\n /** Customiza o botão \"Anexar\" (`label`, `type`, `leftIcon`, `rightIcon`). */\r\n @Input()\r\n public set uploadButtonAttach(value: InputFileButtonConfig | undefined | null) {\r\n this._uploadButtonAttach = { ...UPLOAD_BUTTON_ATTACH_DEFAULTS, ...(value ?? {}) };\r\n }\r\n public get uploadButtonAttach(): Required<InputFileButtonConfig> {\r\n return this._uploadButtonAttach;\r\n }\r\n\r\n private _uploadButtonSend: Required<InputFileButtonConfig> = { ...UPLOAD_BUTTON_SEND_DEFAULTS };\r\n /** Customiza o botão \"Enviar\". (`label`, `type`, `leftIcon`, `rightIcon`) */\r\n @Input()\r\n public set uploadButtonSend(value: InputFileButtonConfig | undefined | null) {\r\n this._uploadButtonSend = { ...UPLOAD_BUTTON_SEND_DEFAULTS, ...(value ?? {}) };\r\n }\r\n public get uploadButtonSend(): Required<InputFileButtonConfig> {\r\n return this._uploadButtonSend;\r\n }\r\n\r\n private _uploadButtonCancel: Required<InputFileButtonConfig> = { ...UPLOAD_BUTTON_CANCEL_DEFAULTS };\r\n /** Customiza o botão \"Cancelar\". (`label`, `type`, `leftIcon`, `rightIcon`). Só aparece se `uploadButtonCancelEnabled === true`. */\r\n @Input()\r\n public set uploadButtonCancel(value: InputFileButtonConfig | undefined | null) {\r\n this._uploadButtonCancel = { ...UPLOAD_BUTTON_CANCEL_DEFAULTS, ...(value ?? {}) };\r\n }\r\n public get uploadButtonCancel(): Required<InputFileButtonConfig> {\r\n return this._uploadButtonCancel;\r\n }\r\n\r\n // ─── Form accessors ──────────────────────────────────────\r\n\r\n public get uploadForm(): UploadSingleFormGroup {\r\n return (this.control as UploadSingleFormGroup | undefined) ?? this._internalForm;\r\n }\r\n\r\n public get uploadArray(): UploadMultipleFormArray {\r\n return (this.control as UploadMultipleFormArray | undefined) ?? this._internalArray;\r\n }\r\n\r\n /** True se tem arquivo(s) — funciona pros dois modos. */\r\n public get hasFile(): boolean {\r\n if (this.uploadType === 'single') {\r\n return !!this.uploadForm.controls.originalFileName.value;\r\n }\r\n return this.uploadArray.length > 0;\r\n }\r\n\r\n /** Send habilitado se: single com arquivo, ou multiple com pelo menos 1 arquivo. */\r\n public get canSend(): boolean {\r\n if (this.internalSending) return false;\r\n return this.hasFile;\r\n }\r\n\r\n /** Limite atingido — desabilita Attach em modo multiple. */\r\n public get isAttachAtLimit(): boolean {\r\n if (this.uploadType === 'single') return this.hasFile;\r\n return this.uploadArray.length >= this.maxFileNumberUploaded;\r\n }\r\n\r\n // ─── Config conversion ───────────────────────────────────\r\n\r\n public get acceptString(): string {\r\n return (this.acceptExtensions ?? []).map((ext) => `.${ext.toLowerCase()}`).join(',');\r\n }\r\n\r\n public get maxFileSizeBytes(): number {\r\n const mb = this.maxFileSize ?? 0;\r\n return mb > 0 ? mb * 1024 * 1024 : 0;\r\n }\r\n\r\n /** Passado para o p-fileUpload — 1 em modo single, o input em modo multiple. */\r\n public get effectiveFileLimit(): number {\r\n return this.uploadType === 'single' ? 1 : this.maxFileNumberUploaded;\r\n }\r\n\r\n // ─── Click handlers ──────────────────────────────────────\r\n\r\n public async handleAttachClick(event: MouseEvent): Promise<void> {\r\n if (this.isAttachAtLimit) return;\r\n this.triggerAttach(event);\r\n await this.uploadButtonAttachEvent?.(this.currentEmitValue());\r\n }\r\n\r\n public async handleSendClick(): Promise<void> {\r\n if (!this.uploadButtonSendEvent || !this.canSend) return;\r\n this.internalSending = true;\r\n try {\r\n await this.uploadButtonSendEvent(this.currentEmitValue());\r\n } finally {\r\n this.internalSending = false;\r\n }\r\n }\r\n\r\n public async handleCancelClick(): Promise<void> {\r\n this.resetUploadForm();\r\n await this.uploadButtonCancelEvent?.(this.currentEmitValue());\r\n }\r\n\r\n private currentEmitValue(): UploadSingleFormValue | UploadSingleFormValue[] {\r\n if (this.uploadType === 'single') return this.uploadForm.getRawValue();\r\n return this.uploadArray.getRawValue();\r\n }\r\n\r\n // ─── Reset ───────────────────────────────────────────────\r\n\r\n public resetUploadForm(): void {\r\n if (this.uploadType === 'single') {\r\n this.uploadForm.reset(EMPTY_UPLOAD_SINGLE_VALUE);\r\n this._selectedFile = null;\r\n this.revokePreviewObjectUrl();\r\n } else {\r\n this.uploadArray.clear();\r\n for (const url of this._multiplePreviewObjectUrls) {\r\n if (url) URL.revokeObjectURL(url);\r\n }\r\n this._multipleFiles = [];\r\n this._multiplePreviewObjectUrls = [];\r\n this.uploadArray.updateValueAndValidity();\r\n }\r\n this.fileUploadRef?.clear();\r\n this.closeModalView();\r\n this.fileRemoved.emit();\r\n }\r\n\r\n /** Remove um item específico do FormArray (modo multiple). */\r\n public removeUploadArrayItem(index: number): void {\r\n const url = this._multiplePreviewObjectUrls[index];\r\n if (url) URL.revokeObjectURL(url);\r\n\r\n this.uploadArray.removeAt(index);\r\n this._multipleFiles.splice(index, 1);\r\n this._multiplePreviewObjectUrls.splice(index, 1);\r\n this.uploadArray.updateValueAndValidity();\r\n\r\n this.fileRemoved.emit();\r\n }\r\n\r\n // ─── p-fileUpload handler ────────────────────────────────\r\n\r\n public async onPrimeFileSelect(event: FileSelectEvent): Promise<void> {\r\n const files: File[] = Array.from(event?.files ?? []);\r\n if (files.length === 0) return;\r\n\r\n if (this.uploadType === 'single') {\r\n const file = files[0];\r\n this._selectedFile = file;\r\n this.revokePreviewObjectUrl();\r\n const value = await this.buildValueFromFile(file);\r\n this.uploadForm.setValue(value);\r\n this.fileSelected.emit(value);\r\n return;\r\n }\r\n\r\n for (const file of files) {\r\n if (this.uploadArray.length >= this.maxFileNumberUploaded) break;\r\n const value = await this.buildValueFromFile(file);\r\n const fg = createUploadSingleForm();\r\n fg.setValue(value);\r\n this.uploadArray.push(fg);\r\n this._multipleFiles.push(file);\r\n this._multiplePreviewObjectUrls.push(null);\r\n }\r\n this.uploadArray.updateValueAndValidity();\r\n\r\n this.fileSelected.emit(this.uploadArray.getRawValue());\r\n }\r\n\r\n // ─── Modal ───────────────────────────────────────────────\r\n\r\n /**\r\n * Abre o modal de preview. Em single, chama sem índice. Em multiple, passa o índice.\r\n */\r\n public openModalView(index?: number): void {\r\n if (!this.enableModalView || !this.hasFile) return;\r\n\r\n if (this.uploadType === 'single') {\r\n if (this.uploadFormat !== 'base64' && this._selectedFile && !this._previewObjectUrl) {\r\n this._previewObjectUrl = URL.createObjectURL(this._selectedFile);\r\n }\r\n this.modalViewIndex = null;\r\n } else {\r\n if (index == null || index < 0 || index >= this.uploadArray.length) return;\r\n this.modalViewIndex = index;\r\n if (this.uploadFormat !== 'base64' && this._multipleFiles[index] && !this._multiplePreviewObjectUrls[index]) {\r\n this._multiplePreviewObjectUrls[index] = URL.createObjectURL(this._multipleFiles[index]);\r\n }\r\n }\r\n this.isModalViewOpen = true;\r\n }\r\n\r\n public closeModalView(): void {\r\n this.isModalViewOpen = false;\r\n this.modalViewIndex = null;\r\n }\r\n\r\n /** FormGroup do arquivo atualmente sendo visualizado (single ou item do array). */\r\n private currentPreviewControl(): UploadSingleFormGroup | null {\r\n if (this.uploadType === 'single') return this.uploadForm;\r\n if (this.modalViewIndex == null) return null;\r\n const ctrl = this.uploadArray.at(this.modalViewIndex);\r\n return ctrl ?? null;\r\n }\r\n\r\n public get previewFileName(): string {\r\n return this.currentPreviewControl()?.controls.originalFileName.value ?? '';\r\n }\r\n\r\n public get isImagePreview(): boolean {\r\n const ct = this.currentPreviewControl()?.controls.contentType.value ?? '';\r\n return ct.startsWith('image/');\r\n }\r\n\r\n public get isPdfPreview(): boolean {\r\n return this.currentPreviewControl()?.controls.contentType.value === 'application/pdf';\r\n }\r\n\r\n public get previewUrl(): string {\r\n if (this.uploadFormat === 'base64') {\r\n const data = this.currentPreviewControl()?.controls.convertedData.value;\r\n return typeof data === 'string' ? data : '';\r\n }\r\n if (this.uploadType === 'single') {\r\n return this._previewObjectUrl ?? '';\r\n }\r\n if (this.modalViewIndex == null) return '';\r\n return this._multiplePreviewObjectUrls[this.modalViewIndex] ?? '';\r\n }\r\n\r\n public get safePreviewUrl(): SafeResourceUrl {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.previewUrl);\r\n }\r\n\r\n // ─── Helpers privados ────────────────────────────────────\r\n\r\n private triggerAttach(_event: MouseEvent): void {\r\n const fu = this.fileUploadRef;\r\n if (!fu) return;\r\n type FileUploadInternals = {\r\n basicFileInput?: { nativeElement?: HTMLInputElement };\r\n advancedFileInput?: { nativeElement?: HTMLInputElement };\r\n el?: { nativeElement?: HTMLElement };\r\n };\r\n const internals = fu as unknown as FileUploadInternals;\r\n const targetInput =\r\n internals.basicFileInput?.nativeElement ??\r\n internals.advancedFileInput?.nativeElement ??\r\n (internals.el?.nativeElement?.querySelector('input[type=\"file\"]') as HTMLInputElement | null);\r\n if (!targetInput) return;\r\n // Garante que o browser abra o picker em modo multi-select quando uploadType === 'multiple'.\r\n // Sincroniza direto no DOM porque a binding [multiple] do PrimeNG pode não estar propagada no momento do click.\r\n targetInput.multiple = this.uploadType === 'multiple';\r\n targetInput.click();\r\n }\r\n\r\n private async buildValueFromFile(file: File): Promise<UploadSingleFormValue> {\r\n const { name, size, type, lastModified } = file;\r\n const extension = this.extractExtension(name);\r\n const baseName = this.stripExtension(name);\r\n const friendly = this.toFriendlyName(baseName);\r\n const converted = await this.convertFile(file, this.uploadFormat);\r\n return {\r\n originalFileName: name,\r\n friendlyFileName: friendly,\r\n fileExtension: extension,\r\n fileSize: size,\r\n contentType: type,\r\n lastModified,\r\n convertedData: converted,\r\n };\r\n }\r\n\r\n private toFriendlyName(name: string): string {\r\n return (name ?? '').normalize('NFD').replace(/[̀-ͯ]/g, '').toLowerCase().trim().replace(/\\s+/g, '-');\r\n }\r\n\r\n private extractExtension(filename: string): string {\r\n const idx = filename.lastIndexOf('.');\r\n if (idx <= 0 || idx === filename.length - 1) return '';\r\n return filename.slice(idx);\r\n }\r\n\r\n private stripExtension(filename: string): string {\r\n const idx = filename.lastIndexOf('.');\r\n if (idx <= 0) return filename;\r\n return filename.slice(0, idx);\r\n }\r\n\r\n private convertFile(file: File, format: 'formData' | 'base64'): Promise<string | FormData> {\r\n if (format === 'base64') return this.fileToBase64(file);\r\n return Promise.resolve(this.fileToFormData(file));\r\n }\r\n\r\n private fileToBase64(file: File): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(String(reader.result ?? ''));\r\n reader.onerror = () => reject(reader.error);\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n private fileToFormData(file: File): FormData {\r\n const fd = new FormData();\r\n fd.append('file', file, file.name);\r\n return fd;\r\n }\r\n\r\n private revokePreviewObjectUrl(): void {\r\n if (this._previewObjectUrl) {\r\n URL.revokeObjectURL(this._previewObjectUrl);\r\n this._previewObjectUrl = null;\r\n }\r\n }\r\n}\r\n","<p-fileUpload\r\n #fileUpload\r\n class=\"p-fileupload-hidden\"\r\n mode=\"basic\"\r\n [multiple]=\"uploadType === 'multiple'\"\r\n [auto]=\"false\"\r\n [customUpload]=\"true\"\r\n [accept]=\"acceptString\"\r\n [maxFileSize]=\"maxFileSizeBytes\"\r\n [fileLimit]=\"effectiveFileLimit\"\r\n [chooseLabel]=\"''\"\r\n (onSelect)=\"onPrimeFileSelect($event)\"\r\n></p-fileUpload>\r\n\r\n@if (uploadType === 'single') {\r\n <div class=\"box-input-file\">\r\n <div class=\"flex gap-2\">\r\n <vector-button\r\n [label]=\"uploadButtonAttach.label\"\r\n [type]=\"uploadButtonAttach.type\"\r\n [leftIcon]=\"uploadButtonAttach.leftIcon\"\r\n [rightIcon]=\"uploadButtonAttach.rightIcon\"\r\n [round]=\"true\"\r\n [disabled]=\"isAttachAtLimit || internalSending\"\r\n (onClick)=\"handleAttachClick($event)\"\r\n ></vector-button>\r\n\r\n @if (uploadButtonSendEnabled) {\r\n <vector-button\r\n [label]=\"uploadButtonSend.label\"\r\n [type]=\"uploadButtonSend.type\"\r\n [leftIcon]=\"uploadButtonSend.leftIcon\"\r\n [rightIcon]=\"uploadButtonSend.rightIcon\"\r\n [round]=\"true\"\r\n [loading]=\"internalSending\"\r\n [disabled]=\"!canSend\"\r\n (onClick)=\"handleSendClick()\"\r\n ></vector-button>\r\n }\r\n\r\n @if (uploadButtonCancelEnabled) {\r\n <vector-button\r\n [label]=\"uploadButtonCancel.label\"\r\n [type]=\"uploadButtonCancel.type\"\r\n [leftIcon]=\"uploadButtonCancel.leftIcon\"\r\n [rightIcon]=\"uploadButtonCancel.rightIcon\"\r\n [round]=\"true\"\r\n [disabled]=\"!hasFile || internalSending\"\r\n (onClick)=\"handleCancelClick()\"\r\n ></vector-button>\r\n }\r\n\r\n @if (hasFile) {\r\n <div\r\n class=\"box-badge\"\r\n [class.box-badge--clickable]=\"enableModalView\"\r\n (click)=\"enableModalView && openModalView()\"\r\n >\r\n <div class=\"filename\" [class.cp]=\"enableModalView\">\r\n <div class=\"flex gap-0\" [pTooltip]=\"uploadForm.controls.originalFileName.value\" tooltipPosition=\"top\">\r\n <span>{{ uploadForm.controls.friendlyFileName.value }}</span>\r\n <span>{{ uploadForm.controls.fileExtension.value }}</span>\r\n </div>\r\n <i\r\n class=\"fas fa-times button-remove-file\"\r\n pTooltip=\"Remover\"\r\n tooltipPosition=\"top\"\r\n (click)=\"$event.stopPropagation(); resetUploadForm()\"\r\n ></i>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n} @else {\r\n <div class=\"box-input-file mt-5\">\r\n <div class=\"flex gap-2\">\r\n <vector-button\r\n [label]=\"uploadButtonAttach.label\"\r\n [type]=\"uploadButtonAttach.type\"\r\n [leftIcon]=\"uploadButtonAttach.leftIcon\"\r\n [rightIcon]=\"uploadButtonAttach.rightIcon\"\r\n [round]=\"true\"\r\n [disabled]=\"isAttachAtLimit || internalSending\"\r\n (onClick)=\"handleAttachClick($event)\"\r\n ></vector-button>\r\n\r\n @if (uploadButtonSendEnabled) {\r\n <vector-button\r\n [label]=\"uploadButtonSend.label\"\r\n [type]=\"uploadButtonSend.type\"\r\n [leftIcon]=\"uploadButtonSend.leftIcon\"\r\n [rightIcon]=\"uploadButtonSend.rightIcon\"\r\n [round]=\"true\"\r\n [loading]=\"internalSending\"\r\n [disabled]=\"!canSend\"\r\n (onClick)=\"handleSendClick()\"\r\n ></vector-button>\r\n }\r\n\r\n @if (uploadButtonCancelEnabled) {\r\n <vector-button\r\n [label]=\"uploadButtonCancel.label\"\r\n [type]=\"uploadButtonCancel.type\"\r\n [leftIcon]=\"uploadButtonCancel.leftIcon\"\r\n [rightIcon]=\"uploadButtonCancel.rightIcon\"\r\n [round]=\"true\"\r\n [disabled]=\"!hasFile || internalSending\"\r\n (onClick)=\"handleCancelClick()\"\r\n ></vector-button>\r\n }\r\n\r\n <div class=\"box-badge-list\">\r\n @if (uploadArray.length > 0) {\r\n <span class=\"info-selected ml-1\">\r\n <b>{{ uploadArray.length }}</b> {{ uploadArray.length === 1 ? 'arquivo anexado' : 'arquivos anexados' }}\r\n </span>\r\n\r\n <div class=\"box-badge-list-content\">\r\n @for (control of uploadArray.controls; track $index) {\r\n <div\r\n class=\"box-badge\"\r\n [class.box-badge--clickable]=\"enableModalView\"\r\n (click)=\"enableModalView && openModalView($index)\"\r\n >\r\n <div class=\"filename\" [class.cp]=\"enableModalView\">\r\n <div class=\"flex gap-0\" [pTooltip]=\"control.controls.originalFileName.value\" tooltipPosition=\"top\">\r\n <span>{{ control.controls.friendlyFileName.value }}</span>\r\n <span>{{ control.controls.fileExtension.value }}</span>\r\n </div>\r\n <i\r\n class=\"fas fa-times button-remove-file\"\r\n pTooltip=\"Remover\"\r\n tooltipPosition=\"top\"\r\n (click)=\"$event.stopPropagation(); removeUploadArrayItem($index)\"\r\n ></i>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n\r\n@if (enableModalView) {\r\n <p-dialog\r\n [(visible)]=\"isModalViewOpen\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '700px': '85%' }\"\r\n [style]=\"{ width: '700px' }\"\r\n [closable]=\"true\"\r\n [draggable]=\"false\"\r\n class=\"modal-default\"\r\n [header]=\"previewFileName\"\r\n >\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n @if (isImagePreview) {\r\n <img [src]=\"previewUrl\" [alt]=\"previewFileName\" class=\"w-full border-round-lg\" />\r\n } @else if (isPdfPreview) {\r\n <iframe [src]=\"safePreviewUrl\" class=\"w-full border-round-lg\" style=\"height: 500px; border: 0\"></iframe>\r\n } @else {\r\n <div class=\"box-message my-3\">\r\n <div class=\"flex\">\r\n <i class=\"fas fa-exclamation-triangle icon\"></i>\r\n <span>Preview não disponível para este tipo de arquivo.</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid justify-content-center\">\r\n <div class=\"col-12 md:col-4\">\r\n <vector-button label=\"Fechar\" [round]=\"true\" type=\"default\" (onClick)=\"closeModalView()\"></vector-button>\r\n </div>\r\n </div>\r\n </p-dialog>\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-input-number',\r\n templateUrl: './input-number-field.component.html',\r\n styleUrls: ['./input-number-field.component.scss'],\r\n})\r\nexport class InputNumberFieldComponent {\r\n @Input()\r\n public inputId?: string;\r\n @Input()\r\n public control: any;\r\n @Input()\r\n public showButtons: boolean = false;\r\n @Input()\r\n public type: 'decimal' | 'percent' = 'decimal';\r\n @Input()\r\n public minFractionDigits: number = 0;\r\n @Input()\r\n public maxFractionDigits: number = 4;\r\n @Input()\r\n public buttonLayout: 'stacked' | 'horizontal' | 'vertical' = 'horizontal';\r\n @Input()\r\n public incrementButtonIcon: string = 'pi pi-plus-circle';\r\n @Input()\r\n public decrementButtonIcon: string = 'pi pi-minus-circle';\r\n @Input()\r\n public min: number = 0;\r\n @Input()\r\n public step: number = 1;\r\n @Input()\r\n public disabled = false;\r\n\r\n @Input()\r\n public set max(_max) {\r\n this._max = _max;\r\n }\r\n @Input()\r\n public set suffix(_suffix) {\r\n this._suffix = _suffix;\r\n }\r\n\r\n @Output()\r\n public onFocus = new EventEmitter<Event>();\r\n @Output()\r\n public onBlur = new EventEmitter<Event>();\r\n @Output()\r\n public onInput = new EventEmitter();\r\n @Output()\r\n public onClear = new EventEmitter();\r\n\r\n get max(): number {\r\n if (this.type === 'percent') {\r\n return this._max || 100;\r\n }\r\n return this._max || 999999999;\r\n }\r\n\r\n get suffix() {\r\n switch (this.type) {\r\n case 'percent':\r\n return this._suffix || '%';\r\n }\r\n return '';\r\n }\r\n\r\n public _maxFractionDigits: number | null = null;\r\n public _max: number | null = null;\r\n public _suffix: string | null = null;\r\n}\r\n","<div class=\"input-container\">\r\n <p-inputNumber\r\n [inputId]=\"inputId\"\r\n [formControl]=\"control\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [suffix]=\"suffix\"\r\n [step]=\"step\"\r\n [minFractionDigits]=\"minFractionDigits\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n [showButtons]=\"showButtons\"\r\n [disabled]=\"disabled\"\r\n [buttonLayout]=\"buttonLayout\"\r\n [incrementButtonIcon]=\"incrementButtonIcon\"\r\n [decrementButtonIcon]=\"decrementButtonIcon\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n ></p-inputNumber>\r\n <vector-field-error-message [control]=\"control\"></vector-field-error-message>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-input-otp',\r\n templateUrl: './input-otp.component.html',\r\n styleUrl: './input-otp.component.scss',\r\n})\r\nexport class InputOtpComponent {\r\n @Input()\r\n public integerOnly = false;\r\n @Input()\r\n public length = 6;\r\n @Input()\r\n public inputValue!: string | number;\r\n @Input()\r\n public isReadonly = false;\r\n @Input()\r\n public isDisabled = false;\r\n @Input()\r\n public isInvalid = false;\r\n\r\n @Output()\r\n public onChangeOtp = new EventEmitter();\r\n @Output()\r\n public onBlurOtp = new EventEmitter();\r\n @Output()\r\n public onFocusOtp = new EventEmitter();\r\n\r\n public onChange($event: any) {\r\n this.onChangeOtp.emit($event);\r\n }\r\n\r\n public onBlur($event: Event) {\r\n this.onBlurOtp.emit($event);\r\n }\r\n\r\n public onFocus($event: Event) {\r\n this.onFocusOtp.emit($event);\r\n }\r\n}\r\n","<p-inputOtp\r\n class=\"custom-field-text input-otp\"\r\n [integerOnly]=\"integerOnly\"\r\n [length]=\"length\"\r\n [ngModel]=\"inputValue\"\r\n [invalid]=\"isInvalid\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"isReadonly\"\r\n (onChange)=\"onChange($event)\"\r\n (onBlur)=\"onBlur($event)\"\r\n (onFocus)=\"onFocus($event)\"\r\n></p-inputOtp>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-input-switch-field',\r\n templateUrl: './input-switch-field.component.html',\r\n styleUrls: ['./input-switch-field.component.scss'],\r\n})\r\nexport class InputSwitchFieldComponent implements OnInit {\r\n @Input()\r\n public control: any;\r\n\r\n @Input()\r\n public disabled = false;\r\n\r\n @Output()\r\n public onChange = new EventEmitter<unknown>();\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<p-toggleswitch\r\n [formControl]=\"control\"\r\n [disabled]=\"disabled\"\r\n (onChange)=\"onChange.emit($event)\"\r\n></p-toggleswitch>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-percentage-field',\r\n templateUrl: './percentage-field.component.html',\r\n styleUrls: ['./percentage-field.component.scss'],\r\n})\r\nexport class PercentageFieldComponent implements OnInit, OnDestroy {\r\n @Input()\r\n public control: any;\r\n @Input()\r\n public min: number = 0;\r\n @Input()\r\n public max: number = 100;\r\n @Input()\r\n public minFractionDigits: number = 0;\r\n @Input()\r\n public maxFractionDigits: number = 0;\r\n @Input()\r\n public step = 0;\r\n @Output()\r\n public blurEvent = new EventEmitter();\r\n @Output()\r\n public enterKeyPress = new EventEmitter();\r\n @Output()\r\n public focusEvent = new EventEmitter();\r\n\r\n public readonly percentageRegex = `^(100(\\\\.0{1,2})?|[1-9]?\\\\d(\\\\.\\\\d{1,2})?)$`;\r\n\r\n private lastBlurValue = '';\r\n\r\n ngOnInit() {}\r\n\r\n ngOnDestroy() {}\r\n\r\n public onBlur() {\r\n this.control.markAsTouched();\r\n if (this.lastBlurValue !== this.control.value) {\r\n this.lastBlurValue = this.control.value;\r\n setTimeout(() => {\r\n this.blurEvent.emit(this.control.value);\r\n });\r\n }\r\n }\r\n}\r\n","<form class=\"input-container\">\r\n <p-inputNumber\r\n [formControl]=\"control\"\r\n suffix=\"%\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [minFractionDigits]=\"minFractionDigits\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n [step]=\"step\"\r\n [showButtons]=\"step > 1\"\r\n buttonLayout=\"horizontal\"\r\n decrementButtonIcon=\"pi pi-minus-circle\"\r\n incrementButtonIcon=\"pi pi-plus-circle\"\r\n (onBlur)=\"onBlur()\"\r\n ></p-inputNumber>\r\n</form>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BooleanType } from '../../../models';\r\n\r\nexport type RadioButtonOption = {\r\n label: string;\r\n value: string;\r\n textTooltip?: string;\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-radio-button-field',\r\n templateUrl: './radio-button-field.component.html',\r\n styleUrls: ['./radio-button-field.component.scss'],\r\n})\r\nexport class RadioButtonFieldComponent implements OnInit {\r\n @Input()\r\n public groupName: string = '';\r\n @Input()\r\n public options: RadioButtonOption[] = [\r\n { label: this.getYesLabel(), value: BooleanType.YES },\r\n { label: this.getNoLabel(), value: BooleanType.NO },\r\n ];\r\n @Input()\r\n public control: any;\r\n @Input()\r\n public layout: 'vertical' | 'horizontal' = 'vertical';\r\n @Input()\r\n public justifySpaceBetween = false;\r\n @Input()\r\n public addIcon = false;\r\n @Input()\r\n public disabled: boolean = false;\r\n\r\n constructor(private translateService: TranslateService) {}\r\n\r\n ngOnInit(): void {\r\n if (this.control && this.disabled) {\r\n this.control.disable();\r\n } else {\r\n this.control.enable();\r\n }\r\n }\r\n\r\n get layoutClass() {\r\n return { horizontal: this.layout === 'horizontal', vertical: this.layout === 'vertical' };\r\n }\r\n\r\n private getYesLabel() {\r\n const label = this.translateService.instant('app.label.yes');\r\n return label !== 'app.label.yes' ? label : 'Sim';\r\n }\r\n\r\n private getNoLabel() {\r\n const label = this.translateService.instant('app.label.no');\r\n return label !== 'app.label.no' ? label : 'Não';\r\n }\r\n}\r\n","<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n @for (option of options; track $index) {\r\n <div class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [formControl]=\"control\"\r\n [inputId]=\"groupName + '-' + $index\"\r\n ></p-radioButton>\r\n <label [for]=\"groupName + '-' + $index\">{{ option.label }}</label>\r\n <i\r\n *ngIf=\"addIcon && option.textTooltip != null\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-range-value',\r\n templateUrl: './range-value.component.html',\r\n styleUrls: ['./range-value.component.scss'],\r\n})\r\nexport class RangeValueComponent implements OnInit {\r\n @Input() value: number = 0;\r\n @Input() movimentedValue: number | null = null;\r\n @Input() min: number = 0;\r\n @Input() max: number = 100;\r\n @Input() disabled: boolean = false;\r\n @Output() valueChange = new EventEmitter<number>();\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n changeValue() {\r\n if (this.value < this.min) {\r\n this.value = this.min;\r\n }\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n getMovimentedValue() {\r\n if (this.movimentedValue) {\r\n return this.movimentedValue;\r\n } else {\r\n return (this.max - this.min) / 100;\r\n }\r\n }\r\n\r\n increment() {\r\n if (!this.disabled) {\r\n if (this.value + this.getMovimentedValue() < this.max) {\r\n this.value = this.value + this.getMovimentedValue();\r\n this.valueChange.emit(this.value);\r\n } else {\r\n this.value = this.max;\r\n this.valueChange.emit(this.value);\r\n }\r\n }\r\n }\r\n decrement() {\r\n if (!this.disabled) {\r\n if (this.value - this.getMovimentedValue() > this.min) {\r\n this.value = this.value - this.getMovimentedValue();\r\n this.valueChange.emit(this.value);\r\n } else {\r\n this.value = this.min;\r\n this.valueChange.emit(this.value);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"range-input\">\r\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\r\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\" [disabled]=\"disabled\"></p-slider>\r\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-search-field',\r\n templateUrl: './search-field.component.html',\r\n styleUrls: ['./search-field.component.scss'],\r\n})\r\nexport class SearchFieldComponent implements OnInit, OnDestroy {\r\n @Input()\r\n public placeholder = '';\r\n @Output()\r\n public onSearch = new EventEmitter<string>();\r\n\r\n public formControl = new UntypedFormControl();\r\n private subscription = new Subscription();\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.formControl.valueChanges.pipe(debounceTime(300)).subscribe((value) => {\r\n this.onSearch.emit(value);\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<vector-text-field [control]=\"formControl\" rightIcon=\"fas fa-search\" [label]=\"placeholder\"></vector-text-field>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-textarea-field',\r\n templateUrl: './textarea-field.component.html',\r\n styleUrls: ['./textarea-field.component.scss'],\r\n})\r\nexport class TextareaFieldComponent implements OnInit {\r\n @Input()\r\n public isRequired: boolean | undefined = false;\r\n @Input()\r\n public label: string | undefined = '';\r\n @Input()\r\n public maxlength: string = '';\r\n @Input()\r\n public rows: number = 5;\r\n @Input()\r\n public cols: number = 10;\r\n @Input()\r\n public control: any;\r\n @Output()\r\n public blurEvent = new EventEmitter();\r\n @Output()\r\n public enterKeyPress = new EventEmitter();\r\n @Output()\r\n public focusEvent = new EventEmitter();\r\n\r\n get placeholder() {\r\n if (!this.label) {\r\n return '';\r\n }\r\n return `${this.label}${this.isRequired ? '*' : ''}`;\r\n }\r\n\r\n private lastBlurValue = '';\r\n\r\n ngOnInit() {}\r\n\r\n public fieldErrorLabel(): string {\r\n if (this.control && this.control.invalid && this.control.touched) {\r\n if (this.control.hasError('required')) {\r\n return 'Campo obrigatório';\r\n }\r\n\r\n if (this.control.hasError('minlength')) {\r\n return `Tamanho mínimo: ${this.control.errors['minlength'].requiredLength}`;\r\n }\r\n\r\n if (this.control.hasError('maxlength')) {\r\n return `Tamanho máximo permitido: ${this.control.errors['maxlength'].requiredLength}`;\r\n }\r\n\r\n return typeof this.control.errors['invalid'] === 'string' ? this.control.errors['invalid'] : 'Campo inválido';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public onBlur() {\r\n this.control.markAsTouched();\r\n if (this.lastBlurValue !== this.control.value) {\r\n this.lastBlurValue = this.control.value;\r\n setTimeout(() => {\r\n this.blurEvent.emit(this.control.value);\r\n });\r\n }\r\n }\r\n\r\n public onEnterPress() {\r\n this.onBlur();\r\n this.enterKeyPress.emit();\r\n }\r\n\r\n public onFocus($event: Event) {\r\n const target = $event.target as HTMLTextAreaElement;\r\n this.focusEvent.emit(target?.value);\r\n }\r\n}\r\n","<form class=\"input-container\">\r\n <textarea\r\n pTextarea\r\n [rows]=\"rows\"\r\n [cols]=\"cols\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [autoResize]=\"false\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n >\r\n </textarea>\r\n <span class=\"length-control\">{{ control?.value?.length || 0 }} / {{ maxlength }}</span>\r\n</form>\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { DatePickerModule } from 'primeng/datepicker';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputOtpModule } from 'primeng/inputotp';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { KeyFilterModule } from 'primeng/keyfilter';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TextareaModule } from 'primeng/textarea';\r\nimport { ToggleSwitchModule } from 'primeng/toggleswitch';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { BadgeModule } from '../badge';\r\nimport { PanelModule } from '../panel';\r\nimport { ScoreModule } from '../score';\r\nimport { ButtonComponent } from './button';\r\nimport { CalendarComponent } from './calendar-field';\r\nimport { CheckboxFieldComponent } from './checkbox-field';\r\nimport { CurrencyFieldComponent } from './currency-field';\r\nimport { DataTableComponent } from './data-table';\r\nimport { DropdownFieldComponent } from './dropdown-field';\r\nimport { FieldErrorMessageComponent } from './field-error-message';\r\nimport { FiltersComponent } from './filters';\r\nimport { InputFileComponent } from './input-file';\r\nimport { InputNumberFieldComponent } from './input-number-field';\r\nimport { InputOtpComponent } from './input-otp';\r\nimport { InputSwitchFieldComponent } from './input-switch-field';\r\nimport { MultiselectFieldComponent } from './multiselect-field';\r\nimport { PercentageFieldComponent } from './percentage-field';\r\nimport { RadioButtonFieldComponent } from './radio-button-field';\r\nimport { RangeValueComponent } from './range-value';\r\nimport { SearchFieldComponent } from './search-field';\r\nimport { SelectButtonFieldComponent } from './select-button-field';\r\nimport { TextFieldComponent } from './text-field';\r\nimport { TextareaFieldComponent } from './textarea-field';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KeyFilterModule,\r\n InputTextModule,\r\n CheckboxModule,\r\n InputMaskModule,\r\n DatePickerModule,\r\n MultiSelectModule,\r\n SelectModule,\r\n AutoCompleteModule,\r\n SliderModule,\r\n RadioButtonModule,\r\n FileUploadModule,\r\n DialogModule,\r\n InputNumberModule,\r\n PanelModule,\r\n TabViewModule,\r\n ButtonModule,\r\n TextareaModule,\r\n SelectButtonModule,\r\n InputNumberModule,\r\n BadgeModule,\r\n ScoreModule,\r\n TranslateModule,\r\n ToggleSwitchModule,\r\n MenuModule,\r\n TableModule,\r\n InputOtpModule,\r\n ],\r\n declarations: [\r\n DataTableComponent,\r\n TextFieldComponent,\r\n CheckboxFieldComponent,\r\n ButtonComponent,\r\n CalendarComponent,\r\n MultiselectFieldComponent,\r\n DropdownFieldComponent,\r\n RangeValueComponent,\r\n SearchFieldComponent,\r\n RadioButtonFieldComponent,\r\n CurrencyFieldComponent,\r\n PercentageFieldComponent,\r\n FiltersComponent,\r\n TextareaFieldComponent,\r\n FieldErrorMessageComponent,\r\n SelectButtonFieldComponent,\r\n InputNumberFieldComponent,\r\n InputSwitchFieldComponent,\r\n InputOtpComponent,\r\n InputFileComponent,\r\n ],\r\n exports: [\r\n DataTableComponent,\r\n TextFieldComponent,\r\n CheckboxFieldComponent,\r\n ButtonComponent,\r\n CalendarComponent,\r\n MultiselectFieldComponent,\r\n DropdownFieldComponent,\r\n RangeValueComponent,\r\n SearchFieldComponent,\r\n RadioButtonFieldComponent,\r\n FileUploadModule,\r\n DialogModule,\r\n CurrencyFieldComponent,\r\n PercentageFieldComponent,\r\n FiltersComponent,\r\n TextareaFieldComponent,\r\n FieldErrorMessageComponent,\r\n SelectButtonFieldComponent,\r\n InputNumberFieldComponent,\r\n InputSwitchFieldComponent,\r\n InputOtpComponent,\r\n InputFileComponent,\r\n ],\r\n})\r\nexport class FieldsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { FieldsModule } from '../fields/fields.module';\r\nimport { CrudFooterComponent } from './crud-footer.component';\r\n\r\n@NgModule({\r\n declarations: [CrudFooterComponent],\r\n exports: [CrudFooterComponent, TranslateModule],\r\n imports: [SharedModule, FieldsModule, TranslateModule],\r\n})\r\nexport class FooterModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Status } from '../../models';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-crud-header',\r\n templateUrl: './crud-header.component.html',\r\n styleUrls: ['./crud-header.component.scss'],\r\n})\r\nexport class CrudHeaderComponent implements OnInit {\r\n @Input()\r\n public statusCode?: number;\r\n @Input()\r\n public code?: number;\r\n\r\n get statusLabel() {\r\n switch (this.statusCode) {\r\n case Status.PENDING:\r\n return 'Pendente';\r\n case Status.APPROVED:\r\n return 'Ativo';\r\n case Status.REJECTED:\r\n return 'Inativo';\r\n }\r\n return '';\r\n }\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"container\">\r\n <div class=\"status-container\">\r\n <span>Status</span>\r\n <vector-badge [label]=\"statusLabel\" [type]=\"statusCode\"></vector-badge>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <span class=\"code-label\"\r\n >Código de identificação<span class=\"code\">{{ code }}</span></span\r\n >\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { BadgeModule } from '../badge';\r\nimport { CrudHeaderComponent } from './crud-header.component';\r\n\r\n@NgModule({\r\n declarations: [CrudHeaderComponent],\r\n imports: [SharedModule, BadgeModule],\r\n exports: [CrudHeaderComponent],\r\n})\r\nexport class CrudHeaderModule {}\r\n","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { CrudHistory } from '../../models';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-crud-history',\r\n templateUrl: './crud-history.component.html',\r\n styleUrls: ['./crud-history.component.scss'],\r\n})\r\nexport class CrudHistoryComponent {\r\n @Input()\r\n public crudHistory?: CrudHistory<any>;\r\n @Output()\r\n public onClick = new EventEmitter<any>();\r\n\r\n public modifierNameLabel = '';\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['crudHistory']) {\r\n this.modifierNameLabel = this.getModifierNameLabel(this.crudHistory) ?? '';\r\n }\r\n }\r\n public getHistoryBadgeBackgroundColor(crudHistoryEventType?: string): string {\r\n switch (crudHistoryEventType) {\r\n case 'ActionCreate':\r\n return '#CBFFAE';\r\n case 'ActionUpdate':\r\n return '#FFE6B0';\r\n case 'ActionDelete':\r\n return 'Removido';\r\n case 'ActionUpdate-OnComposition':\r\n return '#FFE6B0';\r\n case 'ActionUpdate-OnUnit':\r\n return '#FFE6B0';\r\n case 'ActionCreate-OnComposition':\r\n return '#CBFFAE';\r\n case 'ActionCancel':\r\n return '#FFE6B0';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public getHistoryBadgeColor(crudHistoryEventType?: string): string {\r\n switch (crudHistoryEventType) {\r\n case 'ActionCreate':\r\n return '#067306';\r\n case 'ActionUpdate':\r\n return '#946300';\r\n case 'ActionDelete':\r\n return '#6B2D2D';\r\n case 'ActionUpdate-OnComposition':\r\n return '#946300';\r\n case 'ActionUpdate-OnUnit':\r\n return '#946300';\r\n case 'ActionCreate-OnComposition':\r\n return '#067306';\r\n case 'ActionCancel':\r\n return '#946300';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public getHistoryBadgeLabel(crudHistoryEventType?: string): string {\r\n switch (crudHistoryEventType) {\r\n case 'ActionCreate':\r\n return 'Criado';\r\n case 'ActionUpdate':\r\n return 'Modificado';\r\n case 'ActionDelete':\r\n return 'Removido';\r\n case 'ActionUpdate-OnComposition':\r\n return 'Composição Modificada';\r\n case 'ActionUpdate-OnUnit':\r\n return 'Unidade Modificada';\r\n case 'ActionCreate-OnComposition':\r\n return 'Composição Criada';\r\n case 'ActionCancel':\r\n return 'Modificado';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n getModifierNameLabel(crudHistory?: CrudHistory<any>): string {\r\n if (!crudHistory) {\r\n return '';\r\n }\r\n if (crudHistory.modifiedFromWeb == null) {\r\n return crudHistory.modifierName ?? '';\r\n } else {\r\n return (crudHistory.modifierName ?? '') + ' em ' + (crudHistory.modifiedFromWeb ? 'Web' : 'Integração');\r\n }\r\n }\r\n}\r\n","<p-accordionTab *ngIf=\"crudHistory\" class=\"history-item\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"history-item-header-container\" (click)=\"onClick.emit()\">\r\n <div class=\"history-item-header-left\">\r\n <span id=\"color-first-span\" *ngIf=\"crudHistory.typeOfModification\">{{ crudHistory.typeOfModification }}</span>\r\n <vector-badge\r\n [customBackgroundColor]=\"getHistoryBadgeBackgroundColor(crudHistory.eventType)\"\r\n [customColor]=\"getHistoryBadgeColor(crudHistory.eventType)\"\r\n [label]=\"getHistoryBadgeLabel(crudHistory.eventType)\"\r\n ></vector-badge>\r\n <span>por {{ modifierNameLabel }}</span>\r\n </div>\r\n <span class=\"history-item-header-right\">\r\n {{ crudHistory.dateTime | date : 'dd/MM/yyyy HH:mm' }}\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div *ngFor=\"let auditDelta of crudHistory.dataAuditDelta\">\r\n <div class=\"grid\">\r\n <div class=\"col-12 md:col-6 field\">\r\n <span>{{ auditDelta.fieldName }}</span>\r\n </div>\r\n <div class=\"col-12 md:col-6 field\">\r\n <span class=\"new-value\">{{ auditDelta.newValue }}</span>\r\n <span class=\"old-value pl-1\">{{ auditDelta.oldValue }}</span>\r\n <span *ngIf=\"auditDelta.type || auditDelta.type == 0\" class=\"text-600 pl-1\">\r\n Entity: <span class=\"text-green-300\">{{ auditDelta.type }}</span>\r\n <i\r\n class=\"fas fa-info-circle text-400 text-base ch pl-1\"\r\n [pTooltip]=\"auditDelta.typeDescription\"\r\n tooltipPosition=\"top\"\r\n ></i>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-accordionTab>\r\n","import { NgModule } from '@angular/core';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { BadgeModule } from '../badge';\r\nimport { CrudHistoryComponent } from './crud-history.component';\r\n\r\n@NgModule({\r\n declarations: [CrudHistoryComponent],\r\n imports: [SharedModule, BadgeModule, AccordionModule, TooltipModule],\r\n exports: [CrudHistoryComponent],\r\n})\r\nexport class CrudHistoryModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\ntype DrawerPosition = 'left' | 'right' | 'top' | 'bottom';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-drawer',\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.scss'],\r\n})\r\nexport class DrawerComponent {\r\n @Input()\r\n public visible = false;\r\n @Output()\r\n public visibleChange = new EventEmitter<boolean>();\r\n\r\n @Input()\r\n public position: DrawerPosition = 'right';\r\n @Input()\r\n public style: { [key: string]: string } = {};\r\n @Input()\r\n public styleClass = '';\r\n @Input()\r\n public modal = true;\r\n @Input()\r\n public dismissible = true;\r\n @Input()\r\n public showCloseIcon = true;\r\n\r\n @Output()\r\n public onHide = new EventEmitter<unknown>();\r\n @Output()\r\n public onShow = new EventEmitter<unknown>();\r\n\r\n public onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n}\r\n","<p-drawer\r\n [visible]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [position]=\"position\"\r\n [style]=\"style\"\r\n [styleClass]=\"styleClass\"\r\n [modal]=\"modal\"\r\n [dismissible]=\"dismissible\"\r\n [showCloseIcon]=\"showCloseIcon\"\r\n (onHide)=\"onHide.emit($event)\"\r\n (onShow)=\"onShow.emit($event)\"\r\n>\r\n <ng-template pTemplate=\"header\">\r\n <ng-content select=\"[vector-drawer-header]\"></ng-content>\r\n </ng-template>\r\n <ng-content></ng-content>\r\n</p-drawer>\r\n","import { NgModule } from '@angular/core';\r\nimport { DrawerModule as PrimeNgDrawer } from 'primeng/drawer';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { DrawerComponent } from './drawer.component';\r\n\r\n@NgModule({\r\n declarations: [DrawerComponent],\r\n exports: [DrawerComponent],\r\n imports: [SharedModule, PrimeNgDrawer],\r\n})\r\nexport class DrawerModule {}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorMessageService } from '../../services';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-generic-error-modal',\r\n templateUrl: './generic-error-modal.component.html',\r\n styleUrls: ['./generic-error-modal.component.scss'],\r\n})\r\nexport class GenericErrorModalComponent implements OnInit, OnDestroy {\r\n @Input()\r\n public skipMessages: string[] = [];\r\n public message?: string = '';\r\n\r\n private subscription = new Subscription();\r\n\r\n constructor(private errorService: ErrorMessageService) {\r\n this.subscription.add(\r\n this.errorService.genericModalErrorMessage$.pipe().subscribe((message) => {\r\n this.message = message;\r\n })\r\n );\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public close() {\r\n this.message = '';\r\n }\r\n}\r\n","<p-dialog\r\n [visible]=\"!!message\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"true\"\r\n>\r\n <div class=\"content-container\">\r\n <img class=\"emote\" src=\".././../../assets/images/emote_bad.svg\" />\r\n <p class=\"title\">Algo deu errado!</p>\r\n <p class=\"message\">{{ message }}</p>\r\n\r\n <div class=\"actions\">\r\n <vector-button (click)=\"close()\" label=\"Voltar\"></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n","import { NgModule } from '@angular/core';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { FieldsModule } from '../fields/fields.module';\r\nimport { GenericErrorModalComponent } from './generic-error-modal.component';\r\n@NgModule({\r\n declarations: [GenericErrorModalComponent],\r\n imports: [SharedModule, DialogModule, FieldsModule],\r\n exports: [GenericErrorModalComponent],\r\n})\r\nexport class GenericErrorModalModule {}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { GenericModalMessage } from '../../models/generic-modal.model';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-generic-modal',\r\n templateUrl: './generic-modal.component.html',\r\n styleUrls: ['./generic-modal.component.scss'],\r\n})\r\nexport class GenericModalComponent implements OnInit {\r\n @Input()\r\n public modalMessage: GenericModalMessage = {\r\n fileIcon: 'alert_icon',\r\n title: '',\r\n message: [],\r\n confirmButton: { label: 'Confirmar', clickFunction: () => {} },\r\n cancelButton: { label: 'Voltar', clickFunction: () => {} },\r\n };\r\n @Input()\r\n public isClosable: boolean = true;\r\n @Input()\r\n public hiddenActions: boolean = false;\r\n @Input()\r\n public linkLabel: string = '';\r\n @Input()\r\n public linkUrl: string = '';\r\n @Input()\r\n public display!: boolean;\r\n @Input()\r\n public maxWidth?: string = '';\r\n @Input()\r\n public lineBreak?: string = '';\r\n @Output()\r\n public displayChange = new EventEmitter<boolean>();\r\n @Output()\r\n public onCloseModal = new EventEmitter();\r\n\r\n constructor(public router: Router) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public routerLink(url: string) {\r\n this.router.navigate([url]);\r\n }\r\n\r\n public confirm() {\r\n this.display = false;\r\n this.displayChange.emit(this.display);\r\n }\r\n\r\n public hideModal() {\r\n this.display = false;\r\n this.displayChange.emit(this.display);\r\n this.onCloseModal.emit();\r\n }\r\n}\r\n","<p-dialog\r\n [(visible)]=\"display\"\r\n [modal]=\"true\"\r\n [breakpoints]=\"{ '440px': '95vw' }\"\r\n [style]=\"{ width: '400px' }\"\r\n [draggable]=\"false\"\r\n [resizable]=\"false\"\r\n [blockScroll]=\"true\"\r\n [closeOnEscape]=\"false\"\r\n [closable]=\"isClosable\"\r\n (onHide)=\"hideModal()\"\r\n [ngStyle]=\"{ 'max-width': maxWidth, 'line-break': lineBreak }\"\r\n>\r\n <div class=\"grid modal-generic\">\r\n <div class=\"col-12\">\r\n <img\r\n *ngIf=\"modalMessage.fileIcon\"\r\n class=\"flex mx-auto mb-3\"\r\n [ngClass]=\"!isClosable ? 'mt-4' : ''\"\r\n src=\"assets/images/{{ modalMessage.fileIcon }}.svg\"\r\n />\r\n <h1 *ngIf=\"modalMessage.title\">{{ modalMessage.title }}</h1>\r\n <p *ngFor=\"let text of modalMessage.message\" [innerHTML]=\"text\"></p>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"linkLabel\" class=\"grid mt-2 justify-content-center\">\r\n <div class=\"col-12 md:col-6\">\r\n <vector-button [label]=\"linkLabel\" (click)=\"routerLink(linkUrl)\"></vector-button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!hiddenActions\" class=\"grid mt-2 justify-content-center\">\r\n <div class=\"col-12 md:col-6\" *ngIf=\"modalMessage.cancelButton\">\r\n <vector-button\r\n (onClick)=\"modalMessage.cancelButton && modalMessage.cancelButton.clickFunction()\"\r\n [label]=\"modalMessage.cancelButton.label\"\r\n [type]=\"modalMessage.cancelButton.type ? modalMessage.cancelButton.type : 'default'\"\r\n [round]=\"true\"\r\n ></vector-button>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\" *ngIf=\"modalMessage.confirmButton\">\r\n <vector-button\r\n (onClick)=\"modalMessage.confirmButton && modalMessage.confirmButton.clickFunction()\"\r\n [label]=\"modalMessage.confirmButton.label\"\r\n [type]=\"modalMessage.confirmButton.type ? modalMessage.confirmButton.type : 'default-filled'\"\r\n [round]=\"true\"\r\n ></vector-button>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n","import { NgModule } from '@angular/core';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { FieldsModule } from '../fields/fields.module';\r\nimport { GenericModalComponent } from './generic-modal.component';\r\n\r\n@NgModule({\r\n declarations: [GenericModalComponent],\r\n exports: [GenericModalComponent],\r\n imports: [DialogModule, FieldsModule, SharedModule],\r\n})\r\nexport class GenericModalModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MenuItem } from '../../../models';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-sub-menus-list',\r\n templateUrl: './sub-menus-list.component.html',\r\n styleUrls: ['./sub-menus-list.component.scss'],\r\n})\r\nexport class SubMenusListComponent {\r\n @Input()\r\n public showList = false;\r\n @Input()\r\n public options: MenuItem[] | undefined;\r\n @Input()\r\n public childLevel = 1;\r\n @Input()\r\n public submenuSelected: MenuItem | undefined;\r\n @Output()\r\n public submenuSelectedChange = new EventEmitter<MenuItem>();\r\n\r\n public submenuClick(option: MenuItem) {\r\n if (!option.alwaysOpen) {\r\n if (this.submenuSelected?.id === option.id) {\r\n this.submenuSelected = undefined;\r\n } else {\r\n this.submenuSelected = option.children?.length ? option : undefined;\r\n }\r\n this.submenuSelectedChange.emit(option);\r\n }\r\n }\r\n\r\n public get paddingLeft() {\r\n return this.childLevel * 10 + 'px';\r\n }\r\n}\r\n","<div class=\"sub-menu-container\">\r\n <ul *ngIf=\"showList\" class=\"sub-menu\">\r\n <div *ngFor=\"let submenuItem of options\">\r\n <li class=\"sub-menu-item\" [ngStyle]=\"{ 'padding-left': paddingLeft }\" (click)=\"submenuClick(submenuItem)\">\r\n <div\r\n class=\"current-item\"\r\n [ngClass]=\"{\r\n 'active-menu': submenuSelected?.id === submenuItem.id,\r\n 'always-open': !!submenuItem.alwaysOpen,\r\n 'last-child': !submenuItem.children?.length\r\n }\"\r\n >\r\n <div *ngIf=\"submenuItem.icon\" class=\"icon-container\">\r\n <i [class]=\"submenuItem.icon\"></i>\r\n </div>\r\n <span class=\"menu-label\">{{ submenuItem.label }}</span>\r\n <i\r\n *ngIf=\"submenuItem.children?.length && !submenuItem.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': submenuSelected?.id !== submenuItem.id,\r\n 'fa-angle-up': submenuSelected?.id === submenuItem.id\r\n }\"\r\n ></i>\r\n </div>\r\n </li>\r\n <vector-sub-menus-list\r\n *ngIf=\"submenuItem?.children\"\r\n [options]=\"submenuItem?.children\"\r\n [showList]=\"submenuItem?.id === submenuSelected?.id || !!submenuItem?.alwaysOpen\"\r\n [childLevel]=\"childLevel + 1\"\r\n (submenuSelectedChange)=\"submenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </div>\r\n </ul>\r\n</div>\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, EventEmitter, HostListener, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { APP_NAME, ENVIRONMENT } from '../../injections';\r\nimport { AppName, MenuItem, Role } from '../../models';\r\nimport { VectorApp } from '../../models/vector-app.model';\r\nimport { MenuService, ProfileService, StorageService } from '../../services';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-menu',\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.scss'],\r\n animations: [\r\n trigger('sideInOut', [state('in', style({ width: '60px' })), state('out', style({ width: '250px' }))]),\r\n trigger('fadeInOut', [\r\n state(\r\n '0',\r\n style({\r\n opacity: 0,\r\n width: '0%',\r\n 'font-size': '0em',\r\n }),\r\n ),\r\n state(\r\n '1',\r\n style({\r\n opacity: 1,\r\n 'font-size': '1em',\r\n width: '100%',\r\n }),\r\n ),\r\n transition('0 <=> 1', animate('350ms ease-in-out')),\r\n ]),\r\n trigger('fadeSearchInOut', [\r\n state(\r\n '0',\r\n style({\r\n opacity: 0,\r\n width: '0%',\r\n 'font-size': '0em',\r\n }),\r\n ),\r\n state(\r\n '1',\r\n style({\r\n opacity: 1,\r\n 'font-size': '1em',\r\n width: '100%',\r\n }),\r\n ),\r\n transition('0 <=> 1', animate('350ms ease-in-out')),\r\n ]),\r\n trigger('submenuFadeInOut', [\r\n state(\r\n '0',\r\n style({\r\n opacity: 0,\r\n height: '0%',\r\n }),\r\n ),\r\n state(\r\n '1',\r\n style({\r\n opacity: 1,\r\n height: 'fit-content',\r\n }),\r\n ),\r\n transition('0 <=> 1', animate('350ms ease-in-out')),\r\n ]),\r\n ],\r\n})\r\nexport class MenuComponent implements OnInit, OnDestroy {\r\n public options: MenuItem[] = [];\r\n public activeOption: MenuItem | undefined;\r\n public activeSubmenuOption: MenuItem | undefined;\r\n public widthStyle = { width: '250px' };\r\n public lastAnimation = 'out';\r\n public appNameLabel = this.environment.appName;\r\n public adminOption: MenuItem | undefined;\r\n public appsEnum = AppName;\r\n public production = this.environment.production;\r\n @Output() onFinishMenuOptionsConfig = new EventEmitter<any>();\r\n\r\n set opened(opened: boolean) {\r\n this._opened = opened;\r\n this.menuService.menuOpened$.next(this.opened);\r\n }\r\n\r\n public get opened() {\r\n return this._opened;\r\n }\r\n\r\n public get hasFintechAdminPermission() {\r\n return this.profileService.hasFintechAdminPermission;\r\n }\r\n\r\n public get hasMarketplaceAdminPermission() {\r\n return this.profileService.hasMarketplaceAdminPermission;\r\n }\r\n\r\n public get hasAnyMarketplacePermission() {\r\n return this.profileService.hasAnyMarketplacePermission;\r\n }\r\n\r\n public get hasAnyFintechPermission() {\r\n return this.profileService.hasAnyFintechPermission;\r\n }\r\n\r\n @Input()\r\n public accountService: any;\r\n @Input()\r\n public apps: VectorApp[] = [];\r\n\r\n private _opened = true;\r\n private subscription = new Subscription();\r\n private currentWindowWidth: number = 0;\r\n\r\n constructor(\r\n private menuService: MenuService,\r\n private router: Router,\r\n private profileService: ProfileService,\r\n private storageService: StorageService,\r\n @Inject(ENVIRONMENT) private environment: any,\r\n @Inject(APP_NAME) private currentApp: string,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.menuService.toggleMenu$.subscribe(() => {\r\n this.toggleMenu();\r\n }),\r\n );\r\n\r\n this.subscription.add(\r\n this.profileService.moduleProfile$.subscribe((profile) => {\r\n if (profile) {\r\n const role = this.storageService.getRole();\r\n this.options =\r\n role === Role.ADMIN\r\n ? this.menuService.getSideAdminMenuOptions()\r\n : this.menuService.getSideMainMenuOptions();\r\n\r\n if (this.hasFintechAdminPermission || this.hasMarketplaceAdminPermission) {\r\n this.adminOption = {\r\n id: `${99999}`,\r\n label: 'Admin Fintech',\r\n iconFileName: 'vector_admin_icon',\r\n command: () => {\r\n this.navigateToPortal({ appName: AppName.FINTECH, isAdmin: true });\r\n },\r\n };\r\n\r\n if (this.hasFintechAdminPermission) {\r\n this.adminOption.children?.push({\r\n id: `${999991}`,\r\n label: 'Admin Fintech',\r\n command: () => {\r\n this.navigateToPortal({ appName: AppName.FINTECH, isAdmin: true });\r\n },\r\n hidden: !this.hasFintechAdminPermission,\r\n });\r\n }\r\n\r\n if (this.hasMarketplaceAdminPermission) {\r\n this.adminOption.children?.push({\r\n id: `${999992}`,\r\n label: 'Admin Marketplace',\r\n command: () => {\r\n this.navigateToPortal({ appName: AppName.MARKETPLACE, isAdmin: true });\r\n },\r\n hidden: !this.hasMarketplaceAdminPermission,\r\n });\r\n }\r\n }\r\n this.onFinishMenuOptionsConfig.emit(null);\r\n }\r\n }),\r\n );\r\n\r\n this.subscription.add(\r\n this.menuService.frameUrl$.subscribe((frameUrl) => {\r\n if (frameUrl) {\r\n this.storageService.setSession('frameUrl', frameUrl);\r\n } else {\r\n this.storageService.removeSession('frameUrl');\r\n }\r\n }),\r\n );\r\n\r\n const frameUrlFromStorage = this.storageService.getSession('frameUrl');\r\n if (frameUrlFromStorage) {\r\n this.menuService.frameUrl$.next(frameUrlFromStorage);\r\n }\r\n\r\n this.currentWindowWidth = window.innerWidth;\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize() {\r\n if (this.opened && this.currentWindowWidth !== window.innerWidth) {\r\n this.clearAndCloseMenu();\r\n }\r\n this.currentWindowWidth = window.innerWidth;\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n handleKeyboardEvent() {\r\n this.toggleMenu();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public toggleMenu() {\r\n this.opened = !this.opened;\r\n if (!this.opened) {\r\n this.activeOption = undefined;\r\n this.activeSubmenuOption = undefined;\r\n }\r\n this.resizeMenu();\r\n }\r\n\r\n public onMenuClick(option: MenuItem) {\r\n if (!option.alwaysOpen) {\r\n if (this.activeOption?.id === option.id) {\r\n this.activeOption = undefined;\r\n } else {\r\n this.activeOption = option.children?.length ? option : undefined;\r\n }\r\n if (option.frameUrl) {\r\n this.menuService.frameUrl$.next(option.frameUrl);\r\n } else if (option.route) {\r\n this.router.navigate([option.route]);\r\n this.menuService.frameUrl$.next(undefined);\r\n } else if (option.externalUrl) {\r\n window.open(option.externalUrl, '_blank');\r\n this.menuService.frameUrl$.next(undefined);\r\n }\r\n if (option.children?.length && !this.opened) {\r\n this.toggleMenu();\r\n }\r\n this.activeSubmenuOption = undefined;\r\n }\r\n }\r\n\r\n public onSubmenuClick(submenuItem: MenuItem) {\r\n if (!submenuItem.alwaysOpen) {\r\n if (this.activeSubmenuOption?.id === submenuItem?.id) {\r\n this.activeSubmenuOption = undefined;\r\n } else {\r\n this.activeSubmenuOption = submenuItem.children?.length ? submenuItem : undefined;\r\n }\r\n if (submenuItem.frameUrl) {\r\n this.menuService.frameUrl$.next(submenuItem.frameUrl);\r\n } else if (submenuItem.route) {\r\n this.router.navigate([submenuItem.route]);\r\n this.menuService.frameUrl$.next(undefined);\r\n } else if (submenuItem.externalUrl) {\r\n window.open(submenuItem.externalUrl, '_blank');\r\n this.menuService.frameUrl$.next(undefined);\r\n } else if (submenuItem.command) {\r\n submenuItem.command();\r\n this.menuService.frameUrl$.next(undefined);\r\n }\r\n }\r\n }\r\n\r\n public openTermsOfUse() {\r\n this.accountService.termsOfUse$.next();\r\n }\r\n\r\n public isPortalSelected(portal: AppName) {\r\n return this.currentApp === portal;\r\n }\r\n\r\n public navigateToPortal(params: Partial<VectorApp>) {\r\n this.activeOption = undefined;\r\n this.activeSubmenuOption = undefined;\r\n this.menuService.navigateToPortal(params);\r\n }\r\n\r\n public getMenuNotificationsCount(menu: MenuItem) {\r\n return this.menuService.menuNotifications[menu.id || ''];\r\n }\r\n\r\n private clearAndCloseMenu(): void {\r\n this.opened = false;\r\n this.activeOption = undefined;\r\n this.resizeMenu();\r\n }\r\n\r\n private resizeMenu() {\r\n this.lastAnimation = this.opened ? 'out' : 'in';\r\n this.widthStyle = { width: this.opened ? '250px' : '60px' };\r\n this.activeSubmenuOption = undefined;\r\n }\r\n}\r\n","<nav id=\"menu\" [ngStyle]=\"widthStyle\" [@sideInOut]=\"lastAnimation\">\r\n <div class=\"header-menu\">\r\n <div class=\"logo-container\">\r\n <div class=\"logo\" [ngClass]=\"{ 'logo-small': !opened }\"></div>\r\n </div>\r\n </div>\r\n <div class=\"menu-sections\">\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened ? 1 : 0 }\" class=\"menu-section-title\">SELEÇÃO DE PORTAL</span>\r\n <ul class=\"side-menu\">\r\n <ng-container *ngIf=\"apps.length\">\r\n <li *ngFor=\"let app of apps\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(app.appName) }\"\r\n (click)=\"navigateToPortal(app)\"\r\n >\r\n <div class=\"icon-container selected-portal-item {{ app.className }}\"></div>\r\n <span class=\"menu-label\">{{ app.description }}</span>\r\n </div>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!apps.length\">\r\n <li>\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(appsEnum.LOGTECH) }\"\r\n (click)=\"navigateToPortal({ appName: appsEnum.LOGTECH, isAdmin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item logtech\"></div>\r\n <span class=\"menu-label\">Cargas</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"hasAnyFintechPermission\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(appsEnum.FINTECH) }\"\r\n (click)=\"navigateToPortal({ appName: appsEnum.FINTECH, isAdmin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item fintech\"></div>\r\n <span class=\"menu-label\">Conta digital</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"!production\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'selected-portal': isPortalSelected(appsEnum.MARKETPLACE) }\"\r\n (click)=\"navigateToPortal({ appName: appsEnum.MARKETPLACE, isAdmin: false })\"\r\n >\r\n <div class=\"icon-container selected-portal-item marketplace\"></div>\r\n <span class=\"menu-label\">Combustível</span>\r\n </div>\r\n </li>\r\n <li *ngIf=\"adminOption && (hasFintechAdminPermission || hasMarketplaceAdminPermission)\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === adminOption.id }\"\r\n (click)=\"navigateToPortal({ appName: appsEnum.FINTECH, isAdmin: true })\"\r\n >\r\n <div class=\"icon-container selected-portal-item admin\"></div>\r\n <span class=\"menu-label\">Admin Fintech</span>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div class=\"menu-section\">\r\n <span [ngStyle]=\"{ opacity: opened && options.length ? 1 : 0 }\" class=\"menu-section-title\">MENU</span>\r\n <ul class=\"side-menu\">\r\n <li *ngFor=\"let option of options\">\r\n <div\r\n class=\"side-menu-item\"\r\n [ngClass]=\"{ 'active-menu': activeOption?.id === option.id, 'always-open': !!option.alwaysOpen }\"\r\n [pTooltip]=\"option.label\"\r\n [tooltipDisabled]=\"opened\"\r\n tooltipPosition=\"right\"\r\n (click)=\"onMenuClick(option)\"\r\n >\r\n <div class=\"icon-container\">\r\n <img\r\n *ngIf=\"option.iconFileName\"\r\n [src]=\"'../../../../assets/icons/' + option.iconFileName + '.svg'\"\r\n class=\"menu-icon\"\r\n />\r\n <i *ngIf=\"option.icon\" class=\"menu-icon {{ option.icon }}\"></i>\r\n <span *ngIf=\"getMenuNotificationsCount(option)\" class=\"menu-notifications-count\">{{\r\n getMenuNotificationsCount(option)\r\n }}</span>\r\n </div>\r\n <span class=\"menu-label\">{{ option.label }}</span>\r\n <i\r\n *ngIf=\"opened && option.children?.length && !option.alwaysOpen\"\r\n class=\"fas angle-icon\"\r\n [ngClass]=\"{\r\n 'fa-angle-down': activeOption?.id !== option.id,\r\n 'fa-angle-up': activeOption?.id === option.id,\r\n }\"\r\n ></i>\r\n </div>\r\n <vector-sub-menus-list\r\n [options]=\"option.children\"\r\n [showList]=\"activeOption?.id === option.id || (!!option.alwaysOpen && opened)\"\r\n [submenuSelected]=\"activeSubmenuOption\"\r\n (submenuSelectedChange)=\"onSubmenuClick($event)\"\r\n ></vector-sub-menus-list>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"footer side-menu-item\">\r\n <div class=\"icon-container\">\r\n <a>\r\n <img src=\"../../../../assets/icons/menu_footer_icon.svg\" (click)=\"openTermsOfUse()\" class=\"menu-icon\" />\r\n </a>\r\n </div>\r\n <span class=\"menu-label footer-content\">\r\n <span> Veja nosso <a (click)=\"openTermsOfUse()\">Termo de uso</a> </span>\r\n <span>e <a (click)=\"openTermsOfUse()\">Política de privacidade</a></span>\r\n </span>\r\n </div>\r\n</nav>\r\n","import { NgModule } from '@angular/core';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { MenuComponent } from './menu.component';\r\nimport { SubMenusListComponent } from './sub-menus-list/sub-menus-list.component';\r\n\r\n@NgModule({\r\n declarations: [MenuComponent, SubMenusListComponent],\r\n exports: [MenuComponent],\r\n imports: [SharedModule, OverlayPanelModule],\r\n})\r\nexport class MenuModule {}\r\n","import { Component, input, output } from '@angular/core';\r\n\r\ntype PositionType = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\r\n\r\ntype SnackbarType = 'dark' | 'light';\r\n\r\nexport interface SnackbarButton {\r\n label: string;\r\n disabled: boolean;\r\n action: () => void;\r\n}\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-snack-bar',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss'],\r\n})\r\nexport class SnackbarComponent {\r\n public readonly message = input<string>('');\r\n public readonly visible = input<boolean>(false);\r\n public readonly position = input<PositionType>('bottom-center');\r\n public readonly closable = input<boolean>(true);\r\n public readonly buttons = input<SnackbarButton[]>([]);\r\n public readonly type = input<SnackbarType>('dark');\r\n public readonly fitParent = input<boolean>(false);\r\n\r\n public readonly closeSnackbar = output<void>();\r\n\r\n get positionClass(): string {\r\n return `vector-snackbar--${this.position()}`;\r\n }\r\n\r\n get themeClass(): string {\r\n return `vector-snackbar--${this.type()}`;\r\n }\r\n\r\n handleClose(): void {\r\n this.closeSnackbar.emit();\r\n }\r\n\r\n handleButtonClick(button: SnackbarButton): void {\r\n button.action();\r\n }\r\n}\r\n","@if (visible()) {\r\n <div class=\"vector-snackbar-container\" [ngClass]=\"fitParent() ? 'vector-snackbar--fit-parent' : positionClass\">\r\n <div class=\"vector-snackbar\" [ngClass]=\"themeClass\">\r\n <span class=\"vector-snackbar--message\">{{ message() }}</span>\r\n\r\n <div class=\"vector-snackbar--actions\">\r\n @for (button of buttons(); track $index) {\r\n <vector-button\r\n [label]=\"button.label\"\r\n [disabled]=\"button.disabled\"\r\n [type]=\"type() === 'dark' ? 'light-outline' : 'default-outlined'\"\r\n [round]=\"true\"\r\n (onClick)=\"handleButtonClick(button)\"\r\n ></vector-button>\r\n }\r\n @if (closable()) {\r\n <i\r\n class=\"fas fa-times vector-snackbar--close\"\r\n role=\"button\"\r\n aria-label=\"Fechar\"\r\n (click)=\"handleClose()\"\r\n ></i>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FieldsModule } from '../fields/fields.module';\r\nimport { SnackbarComponent } from './snackbar.component';\r\n\r\n@NgModule({\r\n declarations: [SnackbarComponent],\r\n exports: [SnackbarComponent],\r\n imports: [CommonModule, FieldsModule],\r\n})\r\nexport class SnackbarModule {}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-stepper',\r\n templateUrl: './stepper.component.html',\r\n styleUrls: ['./stepper.component.scss'],\r\n})\r\nexport class StepperComponent implements AfterViewInit {\r\n @Input()\r\n public steps: MenuItem[] = [];\r\n @Input()\r\n public navigable = false;\r\n @Input()\r\n public activeIndex = 0;\r\n @Output()\r\n public activeIndexChange = new EventEmitter<number>();\r\n\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n const stepsNumbers: HTMLSpanElement[] = this.elementRef.nativeElement.getElementsByClassName('p-steps-number');\r\n let index = 0;\r\n for (let element of stepsNumbers) {\r\n const step = this.steps[index];\r\n if (step.styleClass === 'checked') {\r\n element.innerHTML = `<span class=\"fas fa-check\"></span>`;\r\n }\r\n if (step.icon) {\r\n element.innerHTML = `<span class=\"${step.icon}\"></span>`;\r\n }\r\n if (step.disabled) {\r\n element.classList.add('disabled');\r\n }\r\n index++;\r\n }\r\n }\r\n\r\n onActiveIndexChange(index: number) {\r\n this.activeIndexChange.emit(index);\r\n }\r\n}\r\n","<div class=\"wrapper\">\r\n <p-steps\r\n [model]=\"steps\"\r\n [readonly]=\"!navigable\"\r\n [activeIndex]=\"activeIndex\"\r\n (activeIndexChange)=\"onActiveIndexChange($event)\"\r\n >\r\n ></p-steps\r\n >\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { StepperComponent } from './stepper.component';\r\n\r\n@NgModule({\r\n declarations: [StepperComponent],\r\n exports: [StepperComponent],\r\n imports: [SharedModule, StepsModule],\r\n})\r\nexport class StepperModule {}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { Role, VectorNotification } from '../../models';\r\nimport { HelpCentralIconOptionsType } from '../../models/topbar.model';\r\nimport { AuthService, ErrorMessageService, MenuService, ProfileService, StorageService } from '../../services';\r\nimport { NotificationsService } from '../../services/notifications.service';\r\nimport { MaskUtil, WindowUtil } from '../../utils';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'vector-top-bar',\r\n templateUrl: './top-bar.component.html',\r\n styleUrls: ['./top-bar.component.scss'],\r\n})\r\nexport class TopBarComponent implements OnInit, OnDestroy {\r\n public hideElements = false;\r\n public openedMenu = false;\r\n public openedChangeAccountMenu = false;\r\n public showNotifications = false;\r\n public doingOnboarding = false;\r\n\r\n public vectorFirstName: any;\r\n public currentAccount: any = {};\r\n public isAdmin = false;\r\n public otherAccounts: any[] = [];\r\n public maskUtil = MaskUtil;\r\n\r\n @Input()\r\n public fintech: boolean = false;\r\n @Input()\r\n public accountService: any;\r\n @Input()\r\n public showHelpCentral = false;\r\n @Input()\r\n public showProfile = false;\r\n public helpCentralIcons: HelpCentralIconOptionsType[] = [\r\n {\r\n icon: 'fab fa-whatsapp',\r\n url: 'https://api.whatsapp.com/send?phone=5521971551188&text=ol%C3%A1',\r\n active: true,\r\n },\r\n {\r\n icon: 'pi pi-phone',\r\n url: 'tel:552120423017',\r\n active: true,\r\n },\r\n {\r\n icon: 'far fa-envelope',\r\n url: 'mailto:suporte@vectorapp.com.br',\r\n active: true,\r\n },\r\n {\r\n icon: 'far fa-question-circle',\r\n url: '',\r\n active: false,\r\n },\r\n ];\r\n\r\n @Output() onClick = new EventEmitter<string>();\r\n\r\n public notificationsList: VectorNotification[] = [];\r\n\r\n private subscription = new Subscription();\r\n\r\n constructor(\r\n private menuService: MenuService,\r\n private authService: AuthService,\r\n private router: Router,\r\n private profileService: ProfileService,\r\n private storageService: StorageService,\r\n private notificationsService: NotificationsService,\r\n private errorMessageService: ErrorMessageService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.profileService.profileFirstName$.subscribe((value) => {\r\n this.vectorFirstName = value;\r\n })\r\n );\r\n\r\n this.subscription.add(\r\n this.menuService.menuOpened$.subscribe((hasOpened) => {\r\n this.hideElements = hasOpened;\r\n })\r\n );\r\n\r\n if (this.accountService) {\r\n this.subscription.add(\r\n this.accountService.currentAccount$.subscribe((account: any) => {\r\n this.currentAccount = account;\r\n if (this.currentAccount) {\r\n const str = `${this.currentAccount.accountNumber}`;\r\n const len = str.length;\r\n const accountWithHyfen = str.substring(0, len - 1) + '-' + str.substring(len - 1);\r\n this.currentAccount.accountNumber = accountWithHyfen;\r\n }\r\n })\r\n );\r\n\r\n this.subscription.add(\r\n this.accountService?.userAccounts$.subscribe((accounts: any) => {\r\n this.otherAccounts = accounts?.filter((acc: any) => acc.uuid !== this.currentAccount?.uuid) || [];\r\n })\r\n );\r\n\r\n this.subscription.add(\r\n this.accountService.onOnboarding$.subscribe((onOnboarding: any) => {\r\n setTimeout(() => {\r\n this.doingOnboarding = onOnboarding;\r\n });\r\n })\r\n );\r\n }\r\n\r\n this.subscription.add(\r\n this.authService.role$.subscribe((role) => {\r\n this.isAdmin = role === Role.ADMIN;\r\n })\r\n );\r\n\r\n this.subscription.add(\r\n this.notificationsService.notifications$.subscribe((notifications) => {\r\n this.notificationsList = notifications;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public toggleMenu() {\r\n this.menuService.toggleMenu$.next();\r\n }\r\n\r\n public logout() {\r\n this.authService.logout();\r\n }\r\n\r\n public isDesktop() {\r\n return WindowUtil.isDesktop();\r\n }\r\n\r\n public changeAccount(newAccount: any) {\r\n if (newAccount.isBlocked) {\r\n this.errorMessageService.genericModalErrorMessage$.next('Entre em contato com a central de atendimento');\r\n return;\r\n }\r\n\r\n this.storageService.set('linkedCnpj', newAccount.customerDocument);\r\n this.accountService.currentAccount$.next(newAccount);\r\n window.location.reload();\r\n }\r\n\r\n public goToTermsOfUse() {\r\n this.accountService.termsOfUse$.next();\r\n }\r\n\r\n public goToPasswordChange() {\r\n this.router.navigate(['password', 'recover'], { queryParams: { change: true } });\r\n }\r\n\r\n public goToProfile() {\r\n const userId = this.storageService.getUserId();\r\n if (userId) {\r\n this.router.navigate(['admin', 'user', 'detail', userId]);\r\n }\r\n }\r\n\r\n public goToTariff() {\r\n this.router.navigate(['fintech/under-construction']);\r\n }\r\n public goToOnboarding() {\r\n this.router.navigate(['onboarding', 'attorney-information']);\r\n }\r\n\r\n public handleClick(notification: VectorNotification) {\r\n if (notification?.link) {\r\n this.router.navigateByUrl(notification.link);\r\n }\r\n this.onClick.emit(notification?.link || '');\r\n }\r\n}\r\n","<div class=\"top-bar-container\">\r\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\r\n <div class=\"menu-icon\"></div>\r\n </div>\r\n\r\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\r\n <span>Banco {{ currentAccount?.bankCode }}</span>\r\n <span class=\"separator\"></span>\r\n <span>AG {{ currentAccount?.agency }}</span>\r\n <span class=\"separator\"></span>\r\n <span>CC {{ currentAccount?.accountNumber }}</span>\r\n <span class=\"separator\"></span>\r\n <span\r\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\r\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\r\n >\r\n <ng-container>\r\n <span class=\"separator\"></span>\r\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\r\n <span class=\"mr-2\">Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\r\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\r\n <span>{{ 'app.label.help_central' | translate }}:</span>\r\n <ng-container *ngFor=\"let item of helpCentralIcons\">\r\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\r\n <i [class]=\"item.icon\"></i>\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\r\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\r\n </span>\r\n\r\n <span class=\"separator\"></span>\r\n <div\r\n #menuContainer\r\n class=\"menu-container\"\r\n (click)=\"menu.toggle($event)\"\r\n pTooltip=\"Enter your username\"\r\n tooltipPosition=\"bottom\"\r\n tooltipEvent=\"click\"\r\n >\r\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\r\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\" styleClass=\"background-white\">\r\n <ng-template pTemplate>\r\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\r\n </div>\r\n </div>\r\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\r\n <span class=\"change-account-mobile-label\">Alternar conta</span>\r\n <span\r\n class=\"fas\"\r\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\r\n ></span>\r\n </div>\r\n </div>\r\n <ul class=\"user-menu\">\r\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\r\n <span class=\"user-menu-icon\"><i class=\"fas fa-file-contract\"></i></span>\r\n <span>Termos de Uso</span>\r\n </li>\r\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"user-menu-icon\"><i class=\"fas fa-key\"></i></span>\r\n <span>Alterar Senha</span>\r\n </li>\r\n <li *ngIf=\"showProfile\" (click)=\"goToProfile(); menu.hide()\">\r\n <span class=\"user-menu-icon\"><i class=\"fas fa-user\"></i></span>\r\n <span>Perfil</span>\r\n </li>\r\n <li (click)=\"logout()\">\r\n <span class=\"user-menu-icon\"><i class=\"fas fa-sign-out-alt\"></i></span>\r\n <span>Sair</span>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\r\n <ng-template pTemplate>\r\n <div\r\n *ngFor=\"let account of otherAccounts\"\r\n class=\"account-info change-account-info\"\r\n (click)=\"changeAccount(account)\"\r\n >\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>Banco: </span>\r\n <span class=\"account-info-value\">{{ account?.bank }}</span>\r\n </div>\r\n\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>AG: </span>\r\n <span class=\"account-info-value\">{{ account?.agency }}</span>\r\n </div>\r\n </div>\r\n <div class=\"account-info-row\">\r\n <div class=\"account-info-item\">\r\n <span>CC: </span>\r\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\r\n </div>\r\n <span class=\"separator\"></span>\r\n <div class=\"account-info-item\">\r\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\r\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <hr />\r\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\r\n Adicionar uma nova conta\r\n </p>\r\n </div>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<p-overlayPanel\r\n #notifications\r\n (onHide)=\"showNotifications = false\"\r\n (onShow)=\"showNotifications = true\"\r\n styleClass=\"background-white\"\r\n>\r\n <ng-template pTemplate>\r\n <div class=\"notifications-header\">\r\n <div class=\"notifications-vector-logo\"></div>\r\n <span class=\"notifications-title\">\r\n {{ 'app.label.notifications' | translate }}\r\n </span>\r\n </div>\r\n <ul class=\"notifications-list\">\r\n @for (notification of notificationsList; track $index) {\r\n <li (click)=\"handleClick(notification); notifications.hide()\" class=\"notification-item\">\r\n <span class=\"notification-title\">\r\n {{ notification.title }}\r\n @if (!notification.wasRead) {\r\n <span class=\"notification-item-indicator\"></span>\r\n }\r\n </span>\r\n @if (notification.description) {\r\n <span>{{ notification.description }}</span>\r\n <em class=\"fas fa-chevron-right\"></em>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </ng-template>\r\n</p-overlayPanel>\r\n","import { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { MenuModule } from '../menu';\r\nimport { TopBarComponent } from './top-bar.component';\r\n\r\n@NgModule({\r\n declarations: [TopBarComponent],\r\n exports: [TopBarComponent],\r\n imports: [SharedModule, OverlayPanelModule, TranslateModule, MenuModule],\r\n})\r\nexport class TopBarModule {}\r\n","import { EnvironmentProviders } from '@angular/core';\r\nimport { definePreset } from '@primeng/themes';\r\nimport Aura from '@primeng/themes/aura';\r\nimport { providePrimeNG } from 'primeng/config';\r\n\r\n/**\r\n * Preset de tema do Vector, baseado no Aura do PrimeNG 18.\r\n * Recria a paleta primária azul usada no tema antigo (saga-blue).\r\n * Ajuste os tokens conforme a identidade visual de cada produto.\r\n */\r\nexport const VectorPreset = definePreset(Aura, {\r\n semantic: {\r\n primary: {\r\n 50: '#eff6ff',\r\n 100: '#dbeafe',\r\n 200: '#bfdbfe',\r\n 300: '#93c5fd',\r\n 400: '#60a5fa',\r\n 500: '#3b82f6',\r\n 600: '#2563eb',\r\n 700: '#1d4ed8',\r\n 800: '#1e40af',\r\n 900: '#1e3a8a',\r\n 950: '#172554',\r\n },\r\n },\r\n});\r\n\r\n/**\r\n * Configuração unica do PrimeNG 18 para todos os apps Vector.\r\n * Use no array `providers` do AppModule (ou no bootstrapApplication) de cada projeto:\r\n *\r\n * providers: [provideVectorPrimeNG(), ...]\r\n */\r\nexport function provideVectorPrimeNG(): EnvironmentProviders {\r\n return providePrimeNG({\r\n theme: {\r\n preset: VectorPreset,\r\n options: {\r\n darkModeSelector: false,\r\n },\r\n },\r\n ripple: true,\r\n });\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nexport const crudListHasItemsGuard = (routeSnapshot: ActivatedRouteSnapshot) => {\r\n const serviceType = routeSnapshot.data['service'];\r\n if (!serviceType) {\r\n console.error('You forgot to add the service declaration to route \"data\" property.');\r\n return false;\r\n }\r\n const service: typeof serviceType = inject(serviceType);\r\n return !!(service.dataset$.value?.data?.length || service.flatUnpagedDataset$.value?.length);\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { APP_NAME } from '../injections';\r\nimport { AppName, Role } from '../models';\r\nimport { AuthService, ProfileService, StorageService } from '../services';\r\n\r\nexport const getTokenByGuidGuard = (route: ActivatedRouteSnapshot) => {\r\n const authService: AuthService = inject(AuthService);\r\n const storageService: StorageService = inject(StorageService);\r\n const router: Router = inject(Router);\r\n const profileService: ProfileService = inject(ProfileService);\r\n const appName: AppName = inject(APP_NAME);\r\n\r\n const paramTokenGuid = route.queryParams['Token'];\r\n const role = atob(route.queryParams['role'] || '') as Role;\r\n authService.role$.next(role);\r\n if (paramTokenGuid) {\r\n storageService.clear();\r\n storageService.setRole(route.queryParams['role']);\r\n storageService.setUserId(route.queryParams['userId']);\r\n return authService.getTokenByGuid(paramTokenGuid).pipe(\r\n switchMap((token) => {\r\n if (token && role !== Role.ADMIN) {\r\n router.createUrlTree([appName.toLowerCase()]);\r\n }\r\n return profileService.getUserInfo().pipe(\r\n map((response) => {\r\n if (response.id) {\r\n storageService.setUserId(response.id);\r\n }\r\n return true;\r\n })\r\n );\r\n })\r\n );\r\n } else if (storageService.getToken()) {\r\n if (role !== Role.ADMIN) {\r\n return router.createUrlTree([appName.toLowerCase()]);\r\n }\r\n return true;\r\n }\r\n authService.logout();\r\n return false;\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { APP_NAME } from '../injections';\r\nimport { AppName } from '../models';\r\nimport { ProfileService } from '../services';\r\n\r\nexport const hasPermissionGuard = (routeSnapshot: ActivatedRouteSnapshot) => {\r\n const profileService: ProfileService = inject(ProfileService);\r\n const router: Router = inject(Router);\r\n const appName: AppName = inject(APP_NAME);\r\n const hasPermission = profileService.userHasPermission(routeSnapshot.data['permission']);\r\n\r\n if (!hasPermission) {\r\n return router.createUrlTree([appName.toLowerCase()]);\r\n }\r\n return true;\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { Role } from '../models';\r\nimport { StorageService } from '../services';\r\n\r\nexport const roleGuard = (routeSnapshot: ActivatedRouteSnapshot) => {\r\n const storageService: StorageService = inject(StorageService);\r\n const router: Router = inject(Router);\r\n const isRoleAdmin = storageService.getRole() === Role.ADMIN;\r\n\r\n if ((routeSnapshot.data['adminView'] && isRoleAdmin) || (!routeSnapshot.data['adminView'] && !isRoleAdmin)) {\r\n return true;\r\n }\r\n return router.createUrlTree(['']);\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { AuthService, StorageService } from '../services';\r\n\r\nexport const tokenIsPresentGuard = (routeSnapshot: ActivatedRouteSnapshot) => {\r\n const storageService: StorageService = inject(StorageService);\r\n const authService: AuthService = inject(AuthService);\r\n\r\n if (routeSnapshot.queryParams['tokenGuid']) {\r\n return firstValueFrom(authService.getTokenByGuid(routeSnapshot.queryParams['tokenGuid'])).then(\r\n (response) => !!response.accessToken\r\n );\r\n } else {\r\n return !!storageService.getToken();\r\n }\r\n};\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { MessageService } from 'primeng/api';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, filter, switchMap, take, tap } from 'rxjs/operators';\r\nimport { ENVIRONMENT } from '../injections';\r\nimport { MessageStatus } from '../models';\r\nimport { AuthService, ErrorMessageService, LoadingService, StorageService } from '../services';\r\n\r\n@Injectable()\r\nexport class HttpInterceptorProvider implements HttpInterceptor {\r\n private activeRequests: string[] = [];\r\n private isRefreshing = false;\r\n private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(null);\r\n constructor(\r\n private storageService: StorageService,\r\n private errorMessageService: ErrorMessageService,\r\n private loadingService: LoadingService,\r\n private authService: AuthService,\r\n private messageService: MessageService,\r\n @Inject(ENVIRONMENT) private environment: any\r\n ) {}\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const isExternalUrl = request.headers.get('external-url');\r\n\r\n if (!this.isRefreshTokenRequest(request.url)) {\r\n if (!isExternalUrl) {\r\n request = this.addTokenIfPresent(request);\r\n request = this.addEncryptPasswordIfPresent(request);\r\n request = this.addAccountUuidIfPresent(request);\r\n request = this.addModifierIdIfPresent(request);\r\n request = this.addContentType(request);\r\n }\r\n }\r\n\r\n if (!isExternalUrl) {\r\n request = this.fixUrl(request);\r\n }\r\n\r\n const noSpinnerHeader = request.headers.get('no-spinner');\r\n if (!noSpinnerHeader && !request.url.startsWith('/assets/')) {\r\n this.loadingService.loading$.next(true);\r\n this.activeRequests.push(this.getUrlWithoutParams(request.url));\r\n }\r\n\r\n return next.handle(request).pipe(\r\n catchError((response: HttpErrorResponse) => {\r\n if (response.error?.messages?.length) {\r\n this.errorMessageService.genericModalErrorMessage$.next(\r\n response.error.messages[response.error.messages.length - 1]\r\n );\r\n }\r\n if (!this.isRefreshTokenRequest(request.url)) {\r\n if (response.status === 401) {\r\n return this.handle401Error(request, next);\r\n }\r\n if (response.status === 403) {\r\n this.errorMessageService.genericModalErrorMessage$.next('Usuário sem privilégios para realizar essa ação');\r\n } else {\r\n if (!isExternalUrl) {\r\n if (typeof response.error == 'string') {\r\n this.messageService.add({ severity: MessageStatus.ERROR, summary: 'Erro', detail: response.error });\r\n }\r\n }\r\n }\r\n }\r\n if (this.activeRequests.includes(this.getUrlWithoutParams(response.url))) {\r\n this.activeRequests.splice(\r\n this.activeRequests.findIndex((item) => item === this.getUrlWithoutParams(request.url)),\r\n 1\r\n );\r\n if (!this.activeRequests.length) {\r\n this.loadingService.loading$.next(false);\r\n }\r\n }\r\n\r\n return throwError(() => response);\r\n }),\r\n tap((response) => {\r\n if (response instanceof HttpResponse) {\r\n if (this.activeRequests.includes(this.getUrlWithoutParams(response.url))) {\r\n this.activeRequests.splice(\r\n this.activeRequests.findIndex((item) => item === this.getUrlWithoutParams(request.url)),\r\n 1\r\n );\r\n if (!this.activeRequests.length) {\r\n this.loadingService.loading$.next(false);\r\n }\r\n }\r\n\r\n if (\r\n Object(response.body).hasOwnProperty('statusCode') &&\r\n response.body.statusCode === 400 &&\r\n response.body.messages?.length\r\n ) {\r\n this.errorMessageService.genericModalErrorMessage$.next(\r\n response.body.messages[response.body.messages.length - 1]\r\n );\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n private isRefreshTokenRequest(url: string) {\r\n return url.includes('connect/token');\r\n }\r\n\r\n private getUrlWithoutParams(fullUrl: string | null): string {\r\n if (!fullUrl) {\r\n return '';\r\n }\r\n\r\n const decodedUrl = decodeURIComponent(fullUrl.trim());\r\n\r\n if (!decodedUrl.includes('?')) {\r\n return decodedUrl;\r\n }\r\n\r\n return decodedUrl.substring(0, decodedUrl.indexOf('?'));\r\n }\r\n\r\n private addTokenIfPresent(request: HttpRequest<any>): HttpRequest<any> {\r\n const token = this.storageService.getToken();\r\n if (token) {\r\n request = request.clone({ setHeaders: { Authorization: token } });\r\n }\r\n return request;\r\n }\r\n\r\n private addModifierIdIfPresent(request: HttpRequest<any>): HttpRequest<any> {\r\n const modifierId = this.storageService.getUserId();\r\n if (modifierId && request.method !== 'GET' && !(request.body instanceof FormData)) {\r\n request = request.clone({ body: { ...request.body, modifierId } });\r\n }\r\n return request;\r\n }\r\n\r\n private addEncryptPasswordIfPresent(request: HttpRequest<any>): HttpRequest<any> {\r\n const encriptPassword = this.storageService.get('encryptPassword');\r\n if (request.method !== 'GET' && encriptPassword) {\r\n if (request.body instanceof FormData) {\r\n request.body.append('encriptPassword', encriptPassword);\r\n } else {\r\n request = request.clone({ body: { ...request.body, encriptPassword } });\r\n }\r\n }\r\n return request;\r\n }\r\n\r\n private addAccountUuidIfPresent(request: HttpRequest<any>): HttpRequest<any> {\r\n const accountUuid = this.storageService.get('accountUuid');\r\n if (request.method !== 'GET' && accountUuid) {\r\n if (request.body instanceof FormData) {\r\n request.body.append('accountUuid', accountUuid);\r\n } else {\r\n request = request.clone({ body: { ...request.body, accountUuid } });\r\n }\r\n }\r\n return request;\r\n }\r\n\r\n private addContentType(request: HttpRequest<any>): HttpRequest<any> {\r\n return request.clone({ setHeaders: { contentType: 'application/json' } });\r\n }\r\n\r\n private fixUrl(request: HttpRequest<any>): HttpRequest<any> {\r\n if (this.isAuthRequest(request.url) || this.isProfilesRequest(request.url)) {\r\n return request.clone({\r\n url: `${this.environment.API_URL.replace('/api', '')}/${request.url}`,\r\n });\r\n }\r\n return request.clone({\r\n url: request.url.startsWith('/assets/') ? request.url : `${this.environment.API_URL}/${request.url}`,\r\n });\r\n }\r\n\r\n private isAuthRequest(url: string) {\r\n return url.includes('connect/token');\r\n }\r\n\r\n private isProfilesRequest(url: string) {\r\n return url.includes('connect/userinfo');\r\n }\r\n\r\n private handle401Error(request: HttpRequest<any>, next: HttpHandler) {\r\n if (!this.isRefreshing) {\r\n this.isRefreshing = true;\r\n this.refreshTokenSubject.next(null);\r\n\r\n const refreshToken = this.storageService.getRefreshToken();\r\n if (refreshToken) {\r\n return this.authService.getTokenByRefreshToken(refreshToken).pipe(\r\n switchMap((token: any) => {\r\n this.isRefreshing = false;\r\n this.refreshTokenSubject.next(this.storageService.getToken());\r\n return next.handle(this.addTokenIfPresent(request));\r\n }),\r\n catchError((err) => {\r\n this.isRefreshing = false;\r\n this.authService.logout();\r\n return throwError(() => err);\r\n })\r\n );\r\n } else {\r\n this.isRefreshing = false;\r\n this.authService.logout();\r\n return throwError(() => new Error());\r\n }\r\n }\r\n\r\n return this.refreshTokenSubject.pipe(\r\n filter((token) => token !== null),\r\n take(1),\r\n switchMap((token) => next.handle(this.addTokenIfPresent(request)))\r\n );\r\n }\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nexport const getSelectedCrudItemResolver = (routeSnapshot: ActivatedRouteSnapshot) => {\r\n const serviceType = routeSnapshot.data['service'];\r\n if (!serviceType) {\r\n console.error('You forgot to add the service declaration to route \"data\" property.');\r\n return undefined;\r\n }\r\n const service: typeof serviceType = inject(serviceType);\r\n if (service.dataset$.value?.data?.length) {\r\n return service.dataset$.value.data.find((item: any) => item.id == routeSnapshot.params['id']);\r\n }\r\n if (service.flatUnpagedDataset$.value?.length) {\r\n return service.flatUnpagedDataset$.value.find((item: any) => item.id == routeSnapshot.params['id']);\r\n }\r\n return undefined;\r\n};\r\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","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","i1.StorageService","i5.SubMenusListComponent","i2.ButtonComponent","i1.AuthService","i3.NotificationsService","i7","i8.FormatDocumentPipe","i9.UnreadNotificationsPipe","i10"],"mappings":"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"}