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

rcomponent

v1.1.14

Published

Esta libreria fue generada usando [Angular CLI](https://github.com/angular/angular-cli) versión 12.2.0, contiene 3 componentes: **RInput**, **RSelect**, **RTable**, todos son wrappers de componentes de Bootstrap que poseen funcionalidades extras para redu

Downloads

23

Readme

RComponents

Esta libreria fue generada usando Angular CLI versión 12.2.0, contiene 3 componentes: RInput, RSelect, RTable, todos son wrappers de componentes de Bootstrap que poseen funcionalidades extras para reducir código. Estos componentes estan basados en la interfaz ControlValueAccessor de angular, para hacer uso de los ReactiveForms y los NgModel.

Apariencia

Apariencia de los componentes

Instalacion

Use NPM para instalar este componente.

Use este comando para versiones de angular 13 y versiones 7 de rxjs

npm install [email protected]

Use este comando para versiones de angular 12 y versiones 6 de rxjs

npm install [email protected]

Uso

Bootstrap

Esta libreria usa clases de boostrap, asi que es necesario importar los respectivos archivos de bootstrap en el archivo '<angular.json>', la importacion del archivo js de boostrap es opcional

"styles": [
              ...
              "node_modules/bootstrap/dist/css/bootstrap.min.css"
          ],
"scripts": ["node_modules/bootstrap/dist/js/bootstrap.min.js"]

Modulo

Importamos la librería en el modulo principal o donde se requiera.

import { RcomponentsModule } from 'rcomponents';  // <---- IMPORT

@NgModule({
  declarations: [
    ...
  ],
  imports: [ 
    RcomponentsModule  // <---- IMPORT
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

component.html

Llamamos los componentes que necesitemos en nuestro HTML pasandole los parametros correspondientes

<div class="container" [formGroup]="form">
    
  <h2>R-Input</h2>
  <r-input label="Text"  formControlName="text"></r-input>
  <r-input label="Number" type="number" formControlName="number"></r-input>
  <r-input label="Range" type="range" formControlName="range"></r-input>
  <r-input label="Textarea" type="textarea" formControlName="textarea"></r-input>
  <r-input label="File" type="file" formControlName="file"></r-input>
  <r-input label="Color" type="color" formControlName="color"></r-input>
  <r-input label="Time" type="time" formControlName="time"></r-input>
  <r-input label="Date" type="date" formControlName="date"></r-input>
  <r-input label="Checkbox" type="checkbox" formControlName="checkbox"></r-input>
  <r-input label="Radio" type="radio" group="radio" [options]="options" formControlName="radio"></r-input>
 
 <h2>R-Select</h2>
  <r-select label="Select" formControlName="select" [selectService]="loadPosts" bindLabel="title" [templateOption]="optionTemplate"></r-select>

  <ng-template #optionTemplate let-option="option">
    <h5>{{option.label}} <span class="badge bg-secondary">{{option.value.id}}</span></h5>
  </ng-template>
 
  <h2>R-Table</h2>
  <r-table [columns]="columns" [tableService]="loadUsers"></r-table> 
  
</div>

component.ts

Configuracion de los componentes


// TemplateRef para renderizar las opciones del select de otra forma
@ViewChild('optionTemplate', { static: true }) optionTemplate: TemplateRef<any>;
  
// Formulario dinamico
    this.form = this.formBuilder.group({
      text: [{ value: 'something', disabled: true }],
      number: null,
      range: null,
      textarea: null,
      file: null,
      color: null,
      time: null,
      date: null,
      checkbox: [{ value: false, disabled: true }],
      radio: 1,
      select: { name: 2 },
    });

    this.form.valueChanges.subscribe((value) => console.log(value));

    // Opciones de los selects o  input radio
    this.options = [
      {
        label: 'label1',
        value: { name: 1 },
      },
      {
        label: 'label2',
        value: { name: 2 },
      },
    ];

    // Definicion simple de columnas para la tabla
    this.columns = [
      {
        title: 'ID',
        data: 'id',
      },
      {
        title: 'NAME',
        data: 'name',
      },
    ];
  }

  // Funcion que obtiene los datos que llenaran la tabla
  get loadUsers(): TableService {
    return {
      callback: (_params: any, _filters: any) => {
        return this.http.get('https://jsonplaceholder.typicode.com/users');
      },
    };
  }
  
  // Funcion que obtiene los datos que llenaran el select
  get loadPosts(): SelectService{
    return {
      callback: (_value:any,_search:string) => {
        return this.http.get('https://jsonplaceholder.typicode.com/posts');
      }
    }
  }

Componentes

R-Input

Este componente es un wrapper del form-control de bootstrap, el cual reduce el codigo brindando un uso rapido y efectivo.

Los parametros que recibe este componente son:

Parametro | Tipo|Descripcion ------------- | ------------- | ------------- label | string|Texto del label que acompaña el input placeholder | string| Texto del placeholder del input type | string| Texto con el tipo de input que se quiere pintar class |string| Nombre de clase para extender los estilos group | string|Usado para agrupar los inputs de tipo radio y para agrupar los labels e inputs de los checkbox size | string| Valores permitidos lg o sm options | Option[]|Array de opciones de tipo Option min | number|valor minimo, usado para los inputs de tipo range max | number|valor maximo, usado para los inputs de tipo range

R-Select

Este componente es un wrapper del form-select de bootstrap, el cual reduce el codigo brindando un uso rapido y efectivo, ademas de ser altamente parametrizable, dando opciones de busqueda local o en el servidor, a travez de un servicio.

Los parametros que recibe este componente son:

Parametro | Tipo|Descripcion ------------- | ------------- | ------------- label | string|Texto del label que acompaña el input class |string| Nombre de clase para extender los estilos group | string|Usado para agrupar los inputs de tipo radio y para agrupar los labels e inputs de los checkbox size | string| Valores permitidos lg o sm options | Option[]|Array de opciones de tipo Option multiple | boolean| Define si el select sera multiple o no, por defecto su valor es false clearable | boolean| Define si el select mostrara un boton para limpiar la seleccion, por defecto su valor es false showLoader | boolean| Define si el select mostrara un spinner de carga cuando se haga una busqueda al backend, por defecto su valor es true selectService | SelectService| Este campo contiene la funcion que es pasada desde el componente padre, para hacer la consulta de datos al backend. bindLabel | string| Es el valor que sera mostrado por el select, esto es usado cuando se le pasa un array de objetos al select. bindValue | string| Es el valor que sera guardado en el formulario dinamico o en el modelo, esto es usado cuando se le pasa un array de objetos al select, si este campo no se pasa, se tomara todo el valor del objeto, util para opciones con templates. templateOption | TemplateRef| Por defecto el select muestra las opciones de manera simple, pero si se desea renderizar vistas mas complejas dentro de el, se debe pasar un templateRef.

R-Table

Este componente es un datatable sencillo y configurable, que permite filtrar, paginar, ordenar, mostrar datos simples y datos complejos en sus celdas a traves del render de Angular.

Los parametros que recibe este componente son:

Parametro | Tipo|Descripcion ------------- | ------------- | ------------- columns | Column[]|Array de columnas utilizadas para renderizar los headers de la tabla ademas de los datos. data |any[]| Array de objectos que representan los datos. filters | FormGroup|Grupo de campos externos utilizados para filtrar la tabla. localData | boolean|Este flag determina si los datos se pasaran a traves de la variable data cuando se setea en true o si se obtendran de un servicio que apunte a un backend cuando se setea en false. serverSide | boolean|Define si las opciones de filtrado, paginacion y ordenamiento, se realizaran del lado del servidor o del lado del cliente. RELOAD | Subject | Este campo es usado para recargar los datos de la tabla desde el componente padre donde es llamada la tabla. tableService | TableService| Este campo de tipo TableService, contiene la funcion que es pasada desde el componente padre, para hacer la consulta de datos al backend. EMIT | TableService| A diferencia de los parametros anteriores este campo es un Output y sirve para enviar datos del componente hijo al padre, en caso de que sear necesario, por defecto esta emite los datos de la tabla cuando estos son cargados.

Modelos de datos

Option

Esta interfaz representa los datos que deben pasarsele al componente RSelect o al RInput de tipo radio.

Nombre | Tipo|Descripcion ------------- | ------------- | ------------- label | string| Representa el valor que sera mostrado value | any| Representa el valor que sera guardado en la variable asociada al RSelect o al RInput de tipo radio, cuando se escoja

Column

Esta interfaz representa la manera en que se deben configurar las columnas de la tabla.

Nombre | Tipo|Descripcion ------------- | ------------- | ------------- title | string| El titulo usado en el header de la columna. data | string| El nombre del dato de la columna dentro del JSON de datos. class | string <opcional>| Clase para extender o modificar los estilos de la tabla. sortable | boolean<opcional>| Define cuando una columna es ordenable o no. filterable | boolean<opcional>| Define cuando una columna es filtrable o no. template | TemplateRef<opcional>|Template de Angular para renderizar componentes dinamicos. render | (data:any) => string<opcional>| Funcion que renderiza componentes no dinamicos. showIf | (data:any) => boolean<opcional>| Funcion que valida en que condiciones se debe mostrar un campo. rowClass | (data:any) => string<opcional>| Clase de estilos que afecta las filas de la tabla.

SelectService

Esta interfaz representa la estructura de la funcion que debe ser pasada al RSelect cuando los datos seran cargados desde el backend.

Nombre | Tipo|Descripcion ------------- | ------------- | ------------- callback | function| Esta funcion recibe dos parametros value y search el primero de tipo any y el segundo de tipo string y devuelve un array de objetos**.

value

Envia el valor actual del select por si se requiere para hacer algun filtro en el backend.

search

Valor por el cual se quiere filtrar.

TableService

Esta interfaz representa la estructura de la funcion que debe ser pasada al RTable cuando los datos seran cargados desde el backend.

Nombre | Tipo|Descripcion ------------- | ------------- | ------------- callback | function| Esta funcion recibe dos parametros params y filters ambos de tipo any y devuelve un Observable.

params

parametros para la paginacion y filtrado del lado del servidor.

  {
  	start: 0, 			   // pagina actual
	  length: 5,  		   // numero de elementos que traera
	  order: {
		  index: 0,		  // 'indice de la columna por la cual ordenas'
		  key: 'ID',	      // 'columna por la cual ordenar'
		  dir:'asc',	      // 'modo de ordenamiento asc o desc'
	  },
	  search: {
		  key: 'ID',	     // 'columna por la cual buscar'
		  value: '123'	// 'valor de la busqueda'
	  }
  }

filters

campos externos a la tabla para aplicar filtros

  {
		campo1: 'valor1',
		campo2: 'valor2',
		....
  }

Valor esperado por el backend para llenar la tabla

{
	data: 'array de datos',
	recordsTotales: 'numero de registros'
}