@clavisco/core
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

Acerca de @clavisco/core

Token: Core

Engloba un conjunto de modelos, utilidades y funciones generales utilizadas por otros componentes y también disponibles para su uso general en cualquier aplicación. Entre las cuales se puede encontrar modelos generales de interfaces y enumerados para uso general, misceláneos como funciones para mapeo de errores o logs de errores en consola web, almacenamiento de configuraciones y datos en local storage y session storage; entre otras.

¿Qué resuelve?

Facilita el acceso a un conjunto de utilidades y funciones para uso general y especifico que no resulta como parte de otros componentes y que pueden ser reutilizados para diversas aplicaciones durante el desarrollo e implementacion de componentes y sistemas.

Dependencias

  • No posee dependencias

Resumen de versión

Caracteristicas (Features)

  • El método para validación de formato de propiedades permite validar recursivamente o solo las propiedades del objeto principal.
  • Se agrega la documentación de los métodos e interfaces expuestas a nivel de código.

Correciones (Fixes)

  • Registro de configuración por token con validación de formato de propiedades aplicado al objeto principal.

Date Selector

Está compuesta por un módulo y una directiva que permite crear selectores de fecha con un formato personalizado

Formatos disponibles

  • MM/YY
  • MM/YYYY
  • DD/MM/YYYY

Directiva clcustomdatepicker

Aplica un formato personalizado a un componente Datepicker de Angular Material.

<mat-form-field appareance="outline">
  <mat-label>Fecha de vencimiento</mat-label>
  <input matInput clcustomdatepicker="MM/YYYY" [matDatepicker]="datepicker" formControlName="DueDate"/>
  <mat-datepicker-toggle matSuffix [for]="datepicker"></mat-datepicker-toggle>
  <mat-datepicker #datepicker startView="multi-year"></mat-datepicker>
</mat-form-field>

Miscellaneous

IsAValidEmail

Descripción

Verifica que un correo eléctronico tenga el formato correcto

Parametros
  • _email[string]: Correo eléctronico a validar.
Ejemplo
MyMethod(): void 
{
    console.log(IsAValidEmail("isaac@clavisco.com")); // Output: true
    console.log(IsAValidEmail("isaac@clavisco.c")); // Output: false
}

DeepEqual

Descripción

Compara dos objetos de manera profunda e indica si son iguales o no. Se basa por valores y no por referencia en memoria.

Parametros
  • object1[any]: Objeto de comparación 1
  • object2[any]: Objeto de comparación 2
Ejemplo
MyMethod(): void 
{
    const object1 = {name: "Isaac Herrera", age: 23};
    const object2 = {name: "Isaac Herrera", age: 23};

    console.log(DeepEqual(object1, object2)); // Output: true
    
    object2.age = 24;

    console.log(DeepEqual(object1, object2)); // Output: false
}

IsObject

Descripción

Indica si el valor pasado por parametro es un objeto

Parametros
  • object[any]: Valor a identificar si es un objeto
Ejemplo
MyMethod(): void 
{
    const object1 = {name: "Isaac Herrera"};

    console.log(IsObject(object1)); // Output: true

    const object2 = "this is an string object";

    console.log(IsObject(object2)); // Output: false
}

CLPrint

Descripción

Imprime en consola un objeto de manera personalizada y a su vez muestra un stack trace del error.

Parametros
  • _data[any]: Objeto que va a ser impreso en consola con un formato personalizado. Puede ser cualquier tipo de objeto.
  • _clDisplay[any]: Indica el formato con el que se va a mostrar el objeto en consola. Valor por defecto Structures.Enums.CL_DISPLAY.ERROR
Ejemplo
MyMethod(): void 
{
    const ERROR = 
    {
        message: "The customer was not found."
    };
    
    CLPrint(ERROR);
}

GetError

Descripción

Mapea un objeto de error de cualquier tipo a un string

Parametros
  • _error[any]: Objeto de error o excepción para mapear el mensaje.
Verificaciones

Estas son las rutas del objeto en las que se va a buscar el mensaje, se aplican en el mismo orden que se listaron, si no se encuentra ninguna se devuelve el ERROR como un string.

  1. ERROR:error:errorInfo:Message
  2. ERROR:error:error_description
  3. ERROR:error:Message
  4. ERROR:message
  5. ERROR:errorInfo:Message
  6. ERROR:error
  7. ERROR:Message
  8. ERROR:Error:Message
