Jose Brito 2 lat temu
rodzic
commit
5a50d50e27

+ 263 - 0
sistema-mantenimiento-front/src/app/app-routing.module.ts

@@ -0,0 +1,263 @@
+import { NewWorkOrderComponent } from './components/preventive-maintenance/work-orders/new-work-order/new-work-order.component';
+import { WorkOrdersComponent } from './components/preventive-maintenance/work-orders/work-orders.component';
+import { PreventiveMaintenanceComponent } from './components/preventive-maintenance/preventive-maintenance.component';
+import { WebServiceAdminComponent } from './components/system-admin/web-services-admin/web-service-admin/web-service-admin.component';
+import { ScadaWebServiceLinkComponent } from './components/system-admin/web-services-admin/scada-web-service-link/scada-web-service-link.component';
+import { TokensAdminComponent } from './components/system-admin/web-services-admin/tokens-admin/tokens-admin.component';
+import { ScadaAdminComponent } from './components/system-admin/web-services-admin/scada-admin/scada-admin.component';
+import { NewTemplateComponent } from './components/system-admin/email-templates-config/new-template/new-template.component';
+import { NewEmailServerComponent } from './components/system-admin/email-config/new-email-server/new-email-server.component';
+import { BackupsComponent } from './components/system-admin/backups/backups.component';
+import { SystemParamsComponent } from './components/system-admin/system-params/system-params.component';
+import { EmailTemplatesConfigComponent } from './components/system-admin/email-templates-config/email-templates-config.component';
+import { EmailConfigComponent } from './components/system-admin/email-config/email-config.component';
+import { WebServicesAdminComponent } from './components/system-admin/web-services-admin/web-services-admin.component';
+import { MaintenanceModeComponent } from './components/system-admin/maintenance-mode/maintenance-mode.component';
+import { SecurityPoliticsComponent } from './components/system-admin/security-politics/security-politics.component';
+import { EquipmentManagementComponent } from './components/equipment-management/equipment-management.component';
+import { NewAdviceComponent } from './components/system-admin/advices/new-advice/new-advice.component';
+import { AdvicesComponent } from './components/system-admin/advices/advices.component';
+import { MenuItemComponent } from './components/template/menu-item/menu-item.component';
+import { CatalogueViewerComponent } from './components/system-admin/catalogues/catalogue-viewer/catalogue-viewer.component';
+import { DetailsComponent } from './components/system-admin/actions/details/details.component';
+import { UpdateFormsComponent } from './components/system-admin/update-forms/update-forms.component';
+import { CataloguesComponent } from './components/system-admin/catalogues/catalogues.component';
+import { ActionsComponent } from './components/system-admin/actions/actions.component';
+import { UserConnectionsComponent } from './components/system-admin/connections/user-connections/user-connections.component';
+import { ConnectionsComponent } from './components/system-admin/connections/connections.component';
+import { NewProfileComponent } from './components/users-profiles/profiles-admin/new-profile/new-profile.component';
+import { ProfilesAdminComponent } from './components/users-profiles/profiles-admin/profiles-admin.component';
+import { UsersAdminComponent } from './components/users-profiles/users-admin/users-admin.component';
+import { SystemAdminComponent } from './components/system-admin/system-admin.component';
+import { HomeComponent } from './components/home/home.component';
+import { NewUserComponent } from './components/users-profiles/users-admin/new-user/new-user.component';
+import { UsersProfilesComponent } from './components/users-profiles/users-profiles.component';
+import { LoginComponent } from './components/login/login.component';
+import { TemplateComponent } from './components/template/template.component';
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+import { LoginGuard } from './guards/login.guard';
+import { AuthGuard } from './guards/auth.guard';
+
+// import { GETBFOUPDATEComponent } from './components/getb/getbfo/getbfo-update/getbfo-update.component';
+
+// Modulo: Workflow
+import { WorkflowComponent } from './components/samwf/workflow.component';
+import { WorkflowDetailComponent } from './components/samwf/workflow-detail/workflow-detail.component';
+import { WorkflowDiagramaComponent } from './components/samwf/workflow-detail/workflow-diagrama/workflow-diagrama.component';
+import { WorkflowPasosFormComponent } from './components/samwf/workflow-detail/workflow-tasks-form/workflow-pasos-form.component';
+import { WorkflowVersionsHistoryComponent } from './components/samwf/workflow-versions-history/workflow-versions-history.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 { WorkflowHistoryNotificationComponent } from './components/samwf-user/workflow-history-notification/workflow-history-notification.component';
+import { TasksModuleComponent } from './components/samwf/tasks-module/tasks-module.component';
+import { WorkflowAdminAdvanceComponent } from './components/samwf/workflow-admin-advance/workflow-admin-advance.component';
+import { WorkflowTaskFormEditComponent } from './components/samwf/workflow-detail/workflow-task-form-edit/workflow-task-form-edit.component';
+
+// Modulo: 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 { GroupOrderComponent } from './components/acquisition-management/acquisition/orders/group-order/group-order.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 { 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 { DispatchComponent } from './components/acquisition-management/dispatch/dispatch.component';
+import { OrderReceptionComponent } from './components/acquisition-management/dispatch/order-reception/order-reception.component';
+import { ShoppingCartComponent } from './components/acquisition-management/acquisition/purchase-line/shopping-cart/shopping-cart.component';
+import { GroupRequestLineComponent } from './components/acquisition-management/acquisition/purchase-line/group-request-line/group-request-line.component';
+
+// Formularios dinámicos
+import { FormsManagementComponent } from './components/forms-management/forms-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 { ModuleManagementComponent } from './components/forms-management/module-management/module-management.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 { ArchitectureMonitoringComponent } from './components/system-admin/architecture-monitoring/architecture-monitoring.component';
+import { LoginOldComponent } from './components/login/login-old/login-old.component';
+
+// Modulo de Documentación Electronica
+import { GDELComponent } from './components/gdel/gdel.component';
+import { ADDOComponent } from './components/gdel/addo/addo.component';
+import { DispatchManagementComponent } from './components/acquisition-management/dispatch/dispatch-management/dispatch-management.component';
+import { DelayAnalysisComponent } from './components/acquisition-management/dispatch/delay-analysis/delay-analysis.component';
+import { IssueTrackingComponent } from './components/acquisition-management/dispatch/issue-tracking/issue-tracking.component';
+import { PartialDeliveriesComponent } from './components/acquisition-management/dispatch/partial-deliveries/partial-deliveries.component';
+import { InvoiceComponent } from './components/acquisition-management/invoice/invoice.component';
+import { ControlInvoiceComponent } from './components/acquisition-management/invoice/control-invoice/control-invoice.component';
+import { CostsBudgetsComponent } from './components/acquisition-management/invoice/costs-budgets/costs-budgets.component';
+import { PaymentOrderComponent } from './components/acquisition-management/invoice/payment-order/payment-order.component';
+import { ProviderFormComponent } from './components/acquisition-management/provider/providers/provider-form/provider-form.component';
+import { ArtitleFormComponent } from './components/acquisition-management/provider/artitle/artitle-form/artitle-form.component';
+import { FailureAnalysisComponent } from './components/failure-analysis/failure-analysis.component';
+import { FailureComponent } from './components/failure-analysis/failure/failure.component';
+import { SymptomComponent } from './components/failure-analysis/symptom/symptom.component';
+import { FailureChartComponent } from './components/failure-analysis/failure/failure-chart/failure-chart.component';
+import { CatalogFailureComponent } from './components/failure-analysis/catalog-failure/catalog-failure.component';
+import { CatalogMeasuresComponent } from './components/failure-analysis/catalog-measures/catalog-measures.component';
+
+const routes: Routes = [
+  { path: '', redirectTo: '/login', pathMatch: 'full' },
+  { path: 'login', component: LoginComponent, canActivate: [LoginGuard] },
+  {
+    path: 'login-old',
+    component: LoginOldComponent,
+    canActivate: [LoginGuard],
+  },
+  {
+    path: 'sam',
+    component: TemplateComponent,
+    canActivate: [AuthGuard],
+    children: [
+      //Página de inicio
+      { path: 'home', component: HomeComponent },
+      //Página de selección de submódulos y menús
+      { path: 'module-options', component: MenuItemComponent },
+      //Administración del sistema
+      { path: 'ADSI', component: SystemAdminComponent },
+      { path: 'ADSI/MAUS', component: ConnectionsComponent },                 //Monitoreo de acceso de los usuarios
+      { path: 'ADSI/MAUS/detalles', component: UserConnectionsComponent },    //Detalles de accesos por usuario
+      { path: 'ADSI/SAUS', component: ActionsComponent },                     //Seguimiento de acciones de los usuarios
+      { path: 'ADSI/SAUS/detalles', component: DetailsComponent },            //Detalles de las acciones de los usuarios
+      { path: 'ADSI/CRAV', component: AdvicesComponent },                     //Historial de avisos registrados
+      { path: 'ADSI/CRAV/nuevo', component: NewAdviceComponent },             //Creación de avisos nuevos
+      { path: 'ADSI/CRAV/editar', component: NewAdviceComponent },            //Edición de avisos
+      { path: 'ADSI/POSE', component: SecurityPoliticsComponent },            //Políticas de seguridad
+      { path: 'ADSI/MOMA', component: MaintenanceModeComponent },             //Modo mantenimiento
+      { path: 'ADSI/ASWA', component: WebServicesAdminComponent },            //Administrador del servicio web de alarmas y contadores
+      { path: 'ADSI/ASWA/ADSC', component: ScadaAdminComponent },             //Administrar SCADA
+      { path: 'ADSI/ASWA/ADTO', component: TokensAdminComponent },            //Administrar tokens
+      { path: 'ADSI/ASWA/ESSW', component: ScadaWebServiceLinkComponent },    //Enrutamiento de SCADAs al servicio web
+      { path: 'ADSI/ASWA/LSWE', component: WebServiceAdminComponent },        //Lista de servicios web
+      { path: 'ADSI/CCEL', component: EmailConfigComponent },                 //Configuración de correos electrónicos
+      { path: 'ADSI/CCEL/nuevo', component: NewEmailServerComponent },        //Registro de servidor de correos electrónicos
+      { path: 'ADSI/CCEL/editar', component: NewEmailServerComponent },       //Edición de servidor de correos electrónicos
+      { path: 'ADSI/CPCE', component: EmailTemplatesConfigComponent },        //Configuración de plantillas de correos electrónicos
+      { path: 'ADSI/CPCE/nuevo', component: NewTemplateComponent },           //Registro de una nueva plantilla de correos electrónicos
+      { path: 'ADSI/CPCE/editar', component: NewTemplateComponent },          //Edición de una plantilla de correos electrónicos
+      { path: 'ADSI/MACS', component: ArchitectureMonitoringComponent },      //Monitoreo de la arquitectura central del SAM
+      { path: 'ADSI/AGCA', component: CataloguesComponent },                  //Administración global de catálogos
+      { path: 'ADSI/AGCA/lector', component: CatalogueViewerComponent },
+      { path: 'ADSI/CREAVI', component: AdvicesComponent },
+      { path: 'ADSI/CREAVI/nuevo', component: NewAdviceComponent },
+      { path: 'ADSI/MODFOR', component: UpdateFormsComponent },
+      { path: 'ADSI/PASI', component: SystemParamsComponent }, //Parámetros del sistema
+      { path: 'ADSI/GERE', component: BackupsComponent }, //Gestión de respaldos
+      //Usuarios y perfiles
+      { path: 'USPE', component: UsersProfilesComponent },
+      { path: 'USPE/GEUS/ADUS', component: UsersAdminComponent },
+      { path: 'USPE/GEUS/ADUS/crear', component: NewUserComponent },
+      { path: 'USPE/GEPE/ADPE', component: ProfilesAdminComponent },
+      { path: 'USPE/GEPE/ADPE/crear', component: NewProfileComponent },
+      { path: 'USPE/GEPE/ADPE/editar', component: NewProfileComponent },
+      { path: 'USPE/GEPE/ADPE/detalles', component: NewProfileComponent },
+      //Gestión de los equipamientos
+      { path: 'GESEQU', component: EquipmentManagementComponent },
+      //Gestión de mantenimiento preventivo
+      { path: 'GMPR', component: PreventiveMaintenanceComponent },
+      { path: 'GMPR/ORTR/COTP', component: WorkOrdersComponent },
+      { path: 'GMPR/ORTR/COTP/nuevo', component: NewWorkOrderComponent },
+      //Rutas módulo usuarios y perfiles
+      { path: 'users-profiles', component: UsersProfilesComponent },
+      //Rutas módulo gestión de adquisiciones
+      //Rutas módulo workflow
+      //Rutas módulo administrador del sistema
+
+      { path: 'ANFA', component:  FailureAnalysisComponent},
+      { path: 'ANFA/failure', component:  FailureComponent},
+      { path: 'ANFA/symptom', component:  SymptomComponent},
+      { path: 'ANFA/failure/chart/:dataEquipment', component:  FailureChartComponent},
+      { path: 'ANFA/catalog-failure', component:  CatalogFailureComponent},
+      { path: 'ANFA/catalog-measures', component:  CatalogMeasuresComponent},
+      // Modulo Inicio: Gestión de adquisiciones
+        // Submodulo: Adquisiciones
+        { path: 'GEAD', component: AcquisitionManagementComponent },
+        { path: 'acquisition', component: AdquiComponent },
+        { path: 'purchase-requisition-lines', component: PurchaseLineComponent },
+        { path: 'shopping', component: ShoppingComponent },
+        { path: 'shopping-cart', component: ShoppingCartComponent },
+        { path: 'artitle-details/:idArtitle/:idProvider', component: ArtitleInformationComponent },
+        { path: 'group-order', component: GroupOrderComponent },
+        { path: 'details-order', component: DetailsOrderComponent },
+        { path: 'document-order', component: DocumentOrderComponent },
+        { path: 'orders', component: OrdersComponent },
+        { path: 'group-request-line/:idRequestLine', component: GroupRequestLineComponent },
+
+        // Submodulo: Proveedor
+        { path: 'artitle-form/:form', component: ArtitleFormComponent },
+        { path: 'provider', component: ProviderComponent },
+        { path: 'provider-form/:form', component: ProviderFormComponent },
+        { path: 'artitles', component: ArtitleComponent },
+        { path: 'group-provider', component: GroupProviderComponent },
+        { path: 'selected-information', component: SelectedInformationComponent },
+        { path: 'providers', component: ProvidersComponent },
+
+        // Submodulo: Despacho
+        { path: 'dispatch', component: DispatchComponent },
+        { path: 'order-reception', component: OrderReceptionComponent },
+        { path: 'dispatch-management', component: DispatchManagementComponent },
+        { path: 'delay-analysis', component: DelayAnalysisComponent },
+        { path: 'issue-tracking', component: IssueTrackingComponent },
+        { path: 'partial-deliveries', component: PartialDeliveriesComponent },
+
+        // Submódulo: Facturas
+        { path: 'invoice', component: InvoiceComponent },
+        { path: 'control-invoice', component: ControlInvoiceComponent },
+        { path: 'costs-budgets', component: CostsBudgetsComponent },
+        { path: 'payment-order', component: PaymentOrderComponent },
+
+
+      // Modulo Fin: Gestión de adquisiciones
+
+      // Modulo Inicio: Formularios dinámicos
+        { path: 'forms-management', component: FormsManagementComponent },
+        { path: 'form-dyn-management', component: FormDynManagementComponent },
+        { path: 'getbfo-create', component: FormDynManagementFormComponent },
+        { path: 'getbfo-update/:id', component: FormDynManagementFormComponent },
+        { path: 'module-management', component: ModuleManagementComponent },
+        { path: 'table-management', component: TableManagementComponent },
+      // Modulo Fin: Formularios dinámicos
+
+      // Inicio: Workflow
+        { path: 'tasks-module', component: TasksModuleComponent },
+        { path: 'workflow', component: WorkflowComponent },
+        { path: 'workflow/versions-history/:id', component: WorkflowVersionsHistoryComponent },
+        { path: 'workflow/:id', component: WorkflowDetailComponent },
+        { path: 'workflow/:id/tasksFlow', component: WorkflowPasosFormComponent },
+        { path: 'workflow/:id/tasksFlowEdit', component: WorkflowTaskFormEditComponent },
+        { path: 'requests-workflow', component: WorkflowRequestWorkflowComponent },
+        { path: 'workflow/diagrama/:id', component: WorkflowDiagramaComponent },
+        { path: 'requests-advance', component: WorkflowAdvanceComponent },
+        { path: 'notification-history', component: WorkflowHistoryNotificationComponent },
+      // Fin: Workflow
+
+      // Inicio Gestion Documental Electronica
+        { path: 'GDEL', component: GDELComponent },
+        { path: 'GDEL/ADDO/crear', component: ADDOComponent },
+        { path: 'GDEL/ADDO/editar', component: ADDOComponent },
+
+      // Fin Gestion Documental Electronica
+    ],
+  },
+];
+
+@NgModule({
+  declarations: [],
+  imports: [
+    RouterModule.forRoot(routes, {
+      useHash: true,
+    }),
+  ],
+  exports: [RouterModule],
+})
+export class AppRoutingModule {}

