// Angular Imports Inicio
  import { AppComponent } from './app.component';
  import { SocketService } from './services/socket.service';
  import { NgModule } from '@angular/core';
  import { BrowserModule } from '@angular/platform-browser';
  import { ReactiveFormsModule } from '@angular/forms';
  import { HttpClient, HttpClientModule } from '@angular/common/http';
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
  import { AppRoutingModule } from './app-routing.module';
  import { FormsModule } from '@angular/forms';
// Angular Imports Fin

// Inicio: Login y Home
  import { LoginComponent } from './components/login/login.component';
  import { HomeComponent } from './components/home/home.component';
// Fin: Login y Home

// Angular Material Imports Starts
  import { MatBadgeModule } from '@angular/material/badge';
  import { MatCardModule } from '@angular/material/card';
  import { MatTabsModule } from '@angular/material/tabs';
  import { MatButtonModule } from '@angular/material/button';
  import { MatInputModule } from '@angular/material/input';
  import { MatSnackBarModule } from '@angular/material/snack-bar';
  import { MatIconModule } from '@angular/material/icon';
  import { MatTooltipModule } from '@angular/material/tooltip';
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
  import { MatGridListModule } from '@angular/material/grid-list';
  import { MatSelectModule } from '@angular/material/select';
  import { MatDialogModule, MatDialogClose } from '@angular/material/dialog';
  import { MatExpansionModule } from '@angular/material/expansion';
  import { MatToolbarModule } from '@angular/material/toolbar';
  import { MatSidenavModule } from '@angular/material/sidenav';
  import { MatRippleModule, MAT_DATE_LOCALE } from '@angular/material/core';
  // import { FlexLayoutModule } from '@angular/flex-layout';
  import { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';
  import { MatProgressBarModule } from '@angular/material/progress-bar';
  import { MatTableModule } from '@angular/material/table';
  import { DragDropModule } from '@angular/cdk/drag-drop';
  import { MatRadioModule } from '@angular/material/radio';
  import { MatCheckboxModule } from '@angular/material/checkbox';
  import { MatStepperModule } from '@angular/material/stepper';
  import { MatDividerModule } from '@angular/material/divider';
  import { MatListModule } from '@angular/material/list';
  import { MatMenuModule } from '@angular/material/menu';
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
  import { MatDatepickerModule } from '@angular/material/datepicker';
  import { MatNativeDateModule } from '@angular/material/core';
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
  import { MatTreeModule } from '@angular/material/tree';
  import { MatSortModule } from '@angular/material/sort';
  import { MatPaginatorIntlSAM } from './shared/custom-paginator';
  import { MatQuillModule } from './mat-quill/mat-quill-module';
  import { MatChipsModule } from '@angular/material/chips';


// Angular Material Imports Ends


// Modulo Inicio: Gestión de Adquisiciones
  import { AcquisitionManagementComponent } from './components/acquisition-management/acquisition-management.component';
  import { AdquiComponent } from './components/acquisition-management/acquisition/acquisition.component';
  import { PurchaseLineComponent } from './components/acquisition-management/acquisition/purchase-line/purchase-line.component';
  import { ShoppingComponent } from './components/acquisition-management/acquisition/purchase-line/shopping/shopping.component';
  import { ArtitleInformationComponent } from './components/acquisition-management/acquisition/purchase-line/artitle-information/artitle-information.component';
  import { OrdersComponent } from './components/acquisition-management/acquisition/orders/orders.component';
  import { ConfigOrderComponent } from './components/acquisition-management/acquisition/orders/config-order/config-order.component';
  import { InfoOrderComponent } from './components/acquisition-management/acquisition/orders/info-order/info-order.component';
  import { GroupOrderComponent } from './components/acquisition-management/acquisition/orders/group-order/group-order.component';
  import { InfoProviderComponent } from './components/acquisition-management/acquisition/orders/info-provider/info-provider.component';
  import { DetailsOrderComponent } from './components/acquisition-management/acquisition/orders/details-order/details-order.component';
  import { DocumentOrderComponent } from './components/acquisition-management/acquisition/orders/document-order/document-order.component';
  import { DocumentFormComponent } from './components/acquisition-management/acquisition/orders/document-form/document-form.component';
  import { ProviderComponent } from './components/acquisition-management/provider/provider.component';
  import { ArtitleComponent } from './components/acquisition-management/provider/artitle/artitle.component';
  import { GroupProviderComponent } from './components/acquisition-management/provider/artitle/group-provider/group-provider.component';
  import { SelectedInformationComponent } from './components/acquisition-management/provider/artitle/selected-information/selected-information.component';
  import { ProvidersComponent } from './components/acquisition-management/provider/providers/providers.component';
  import { ContactProviderComponent } from './components/acquisition-management/provider/providers/contact-provider/contact-provider.component';
  import { ContactProviderFormComponent } from './components/acquisition-management/provider/providers/contact-provider/contact-provider-form/contact-provider-form.component';
  import { ReferencesProviderComponent } from './components/acquisition-management/provider/providers/references-provider/references-provider.component';
  import { AssociatedProviderComponent } from './components/acquisition-management/provider/artitle/associated-provider/associated-provider.component';
  import { ConditionProviderComponent } from './components/acquisition-management/provider/providers/condition-provider/condition-provider.component';
  import { ConditionProviderFormComponent } from './components/acquisition-management/provider/providers/condition-provider/condition-provider-form/condition-provider-form.component';
  import { PaymentMethodsProviderComponent } from './components/acquisition-management/provider/providers/payment-methods-provider/payment-methods-provider.component';
  import { CatalogsProviderComponent } from './components/acquisition-management/provider/providers/catalogs-provider/catalogs-provider.component';
  import { DispatchComponent } from './components/acquisition-management/dispatch/dispatch.component';
  import { OrderReceptionComponent } from './components/acquisition-management/dispatch/order-reception/order-reception.component';
  import { ConfirmOrderComponent } from './components/acquisition-management/dispatch/order-reception/confirm-order/confirm-order.component';
  import { ShoppingCartComponent } from './components/acquisition-management/acquisition/purchase-line/shopping-cart/shopping-cart.component';
  import { DetailsArtitleComponent } from './components/acquisition-management/acquisition/purchase-line/details-artitle/details-artitle.component';
  import { DispatchManagementComponent } from './components/acquisition-management/dispatch/dispatch-management/dispatch-management.component';
  import { DispatchFormComponent } from './components/acquisition-management/dispatch/dispatch-management/dispatch-form/dispatch-form.component';
  import { PartialDeliveriesComponent } from './components/acquisition-management/dispatch/partial-deliveries/partial-deliveries.component';
  import { IssueTrackingComponent } from './components/acquisition-management/dispatch/issue-tracking/issue-tracking.component';
  import { DelayAnalysisComponent } from './components/acquisition-management/dispatch/delay-analysis/delay-analysis.component';
  import { InvoiceComponent } from './components/acquisition-management/invoice/invoice.component';
  import { ProviderFormComponent } from './components/acquisition-management/provider/providers/provider-form/provider-form.component';
  import { ControlInvoiceComponent } from './components/acquisition-management/invoice/control-invoice/control-invoice.component';
  import { PaymentOrderComponent } from './components/acquisition-management/invoice/payment-order/payment-order.component';
  import { CostsBudgetsComponent } from './components/acquisition-management/invoice/costs-budgets/costs-budgets.component';
  import { InformationProviderComponent } from './components/acquisition-management/provider/providers/information-provider/information-provider.component';
  import { ReferencesFormComponent } from './components/acquisition-management/provider/providers/references-provider/references-form/references-form.component';
  import { ArtitleFormComponent } from './components/acquisition-management/provider/artitle/artitle-form/artitle-form.component';
  import { ArtitleDescriptionFormComponent } from './components/acquisition-management/provider/artitle/artitle-description-form/artitle-description-form.component';
  import { ArtitleDetailsFormComponent } from './components/acquisition-management/provider/artitle/artitle-details-form/artitle-details-form.component';
  import { ArtitleDetailsComponent } from './components/acquisition-management/provider/artitle/artitle-details/artitle-details.component';
// Modulo Fin: Gestión de Adquisiciones

// Modulo Inicio: Gestión de Formularios Dinámicos
  import { FormsManagementComponent } from './components/forms-management/forms-management.component';
  import { ModuleManagementComponent } from './components/forms-management/module-management/module-management.component';
  import { FormDynManagementComponent } from './components/forms-management/form-dyn-management/form-dyn-management.component';
  import { FormDynManagementFormComponent } from './components/forms-management/form-dyn-management/form-dyn-management-form/form-dyn-management-form.component';
  import { ModuleManagementFormComponent } from './components/forms-management/module-management/module-management-form/module-management-form.component';
  import { TableDynManagementComponent } from './components/forms-management/table-dyn-management/table-dyn-management.component';
  import { TableDynManagementFormEdit } from './components/forms-management/table-dyn-management/table-dyn-management-form-edit/table-dyn-management-form-edit.component';
  import { TableDynManagementForm } from './components/forms-management/table-dyn-management/table-dyn-management-form/table-dyn-management-form.component';
  import { TableDynManagementRelationsTable } from './components/forms-management/table-dyn-management/table-dyn-management-form/table-dyn-management-relations-table/table-dyn-management-relations-table.component';
  import { TableDynManagementAdvanceQuery } from './components/forms-management/table-dyn-management/table-dyn-management-form/table-dyn-management-advance-query/table-dyn-management-advance-query.component';
  import { TableManagementComponent } from './components/forms-management/table-management/table-management.component';
  import { TableManagementFormComponent } from './components/forms-management/table-management/table-management-form/table-management-form.component';
  import { DynamicInputComponent } from './components/resources/component-form/dynamic-input/dynamic-input.component';
  import { DynamicSelectComponent } from './components/resources/component-form/dynamic-select/dynamic-select.component';
  import { DynamicCheckboxComponent } from './components/resources/component-form/dynamic-checkbox/dynamic-checkbox.component';
  import { DynamicRadioComponent } from './components/resources/component-form/dynamic-radio/dynamic-radio.component';
  import { DynamicTextareaComponent } from './components/resources/component-form/dynamic-textarea/dynamic-textarea.component';
  import { DynamicFormStructureComponent } from './components/resources/component-form/dynamic-form-structure/dynamic-form-structure.component';
  // import { GETBGMFormComponent } from './components/getb/getbgm/getbgm-form/getbgm-form.component';
  // import { GetbsbFormComponent } from './components/getb/getbsb/getbsb-form/getbsb-form.component';
  // import { GetbmeFormComponent } from './components/getb/getbme/getbme-form/getbme-form.component';
  // import { GETBGMConsultaSM } from './components/getb/getbgm/getbgm-consultar-submodulos/getbgm-consultar-submodulos.component';
  // import { GetbsbConsultarModulosComponent } from './components/getb/getbsb/getbsb-consultar-modulos/getbsb-consultar-modulos.component';
  // import { GETBMEAddImgComponent } from './components/getb/getbme/getbme-subir-imagen/getbme-subir-imagen.component';
  // import { GetbtbComponent } from './components/getb/getbtb/getbtb.component';
  // import { GETBTBFORMComponent } from './components/getb/getbtb/getbtb-form/getbtb-form.component';
  // import { GetbgtComponent } from './components/getb/getbgt/getbgt.component';
  // import { GetbtbFormEditComponent } from './components/getb/getbtb/getbtb-form-edit/getbtb-form-edit.component';
  // import { RelationsTableComponent } from './components/getb/getbtb/getbtb-form/relations-table/relations-table.component';
  // import { GetbtbAdvanceQueryComponent } from './components/getb/getbtb/getbtb-form/getbtb-advance-query/getbtb-advance-query.component';
  // import { GETBFOFORMComponent } from './components/getb/getbfo/getbfo-form/getbfo-form.component';
  // import { GETBGTFORMComponent } from './components/getb/getbgt/getbgt-form/getbgt-form.component';
// Modulo Fin: Gestión de Formularios Dinámicos

// Dialogos Inicio
  import { AlertComponent } from './components/resources/dialogs/alert/alert.component';
  import { GETBFOINPUTComponent } from './components/resources/dialogs/getb/getbfo/getbfo-input/getbfo-input.component';
  import { GETBFOSELECTComponent } from './components/resources/dialogs/getb/getbfo/getbfo-select/getbfo-select.component';
  import { GETBFOCHECKBOXComponent } from './components/resources/dialogs/getb/getbfo/getbfo-checkbox/getbfo-checkbox.component';
  import { GETBFORADIOComponent } from './components/resources/dialogs/getb/getbfo/getbfo-radio/getbfo-radio.component';
  import { GETBFOTEXTAREAComponent } from './components/resources/dialogs/getb/getbfo/getbfo-textarea/getbfo-textarea.component';
  import { GETBFOSAVEFORMComponent } from './components/resources/dialogs/getb/getbfo/getbfo-saveform/getbfo-saveform.component';
  import { GETBFOVIEWEXAMPLEComponent } from './components/resources/dialogs/getb/getbfo/getbfo-viewexample/getbfo-viewexample.component';
  import { GETBFONEWFORMComponent } from './components/resources/dialogs/getb/getbfo/getbfo-newform/getbfo-newform.component';
  import { GetbfoAddconditionComponent } from './components/resources/dialogs/getb/getbfo/getbfo-addcondition/getbfo-addcondition.component';
  import { GETBFOUSERSDATESComponent } from './components/resources/dialogs/getb/getbfo/getbfo-usersdates/getbfo-usersdates.component';
  import { SHOWMULTIFORMComponent } from './components/resources/dialogs/test/showmultiform/showmultiform.component';
// Dialogos Fin

import { Plantilla1Component } from './components/test/plantilla1/plantilla1.component';
import { Plantilla2Component } from './components/test/plantilla2/plantilla2.component';
import { Plantilla3Component } from './components/test/plantilla3/plantilla3.component';
import { Plantilla4Component } from './components/test/plantilla4/plantilla4.component';

/* Angular Material Imports Ends*/

// Inicio: Importaciones Externas
  import { QuillModule } from 'ngx-quill';
  import { NgChartsModule } from 'ng2-charts';
  import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
  import {
    DiagramModule,
    SymbolPaletteModule,
    HierarchicalTreeService,
    MindMapService,
    RadialTreeService,
    ComplexHierarchicalTreeService,
    DataBindingService,
    SnappingService,
    PrintAndExportService,
    BpmnDiagramsService,
    SymmetricLayoutService,
    ConnectorBridgingService,
    UndoRedoService,
    LayoutAnimationService,
    DiagramContextMenuService,
    ConnectorEditingService,
  } from '@syncfusion/ej2-angular-diagrams';
  import { MapsModule } from '@syncfusion/ej2-angular-maps';
  import { ScrollingModule } from '@angular/cdk/scrolling';
  import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
  import { LongPressDirective } from './long-press.directive';
  import { SpreadsheetAllModule } from '@syncfusion/ej2-angular-spreadsheet';
  import { MultiSelectModule } from '@syncfusion/ej2-angular-dropdowns';
  import { getDutchPaginatorIntl } from './dutch-paginator-intl';
  import { from } from 'rxjs';
  import { TranslationComponent } from './components/resources/translation/translation.component';

// Fin: Importaciones Externas

//Socket Inicio: imports
  import { SocketIoModule, SocketIoConfig } from 'ngx-socket-io';
  import { socket } from './../environments/environment';
  //const config: SocketIoConfig = { url: 'http://localhost:3200', options: {} };
  const config: SocketIoConfig = { url: socket, options: {} };
//Socket Fin: imports

// Modulo Inicio: Gestión de procesos (Workflow)
  import { WorkflowComponent } from './components/samwf/workflow.component';
  import { WorkflowDiagramaComponent } from './components/samwf/workflow-detail/workflow-diagrama/workflow-diagrama.component';
  import { WorkflowUsersComponent } from './components/samwf/workflow-detail/workflow-users/workflow-users.component';
  import { WorkflowPasosFormComponent } from './components/samwf/workflow-detail/workflow-tasks-form/workflow-pasos-form.component';
  import { WorkflowDetailComponent } from './components/samwf/workflow-detail/workflow-detail.component';
  import { WorkflowFormComponent } from './components/samwf/workflow-form/workflow-form.component';
  import { WorkflowVersionsHistoryComponent } from './components/samwf/workflow-versions-history/workflow-versions-history.component';
  import { TasksModuleComponent } from './components/samwf/tasks-module/tasks-module.component';
  import { RequestWorkflowFormComponent } from './components/samwf-user/workflow-request-workflow/request-workflow-form/request-workflow-form.component';
  import { WorkflowRequestWorkflowComponent } from './components/samwf-user/workflow-request-workflow/workflow-request-workflow.component';
  import { WorkflowAdvanceComponent } from './components/samwf-user/workflow-advance/workflow-advance.component';
  import { WorkflowDetailAdvanceComponent } from './components/samwf-user/workflow-advance/workflow-detail-advance/workflow-detail-advance.component';
  import { WorkflowHistoryNotificationComponent } from './components/samwf-user/workflow-history-notification/workflow-history-notification.component';
  import { TaskModuleFormComponent } from './components/samwf/tasks-module/task-module-form/task-module-form.component';
  import { WorkflowAdminAdvanceComponent } from './components/samwf/workflow-admin-advance/workflow-admin-advance.component';
  import { TaskFormValidatorsComponent } from './components/samwf/tasks-module/task-module-form/task-form-validators/task-form-validators.component';
  import { WorkflowFieldsFormComponent } from './components/samwf/workflow-detail/workflow-fields-form/workflow-fields-form.component';
  import { WorkflowTaskFormEditComponent } from './components/samwf/workflow-detail/workflow-task-form-edit/workflow-task-form-edit.component';
// Modulo Fin: Gestión de procesos (Workflow)

import { MenuItemComponent } from './components/template/menu-item/menu-item.component';
import { SubmoduleFunctionsComponent } from './components/template/menu-item/submodule-functions/submodule-functions.component';
import { AdviceAlertComponent } from './components/template/advice-alert/advice-alert.component';
import { TemplateComponent } from './components/template/template.component';

import { EquipmentManagementComponent } from './components/equipment-management/equipment-management.component';
import { SecurityPoliticsComponent } from './components/system-admin/security-politics/security-politics.component';

// Modulo Inicio: Usuarios y Perfiles
  import { UsersProfilesComponent } from './components/users-profiles/users-profiles.component';
  import { UsersAdminComponent } from './components/users-profiles/users-admin/users-admin.component';
  import { ProfilesAdminComponent } from './components/users-profiles/profiles-admin/profiles-admin.component';
  import { NewUserComponent } from './components/users-profiles/users-admin/new-user/new-user.component';
  import { NewPasswordComponent } from './components/users-profiles/users-admin/new-password/new-password.component';
  import { DeleteAlertComponent } from './components/users-profiles/users-admin/delete-alert/delete-alert.component';
  import { PermissionsComponent } from './components/users-profiles/profiles-admin/permissions/permissions.component';
  import { PermissionsSeeComponent } from './components/users-profiles/profiles-admin/permissions-see/permissions-see.component';
  import { NewProfileComponent } from './components/users-profiles/profiles-admin/new-profile/new-profile.component';
// Modulo Fin: Usuarios y Perfiles

// Modulo Inicio: Administrador del Sistema
  import { SystemAdminComponent } from './components/system-admin/system-admin.component';
  import { ConnectionsComponent } from './components/system-admin/connections/connections.component';
  import { UserConnectionsComponent } from './components/system-admin/connections/user-connections/user-connections.component';
  import { MapViewerComponent } from './components/system-admin/connections/user-connections/map-viewer/map-viewer.component';
  import { ActionsComponent } from './components/system-admin/actions/actions.component';
  import { UpdateFormsComponent } from './components/system-admin/update-forms/update-forms.component';
  import { DetailsComponent } from './components/system-admin/actions/details/details.component';
  import { ScriptDialogComponent } from './components/system-admin/actions/details/script-dialog/script-dialog.component';
  import { CatalogueViewerComponent } from './components/system-admin/catalogues/catalogue-viewer/catalogue-viewer.component';
  import { LoadingDialogComponent } from './components/system-admin/catalogues/catalogue-viewer/loading-dialog/loading-dialog.component';
  import { AdvicesComponent } from './components/system-admin/advices/advices.component';
  import { NewAdviceComponent } from './components/system-admin/advices/new-advice/new-advice.component';
  import { CataloguesComponent } from './components/system-admin/catalogues/catalogues.component';
  import { UploadCatalogueComponent } from './components/system-admin/catalogues/upload-catalogue/upload-catalogue.component';
  import { MaintenanceModeComponent } from './components/system-admin/maintenance-mode/maintenance-mode.component';
  import { BasicAlertComponent } from './components/resources/dialogs/basic-alert/basic-alert.component';
  import { DetailsAlertComponent } from './components/system-admin/maintenance-mode/details-alert/details-alert.component';
  import { DescriptionLineComponent } from './components/acquisition-management/acquisition/purchase-line/description-line/description-line.component';
  import { DetailsLineComponent } from './components/acquisition-management/acquisition/purchase-line/details-line/details-line.component';
  import { GroupRequestLineComponent } from './components/acquisition-management/acquisition/purchase-line/group-request-line/group-request-line.component';
  import { InfoGroupComponent } from './components/acquisition-management/acquisition/purchase-line/info-group/info-group.component';
  import { ConfigGroupComponent } from './components/acquisition-management/acquisition/purchase-line/config-group/config-group.component';
  import { WebServicesAdminComponent } from './components/system-admin/web-services-admin/web-services-admin.component';
  import { EmailConfigComponent } from './components/system-admin/email-config/email-config.component';
  import { EmailTemplatesConfigComponent } from './components/system-admin/email-templates-config/email-templates-config.component';
  import { ArchitectureMonitoringComponent } from './components/system-admin/architecture-monitoring/architecture-monitoring.component';
  import { SystemParamsComponent } from './components/system-admin/system-params/system-params.component';
  import { BackupsComponent } from './components/system-admin/backups/backups.component';
  import { NewEmailServerComponent } from './components/system-admin/email-config/new-email-server/new-email-server.component';
  import { NewTemplateComponent } from './components/system-admin/email-templates-config/new-template/new-template.component';
  import { LoginOldComponent } from './components/login/login-old/login-old.component';
// Modulo Fin: Administrador del Sistema

// Modulo Inicio: Gestion Documental Electronica
import { GDELComponent } from './components/gdel/gdel.component';
import { ADDOComponent } from './components/gdel/addo/addo.component';
import { TemplatesVisorComponent } from './components/system-admin/email-templates-config/templates-visor/templates-visor.component';
import { HistoryViewerComponent } from './components/system-admin/catalogues/history-viewer/history-viewer.component';
import { WebviewerComponent } from './components/gdel/webviewer/webviewer.component';
// Modulo Fin: Gestion Documental Electronica.

@NgModule({
  declarations: [
    LongPressDirective,
    AppComponent,
    LoginComponent,
    UsersProfilesComponent,
    UsersAdminComponent,
    ProfilesAdminComponent,
    NewUserComponent,
    NewPasswordComponent,
    DeleteAlertComponent,
    TemplateComponent,
    PermissionsComponent,
    AlertComponent,
    HomeComponent,
    Plantilla1Component,
    Plantilla2Component,
    Plantilla3Component,
    SHOWMULTIFORMComponent,
    SystemAdminComponent,
    ConnectionsComponent,
    CataloguesComponent,
    UploadCatalogueComponent,
    PermissionsSeeComponent,
    NewProfileComponent,
    WorkflowComponent,
    WorkflowFormComponent,
    WorkflowDetailComponent,
    TranslationComponent,
    WorkflowPasosFormComponent,
    WorkflowTaskFormEditComponent,
    WorkflowUsersComponent,
    WorkflowDiagramaComponent,
    WorkflowVersionsHistoryComponent,
    TasksModuleComponent,
    RequestWorkflowFormComponent,
    WorkflowRequestWorkflowComponent,
    WorkflowAdvanceComponent,
    WorkflowDetailAdvanceComponent,
    WorkflowHistoryNotificationComponent,
    TaskModuleFormComponent,
    WorkflowAdminAdvanceComponent,
    TaskFormValidatorsComponent,
    WorkflowFieldsFormComponent,
    UserConnectionsComponent,
    MapViewerComponent,
    ActionsComponent,
    UpdateFormsComponent,
    DetailsComponent,
    ScriptDialogComponent,
    CatalogueViewerComponent,
    LoadingDialogComponent,
    MenuItemComponent,
    AdvicesComponent,
    NewAdviceComponent,
    EquipmentManagementComponent,
    Plantilla4Component,
    AcquisitionManagementComponent,
    AdquiComponent,
    PurchaseLineComponent,
    ShoppingComponent,
    ArtitleInformationComponent,
    OrdersComponent,
    ConfigOrderComponent,
    InfoOrderComponent,
    GroupOrderComponent,
    InfoProviderComponent,
    DetailsOrderComponent,
    DocumentOrderComponent,
    DocumentFormComponent,
    ProviderComponent,
    ArtitleComponent,
    GroupProviderComponent,
    SelectedInformationComponent,
    ReferencesProviderComponent,
    ProvidersComponent,
    SubmoduleFunctionsComponent,
    ContactProviderComponent,
    ContactProviderFormComponent,
    ReferencesProviderComponent,
    AssociatedProviderComponent,
    ConditionProviderComponent,
    ConditionProviderFormComponent,
    PaymentMethodsProviderComponent,
    CatalogsProviderComponent,
    DispatchComponent,
    OrderReceptionComponent,
    ConfirmOrderComponent,
    ShoppingCartComponent,
    AdviceAlertComponent,
    DetailsArtitleComponent,
    GETBFOINPUTComponent,
    GETBFOSELECTComponent,
    GETBFOCHECKBOXComponent,
    GETBFORADIOComponent,
    GETBFOTEXTAREAComponent,
    GETBFOSAVEFORMComponent,
    GETBFOVIEWEXAMPLEComponent,
    GETBFONEWFORMComponent,
    GetbfoAddconditionComponent,
    GETBFOUSERSDATESComponent,
    SecurityPoliticsComponent,
    ModuleManagementComponent,
    FormDynManagementComponent,
    FormDynManagementFormComponent,
    ModuleManagementFormComponent,
    TableDynManagementComponent,
    TableDynManagementFormEdit,
    TableDynManagementForm,
    TableDynManagementRelationsTable,
    TableDynManagementAdvanceQuery,
    TableManagementComponent,
    TableManagementFormComponent,
    // GETBGMFormComponent,
    // GetbsbFormComponent,
    // GetbmeFormComponent,
    // GETBGMConsultaSM,
    // GetbsbConsultarModulosComponent,
    // GETBMEAddImgComponent,
    // GetbtbComponent,
    // GETBTBFORMComponent,
    // GetbgtComponent,
    // GetbtbFormEditComponent,
    // RelationsTableComponent,
    // GetbtbAdvanceQueryComponent,
    // GETBFOFORMComponent,
    // GETBGTFORMComponent,
    MaintenanceModeComponent,
    BasicAlertComponent,
    DetailsAlertComponent,
    DescriptionLineComponent,
    DetailsLineComponent,
    GroupRequestLineComponent,
    InfoGroupComponent,
    ConfigGroupComponent,
    WebServicesAdminComponent,
    EmailConfigComponent,
    EmailTemplatesConfigComponent,
    ArchitectureMonitoringComponent,
    SystemParamsComponent,
    BackupsComponent,
    NewEmailServerComponent,
    NewTemplateComponent,
    LoginOldComponent,
    FormsManagementComponent,
    GDELComponent,
    ADDOComponent,
    HistoryViewerComponent,
    DispatchManagementComponent,
    DispatchFormComponent,
    PartialDeliveriesComponent,
    IssueTrackingComponent,
    DelayAnalysisComponent,
    InvoiceComponent,
    ControlInvoiceComponent,
    PaymentOrderComponent,
    CostsBudgetsComponent,
    TemplatesVisorComponent,
    ProviderFormComponent,
    ReferencesFormComponent,
    InformationProviderComponent,
    ArtitleFormComponent,
    ArtitleDescriptionFormComponent,
    ArtitleDetailsFormComponent,
    ArtitleDetailsComponent,
    DynamicInputComponent,
    DynamicSelectComponent,
    DynamicCheckboxComponent,
    DynamicRadioComponent,
    DynamicTextareaComponent,
    DynamicFormStructureComponent,
    WebviewerComponent,
  ],
  imports: [
    MatRippleModule,
    QuillModule.forRoot(),
    MatQuillModule,
    MatBadgeModule,
    SpreadsheetAllModule,
    MapsModule,
    BrowserModule,
    BrowserAnimationsModule,
    AppRoutingModule,
    MatCardModule,
    MatTabsModule,
    MatAutocompleteModule,
    MatButtonModule,
    MatInputModule,
    HttpClientModule,
    MatSnackBarModule,
    MatIconModule,
    MatTooltipModule,
    MatProgressSpinnerModule,
    ReactiveFormsModule,
    FormsModule,
    MatGridListModule,
    MatSelectModule,
    MatDialogModule,
    MatExpansionModule,
    MatSlideToggleModule,
    MatTreeModule,
    MatToolbarModule,
    MatSidenavModule,
    MatSlideToggleModule,
    MatPaginatorModule,
    MatProgressBarModule,
    MatTableModule,
    DragDropModule,
    MatRadioModule,
    MatCheckboxModule,
    MatStepperModule,
    MatDividerModule,
    MatListModule,
    MatSortModule,
    NgChartsModule,
    MatMenuModule,
    MatMenuModule,
    MatChipsModule,
    MatButtonToggleModule,
    SocketIoModule.forRoot(config),
    DiagramModule,
    SymbolPaletteModule,
    ScrollingModule,
    MatNativeDateModule,
    MatDatepickerModule,
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient],
      },
    }),
    NgxSkeletonLoaderModule.forRoot({
      animation: 'pulse',
      loadingText: 'This item is actually loading...',
    }),
  ],
  bootstrap: [AppComponent],
  providers: [
    SocketService,
    MatDialogClose,
    HierarchicalTreeService,
    MindMapService,
    RadialTreeService,
    ComplexHierarchicalTreeService,
    DataBindingService,
    SnappingService,
    PrintAndExportService,
    BpmnDiagramsService,
    SymmetricLayoutService,
    ConnectorBridgingService,
    UndoRedoService,
    LayoutAnimationService,
    DiagramContextMenuService,
    ConnectorEditingService,
    MatNativeDateModule,
    MatDatepickerModule,
    { provide: MatPaginatorIntl, useClass: MatPaginatorIntlSAM },
    { provide: MAT_DATE_LOCALE, useValue: 'es-ES' }
    // { provide: MatPaginatorIntl, useValue: getDutchPaginatorIntl() },

  ],
})
export class AppModule { }

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http);
}
