ngx-vector-components 4.102.0 → 4.103.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/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/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/services/storage.service.ts","../../../projects/ngx-vector-components/src/lib/services/profile.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/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/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/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-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/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/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/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/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 eventType?: string;\r\n modifierName?: string;\r\n dateTime?: Date;\r\n auditId?: number;\r\n typeOfModification?: string;\r\n dataAuditDelta?: DataAuditDelta[];\r\n}\r\n\r\nexport type DataAuditDelta = {\r\n fieldName?: string;\r\n newValue?: string;\r\n oldValue?: 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;\r\n notSortable?: boolean;\r\n mask?: string;\r\n currencyType?: 'USD' | 'BRL';\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 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}\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 ADD_CARRIER = 'Add Carrier',\r\n EDIT_CARRIER = 'Edit Carrier',\r\n DELETE_CARRIER = 'Delete Carrier',\r\n SHOW_CARRIER = 'Show Carrier',\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 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 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 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_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 SHOW_TRIP_OFFERT = 'Trip Offer Show',\r\n ADD_LASTNAME_LOCATION = 'Add LastName Location',\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_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 SEND_NFS_ETCD = 'Send NFs ETCD',\r\n SHOW_ANTECITABLE_RECEVEIBLES = 'Vizualizar 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_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}\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}\r\n","export enum View {\r\n HOME,\r\n ADMIN,\r\n DIGITAL_CARRIER,\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Status } from '../../models';\r\n\r\n@Component({\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 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 public static validateCpfOrCnpj(taxId: string) {\r\n taxId = taxId.replace(/[^0-9]+/g, '');\r\n\r\n if (taxId.length == 11) {\r\n return this.validateCpf(taxId);\r\n } else if (taxId.length == 14) {\r\n return this.validateCnpj(taxId);\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(/[^\\d]+/g, '');\r\n\r\n if (cnpj == '') return false;\r\n\r\n if (cnpj.length != 14) return false;\r\n\r\n if (\r\n [\r\n '00000000000000',\r\n '11111111111111',\r\n '22222222222222',\r\n '33333333333333',\r\n '44444444444444',\r\n '55555555555555',\r\n '66666666666666',\r\n '77777777777777',\r\n '88888888888888',\r\n '99999999999999',\r\n ].includes(cnpj)\r\n )\r\n return false;\r\n\r\n let size = cnpj.length - 2;\r\n let numbers = cnpj.substring(0, size);\r\n let digits = cnpj.substring(size);\r\n let sum = 0;\r\n let pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += parseInt(numbers.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 = size + 1;\r\n numbers = cnpj.substring(0, size);\r\n sum = 0;\r\n pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += parseInt(numbers.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.999.999/9999-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 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 formatDocument(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, CPF_PATTERN);\r\n }\r\n\r\n if (stringValue.length === 14) {\r\n return this.doMaskString(stringValue, 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","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 if (control.value.length === 11) {\r\n return ValidationUtil.isValidCpf(control);\r\n }\r\n if (control.value.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 public static isValidCnpj(control: AbstractControl): ValidationErrors | null {\r\n let cnpj = control.value;\r\n cnpj = cnpj.replace(/[^\\d]+/g, '');\r\n if (/^(\\d)\\1+$/.test(cnpj)) {\r\n return { cnpjNotValid: true };\r\n }\r\n\r\n let t = cnpj.length - 2,\r\n d = cnpj.substring(t),\r\n d1 = parseInt(d.charAt(0)),\r\n d2 = parseInt(d.charAt(1)),\r\n calc = (x: number) => {\r\n let n = cnpj.substring(0, x),\r\n y = x - 7,\r\n s = 0,\r\n r = 0;\r\n for (let i = x; i >= 1; i--) {\r\n s += n.charAt(x - i) * y--;\r\n if (y < 2) y = 9;\r\n }\r\n r = 11 - (s % 11);\r\n return r > 9 ? 0 : r;\r\n };\r\n if (calc(t) === d1 && calc(t + 1) === 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","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 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 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 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 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 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' })\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 { Component, Inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { MenuItem } from '../../models';\r\n\r\n@Component({\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 private subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n @Inject('environment') private environment: any,\r\n @Inject('menuOptions') private menuOptions: MenuItem[]\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\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 </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 { FormGroup } 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 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 FormGroup({});\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 = 'success' | 'success-outlined' | 'default' | 'default-filled' | 'cancel' | 'cancel-filled';\r\n\r\n@Component({\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 style: any = {};\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></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 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 labelGoSubmit?: string;\r\n @Input()\r\n public typeGoSubmit?: ButtonType;\r\n\r\n @Output()\r\n public onGoBack = new EventEmitter<void>();\r\n @Output()\r\n public onSubmit = 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 <div class=\"button\" *ngIf=\"!goBackHidden\">\r\n <vector-button\r\n [label]=\"labelGoBack ? labelGoBack : ('enums.Options.GO_BACK' | translate)\"\r\n [type]=\"typeGoBack ? typeGoBack : 'default'\"\r\n (onClick)=\"onGoBack.emit()\"\r\n >\r\n </vector-button>\r\n </div>\r\n\r\n <div class=\"button\" *ngIf=\"!submitHidden\">\r\n <vector-button\r\n [label]=\"labelGoSubmit ? labelGoSubmit : ('enums.Options.SAVE' | translate)\"\r\n [type]=\"typeGoSubmit ? typeGoSubmit : 'success'\"\r\n (onClick)=\"onSubmit.emit()\"\r\n [disabled]=\"submitDisabled\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\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 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 { 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 private http: HttpClient,\r\n private storageService: StorageService,\r\n private profileService: ProfileService,\r\n private activatedRoute: ActivatedRoute,\r\n @Inject('environment') private environment: any\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>();\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 { Inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { AuthService, ProfileService, StorageService } from '.';\r\nimport { AppName, MenuItem, View } from '../models';\r\nimport { VectorApp } from '../models/vector-app.model';\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 private authService: AuthService,\r\n private router: Router,\r\n private storageService: StorageService,\r\n private profileService: ProfileService,\r\n @Inject('environment') private environment: any,\r\n @Inject('menuOptions') private menuOptions: MenuItem[],\r\n @Inject('appName') private appName: AppName\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ProfileModule, Role } from '../models';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StorageService {\r\n constructor(private http: HttpClient) {}\r\n\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 { Profile, ProfileModule, ProfileModuleActionType, ProfileModuleType } 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 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 };\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 { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\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 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, Input } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { ModalService } from '../../../services';\r\n\r\n@Component({\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\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-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n ></p-calendar>\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 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 = false;\r\n @Output()\r\n public valueChange = new EventEmitter<boolean>();\r\n constructor() {}\r\n\r\n ngOnInit() {}\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 ></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)=\"control.setValue(!control.value)\"\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, Input, 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 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 @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 ></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 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 decimal = false;\r\n @Input()\r\n public onlyText = 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()\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 @Output()\r\n public blurEvent = 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.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 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 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 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 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\">\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 (keydown.enter)=\"onEnterPress()\"\r\n (keydown.backspace)=\"onBackSpacePress()\"\r\n (click)=\"onFocus($event)\"\r\n [readonly]=\"readonly ? true : null\"\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 ></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, OnDestroy, OnInit, Output, Renderer2 } 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 selector: 'vector-dropdown-field',\r\n templateUrl: './dropdown-field.component.html',\r\n styleUrls: ['./dropdown-field.component.scss'],\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\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 @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.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(encodeURIComponent(this.currentSearchQuery), this.currentScrollPage, 20, this.dependencies)\r\n .subscribe({\r\n next: (response) => {\r\n this.pagedSuggestions = this.currentScrollPage === 0 ? response : this.pagedSuggestions?.concat(response);\r\n this.setControlValueFromSuggestions();\r\n this.handleSearchErrors();\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 + 20);\r\n\r\n if (this.options?.length && this.options.length > 20) {\r\n this.currentScrollIndex = this.currentScrollIndex + 20;\r\n }\r\n\r\n this.setControlValueFromSuggestions();\r\n this.handleSearchErrors();\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","<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <div class=\"input-inner-container\" *ngIf=\"!isNgContent\">\r\n <p-dropdown\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 >\r\n </p-dropdown>\r\n <p-autoComplete\r\n appendTo=\"body\"\r\n field=\"name\"\r\n dataKey=\"code\"\r\n [forceSelection]=\"true\"\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 (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 >\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=\"nameCustom\"\r\n dataKey=\"code\"\r\n [forceSelection]=\"true\"\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 (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 >\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]=\"!control.value\"\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, Input } from '@angular/core';\r\nimport { ListItem } from '../../../models';\r\n\r\n@Component({\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\r\n constructor() {}\r\n}\r\n","<div class=\"input-container p-input-icon-right\">\r\n <p-selectButton [options]=\"options\" [formControl]=\"control\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ListItem } from '../../../models';\r\n\r\n@Component({\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 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[] = [];\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 @Output()\r\n public onChange = 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 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","<div class=\"multiselect-field-input-container\">\r\n <p-multiSelect\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 >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, 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};\r\n\r\n@Component({\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 FormGroup({});\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 FormGroup({\r\n startDate: new FormControl({ value: field.defaultValue?.startDate, disabled: field.readonly }, [\r\n ...this.buildValidators(field),\r\n ValidationUtil.lowerThanOrEqualTo('endDate'),\r\n ]),\r\n endDate: new FormControl({ 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 this.formGroup.addControl(\r\n field.name,\r\n new FormControl({ value: field.defaultValue, disabled: field.readonly }, this.buildValidators(field))\r\n );\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 @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 FormGroup({});\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>{{ field.label }} <i *ngIf=\"field.tooltip\" class=\"fas fa-info-circle mt-1 pl-2 ch\" pTooltip=\"{{ field.tooltip }}\" tooltipPosition=\"bottom\"></i></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 ></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 ></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 ></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 ></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 >\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 ></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 ></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 >\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 ></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 { 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 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 @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 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 }[] | 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 @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\r\n @ViewChild(FiltersComponent, { static: true })\r\n public filtersComponent: FiltersComponent | undefined;\r\n\r\n public selectedItems: any = [];\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 = false;\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 (!params.filter) {\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) {\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\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 content += `<div class=\"text-centered\"><i class=\"fas ${\r\n col.icon || 'fa-circle'\r\n } status-table-field table-button\"></i></div>`;\r\n break;\r\n case TableColumnType.MASK:\r\n content += MaskUtil.doMaskString(cellText, col.mask);\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 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 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 class=\"table-header-actions field\" *ngIf=\"addItemLabel || exportExcel || exportPDF\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></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\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n *ngFor=\"let button of customButtons\"\r\n class=\"add-item-button\"\r\n [label]=\"button.label\"\r\n (click)=\"button.clickFunction()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\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 ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\">\r\n <ng-template pTemplate=\"header\">\r\n <em *ngIf=\"tab.icon\" [class]=\"tab.icon\">&nbsp;</em>\r\n <span>{{ tab.name }}</span>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} até {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n dataKey=\"id\"\r\n [scrollHeight]=\"height\"\r\n [attr.selectionMode]=\"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 >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 3rem\" *ngIf=\"selectionType === 'checkbox'\">\r\n <p-tableHeaderCheckbox [disabled]=\"disabledHeadercheckbox\"></p-tableHeaderCheckbox>\r\n </th>\r\n <th style=\"max-width: 150px\" class=\"centered text-center\" *ngIf=\"hasExpandableIcon\">\r\n {{ addNameColumnExpand }}\r\n </th>\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">{{ 'app.label.actions' | translate }}</th>\r\n <th\r\n *ngFor=\"let col of columns\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n [pSortableColumn]=\"col.notSortable ? '' : col.field\"\r\n >\r\n {{ col.header }} <p-sortIcon *ngIf=\"!col.notSortable\" [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item let-expanded=\"expanded\">\r\n <tr\r\n class=\"row\"\r\n [pSelectableRow]=\"rowData\"\r\n [ngClass]=\"{ expandable: expandable }\"\r\n [pRowToggler]=\"expandable ? item : undefined\"\r\n (click)=\"onRowClick(item)\"\r\n >\r\n <ng-container *ngIf=\"selectionType === 'checkbox'\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\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 style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\r\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\r\n </td>\r\n </ng-container>\r\n <td *ngIf=\"hasExpandableIcon\" style=\"max-width: 150px\" class=\"centered\">\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\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <td\r\n *ngIf=\"isHtmlCell(col)\"\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 </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=\"rowexpansion\" 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 } from '@angular/core';\r\n@Component({\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 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();\r\n @Output()\r\n public onBlur = new EventEmitter();\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 [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 ></p-inputNumber>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\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 {\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","<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 ></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};\r\n\r\n@Component({\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\r\n constructor(private translateService: TranslateService) {}\r\n\r\n ngOnInit(): void {}\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 <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\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 { FormControl } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\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 FormControl();\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 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 pInputTextarea\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 { CalendarModule } from 'primeng/calendar';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\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 { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { BadgeModule } from '../badge';\r\nimport { PanelModule } from '../panel/panel.module';\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 { InputNumberFieldComponent } from './input-number-field/input-number-field.component';\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@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 CalendarModule,\r\n MultiSelectModule,\r\n DropdownModule,\r\n AutoCompleteModule,\r\n SliderModule,\r\n RadioButtonModule,\r\n TableModule,\r\n FileUploadModule,\r\n DialogModule,\r\n InputNumberModule,\r\n MenuModule,\r\n TabViewModule,\r\n PanelModule,\r\n ButtonModule,\r\n InputTextareaModule,\r\n SelectButtonModule,\r\n InputNumberModule,\r\n BadgeModule,\r\n ScoreModule,\r\n TranslateModule,\r\n ],\r\n declarations: [\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 DataTableComponent,\r\n FiltersComponent,\r\n TextareaFieldComponent,\r\n FieldErrorMessageComponent,\r\n SelectButtonFieldComponent,\r\n InputNumberFieldComponent,\r\n ],\r\n exports: [\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 DataTableComponent,\r\n FiltersComponent,\r\n TextareaFieldComponent,\r\n FieldErrorMessageComponent,\r\n SelectButtonFieldComponent,\r\n InputNumberFieldComponent,\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 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 } from '@angular/core';\r\nimport { CrudHistory } from '../../models';\r\n\r\n@Component({\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 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","<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 {{ crudHistory.modifierName }}</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 <s class=\"old-value pl-1\">{{ auditDelta.oldValue }}</s>\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 { 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],\r\n exports: [CrudHistoryComponent],\r\n})\r\nexport class CrudHistoryModule {}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { ErrorMessageService } from '../../services';\r\n\r\n@Component({\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 = '';\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$\r\n .pipe(filter((message) => !this.skipMessages.includes(message)))\r\n .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 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 ></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 ></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 { FieldsModule } from '..';\r\nimport { SharedModule } from '../../shared/shared.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 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 [pTooltip]=\"submenuItem.label\"\r\n tooltipPosition=\"right\"\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 { 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 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('appName') 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 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, 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, ProfileService, StorageService } from '../../services';\r\nimport { MenuService } from '../../services/menu.service';\r\nimport { NotificationsService } from '../../services/notifications.service';\r\nimport { MaskUtil, WindowUtil } from '../../utils';\r\n\r\n@Component({\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 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 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(link: string | undefined) {\r\n this.onClick.emit(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\">\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=\"terms-of-use user-menu-icon\"></span>\r\n <span>Termos de Uso</span>\r\n </li>\r\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Alterar Senha</span>\r\n </li>\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></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 <li\r\n (click)=\"handleClick(notification?.link)\"\r\n class=\"notification-item\"\r\n *ngFor=\"let notification of notificationsList | unreadNotifications\"\r\n >\r\n <span class=\"notification-title\">{{ notification.title }}</span>\r\n <span>{{ notification.description }}</span>\r\n <em class=\"fas fa-chevron-right\"></em>\r\n </li>\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 { TopBarComponent } from './top-bar.component';\r\n\r\n@NgModule({\r\n declarations: [TopBarComponent],\r\n exports: [TopBarComponent],\r\n imports: [SharedModule, OverlayPanelModule, TranslateModule],\r\n})\r\nexport class TopBarModule {}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class CrudListHasItemsGuard implements CanActivate {\r\n constructor(private injector: Injector) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot) {\r\n const serviceType = route.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 = this.injector.get<typeof serviceType>(serviceType);\r\n return !!(service.dataset$.value?.data?.length || service.flatUnpagedDataset$.value?.length);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { AppName, Role } from '../models';\r\nimport { AuthService, ProfileService, StorageService } from '../services';\r\n\r\n@Injectable()\r\nexport class GetTokenByGuidGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private storageService: StorageService,\r\n private router: Router,\r\n private profileService: ProfileService,\r\n @Inject('appName') private appName: AppName\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot) {\r\n const paramTokenGuid = route.queryParams['Token'];\r\n const role = atob(route.queryParams['role'] || '') as Role;\r\n this.authService.role$.next(role);\r\n if (paramTokenGuid) {\r\n this.storageService.clear();\r\n this.storageService.setRole(route.queryParams['role']);\r\n this.storageService.setUserId(route.queryParams['userId']);\r\n return this.authService.getTokenByGuid(paramTokenGuid).pipe(\r\n switchMap((token) => {\r\n if (token && role !== Role.ADMIN) {\r\n this.router.createUrlTree([this.appName.toLowerCase()]);\r\n }\r\n return this.profileService.getUserInfo().pipe(\r\n map((response) => {\r\n if (response.id) {\r\n this.storageService.setUserId(response.id);\r\n }\r\n return true;\r\n })\r\n );\r\n })\r\n );\r\n } else if (this.storageService.getToken()) {\r\n if (role !== Role.ADMIN) {\r\n return this.router.createUrlTree([this.appName.toLowerCase()]);\r\n }\r\n return true;\r\n }\r\n this.authService.logout();\r\n return false;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { AppName } from '../models';\r\nimport { ProfileService } from '../services';\r\n\r\n@Injectable()\r\nexport class HasPermissionGuard implements CanActivate {\r\n constructor(\r\n private profileService: ProfileService,\r\n private router: Router,\r\n @Inject('appName') private appName: AppName\r\n ) {}\r\n\r\n canActivate(routeSnapshot: ActivatedRouteSnapshot) {\r\n if (!this.profileService.userHasPermission(routeSnapshot.data['permission'])) {\r\n return this.router.createUrlTree([this.appName.toLowerCase()]);\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { Role } from '../models';\r\nimport { StorageService } from '../services';\r\n\r\n@Injectable()\r\nexport class RoleGuard implements CanActivate {\r\n constructor(private storageService: StorageService, private router: Router) {}\r\n\r\n canActivate(routeSnapshot: ActivatedRouteSnapshot) {\r\n const isRoleAdmin = this.storageService.getRole() === Role.ADMIN;\r\n if ((routeSnapshot.data['adminView'] && isRoleAdmin) || (!routeSnapshot.data['adminView'] && !isRoleAdmin)) {\r\n return true;\r\n }\r\n return this.router.createUrlTree(['']);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\r\nimport { AuthService, StorageService } from '../services';\r\n\r\n@Injectable()\r\nexport class TokenIsPresentGuard implements CanActivate {\r\n constructor(private storageService: StorageService, private authService: AuthService) {}\r\n\r\n canActivate(routeSnapshot: ActivatedRouteSnapshot) {\r\n if (routeSnapshot.queryParams['tokenGuid']) {\r\n return this.authService\r\n .getTokenByGuid(routeSnapshot.queryParams['tokenGuid'])\r\n .toPromise()\r\n .then((response) => !!response.accessToken);\r\n } else {\r\n return !!this.storageService.getToken();\r\n }\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 { 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 { Injectable, Injector } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class GetSelectedCrudItemResolver implements Resolve<any> {\r\n constructor(private injector: Injector) {}\r\n\r\n resolve(route: ActivatedRouteSnapshot) {\r\n const serviceType = route.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 = this.injector.get<typeof serviceType>(serviceType);\r\n if (service.dataset$.value?.data?.length) {\r\n return service.dataset$.value.data.find((item: any) => item.id == route.params['id']);\r\n }\r\n if (service.flatUnpagedDataset$.value?.length) {\r\n return service.flatUnpagedDataset$.value.find((item: any) => item.id == route.params['id']);\r\n }\r\n return undefined;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrimeNgPanel","MenuModule"],"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/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/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/services/storage.service.ts","../../../projects/ngx-vector-components/src/lib/services/profile.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/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/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/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-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/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/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/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/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 eventType?: string;\r\n modifierName?: string;\r\n dateTime?: Date;\r\n auditId?: number;\r\n typeOfModification?: string;\r\n dataAuditDelta?: DataAuditDelta[];\r\n}\r\n\r\nexport type DataAuditDelta = {\r\n fieldName?: string;\r\n newValue?: string;\r\n oldValue?: 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;\r\n notSortable?: boolean;\r\n mask?: string;\r\n currencyType?: 'USD' | 'BRL';\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 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}\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 ADD_CARRIER = 'Add Carrier',\r\n EDIT_CARRIER = 'Edit Carrier',\r\n DELETE_CARRIER = 'Delete Carrier',\r\n SHOW_CARRIER = 'Show Carrier',\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 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 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 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_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 SHOW_TRIP_OFFERT = 'Trip Offer Show',\r\n ADD_LASTNAME_LOCATION = 'Add LastName Location',\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_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 SEND_NFS_ETCD = 'Send NFs ETCD',\r\n SHOW_ANTECITABLE_RECEVEIBLES = 'Vizualizar 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_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}\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}\r\n","export enum View {\r\n HOME,\r\n ADMIN,\r\n DIGITAL_CARRIER,\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Status } from '../../models';\r\n\r\n@Component({\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 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 public static validateCpfOrCnpj(taxId: string) {\r\n taxId = taxId.replace(/[^0-9]+/g, '');\r\n\r\n if (taxId.length == 11) {\r\n return this.validateCpf(taxId);\r\n } else if (taxId.length == 14) {\r\n return this.validateCnpj(taxId);\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(/[^\\d]+/g, '');\r\n\r\n if (cnpj == '') return false;\r\n\r\n if (cnpj.length != 14) return false;\r\n\r\n if (\r\n [\r\n '00000000000000',\r\n '11111111111111',\r\n '22222222222222',\r\n '33333333333333',\r\n '44444444444444',\r\n '55555555555555',\r\n '66666666666666',\r\n '77777777777777',\r\n '88888888888888',\r\n '99999999999999',\r\n ].includes(cnpj)\r\n )\r\n return false;\r\n\r\n let size = cnpj.length - 2;\r\n let numbers = cnpj.substring(0, size);\r\n let digits = cnpj.substring(size);\r\n let sum = 0;\r\n let pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += parseInt(numbers.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 = size + 1;\r\n numbers = cnpj.substring(0, size);\r\n sum = 0;\r\n pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += parseInt(numbers.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.999.999/9999-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 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 formatDocument(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, CPF_PATTERN);\r\n }\r\n\r\n if (stringValue.length === 14) {\r\n return this.doMaskString(stringValue, 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","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 if (control.value.length === 11) {\r\n return ValidationUtil.isValidCpf(control);\r\n }\r\n if (control.value.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 public static isValidCnpj(control: AbstractControl): ValidationErrors | null {\r\n let cnpj = control.value;\r\n cnpj = cnpj.replace(/[^\\d]+/g, '');\r\n if (/^(\\d)\\1+$/.test(cnpj)) {\r\n return { cnpjNotValid: true };\r\n }\r\n\r\n let t = cnpj.length - 2,\r\n d = cnpj.substring(t),\r\n d1 = parseInt(d.charAt(0)),\r\n d2 = parseInt(d.charAt(1)),\r\n calc = (x: number) => {\r\n let n = cnpj.substring(0, x),\r\n y = x - 7,\r\n s = 0,\r\n r = 0;\r\n for (let i = x; i >= 1; i--) {\r\n s += n.charAt(x - i) * y--;\r\n if (y < 2) y = 9;\r\n }\r\n r = 11 - (s % 11);\r\n return r > 9 ? 0 : r;\r\n };\r\n if (calc(t) === d1 && calc(t + 1) === 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","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 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 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 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 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 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' })\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 { Component, Inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { MenuItem } from '../../models';\r\n\r\n@Component({\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 private subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n @Inject('environment') private environment: any,\r\n @Inject('menuOptions') private menuOptions: MenuItem[]\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\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 </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 { FormGroup } 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 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 FormGroup({});\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 | 'cancel'\r\n | 'cancel-filled'\r\n | 'light-outline';\r\n\r\n@Component({\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 style: any = {};\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></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 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 labelGoSubmit?: string;\r\n @Input()\r\n public typeGoSubmit?: ButtonType;\r\n\r\n @Output()\r\n public onGoBack = new EventEmitter<void>();\r\n @Output()\r\n public onSubmit = 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 <div class=\"button\" *ngIf=\"!goBackHidden\">\r\n <vector-button\r\n [label]=\"labelGoBack ? labelGoBack : ('enums.Options.GO_BACK' | translate)\"\r\n [type]=\"typeGoBack ? typeGoBack : 'default'\"\r\n (onClick)=\"onGoBack.emit()\"\r\n >\r\n </vector-button>\r\n </div>\r\n\r\n <div class=\"button\" *ngIf=\"!submitHidden\">\r\n <vector-button\r\n [label]=\"labelGoSubmit ? labelGoSubmit : ('enums.Options.SAVE' | translate)\"\r\n [type]=\"typeGoSubmit ? typeGoSubmit : 'success'\"\r\n (onClick)=\"onSubmit.emit()\"\r\n [disabled]=\"submitDisabled\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\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 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 { 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 private http: HttpClient,\r\n private storageService: StorageService,\r\n private profileService: ProfileService,\r\n private activatedRoute: ActivatedRoute,\r\n @Inject('environment') private environment: any\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>();\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 { Inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { AuthService, ProfileService, StorageService } from '.';\r\nimport { AppName, MenuItem, View } from '../models';\r\nimport { VectorApp } from '../models/vector-app.model';\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 private authService: AuthService,\r\n private router: Router,\r\n private storageService: StorageService,\r\n private profileService: ProfileService,\r\n @Inject('environment') private environment: any,\r\n @Inject('menuOptions') private menuOptions: MenuItem[],\r\n @Inject('appName') private appName: AppName\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ProfileModule, Role } from '../models';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StorageService {\r\n constructor(private http: HttpClient) {}\r\n\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 { Profile, ProfileModule, ProfileModuleActionType, ProfileModuleType } 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 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 };\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 { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\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 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, Input } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { ModalService } from '../../../services';\r\n\r\n@Component({\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\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-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n ></p-calendar>\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 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 = false;\r\n @Output()\r\n public valueChange = new EventEmitter<boolean>();\r\n constructor() {}\r\n\r\n ngOnInit() {}\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 ></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)=\"control.setValue(!control.value)\"\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, Input, 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 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 @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 ></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 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 decimal = false;\r\n @Input()\r\n public onlyText = 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()\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 @Output()\r\n public blurEvent = 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.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 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 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 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 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\">\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 (keydown.enter)=\"onEnterPress()\"\r\n (keydown.backspace)=\"onBackSpacePress()\"\r\n (click)=\"onFocus($event)\"\r\n [readonly]=\"readonly ? true : null\"\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 ></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, OnDestroy, OnInit, Output, Renderer2 } 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 selector: 'vector-dropdown-field',\r\n templateUrl: './dropdown-field.component.html',\r\n styleUrls: ['./dropdown-field.component.scss'],\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\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 @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.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(encodeURIComponent(this.currentSearchQuery), this.currentScrollPage, 20, this.dependencies)\r\n .subscribe({\r\n next: (response) => {\r\n this.pagedSuggestions = this.currentScrollPage === 0 ? response : this.pagedSuggestions?.concat(response);\r\n this.setControlValueFromSuggestions();\r\n this.handleSearchErrors();\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 + 20);\r\n\r\n if (this.options?.length && this.options.length > 20) {\r\n this.currentScrollIndex = this.currentScrollIndex + 20;\r\n }\r\n\r\n this.setControlValueFromSuggestions();\r\n this.handleSearchErrors();\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","<div class=\"relative\">\r\n <div class=\"input-container\">\r\n <div class=\"input-inner-container\" *ngIf=\"!isNgContent\">\r\n <p-dropdown\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 >\r\n </p-dropdown>\r\n <p-autoComplete\r\n appendTo=\"body\"\r\n field=\"name\"\r\n dataKey=\"code\"\r\n [forceSelection]=\"true\"\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 (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 >\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=\"nameCustom\"\r\n dataKey=\"code\"\r\n [forceSelection]=\"true\"\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 (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 >\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]=\"!control.value\"\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, Input } from '@angular/core';\r\nimport { ListItem } from '../../../models';\r\n\r\n@Component({\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\r\n constructor() {}\r\n}\r\n","<div class=\"input-container p-input-icon-right\">\r\n <p-selectButton [options]=\"options\" [formControl]=\"control\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ListItem } from '../../../models';\r\n\r\n@Component({\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 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[] = [];\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 @Output()\r\n public onChange = 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 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","<div class=\"multiselect-field-input-container\">\r\n <p-multiSelect\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 >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, 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};\r\n\r\n@Component({\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 FormGroup({});\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 FormGroup({\r\n startDate: new FormControl({ value: field.defaultValue?.startDate, disabled: field.readonly }, [\r\n ...this.buildValidators(field),\r\n ValidationUtil.lowerThanOrEqualTo('endDate'),\r\n ]),\r\n endDate: new FormControl({ 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 this.formGroup.addControl(\r\n field.name,\r\n new FormControl({ value: field.defaultValue, disabled: field.readonly }, this.buildValidators(field))\r\n );\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 @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 FormGroup({});\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>{{ field.label }} <i *ngIf=\"field.tooltip\" class=\"fas fa-info-circle mt-1 pl-2 ch\" pTooltip=\"{{ field.tooltip }}\" tooltipPosition=\"bottom\"></i></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 ></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 ></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 ></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 ></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 >\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 ></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 ></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 >\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 ></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 { 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 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 @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 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 }[] | 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 @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\r\n @ViewChild(FiltersComponent, { static: true })\r\n public filtersComponent: FiltersComponent | undefined;\r\n\r\n public selectedItems: any = [];\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 = false;\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 (!params.filter) {\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) {\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\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 content += `<div class=\"text-centered\"><i class=\"fas ${\r\n col.icon || 'fa-circle'\r\n } status-table-field table-button\"></i></div>`;\r\n break;\r\n case TableColumnType.MASK:\r\n content += MaskUtil.doMaskString(cellText, col.mask);\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 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 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 class=\"table-header-actions field\" *ngIf=\"addItemLabel || exportExcel || exportPDF\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></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\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n *ngFor=\"let button of customButtons\"\r\n class=\"add-item-button\"\r\n [label]=\"button.label\"\r\n (click)=\"button.clickFunction()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\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 ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\">\r\n <ng-template pTemplate=\"header\">\r\n <em *ngIf=\"tab.icon\" [class]=\"tab.icon\">&nbsp;</em>\r\n <span>{{ tab.name }}</span>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} até {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n dataKey=\"id\"\r\n [scrollHeight]=\"height\"\r\n [attr.selectionMode]=\"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 >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 3rem\" *ngIf=\"selectionType === 'checkbox'\">\r\n <p-tableHeaderCheckbox [disabled]=\"disabledHeadercheckbox\"></p-tableHeaderCheckbox>\r\n </th>\r\n <th style=\"max-width: 150px\" class=\"centered text-center\" *ngIf=\"hasExpandableIcon\">\r\n {{ addNameColumnExpand }}\r\n </th>\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">{{ 'app.label.actions' | translate }}</th>\r\n <th\r\n *ngFor=\"let col of columns\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n [pSortableColumn]=\"col.notSortable ? '' : col.field\"\r\n >\r\n {{ col.header }} <p-sortIcon *ngIf=\"!col.notSortable\" [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item let-expanded=\"expanded\">\r\n <tr\r\n class=\"row\"\r\n [pSelectableRow]=\"rowData\"\r\n [ngClass]=\"{ expandable: expandable }\"\r\n [pRowToggler]=\"expandable ? item : undefined\"\r\n (click)=\"onRowClick(item)\"\r\n >\r\n <ng-container *ngIf=\"selectionType === 'checkbox'\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\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 style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\r\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\r\n </td>\r\n </ng-container>\r\n <td *ngIf=\"hasExpandableIcon\" style=\"max-width: 150px\" class=\"centered\">\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\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <td\r\n *ngIf=\"isHtmlCell(col)\"\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 </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=\"rowexpansion\" 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 } from '@angular/core';\r\n@Component({\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 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();\r\n @Output()\r\n public onBlur = new EventEmitter();\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 [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 ></p-inputNumber>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\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 {\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","<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 ></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};\r\n\r\n@Component({\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\r\n constructor(private translateService: TranslateService) {}\r\n\r\n ngOnInit(): void {}\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 <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\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 { FormControl } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\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 FormControl();\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 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 pInputTextarea\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 { CalendarModule } from 'primeng/calendar';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\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 { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { BadgeModule } from '../badge';\r\nimport { PanelModule } from '../panel/panel.module';\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 { InputNumberFieldComponent } from './input-number-field/input-number-field.component';\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@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 CalendarModule,\r\n MultiSelectModule,\r\n DropdownModule,\r\n AutoCompleteModule,\r\n SliderModule,\r\n RadioButtonModule,\r\n TableModule,\r\n FileUploadModule,\r\n DialogModule,\r\n InputNumberModule,\r\n MenuModule,\r\n TabViewModule,\r\n PanelModule,\r\n ButtonModule,\r\n InputTextareaModule,\r\n SelectButtonModule,\r\n InputNumberModule,\r\n BadgeModule,\r\n ScoreModule,\r\n TranslateModule,\r\n ],\r\n declarations: [\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 DataTableComponent,\r\n FiltersComponent,\r\n TextareaFieldComponent,\r\n FieldErrorMessageComponent,\r\n SelectButtonFieldComponent,\r\n InputNumberFieldComponent,\r\n ],\r\n exports: [\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 DataTableComponent,\r\n FiltersComponent,\r\n TextareaFieldComponent,\r\n FieldErrorMessageComponent,\r\n SelectButtonFieldComponent,\r\n InputNumberFieldComponent,\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 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 } from '@angular/core';\r\nimport { CrudHistory } from '../../models';\r\n\r\n@Component({\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 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","<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 {{ crudHistory.modifierName }}</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 <s class=\"old-value pl-1\">{{ auditDelta.oldValue }}</s>\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 { 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],\r\n exports: [CrudHistoryComponent],\r\n})\r\nexport class CrudHistoryModule {}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { ErrorMessageService } from '../../services';\r\n\r\n@Component({\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 = '';\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$\r\n .pipe(filter((message) => !this.skipMessages.includes(message)))\r\n .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 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 ></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 ></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 { FieldsModule } from '..';\r\nimport { SharedModule } from '../../shared/shared.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 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 [pTooltip]=\"submenuItem.label\"\r\n tooltipPosition=\"right\"\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 { 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 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('appName') 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 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, 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, ProfileService, StorageService } from '../../services';\r\nimport { MenuService } from '../../services/menu.service';\r\nimport { NotificationsService } from '../../services/notifications.service';\r\nimport { MaskUtil, WindowUtil } from '../../utils';\r\n\r\n@Component({\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 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 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(link: string | undefined) {\r\n this.onClick.emit(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\">\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=\"terms-of-use user-menu-icon\"></span>\r\n <span>Termos de Uso</span>\r\n </li>\r\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\r\n <span class=\"fintech-password user-menu-icon\"></span>\r\n <span>Alterar Senha</span>\r\n </li>\r\n <li (click)=\"logout()\">\r\n <span class=\"logout user-menu-icon\"></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 <li\r\n (click)=\"handleClick(notification?.link)\"\r\n class=\"notification-item\"\r\n *ngFor=\"let notification of notificationsList | unreadNotifications\"\r\n >\r\n <span class=\"notification-title\">{{ notification.title }}</span>\r\n <span>{{ notification.description }}</span>\r\n <em class=\"fas fa-chevron-right\"></em>\r\n </li>\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 { TopBarComponent } from './top-bar.component';\r\n\r\n@NgModule({\r\n declarations: [TopBarComponent],\r\n exports: [TopBarComponent],\r\n imports: [SharedModule, OverlayPanelModule, TranslateModule],\r\n})\r\nexport class TopBarModule {}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class CrudListHasItemsGuard implements CanActivate {\r\n constructor(private injector: Injector) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot) {\r\n const serviceType = route.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 = this.injector.get<typeof serviceType>(serviceType);\r\n return !!(service.dataset$.value?.data?.length || service.flatUnpagedDataset$.value?.length);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { AppName, Role } from '../models';\r\nimport { AuthService, ProfileService, StorageService } from '../services';\r\n\r\n@Injectable()\r\nexport class GetTokenByGuidGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private storageService: StorageService,\r\n private router: Router,\r\n private profileService: ProfileService,\r\n @Inject('appName') private appName: AppName\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot) {\r\n const paramTokenGuid = route.queryParams['Token'];\r\n const role = atob(route.queryParams['role'] || '') as Role;\r\n this.authService.role$.next(role);\r\n if (paramTokenGuid) {\r\n this.storageService.clear();\r\n this.storageService.setRole(route.queryParams['role']);\r\n this.storageService.setUserId(route.queryParams['userId']);\r\n return this.authService.getTokenByGuid(paramTokenGuid).pipe(\r\n switchMap((token) => {\r\n if (token && role !== Role.ADMIN) {\r\n this.router.createUrlTree([this.appName.toLowerCase()]);\r\n }\r\n return this.profileService.getUserInfo().pipe(\r\n map((response) => {\r\n if (response.id) {\r\n this.storageService.setUserId(response.id);\r\n }\r\n return true;\r\n })\r\n );\r\n })\r\n );\r\n } else if (this.storageService.getToken()) {\r\n if (role !== Role.ADMIN) {\r\n return this.router.createUrlTree([this.appName.toLowerCase()]);\r\n }\r\n return true;\r\n }\r\n this.authService.logout();\r\n return false;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { AppName } from '../models';\r\nimport { ProfileService } from '../services';\r\n\r\n@Injectable()\r\nexport class HasPermissionGuard implements CanActivate {\r\n constructor(\r\n private profileService: ProfileService,\r\n private router: Router,\r\n @Inject('appName') private appName: AppName\r\n ) {}\r\n\r\n canActivate(routeSnapshot: ActivatedRouteSnapshot) {\r\n if (!this.profileService.userHasPermission(routeSnapshot.data['permission'])) {\r\n return this.router.createUrlTree([this.appName.toLowerCase()]);\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { Role } from '../models';\r\nimport { StorageService } from '../services';\r\n\r\n@Injectable()\r\nexport class RoleGuard implements CanActivate {\r\n constructor(private storageService: StorageService, private router: Router) {}\r\n\r\n canActivate(routeSnapshot: ActivatedRouteSnapshot) {\r\n const isRoleAdmin = this.storageService.getRole() === Role.ADMIN;\r\n if ((routeSnapshot.data['adminView'] && isRoleAdmin) || (!routeSnapshot.data['adminView'] && !isRoleAdmin)) {\r\n return true;\r\n }\r\n return this.router.createUrlTree(['']);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\r\nimport { AuthService, StorageService } from '../services';\r\n\r\n@Injectable()\r\nexport class TokenIsPresentGuard implements CanActivate {\r\n constructor(private storageService: StorageService, private authService: AuthService) {}\r\n\r\n canActivate(routeSnapshot: ActivatedRouteSnapshot) {\r\n if (routeSnapshot.queryParams['tokenGuid']) {\r\n return this.authService\r\n .getTokenByGuid(routeSnapshot.queryParams['tokenGuid'])\r\n .toPromise()\r\n .then((response) => !!response.accessToken);\r\n } else {\r\n return !!this.storageService.getToken();\r\n }\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 { 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 { Injectable, Injector } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class GetSelectedCrudItemResolver implements Resolve<any> {\r\n constructor(private injector: Injector) {}\r\n\r\n resolve(route: ActivatedRouteSnapshot) {\r\n const serviceType = route.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 = this.injector.get<typeof serviceType>(serviceType);\r\n if (service.dataset$.value?.data?.length) {\r\n return service.dataset$.value.data.find((item: any) => item.id == route.params['id']);\r\n }\r\n if (service.flatUnpagedDataset$.value?.length) {\r\n return service.flatUnpagedDataset$.value.find((item: any) => item.id == route.params['id']);\r\n }\r\n return undefined;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrimeNgPanel","MenuModule"],"mappings":"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"}