Ejemplo
MyMethod(): void 
{
    const ERROR = {
        message: "NotFound",
        error: {
            Code: 404,
            Message: "Object not found"
        }
    };

  console.log(GetError(HTTP_ERROR)); // Output: "Object not found"
}

DownloadBase64File

Descripción

Convierte un archivo en base64 y lo descarga del navegador

Parametros
  • _base64File[string]: Cadena de texto representado el archivo en base 64.
  • _fileName[string]: Nombre con el que se descargara el archivo.
  • _blobType[string]: MIME type del objeto a descargar.
  • _fileExtension[string]: Extensión con la que se va a descargar el archivo.
Ejemplo
DownloadBase64File("0M8R4KGxGuE...", "MyFile", "application/octet-stream", "rpt");

StringToArrayBuffer

Descripción

Convierte un string a un ArrayBuffer

Parametros
  • _toConvert[string]: Cadena a convertir en ArrayBuffer
Ejemplo
StringToArrayBuffer("THIS IS MY STRING");

PrintBase64File

Descripción

Toma un archivo en base 64 y lo muestra como un modal o ventana en el navegador desde donde se puede imprimir.

Parametros
  • base64File[string]: Archivo en base 64.
  • blobType[string]: MIME Type de el archivo en base 64.
  • onNewWindow[boolean]: Indica si se debe mostrar en una nueva ventana del navegador.
Ejemplo
PrintBase64File("0M8R4KGxGuE...", "application/octet-stream", true);

GetTimeStamp

Descripción

Genera un timestamp con la fecha actual

Ejemplo
MyMethod(): void 
{
    console.log(GetTimeStamp()); // Output: "2024%09%25%16%35%40%442"
}

UriDecode

Descripción

Decodificar una cadena a partir de una representación codificada de URI

Parametros
  • textToDecode[string]: Texto codificado que se va a descodificar.
Ejemplo
MyMethod(): void 
{
    console.log(UriDecode("Hello%20World")); // Output: "Hello World"
}

UriEncode

Descripción

Codifica una cadena a una representación codificada de URI

Parametros
  • textToEncode[string]: Texto que se va a codificar
Ejemplo
MyMethod()
{
    console.log(UriEncode("Hello World")); // Output: "Hello%20World"
}

Miscellaneous.Interceptors

HttpAlertInterceptor: Mapea la repuestas HTTP para mostrar alertas mediante el codigo de estado HTTP

Usage
// app.module.ts

import { Miscellaneous } from "@clavisco/core"; 
//... more imports here

@NgModule({
  ...,
  providers: [{ provide: HTTP_INTERCEPTORS, useClass: Miscellaneous.Interceptors.HttpAlertInterceptor }]
})
export class AppModule {}

PagedRequestInterceptor: Envia y obtiene los headers de paginación de solicitudes HTTP

Usage
// app.module.ts

import { Miscellaneous } from "@clavisco/core"; 
//... more imports here

@NgModule({
  ...,
  providers: [{ provide: HTTP_INTERCEPTORS, useClass: Miscellaneous.Interceptors.PagedRequestInterceptor }]
})
export class AppModule {}

Repository

IsJson

Descripción

Indica si el objeto recibido por parametro tiene el formato JSON

Parametros
  • item[any]: Valor que se quiere validar que tenga el formato JSON.
Ejemplo
MyMethod(): void 
{
    const obj1 = "3456";

    Repository.Behavior.IsJson(obj1); // Output: false

    const obj2 = '{"name": "Isaac Herrera"}';
    
    Repository.Behavior.IsJson(obj2); // Output: true
}

SetStorage<T>

Descripción

Agrega un valor a una variable en el local storage.

Parametros
  • _object[T]: Valor que se va a guardar en la variable del local storage.
  • _key[string]: Nombre de la variable de local storage a la que se le va a asignar el valor.
Ejemplo
Repository.Behavior.SetStorage<number>(23, "UserAge");

GetStorageObject<T>

Descripción

