npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@clavisco/pages

v0.0.5

Published

**Token**: `Pages` > Permite cargar una ventana de advertencia según la configuración del sistema (multi ventana o ventana única).

Downloads

372

Readme

Acerca de @clavisco/pages

Token: Pages

Permite cargar una ventana de advertencia según la configuración del sistema (multi ventana o ventana única).

¿Qué resuelve?

Facilita el bloqueo de nuevas ventanas en sistemas que lo requieran mediante la utilización del servicio de @clavisco/core.

Dependencias

Funciones disponibles StorageService

  • ValidateWindowConfig(): método principal se encarga de realizar la validación de las ventanas y devolver true en caso de que la ventana pueda ser mostrada, también es el encargado de indicar que tipo de almacenamiento local utilizará la aplicación (depende de la configuración de ventana suministrada, Session storage para ventana múltiple y local storage para una sola ventana).
  • SetItem(key:string,item: IStorage|IStorage[]): método para guardar un ítem según la configuración de ventanas, recibe el nombre del ítem y el ítem a guardar, este puede ser un objeto y es de tipo IStorage o IStorage[].
  • GetItem(item:string): método que permite obtener un ítem almacenado en el storage, recibe el nombre del ítem a consultar.
  • RemoveItem(item:string): método que permite eliminar un ítem almacenado en el storage, recibe el nombre del ítem a eliminar.

Configuraciones globales

Este componente posee soporte para las siguientes configuraciones globales:

  • 'MUL_WiNDOW': Con este token se podrá configurar el 'windowConfig', el cual define la cantidad máxima de ventanas abiertas permitidas.

Configurar windowConfig

Para configurar el windowConfig se tiene que establecer la configuración global en el app.component.ts de la siguiente manera.

  • Donde el 'numberOfWindow' como su nombre lo indica, representa el número de ventanas duplicadas permitido.
   Repository.Behavior.SetTokenConfiguration({
     token: Structures.Enums.TOKENS.MUL_WiNDOW,
     setting: 'windowConfig',
     value: {
       numberOfWindow: 2
     } as IConfigMultiWindow
   })

Nota Importante!!! El valor de numberOfWindow debe configurarse idealmente desde una fuente externa, como una base de datos, para minimizar dependencias directas del código. La implementación específica de esta configuración queda a criterio de cada desarrollador.

El siguiente namespaces Repository.Behavior.SetTokenConfiguration se obtienen del paquete @clavisco/core.

¿Cómo lo uso?

StorageService

Configuración Global

  1. Ejecutar el comando npm i @clavisco/core en el directorio root del proyecto.
  2. Una vez terminada la instalación anterior, ejecutamos el comando npm i @clavisco/page en el directorio root del proyecto.
  3. Luego podemos llamar a los métodos del servicio como se muestra en el siguiente ejemplo ( toda la configuración siguiente en los archivos app.component.ts y app.component.html):
ngOnInit(): void {
  Repository.Behavior.SetTokenConfiguration({
     token: Structures.Enums.TOKENS.MUL_WiNDOW,
     setting: 'windowConfig',
     value: {
       numberOfWindow: 2
     } as IConfigMultiWindow
   });
}

app.component.html

<cl-pages>
<router-outlet></router-outlet>
</cl-pages>

Métodos del servicio

Este servicio implementa tres métodos para gestionar la información en el almacenamiento local (Storage). A continuación, se describen dichos métodos:

Importante!!! Para utilizar estos métodos, primero debes crear una instancia del servicio en el constructor de tu componente o servicio:

  constructor(private StorageService: StorageService) {}
  1. SetItem: Este método se utiliza para almacenar ítems en el Storage. A continuación se muestra cómo implementarlo:
  • Primero, crea una variable de tipo IStorage que será enviada como parámetro al método SetItem
  displayedColumns: string = 'description';
  SeveStorage:IStorage = {
      Key: 'displayedColumns',
      Value:displayedColumns,
      IsActive: true,
      Date: new Date()
  };
  this.StorageService.SetItem('Display',this.SeveStorage)

Si necesitas almacenar un objeto, puedes hacerlo de la siguiente manera:

  displayedColumns: string[] = ['description', 'price', 'amount', 'discount', 'tax', 'warehousecode', 'warehouse', 'total', 'opc', 'lintotal'];
  SeveStorage:IStorage = {
      Key: 'displayedColumns',
      Value: JSON.stringify(displayedColumns),
      IsActive: true,
      Date: new Date()
  };
  this.StorageService.SetItem('Display',this.SeveStorage);
  1. GetItem: Como su nombre lo indica, este método se utiliza para obtener un ítem almacenado en el Storage. La implementación sería la siguiente:
let storage : IStorage = JSON.parse(this.StorageService.GetItem('Display'))
console.log(storage)

Si el ítem almacenado es un objeto, puedes acceder a su valor de la siguiente manera:

  let storage : IStorage = JSON.parse(this.StorageService.GetItem('Display'))
  console.log(JSON.parse(storage.Value))
  1. RemoveItem: Este método se utiliza para eliminar un ítem del Storage. Solo necesitas pasar el nombre del ítem que deseas eliminar:
  this.StorageService.RemoveItem('Display');

Nota!!! La elección entre localStorage y sessionStorage dependerá de si se permite o no el uso de multiventana en la aplicación.

  • Multiventana permitida: Si se permiten múltiples ventanas o pestañas, se utilizara sessionStorage para 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.

Recomendaciones

De manera general puede visitar el siguiente video para conocer como implementar cada uno de los elementos mencionados Video explicativo sobre el uso @clavisco/pages.

ClavisCo ©