UNPKG

inegicomponentes-tabulador

Version:

Componentes de visualizacion 2023 - Tabuladores

308 lines (261 loc) 9.4 kB
# INEGIComponentes.Indicadores.Tabulador Componentes de visualizacion 2023 - Tabuladores ## Índice de contenidos * [Tecnologias](#item1) * [Instalación y configuración del proyecto](#item2) * [Comandos](#item3) * [Configuracion Webpack 5.x](#item4) * [Uso de componentes](#item5) <a name="item1"></a> ### Tecnologias React +18 Webpack +5 Babel Bootstrap +5 HTML 5 Libreria para generacion de tabuladores * <a name="item2"></a> ## Instalación y configuración del proyecto Inicializar proyecto ```shell $ npm init -y ``` Instalar react y react-dom ```shell $ npm i -D react react-dom path ``` Instalar webpack combo ```shell $ npm i -D webpack webpack-cli webpack-dev-server html-webpack-plugin json-minimizer-webpack-plugin ``` Instalar babel combo ```shell $ npm i -D @babel/core @babel/preset-env @babel/preset-react babel-loader ``` Crear archivo de configuracion .babelrc ```json { "presets": [ "@babel/preset-env", //para codigo js compatible "@babel/preset-react" // para codigo react ], "plugins":[ ] } ``` Instalar procesadores de css ```shell $ npm i -D style-loader css-loader ``` Instalación de bootstrap o react-boostrap (5.2.x) ```shell $ npm i -D bootstrap $ npm i -D react-bootstrap ``` ## Instalar y configurar Storybook Instalación (cualquiera de las 2 opciones) ```shell $ npx storybook init $ npx storybook init --type react ``` Ejecutar storybook ```shell $ npm run storybook ``` ### __Historias y estructura storybook__ ... pendiente <a name="item3"></a> ## Comandos para la aplicación Los siguientes comandos los tenemos configurados en el apartado *scripts* del archivo __package.json__ ```json "start": "webpack serve --config-name commonjs", // ejecuta el componente commonjs local usando script tag "build-commonjs": "webpack --config-name commonjs", // genera el bundle del componente para incluirlo en el navegador (script common js) "build-modulejs": "webpack --config-name modulejs", // genera el bundle del componente para instalacion desde npm (node module js) "storybook": "start-storybook -p 6006", // levanta storybook "build-storybook": "build-storybook", // general el bundle de storybook para produccion "report": "webpack --profile --json > stats.json" // genera un reporte para visualizar el tamaño de los archivos incluidos en el bundle ``` Run - ejecutar la app / componente en el navegador ```shell $ npm start ``` Build - empaquetado o distribución final __Para incluir en el html con script__ ```shell $ npm run build-commonjs ``` __Para instalar el paquete desde npm__ ```shell $ npm run build-modulejs ``` ## Generacion de archivos en __/dist__ Estos son los archivos generados despues de hacer un build-commonjs y build-modulejs | Archivo | Descripcion | | ------- | ----------- | | index.html | html para probar en local el componente o aplicación se usa con el archivo ``` inegicomponentes.tabulador.js ``` | | inegicomponentes.tabulador.js | Archivo para incluir en el html usando ``` <script src="..."></script> ``` | | inegicomponentes.tabulador.mod.js | Arhivo para instalar desde npm e incluir como ``` import <paquete_nombre> from '...' ``` | <a name="item4"></a> ## Para configurar Webpack.config.js ```javascript const path = require('path'); const HtmlPlugin = require('html-webpack-plugin'); const JsonMinimizerPlugin = require("json-minimizer-webpack-plugin"); const configCommonjs = { // mode:'production', // cache:true, name:"commonjs", mode:'development', entry: { index:'./src/puente.js', }, output: { path:path.join(__dirname, '/dist/'), filename:'inegicomponentes.tabulador.js', }, resolve:{ extensions:['.js','.jsx'] }, module:{ rules:[ { test: /\.(js|jsx)$/, use:['babel-loader'], exclude:path.join(__dirname, "/node_modules/") }, { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }, { test: /\.json$/i, type: "json", }, ] }, optimization: { minimize: true, minimizer: [ new JsonMinimizerPlugin(), ] }, plugins:[ new HtmlPlugin({ template:'./src/index.html' }), // new BundleAnalyzerPlugin({}), ], devServer:{ port:9999, liveReload:true, // open:false host:'127.0.0.1', compress:false, } } // configuración para Modulo node js const configModulejs = { // mode:'production', // cache:true, name:"modulejs", mode:'development', entry: { index:'./src/puente.mod.js', }, output: { path:path.join(__dirname, '/dist/'), filename:'inegicomponentes.tabulador.mod.js', libraryTarget:"module" }, experiments: { outputModule: true, }, resolve:{ extensions:['.js','.jsx'] }, module:{ rules:[ { test: /\.(js|jsx)$/, use:['babel-loader'], exclude:path.join(__dirname, "/node_modules/") }, { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }, { test: /\.json$/i, type: "json", }, ] }, optimization: { minimize: true, minimizer: [ new JsonMinimizerPlugin(), ] } } module.exports = [configCommonjs, configModulejs]; ``` <a name="item5"></a> ### Uso de componentes #### > Llamado y ejecucion de componentes en Javascript y HTML Listado de componentes de Tabulador: - ```INEGIComponentes.Tabuladores.Basico("idElementoDom",parametros)``` ```html <script src=".../inegicomponentes.tabulador.js"></script> <div id="micomponente"></div> <script> var parametros = { title:"Población Total", columnas:[ {nombre:"Año"}, {nombre:"Población"}, ], datos:[ [{value:"2000"},{value:"97,483,412", decimales:0}], [{value:"2005"},{value:"103,263,388", decimales:0}], [{value:"2010"},{value:"112,336,538", decimales:0}], [{value:"2015"},{value:"119,938,473", decimales:0}], [{value:"2020"},{value:"126,014,024", decimales:0}] ] } INEGIComponentes.Tabuladores.Basico("micomponente",parametros) </script> ``` ### Llamado y ejecucion de componentes de proyecto de Nodejs Listado de componentes de Tabulador: - ```<Basico parametros={...}>``` - ```<TablaLayout parametros={...}>``` - ```<Columnas parametros={...}>``` - ```<Filas parametros={...}>``` ```javascript import {Basico} from 'inegicomponente.tabulador'; const App = () => { var config = { title:"Población Total", columnas:[ {nombre:"Año"}, {nombre:"Población"}, ], datos:[ [{value:"2000"},{value:"97,483,412", decimales:0}], [{value:"2005"},{value:"103,263,388", decimales:0}], [{value:"2010"},{value:"112,336,538", decimales:0}], [{value:"2015"},{value:"119,938,473", decimales:0}], [{value:"2020"},{value:"126,014,024", decimales:0}] ] } return ( <Basico parametros={config} /> ) } ```