Obtiene el valor de una variable del local storage.

Parametros
  • _key[string]: Nombre de la variable de local storage de la cual se va a obtener el valor.
Ejemplo
Repository.Behavior.GetStorageObject<number>("UserAge"); // Output: 23

DeleteStorageObject

Descripción

Elimina una variable del local storage.

Parametros
  • _key[string]: Nombre de la variable que se va a eliminar del local storage.
Ejemplo
Repository.Behavior.DeleteStorageObject("UserAge");

FlushStorage

Descripción

Elimina todas las variables del local storage.

SetSession<T>

Descripción

Agrega valor a una variable del session storage.

Parametros
  • _object[T]: Valor que va a ser asignado a la variable del session storage.
  • _key[string]: Nombre de la variable del session storage a la que se le va a asignar le valor.
Ejemplo
Repository.Behavior.SetSession<string>("IsaacHS", "UserName");

GetSessionObject<T>

Descripción

Obtiene el valor de una variable del session storage.

Parametros
  • _key[string]: Nombre de la variable del session storage de la cual se va a obtener el valor.
Ejemplo
Repository.Behavior.GetSessionObject<string>("UserName");

DeleteSessionObject

Descripción

Elimina una variable del session storage.

Parametros
  • _key[string]: Nombre de la variable que va a ser eliminada del session storage.
Ejemplo
Repository.Behavior.DeleteSessionObject("UserName");

FlushSession

Descripción

Elimina todas la variables del session storage.

SetTokenConfiguration

Descripción

Permite agregar configuaraciones a los componentes (Siempre y cuando sean soportadas por los mismos).

Parametros
  • token[string]: Token del componente al que le queremos asociar la configuración definido dentro de Structures.Enums.TOKEN o puede ser un nombre o clave cualquier para la configuración definida
  • settings[any]: Objeto que define el conjunto de configuraciones asociadas al token definido
  • setting[string]: Clave o Llave específica para una configuración puntual
  • value[any]: Contiene el valor de la configuración asociada a la variable setting
  • override[boolean]: Determina si al aplicar la configuración esta sobrescribe todo el objeto o solo actualiza las propiedades enviadas
Ejemplo
// Definimos las configuraciones para el componente Alerts
Repository.Behavior.SetTokenConfiguration({
  token: `Alerts`,
  settings: {
   horizontalPosition: 'center',
   darkMode: false
 },
 override: true
});

// Sobrescribimos de forma independiente solo el darkMode
Repository.Behavior.SetTokenConfiguration({
 token: `Alerts`,
 setting: 'darkMode',
 value: true
});

GetTokenConfiguration

Descripción

Permite obtener la configuración dentro de un token en específico

Parametros
  • token[string]: Token para la configuración a obtener
  • settingName[string]: Clave o Llave de la configuración dentro de las guardadas
Ejemplo
Repository.Behavior.SetTokenConfiguration({
  token: `Alerts`,
  settings: {
   horizontalPosition: 'center',
   darkMode: false
 },
 override: true
});

Repository.Behavior.GetTokenConfiguration({token: 'Alerts', settingName: 'horizontalPosition'}); // Output: "center"

GetTokenConfigurations

Permite obtener las configuraciones de un token en especifico.

Parametros
  • token[string]: Token para la configuración a obtener
Ejemplo
Repository.Behavior.SetTokenConfiguration({
  token: `Alerts`,
  settings: {
   horizontalPosition: 'center',
   darkMode: false
 },
 override: true
});

Repository.Behavior.GetTokenConfigurations({token: 'Alerts'}); // Output: {"horizontalPosition": "center", "darkMode": false}

RegisterToken

Descripción

Permite registrar las configuraciones compartidas para el componente actual

Parametros
  • token[string]: Nombre del token que se va a compartir para configuración
Ejemplo
Repository.Behavior.RegisterToken({token: Structures.Enums.TOKENS.DYN_UDF_CON});

ValidatePascalCasingObject

Descripción

Valida que las propiedades de un objeto cumplan con el formato pascal casing

Parametros
  • _object[any]: Objeto al cual se le van a validar el formato de los nombres de las propiedades.
  • _level[all | root]: Indica hasta que nivel va a llegar la validación del formato de propiedades.
