¡Esta es una revisión vieja del documento!
Clase abstracta reutilizable en Angular para facilitar la creación de componentes que usen formularios, tablas, modales y alertas. Provee métodos y propiedades comunes que se pueden extender y personalizar según las necesidades del componente específico.
Esta clase permite centralizar funciones comunes como:
Estas dependencias se inyectan usando la función `inject()`.
Inicializa el formulario base con un campo `filter`.
this.form = this._fb.group({ filter: [''] });
Es útil para componentes que tengan filtros simples.
Configura el breadcrumb que se mostrará en la parte superior del componente, útil para indicar la ruta actual.
this._breadcrumbService.setItems(items);
Inicializa la tabla cargando columnas, configuración y datos. Solo funciona si los métodos getTableColumns(), getTableConfig() y loadDataTable() están implementados en la subclase.
Son métodos opcionales que deben ser sobreescritos por los componentes que extiendan BaseComponent.
protected getTableColumns(): TableListColumns[] { return [...]; // retorna las columnas }
Permite redirigir a otra ruta usando el Router de Angular.
this.navigateTo(['/ruta', id]);
Ejecuta una función asociada a una acción en la tabla. Se debe haber registrado antes usando registerAction().
this.registerAction('editar', (item) => this.editarItem(item));
Actualiza page y size con los valores del evento y recarga los datos.
Controla la selección de filas en la tabla. Si una fila es seleccionada, se agrega a selectedItems, de lo contrario, se elimina.
Asocia una acción de la tabla con una función manejadora. Esto permite ejecutar lógica personalizada cuando se dispara una acción desde la tabla.
Maneja el cierre de una alerta. Si el usuario confirma, se oculta el mensaje.
Configura los parámetros para mostrar una alerta con SweetAlert. Es reutilizable y puede personalizarse fácilmente.
this.initSweeetAlert('Guardado', 'Los datos han sido guardados', 'success');
Inicializa la configuración de un modal que puede abrirse en el componente.
this.initModal('Editar usuario', '30rem', true, true);