a-react-grid
v1.0.29
Published
A-Chart is a ReactJS Library/Package to address all posibilities of Reporting Functionality
Downloads
16
Maintainers
Readme
A-Chart is a customisable ReactJS Library/Package to address all posibilities of Reporting Functionality, Including different types data representations like Grid, Charts, etc... Any bug fixes, feature request or feedback you can write us to [email protected], We are happy to help you.
Also it is easy to configure and lots of stunning featurs are in pipeline.
Feature in Development:
#Editable Columns fine tune .
Completed Features (Available)
Dynamic Data Grid
*Now Supports only for Array of ObjectsCustom formating of column values
Hide and Show Columns
Editable Columns
Get changed value sets
Column Header Managing
Column Sorting
Analytical Columns( Show sum of numeric fields if configured)
Excel Or CSV export
Multi Selection mode (User can select specfic items and get it for custom data processing)
Public Methods (Component Scope)
getSelectedItems()
-- This will return selected items ifmode:"Multi"
getChangedItems()
-- This will return Cahnged items iffieldsToEdit has configured"
setEditable(true/false)
-- this will enable/disable edit functionality of fields which are configured,Default false
setMode(Multi/false)
-- this will enable/disable selection of items
Usage (Working example).
import React, { Component } from 'react';
import List from 'a-chart'
class App extends React.Component {
render() {
const data = [
{ id: 1, make: "Toyota", model: "RAV4", price: 26500, cur: "USD" },
{ id: 2, make: "Toyota", model: "Camry Hybrid", price: 27562, cur: "USD" },
{ id: 3, make: "Mazda", model: "CX-5", price: 32345, cur: "USD" },
{ id: 4, make: "Mazda", model: "CX-3", price: 20390, cur: "USD" }
];
var config = {
width:"555",// width of chart
headers: ["Sl. No.", "Make", "Model", "Price", "Currency"],
headerConfig: {"id":{width:"80px", align:"center"},"price":{align:"right"}},// configure style properties of header with and align etc (more fetures will support)
formatters: {
price: function (val) {
return val.toFixed(2) + " " + this.cur;
}
},
columnsToHide: "cur", //Comma seprated string, to hide specific column from grid, **optional
columnsForSort: "make,model,price", //Comma seprated string, to enable sorting for columns **optional
analyticalColumns: "price", //Comma seprated string, to show sum of numerical columns **optional
rowFocus: false, // Default false **optional
export: "xls",// export data to xls or csv (now will support only one type in single config) Default false **optional
exportFileName: "DataExport",
mode: "Multi", //multi,single,none Default none **optional,
fieldsToEdit:"make,model",//Comma seprated string, these fields can edit from grid **optional
}
function getSelected() {
var items = List.getSelectedItems();
alert(items);
}
return (<div>
<button onClick={getSelected}>Get Selected Items</button><br /><br />
<List items={data} config={config} />
</div>);
}
}
render(<App />, document.getElementById("root"));
Complete default config
defConfig = {
header: true, // Default true
headers: [], // **optional
formatters:{}, //**optional
//Type:collection of ojects// property of dsiplay array
//formatters are giving a option to apply your formatting logic(display format like amount and currency format) while rendering cells.
//Also inside the function you will get hte complete scope of the cuurent row in "this" Object
//Example: name is column property
// formatters: {
// name: function(val){
// return this.col2+"---"+val
// }
// }
columnsToHide: "", //Comma seprated string, to hide specific columns from grid **optional
columnsForSort: "", //Comma seprated string, to enable sorting for columns **optional
analyticalColumns:"", //Comma seprated string, to show sum of numerical columns **optional
rowFocus:false, // Default false **optional
export: "xls",// export data to xls or csv (now will support only one type in single config) Default false **optional
}
How to change style of grid(CSS config)
You have full control over css to change display, below are some exmaples
Explore more....
/* How to change main table display*/
.aChart table.achart-grid{ margin: 0px; border-collapse: collapse; border-radius: 5px; width: auto;
table-layout: fixed;font-family:inherit; font-size: 85%}
/* How to change main table header style*/
.aChart .achart-gridHeader th {
}
/* class to change sorting icons */
.aChart .achart-column-header-sort::after {
position: absolute; content: '\21C5';right:2px;
top: 22%;cursor: pointer}