Ejemplo
MyMethod(): void 
{
    const object1 = {name: 'Isaac', age: 23, subObject: { ChildName: 'Engel', ChildAge: 3 } };

    // This only will check the main object properties, the subobject properties will be ignored
    Repository.Behavior.ValidatePascalCasingObject(object1, 'root'); // Output: true

    // This will check the main object and subobject properties
    Repository.Behavior.ValidatePascalCasingObject(object1, 'all'); // Output: false
}

Structures

Enums

CL_DISPLAY

Descripción

Usado para mostrar diferentes tipos de mensajes

Valores validos
  • SUCCESS: Representa un estado de éxito
  • INFORMATION: Representa un estado informativo
  • WARNING: Representa un estado de advertencia
  • ERROR: Representa un estado de error

CL_ACTIONS

Descripción

Usado para manejar eventos de usuario, como por ejemplo crear, eliminar registros

Valores validos
  • CREATE: Para manejar eventos de creación
  • UPDATE: Para manejar eventos de actualización
  • DELETE: Para manejar eventos de eliminación
  • DISMISS: Para manejar eventos de descartar
  • CONTINUE: Para manejar eventos de continuar
  • CANCEL: Para manejar eventos de cancelación
  • OPTION_1: Opción libre
  • OPTION_2: Opción libre
  • OPTION_3: Opción libre
  • OPTION_4: Opción libre
  • OPTION_5: Opción libre
  • OPTION_6: Opción libre
  • OPTION_7: Opción libre
  • OPTION_8: Opción libre
  • OPTION_9: Opción libre
  • OPTION_10: Opción libre
  • OPTION_11: Opción libre
  • OPTION_12: Opción libre
  • OPTION_13: Opción libre
  • OPTION_14: Opción libre
  • OPTION_15: Opción libre

TOKENS

Descripción

Tokens para identificación de componentes y uso en guardado de configuraciones

Valores validos
  • ALTERS: Representa el componente de @clavisco/alerts
  • CORE: Representa el componente de @clavisco/core
  • DYN_UDF_CON: Representa el componente de @clavisco/dynamics-udfs-console
  • DYN_UDF_PRE: Representa el componente de @clavisco/dynamics-udfs-presentation
  • GUARD: Representa el componente de @clavisco/guards
  • HOME: Representa el componente de home
  • INCG_PAY: Representa el componente de pagos recibidos
  • OINV: Representa el componente de facturas
  • LINK: Representa el componente de @clavisco/linker
  • LOGN: Representa el componente de @clavisco/login
  • MENU: Representa el componente de @clavisco/menu
  • OVLAY: Representa el componente de @clavisco/overlay
  • PAY_MOD: Representa el componente de @clavisco/payment-modal
  • RPMG_DK: Representa el componente de @clavisco/rptmng-desk
  • RPMG_MN: Representa el componente de @clavisco/rptmng-menu
  • SKTN: Representa el componente de @clavisco/skeleton
  • SHARED: Representa un token compartido
  • TABL: Representa el componente de @clavisco/table
  • ACTCEN: Representa el componente de @clavisco/action-center
  • MUL_WiNDOW: Representa el componente de @clavisco/pages

PROVIDERS

Descripción

Providers de servicios ofrecidos por componentes

Valores validos
  • PagedRequestService: Representa el proveedor del servicio para paginación de consultas

Interfaces

IError

Descripción

Representa el modelo de error en una respuesta de solicitud HTTP.

Propiedades
  • Code [number]: Código de estado HTTP.
  • Message [string]: Mensaje de error devuelto por la consulta HTTP.

IResponse<T>

Descripción

Representa el modelo de repuesta de una solicitud HTTP.

Propiedades
  • Result [boolean]: Indica si la solicitud tuvo un resultado exitoso.
  • Error [Strutures.Interfaces.IError]: Representa el error de la solicitud en caso de no ser exitosa.
  • Data [T]: Representa la información devuelta por la solicitud en caso de ser exitosa.

IPermission

Descripción

Representa el modelo base de los permisos de una aplicación