+ 0 - 0
sistema-mantenimiento-front/src/app/app.component.css


+ 1 - 0
sistema-mantenimiento-front/src/app/app.component.html

@@ -0,0 +1 @@
+<router-outlet></router-outlet>

+ 31 - 0
sistema-mantenimiento-front/src/app/app.component.spec.ts

@@ -0,0 +1,31 @@
+import { TestBed } from '@angular/core/testing';
+import { AppComponent } from './app.component';
+
+describe('AppComponent', () => {
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [
+        AppComponent
+      ],
+    }).compileComponents();
+  });
+
+  it('should create the app', () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    const app = fixture.componentInstance;
+    expect(app).toBeTruthy();
+  });
+
+  it(`should have as title 'sistema-mantenimiento-front'`, () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    const app = fixture.componentInstance;
+    expect(app.title).toEqual('sistema-mantenimiento-front');
+  });
+
+  it('should render title', () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    fixture.detectChanges();
+    const compiled = fixture.nativeElement as HTMLElement;
+    expect(compiled.querySelector('.content span')?.textContent).toContain('sistema-mantenimiento-front app is running!');
+  });
+});

+ 22 - 0
sistema-mantenimiento-front/src/app/app.component.ts

@@ -0,0 +1,22 @@
+import { SocketService } from './services/socket.service';
+import { Component } from '@angular/core';
+import Quill from 'quill';
+
+const parchment = Quill.import('parchment')
+const block = parchment.query('block')
+block.tagName = 'DIV'
+
+Quill.register(block, true)
+
+@Component({
+  selector: 'app-root',
+  templateUrl: './app.component.html',
+  styleUrls: ['./app.component.css'],
+})
+export class AppComponent {
+  title = 'Sistema de Mantenimiento';
+
+  constructor(protected socketService: SocketService){
+    this.socketService.connect();
+  }
+}

