a-chart
Version:
A-Chart is a ReactJS Library/Package to address all posibilities of Reporting Functionality
130 lines (112 loc) • 6.05 kB
Markdown
A-Chart is a customisable ReactJS Library/Package to address all posibilities of Reporting Functionality, Including different types data representations like Grid, Charts, etc...
<img src="https://drive.google.com/uc?export=view&id=1wB0RvjNc9IZPXnGu6Q6Z22WtHNk-eDrV" />
```js
var data=[] // Either Array of objects or URL which will give json data ;
var config={};
var data ="https://example.com/data";// You can give direct URL to get array of data
<List items={data} config={config} />
```
#### Any suggestions, Issues, Please write us to <a href="mailto:achartsprt@gmail.com?Subject=Support" target="_top">achartsprt@gmail.com</a>
### Usage (Working example).
```js
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
search:true,// Search functionality **optional // Default false
searchFields:"",// **IN DEVELOPMENT** Comma seprated string, Search will happen only against these columns **optional
"searchScope": false,// this will give an opption to choose fields to search in **optional // Default false
}
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"));
```
### Features Supported
- `Dynamic Data Grid` *Now Supports only for Array of Objects
- `Search Functionality`
- `Custom 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 if `mode:"Multi"`
- `getChangedItems()` -- This will return Cahnged items if `fieldsToEdit 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
- `export` -- export table data to xls or csv format `'csv' or 'xls'` default is 'xls'
- `getEditable` -- return true or false
- `getMode` -- return current mode of the table (Multi or None)
### Complete default config
```js
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....`
```css
/* 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}
```
Any bug fixes, feature request or feedback you can write us to <a href="mailto:achartsprt@gmail.com?Subject=Support" target="_top">achartsprt@gmail.com</a>, We are happy to help you.