@clavisco/pages
v0.0.9-beta.1
Published
---
Downloads
45
Readme
@clavisco/pages
Este componente permite gestionar la apertura de nuevas ventanas según la configuración del sistema, soportando tanto el modo multiventana como el de ventana única. Utiliza una ventana como medio para mostrar advertencias y restringir la creación de nuevas instancias cuando el sistema lo requiere. Para ello, emplea el servicio StorageService y el namespaces deRepository.Behavior.SetTokenConfiguration los cuales se optienen de @clavisco/core.
Tabla de contenido
- Paquetes y dependencias requeridas
- Resumen de la versión
- Instalación
- Configuraciones requeridas en app.component.ts
- ¿Cómo lo implemento?
- API de referencia
Paquetes y dependencias requeridas
Resumen de la versión
Se corrigió el método de eliminación de ventas cerradas.
Se agregaron métodos para verificar que las ventanas abiertas realmente estén abiertas y no sean ventanas fantasma o basura.
Instalación
- npm i @clavisco/pages
Configuraciones requeridas en app.component.ts
Estas configuraciones son usadas por el componente pages. Se tienen que establecer en el ngOnInit del componente como un Repository.Behavior.SetTokenConfiguration.
Importante: Tener en cuenta que el valor de numberOfWindow debe obtenerse a través de una configuración proveniente de una base de datos o, al menos, de una variable de entorno. Esto asegura una mayor flexibilidad y elimina las dependencias directas del código. No se recomienda, bajo ninguna circunstancia, utilizar valores empotrados para esta configuración.
| Path | Descripción | Paquete | Tipo de dato | Valores | Ejemplo | |:-----------------------|--------------------------------------------------------------------|-----------------|:------------------------|----------------|-------------------------------------------| | Token | Token del componente al que le queremos asociar la configuración. | @clavisco/core | Structures.Enums.TOKEN | MUL_WiNDOW | token: Structures.Enums.TOKENS.MUL_WiNDOW | | windowConfig | Almacena el numero máximo de ventanas abiertas permitidas. | @clavisco/core | IConfigMultiWindow | numberOfWindow | {numberOfWindow: 2} |
¿Cómo lo implemento?
Agregar componente
pagesen elapp.component.htmly asegurarse de importar su módulo correspondiente enapp.component.module.ts<cl-pages> <router-outlet></router-outlet> </cl-pages>Una vez implementado este componente, la única forma de almacenar información será mediante los métodos aquí expuestos. Estas consideraciones deben tomarse en cuenta antes de migrar una aplicación, ya que no garantizamos la consistencia de los medios de almacenamiento al realizar accesos directos.
Agregar limpiador de valores de configuración
Este método se encarga de limpiar los valores de la configuración. Es indispensable invocarlo durante el cierre de sesión y al iniciar el sistema.
- Al iniciar el sistema: Es esencial invocar este método en la primera ventana que se cargue al iniciar el sistema, como puede ser la pantalla de inicio de sesión o una página inicial (login, pages...), Esto previene que valores residuales de la configuración de
numberOfWindowpersistan debido a sesiones previas, garantizando un entorno limpio y estable. - Durante el cierre de sesión: Este método debe ser invocado en los procesos de cierre de sesión, por lo general se encuentran dentro de los servicios de
AuthenticationServicey tienen el nombre delogout.
Uso
- Después de importar el servicio y declarar su instancia, llame al método de la siguiente manera.
this.storageService.CleanStorage();
- Al iniciar el sistema: Es esencial invocar este método en la primera ventana que se cargue al iniciar el sistema, como puede ser la pantalla de inicio de sesión o una página inicial (login, pages...), Esto previene que valores residuales de la configuración de
Con esta configuración, tendrás una implementación base del componente
pages.
La elección entre localStorage y sessionStorage dependerá de si la aplicación permite o no el uso de múltiples ventanas:
- Multiventana permitida: Si se permiten múltiples ventanas o pestañas, se utilizara
sessionStoragepara evitar compartir datos entre sesiones de diferentes ventanas, ya que sessionStorage es exclusivo para cada pestaña. - Multiventana no permitida: Si no se permiten múltiples ventanas, se utilizara
localStorage. En este caso, los datos almacenados estarán disponibles en todas las ventanas de la misma aplicación, incluso si la ventana se cierra y se vuelve a abrir.
Api de referencia
Esta sección muestra todas las características disponibles y especificaciónes del consumo de estas.
Clase: StorageService
Nombre: SetItem
Tipo de retorno: void
Descripción: Se encarga de almacenar un ítem según la configuración de ventanas.
| Parámetro | Tipo | Descripción | Defecto | Mandatorio | |:----------|-----------------------|:-------------------------------------------------------------------|---------|------------| | _key | string | Clave bajo la cual se almacenará el elemento en el almacenamiento | | Si | | item | IStorage / IStorage[] | Objeto o array de objetos que se guardarán en el almacenamiento. | | SI |
Clase: StorageService
Nombre: GetItem
Tipo de retorno: string
Descripción: Permite obtener un ítem almacenado en el storage.
| Parámetro | Tipo | Descripción | Defecto | Mandatorio | |:----------|--------------------|:---------------------------------------------------------------|---------|------------| | item | string | Clave del elemento que se desea recuperar del almacenamiento. | | Si |
Clase: StorageService
Nombre: RemoveItem
Tipo de retorno: void
Descripción: Permite eliminar un ítem almacenado en el storage.
| Parámetro | Tipo | Descripción | Defecto | Mandatorio | |:----------|--------------------|:-------------------------------------------------------------|---------|------------| | item | string | Clave del elemento que se desea eliminar del almacenamiento. | | Si |
Clase: StorageService
Nombre: CleanStorage
Tipo de retorno: void
Descripción: Restablece la configuración de administración de ventanas múltiples. Específicamente, actualiza la propiedad windowConfig, estableciendo numberOfWindow en 1 para evitar duplicados. Este método se ejecuta al iniciar el proyecto y al cerrar la sesión para garantizar una configuración limpia.
ClavisCo 2024
