@clavisco/core
v0.2.1
Published
**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
Downloads
107
Readme
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("[email protected]")); // Output: true console.log(IsAValidEmail("[email protected]")); // 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 2Ejemplo
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 objetoEjemplo
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 defectoStructures.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.
- ERROR:error:errorInfo:Message
- ERROR:error:error_description
- ERROR:error:Message
- ERROR:message
- ERROR:errorInfo:Message
- ERROR:error
- ERROR:Message
- 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 ArrayBufferEjemplo
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 codificarEjemplo
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 enviadasEjemplo
// 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 guardadasEjemplo
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 obtenerEjemplo
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ónEjemplo
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 activoICLButton
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 ©