Propiedades
  • Id [number]: Identificador del permiso
  • Code [string | null]: Código del permiso y sera usado para las validaciones en la aplicación
  • Name [string | null]: Nombre del permiso.
  • Description [string | null]: Descripción acerca del permiso
  • Status [boolean]: Indica si el permiso esta activo

ICLButton

Descripción

Modelo para representar un boton

Propiedades
  • Title [string]: Representa el titulo o descripción que va a tener el botón.
  • Action [Structures.Enums.CL_ACTIONS]: Indica que tipo de acción va a realizar el botón.
  • Icon [string]: Representa el icono que va a tener el botón.
  • Color [string]: Color que va a tener el botón.
  • Data [string]: Información que va a manejar el botón cual sea presionado.

ICContext<T>

Descripción

Representa el modelo usado para respuestas de APIs.

Propiedades
  • Code [HttpStatusCode]: Código HTTP de la respuesta.
  • Response [ICResponse<T>]: Información acerca de la consulta realizada.

IPagedRequest

Descripción

Modelo representando la información usada para la paginacion de peticiones HTTP.

Propiedades
  • PageSize [number]: Representa el tamaño de página actual que tiene la tabla donde se aplica la paginación por base de datos.
  • CurrentPage [number]: Representa la página actual de la tabla donde se aplica la paginación por base de datos.
  • RecordsCount [number]: Representa los registros totales que se van a mostrar en la tabla a travez de todas las páginas
  • NextPage [number]: Representa la siguiente página de la tabla.
  • Pages [number]: Representa todas las páginas que puede tener la tabla segun la cantidad de registros disponibles.
  • Type [dba | sl]: Indica si la paginacion va a ser mediante Service Layer o base de datos de aplicación.

ICLResponse<T>

Descripción

Representa el modelo de respuesta que se va a recibir de un API que implemente los nugets de clavisco.

Propiedades
  • Data [T]: Información devuelta por la petición.
  • Message [string]: Mensaje imformativo acerca del resultado de la petición.

IBaseEntity

Descripción

Representa el modelo de auditoria para entidades de base de datos.

Propiedades
  • Id [number]: Identidad de la entidad en base de datos.
  • CreatedDate [Date]: Fecha de creación del objeto entidad.
  • CreatedBy [string]: Usuario que creó la objeto entidad.
  • UpdateDate [Date | undefined]: Fecha de actualización del objeto entidad.
  • UpdatedBy [string | undefined]: Usuario que actualizó el objeto entidad.
  • IsActive [boolean]: Indica si el objeto entidad esta habilitado.

ICLCompany

Descripción

Representa el modelo entidad de compañías

Propiedades
  • Name [string]: Nombre de la compañía.
  • DatabaseCode [string]: Código de la base de datos de la compañía.

Clases

GuardWarning

Descripción

Excepción personalizada para ser procesada por la función ClPrint, cuando puede ocurrir un error en el flujo.

Parametros de constructor
  • message [string]: Mensaje de la excepción.

GuardValidation

Descripción

Excepción personalizada para ser procesada por la función ClPrint cuando hay alguna validación de código.

Parametros de contructor
  • message [string]: Mensaje de la excepción.

Solicitudes paginadas con componente @clavisco/table

El componente @clavisco/table a partir de la versión 0.0.34-beta.6 ya realiza el seteo de las propiedades de paginación, por lo cual solamente es necesario enviar el valor de "ShouldPaginateRequest" para indicar si la tabla va a paginar las solicitudes, por defecto tiene el valor de verdadero

Para ver ejemplos de como paginar solicitudes con el componente de tabla, puede revisar la documentación de @clavisco/table

Y de esa manera se pueden paginar las solicitudes.

Nota!!! La funcionalidad de paginación solo esta disponible para solicitudes GET y POST.

Importante!!! Para que esta configuración funcione primero tiene que indicar que el end-point al cual se va a realizar la consulta tiene paginación habilitada y exponer los headers de respuesta. Esta configuración deberia indicarlo desde el API.

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/core


ClavisCo ©

Readme

Keywords

none

Package Sidebar

Install

npm i @clavisco/core

Weekly Downloads

12

Version

0.2.1

License

none

Unpacked Size

758 kB

Total Files

40

Last publish

Collaborators

  • aguiladecampo
  • abarrantes