ngx-vector-components 6.6.0 → 6.8.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.
|
@@ -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/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 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\"> </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 [disabled]=\"disabledHeadercheckbox\"></p-tableHeaderCheckbox>\r\n </th>\r\n <th class=\"px-1 w-max min-w-max white-space-nowrap text-center vertical-align-middle\" *ngIf=\"hasExpandableIcon\">\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';\n\ntype PositionType = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\n\ntype SnackbarType = 'dark' | 'light';\n\nexport interface SnackbarButton {\n label: string;\n disabled: boolean;\n action: () => void;\n}\n\n@Component({\n standalone: false,\n selector: 'vector-snack-bar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n})\nexport class SnackbarComponent {\n public readonly message = input<string>('');\n public readonly visible = input<boolean>(false);\n public readonly position = input<PositionType>('bottom-center');\n public readonly closable = input<boolean>(true);\n public readonly buttons = input<SnackbarButton[]>([]);\n public readonly type = input<SnackbarType>('dark');\n public readonly fitParent = input<boolean>(false);\n\n public readonly closeSnackbar = output<void>();\n\n get positionClass(): string {\n return `vector-snackbar--${this.position()}`;\n }\n\n get themeClass(): string {\n return `vector-snackbar--${this.type()}`;\n }\n\n handleClose(): void {\n this.closeSnackbar.emit();\n }\n\n handleButtonClick(button: SnackbarButton): void {\n button.action();\n }\n}\n","@if (visible()) {\n <div class=\"vector-snackbar-container\" [ngClass]=\"fitParent() ? 'vector-snackbar--fit-parent' : positionClass\">\n <div class=\"vector-snackbar\" [ngClass]=\"themeClass\">\n <span class=\"vector-snackbar--message\">{{ message() }}</span>\n\n <div class=\"vector-snackbar--actions\">\n @for (button of buttons(); track $index) {\n <vector-button\n [label]=\"button.label\"\n [disabled]=\"button.disabled\"\n [type]=\"type() === 'dark' ? 'light-outline' : 'default-outlined'\"\n [round]=\"true\"\n (onClick)=\"handleButtonClick(button)\"\n ></vector-button>\n }\n @if (closable()) {\n <i\n class=\"fas fa-times vector-snackbar--close\"\n role=\"button\"\n aria-label=\"Fechar\"\n (click)=\"handleClose()\"\n ></i>\n }\n </div>\n </div>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FieldsModule } from '../fields/fields.module';\nimport { SnackbarComponent } from './snackbar.component';\n\n@NgModule({\n declarations: [SnackbarComponent],\n exports: [SnackbarComponent],\n imports: [CommonModule, FieldsModule],\n})\nexport class SnackbarModule {}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';\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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"}
|
|
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 ADD_INDIVIDUAL_VEHICLE = 'Add Individual Vehicle',\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\"> </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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"}
|