+ 573 - 0
sistema-mantenimiento-front/src/app/app.module.ts

@@ -0,0 +1,573 @@
+// 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 { 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';
+// 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
+
+/* 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 { DashboardLayoutModule } from '@syncfusion/ej2-angular-layouts';
+  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 { ScadaAdminComponent } from './components/system-admin/web-services-admin/scada-admin/scada-admin.component';
+import { TokensAdminComponent } from './components/system-admin/web-services-admin/tokens-admin/tokens-admin.component';
+import { ScadaWebServiceLinkComponent } from './components/system-admin/web-services-admin/scada-web-service-link/scada-web-service-link.component';
+import { WebServiceAdminComponent } from './components/system-admin/web-services-admin/web-service-admin/web-service-admin.component';
+import { RegisterScadaComponent } from './components/system-admin/web-services-admin/scada-admin/register-scada/register-scada.component';
+import { TokenGeneratorComponent } from './components/system-admin/web-services-admin/tokens-admin/token-generator/token-generator.component';
+import { TokenWiewerComponent } from './components/system-admin/web-services-admin/scada-admin/token-wiewer/token-wiewer.component';
+import { RegisterServiceComponent } from './components/system-admin/web-services-admin/web-service-admin/register-service/register-service.component';
+import { AsignWebServiceComponent } from './components/system-admin/web-services-admin/scada-web-service-link/asign-web-service/asign-web-service.component';
+import { WebviewerComponent } from './components/gdel/webviewer/webviewer.component';
+import { OpenLogComponent } from './components/system-admin/backups/open-log/open-log.component';
+import { PreventiveMaintenanceComponent } from './components/preventive-maintenance/preventive-maintenance.component';
+import { WorkOrdersComponent } from './components/preventive-maintenance/work-orders/work-orders.component';
+import { NewWorkOrderComponent } from './components/preventive-maintenance/work-orders/new-work-order/new-work-order.component';
+import { FailureAnalysisComponent } from './components/failure-analysis/failure-analysis.component';
+import { SymptomComponent } from './components/failure-analysis/symptom/symptom.component';
+import { SymptomFormComponent } from './components/failure-analysis/symptom/symptom-form/symptom-form.component';
+
+import { FailureComponent } from './components/failure-analysis/failure/failure.component';
+import { FailureFormTempComponent } from './components/failure-analysis/failure/failure-form-temp/failure-form-temp.component';
+
+import { FailureFormComponent } from './components/failure-analysis/catalog-failure/failure-form/failure-form.component';
+import { FailureChartComponent } from './components/failure-analysis/failure/failure-chart/failure-chart.component';
+import { FailureCalculationComponent } from './components/failure-analysis/failure/failure-calculation/failure-calculation.component';
+import { CatalogFailureComponent } from './components/failure-analysis/catalog-failure/catalog-failure.component';
+import { CatalogMeasuresComponent } from './components/failure-analysis/catalog-measures/catalog-measures.component';
+import { MeasuresFormComponent } from './components/failure-analysis/catalog-measures/measures-form/measures-form.component';
+// Modulo Fin: Gestion Documental Electronica.
+
+import { NgxMatTimepickerModule } from 'ngx-mat-timepicker';
+import { TimePickerComponent } from './components/resources/dialogs/time-picker/time-picker.component';
+import { CalendarEventsComponent } from './components/preventive-maintenance/work-orders/calendar-events/calendar-events.component';
+
+@NgModule({
+  declarations: [
+    LongPressDirective,
+    AppComponent,
+    LoginComponent,
+    UsersProfilesComponent,
+    UsersAdminComponent,
+    ProfilesAdminComponent,
+    NewUserComponent,
+    NewPasswordComponent,
+    DeleteAlertComponent,
+    TemplateComponent,
+    PermissionsComponent,
+    AlertComponent,
+    HomeComponent,
+    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,
+    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,
+    TableManagementComponent,
+    TableManagementFormComponent,
+    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,
+    ScadaAdminComponent,
+    TokensAdminComponent,
+    ScadaWebServiceLinkComponent,
+    WebServiceAdminComponent,
+    RegisterScadaComponent,
+    TokenGeneratorComponent,
+    TokenWiewerComponent,
+    RegisterServiceComponent,
+    AsignWebServiceComponent,
+    DynamicInputComponent,
+    DynamicSelectComponent,
+    DynamicCheckboxComponent,
+    DynamicRadioComponent,
+    DynamicTextareaComponent,
+    DynamicFormStructureComponent,
+    WebviewerComponent,
+    OpenLogComponent,
+    PreventiveMaintenanceComponent,
+    WorkOrdersComponent,
+    NewWorkOrderComponent,
+    TimePickerComponent,
+    CalendarEventsComponent,
+    FailureAnalysisComponent,
+    FailureComponent,
+    SymptomComponent,
+    SymptomFormComponent,
+    FailureFormComponent,
+    FailureFormTempComponent,
+    FailureChartComponent,
+    FailureCalculationComponent,
+    CatalogFailureComponent,
+    CatalogMeasuresComponent,
+    MeasuresFormComponent,
+  ],
+  imports: [
+    NgxMatTimepickerModule,
+    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),
+    DashboardLayoutModule,
+    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);
+}

+ 27 - 0
sistema-mantenimiento-front/src/app/dutch-paginator-intl.ts

@@ -0,0 +1,27 @@
+import { MatPaginatorIntl } from '@angular/material/paginator';
+import { TranslateService } from '@ngx-translate/core';
+
+const dutchRangeLabel = (page: number, pageSize: number, length: number) => {
+  if (length == 0 || pageSize == 0) {
+    return `0 de ${length}`;
+  }
+
+  length = Math.max(length, 0);
+
+  const startIndex = page * pageSize;
+
+  // If the start index exceeds the list length, do not try and fix the end index to the end.
+  const endIndex =
+    startIndex < length
+      ? Math.min(startIndex + pageSize, length)
+      : startIndex + pageSize;
+
+  return `${startIndex + 1} - ${endIndex} de ${length}`;
+};
+
+export function getDutchPaginatorIntl() {
+  const paginatorIntl = new MatPaginatorIntl();
+
+  paginatorIntl.getRangeLabel = dutchRangeLabel;
+  return paginatorIntl;
+}

+ 59 - 0
sistema-mantenimiento-front/src/app/long-press.directive.ts

@@ -0,0 +1,59 @@
+import {
+    Directive,
+    ElementRef,
+    EventEmitter,
+    OnDestroy,
+    Output
+  } from "@angular/core";
+  import {
+    fromEvent,
+    merge,
+    of,
+    Subscription,
+    timer
+  } from "rxjs";
+  import {
+    filter,
+    map,
+    switchMap
+  } from "rxjs/operators";
+  
+  @Directive({
+    selector: "[longPress]"
+  })
+  export class LongPressDirective implements OnDestroy {
+    private eventSubscribe: Subscription;
+    threshold = 500;
+  
+    @Output()
+    mouseLongPress = new EventEmitter();
+  
+    constructor(private elementRef: ElementRef) {
+      const mousedown = fromEvent<MouseEvent>(elementRef.nativeElement, "mousedown").pipe(
+        filter(event => event.button == 0),  // Only allow left button (Primary button)
+        map((event) => true) // turn on threshold counter
+      );
+      const touchstart = fromEvent(elementRef.nativeElement, 'touchstart').pipe(map(() => true));
+      const touchEnd = fromEvent(elementRef.nativeElement, 'touchend').pipe(map(() => false));
+      const mouseup = fromEvent<MouseEvent>(window, "mouseup").pipe(
+        filter(event => event.button == 0),  // Only allow left button (Primary button)
+        map(() => false) // reset threshold counter
+      );
+      this.eventSubscribe = merge(mousedown, mouseup, touchstart, touchEnd)
+        .pipe(
+          switchMap(state =>
+            state ? timer(this.threshold, 1000) : of(null)
+          ),
+          filter(value => {
+            return value != null;
+          })
+        )
+        .subscribe(() => this.mouseLongPress.emit());
+    }
+  
+    ngOnDestroy(): void {
+      if (this.eventSubscribe) {
+        this.eventSubscribe.unsubscribe();
+      }
+    }
+  }

+ 23 - 0
sistema-mantenimiento-front/src/app/shared/custom-paginator.ts

@@ -0,0 +1,23 @@
+import { Injectable } from '@angular/core';
+import { MatPaginatorIntl } from '@angular/material/paginator';
+
+@Injectable()
+export class MatPaginatorIntlSAM extends MatPaginatorIntl {
+    override itemsPerPageLabel: string = 'Datos por página';
+    override nextPageLabel: string = 'Siguiente página';
+    override previousPageLabel: string = 'Anterior página';
+    override firstPageLabel: string = 'Primera página';
+    override lastPageLabel: string = 'Última página';
+    override getRangeLabel = (page: number, pageSize: number, length: number) => {
+        if (length === 0 || pageSize === 0) {
+            return '0 de ' + length;
+        }
+
+        length = Math.max(length, 0);
+        const startIndex = page * pageSize;
+        const endIndex = startIndex < length ?
+            Math.min(startIndex + pageSize, length) :
+            startIndex + pageSize;
+        return startIndex + 1 + ' - ' + endIndex + ' de ' + length;
+    };
+}