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.
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.
- No posee dependencias
- 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.
- Registro de configuración por token con validación de formato de propiedades aplicado al objeto principal.
Está compuesta por un módulo y una directiva que permite crear selectores de fecha con un formato personalizado
- MM/YY
- MM/YYYY
- DD/MM/YYYY
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>
Verifica que un correo eléctronico tenga el formato correcto
- _email[
string
]: Correo eléctronico a validar.MyMethod(): void { console.log(IsAValidEmail("isaac@clavisco.com")); // Output: true console.log(IsAValidEmail("isaac@clavisco.c")); // Output: false }Compara dos objetos de manera profunda e indica si son iguales o no. Se basa por valores y no por referencia en memoria.
- object1[
any
]: Objeto de comparación 1- object2[
any
]: Objeto de comparación 2MyMethod(): 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 }Indica si el valor pasado por parametro es un objeto
- object[
any
]: Valor a identificar si es un objetoMyMethod(): 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 }Imprime en consola un objeto de manera personalizada y a su vez muestra un stack trace del error.
- _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
MyMethod(): void { const ERROR = { message: "The customer was not found." }; CLPrint(ERROR); }Mapea un objeto de error de cualquier tipo a un string
- _error[
any
]: Objeto de error o excepción para mapear el mensaje.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
MyMethod(): void { const ERROR = { message: "NotFound", error: { Code: 404, Message: "Object not found" } }; console.log(GetError(HTTP_ERROR)); // Output: "Object not found" }Convierte un archivo en base64 y lo descarga del navegador
- _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.DownloadBase64File("0M8R4KGxGuE...", "MyFile", "application/octet-stream", "rpt");Convierte un string a un ArrayBuffer
- _toConvert[
string
]: Cadena a convertir en ArrayBufferStringToArrayBuffer("THIS IS MY STRING");Toma un archivo en base 64 y lo muestra como un modal o ventana en el navegador desde donde se puede imprimir.
- 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.PrintBase64File("0M8R4KGxGuE...", "application/octet-stream", true);Genera un timestamp con la fecha actual
MyMethod(): void { console.log(GetTimeStamp()); // Output: "2024%09%25%16%35%40%442" }Decodificar una cadena a partir de una representación codificada de URI
- textToDecode[
string
]: Texto codificado que se va a descodificar.MyMethod(): void { console.log(UriDecode("Hello%20World")); // Output: "Hello World" }Codifica una cadena a una representación codificada de URI
- textToEncode[
string
]: Texto que se va a codificarMyMethod() { console.log(UriEncode("Hello World")); // Output: "Hello%20World" }HttpAlertInterceptor: Mapea la repuestas HTTP para mostrar alertas mediante el codigo de estado HTTP
// 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
// app.module.ts import { Miscellaneous } from "@clavisco/core"; //... more imports here @NgModule({ ..., providers: [{ provide: HTTP_INTERCEPTORS, useClass: Miscellaneous.Interceptors.PagedRequestInterceptor }] }) export class AppModule {}
IsJson
Indica si el objeto recibido por parametro tiene el formato JSON
- item[
any
]: Valor que se quiere validar que tenga el formato JSON.MyMethod(): void { const obj1 = "3456"; Repository.Behavior.IsJson(obj1); // Output: false const obj2 = '{"name": "Isaac Herrera"}'; Repository.Behavior.IsJson(obj2); // Output: true }SetStorage<T>
Agrega un valor a una variable en el local storage.
- _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.Repository.Behavior.SetStorage<number>(23, "UserAge");GetStorageObject<T>
Obtiene el valor de una variable del local storage.
- _key[
string
]: Nombre de la variable de local storage de la cual se va a obtener el valor.Repository.Behavior.GetStorageObject<number>("UserAge"); // Output: 23DeleteStorageObject
Elimina una variable del local storage.
- _key[
string
]: Nombre de la variable que se va a eliminar del local storage.Repository.Behavior.DeleteStorageObject("UserAge");FlushStorage
Elimina todas las variables del local storage.
SetSession<T>
Agrega valor a una variable del session storage.
- _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.Repository.Behavior.SetSession<string>("IsaacHS", "UserName");GetSessionObject<T>
Obtiene el valor de una variable del session storage.
- _key[
string
]: Nombre de la variable del session storage de la cual se va a obtener el valor.Repository.Behavior.GetSessionObject<string>("UserName");DeleteSessionObject
Elimina una variable del session storage.
- _key[
string
]: Nombre de la variable que va a ser eliminada del session storage.Repository.Behavior.DeleteSessionObject("UserName");FlushSession
Elimina todas la variables del session storage.
SetTokenConfiguration
Permite agregar configuaraciones a los componentes (Siempre y cuando sean soportadas por los mismos).
- 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// 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
Permite obtener la configuración dentro de un token en específico
- token[
string
]: Token para la configuración a obtener- settingName[
string
]: Clave o Llave de la configuración dentro de las guardadasRepository.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.
- token[
string
]: Token para la configuración a obtenerRepository.Behavior.SetTokenConfiguration({ token: `Alerts`, settings: { horizontalPosition: 'center', darkMode: false }, override: true }); Repository.Behavior.GetTokenConfigurations({token: 'Alerts'}); // Output: {"horizontalPosition": "center", "darkMode": false}RegisterToken
Permite registrar las configuraciones compartidas para el componente actual
- token[
string
]: Nombre del token que se va a compartir para configuraciónRepository.Behavior.RegisterToken({token: Structures.Enums.TOKENS.DYN_UDF_CON});ValidatePascalCasingObject
Valida que las propiedades de un objeto cumplan con el formato pascal casing
- _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.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 }
CL_DISPLAY
Usado para mostrar diferentes tipos de mensajes
- 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
Usado para manejar eventos de usuario, como por ejemplo crear, eliminar registros
- 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
Tokens para identificación de componentes y uso en guardado de configuraciones
- 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
Providers de servicios ofrecidos por componentes
- PagedRequestService: Representa el proveedor del servicio para paginación de consultas
IError
Representa el modelo de error en una respuesta de solicitud HTTP.
- Code [
number
]: Código de estado HTTP.- Message [
string
]: Mensaje de error devuelto por la consulta HTTP.IResponse<T>
Representa el modelo de repuesta de una solicitud HTTP.
- 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
Representa el modelo base de los permisos de una aplicación
- 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
Modelo para representar un boton
- 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>
Representa el modelo usado para respuestas de APIs.
- Code [
HttpStatusCode
]: Código HTTP de la respuesta.- Response [
ICResponse<T>
]: Información acerca de la consulta realizada.IPagedRequest
Modelo representando la información usada para la paginacion de peticiones HTTP.
- 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>
Representa el modelo de respuesta que se va a recibir de un API que implemente los nugets de clavisco.
- Data [
T
]: Información devuelta por la petición.- Message [
string
]: Mensaje imformativo acerca del resultado de la petición.IBaseEntity
Representa el modelo de auditoria para entidades de base de datos.
- 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
Representa el modelo entidad de compañías
- Name [
string
]: Nombre de la compañía.- DatabaseCode [
string
]: Código de la base de datos de la compañía.GuardWarning
Excepción personalizada para ser procesada por la función ClPrint, cuando puede ocurrir un error en el flujo.
- message [
string
]: Mensaje de la excepción.GuardValidation
Excepción personalizada para ser procesada por la función ClPrint cuando hay alguna validación de código.
- message [
string
]: Mensaje de la excepción.
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.
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 ©