Compare commits

..

9 Commits

Author SHA1 Message Date
Sean Landsman
7a5e15c8cd Release 23.0.2 - Initial Creation and Setup 2020-03-20 08:22:33 +00:00
Sean Landsman
bf18305c9a AG-3200 - add callback parameter to api.getFilterInstance 2020-03-19 10:35:16 +00:00
Sean Landsman
aef9c596b6 Merge branch 'b23.0.0' into latest 2020-03-17 14:38:43 +00:00
Sean Landsman
2d5fea4790 Release 23.0.0 2020-03-11 08:16:58 +00:00
Adrian Lowdon
c680bffd5a AG-3390 - fixed icon 2020-02-18 15:48:10 +00:00
Guilherme Lopes Portela
917277bfe1 updated boostrap 2020-02-03 22:38:26 +00:00
Sean Landsman
d2cb2149cc AG-3790 Vue component not found if not within immediate parent 2020-01-29 10:28:03 +00:00
Sean Landsman
0954bec3ee Utility script 2020-01-14 09:44:17 +00:00
Bernie Sumption
89d76cd1ac Moved from fresh theme to balham 2019-12-11 15:53:40 +00:00
9 changed files with 73 additions and 70 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
/node_modules /node_modules
/dist /dist
package-lock.json package-lock.json
*.nosync

View File

@@ -1,6 +1,6 @@
{ {
"name": "ag-grid-react-example", "name": "ag-grid-react-example",
"version": "22.1.0", "version": "23.0.2",
"description": "Example Reach applicaiton using ag-Grid.", "description": "Example Reach applicaiton using ag-Grid.",
"main": "dist/ag-grid-react-example.js", "main": "dist/ag-grid-react-example.js",
"scripts": { "scripts": {
@@ -38,7 +38,7 @@
}, },
"homepage": "http://www.ag-grid.com/", "homepage": "http://www.ag-grid.com/",
"devDependencies": { "devDependencies": {
"@ag-grid-community/core": "~22.1.0", "@ag-grid-community/core": "~23.0.0",
"@babel/core": "7.4.4", "@babel/core": "7.4.4",
"@babel/plugin-proposal-class-properties": "7.4.4", "@babel/plugin-proposal-class-properties": "7.4.4",
"@babel/plugin-proposal-function-bind": "7.2.0", "@babel/plugin-proposal-function-bind": "7.2.0",
@@ -62,9 +62,9 @@
"webpack-dev-server": "3.4.1" "webpack-dev-server": "3.4.1"
}, },
"dependencies": { "dependencies": {
"@ag-grid-enterprise/all-modules": "~22.1.0", "@ag-grid-enterprise/all-modules": "~23.0.0",
"@ag-grid-community/react": "~22.1.0", "@ag-grid-community/react": "~23.0.0",
"bootstrap": "4.3.1", "bootstrap": "4.4.1",
"d3": "4.9.1", "d3": "4.9.1",
"lodash": "4.17.11", "lodash": "4.17.11",
"react": "16.8.6", "react": "16.8.6",

View File

@@ -1,5 +1,5 @@
import React, {Component} from "react"; import React, { Component } from "react";
import {AgGridColumn, AgGridReact} from "@ag-grid-community/react"; import { AgGridColumn, AgGridReact } from "@ag-grid-community/react";
import RowDataFactory from "./RowDataFactory"; import RowDataFactory from "./RowDataFactory";
import DateComponent from "./DateComponent.jsx"; import DateComponent from "./DateComponent.jsx";
import SkillsCellRenderer from './SkillsCellRenderer.jsx'; import SkillsCellRenderer from './SkillsCellRenderer.jsx';
@@ -17,7 +17,7 @@ import "./RichGridDeclarativeExample.css";
// import {AllCommunityModules} from "@ag-grid-community/all-modules"; // import {AllCommunityModules} from "@ag-grid-community/all-modules";
// for enterprise features // for enterprise features
import {AllModules} from "@ag-grid-enterprise/all-modules"; import { AllModules } from "@ag-grid-enterprise/all-modules";
export default class RichGridDeclarativeExample extends Component { export default class RichGridDeclarativeExample extends Component {
constructor(props) { constructor(props) {
@@ -29,7 +29,7 @@ export default class RichGridDeclarativeExample extends Component {
rowData: new RowDataFactory().createRowData(), rowData: new RowDataFactory().createRowData(),
rowCount: null, rowCount: null,
icons: { icons: {
columnRemoveFromGroup: '<i class="fa fa-remove"/>', columnRemoveFromGroup: '<i class="fa fa-times"/>',
filter: '<i class="fa fa-filter"/>', filter: '<i class="fa fa-filter"/>',
sortAscending: '<i class="fa fa-long-arrow-down"/>', sortAscending: '<i class="fa fa-long-arrow-down"/>',
sortDescending: '<i class="fa fa-long-arrow-up"/>', sortDescending: '<i class="fa fa-long-arrow-up"/>',
@@ -57,7 +57,7 @@ export default class RichGridDeclarativeExample extends Component {
/* Demo related methods */ /* Demo related methods */
onToggleSidebar = (event) => { onToggleSidebar = (event) => {
this.setState({sideBar: event.target.checked}); this.setState({ sideBar: event.target.checked });
}; };
deselectAll() { deselectAll() {
@@ -65,7 +65,7 @@ export default class RichGridDeclarativeExample extends Component {
} }
onQuickFilterText = (event) => { onQuickFilterText = (event) => {
this.setState({quickFilterText: event.target.value}); this.setState({ quickFilterText: event.target.value });
}; };
onRefreshData = () => { onRefreshData = () => {
@@ -75,23 +75,25 @@ export default class RichGridDeclarativeExample extends Component {
}; };
invokeSkillsFilterMethod = () => { invokeSkillsFilterMethod = () => {
let skillsFilter = this.api.getFilterInstance('skills'); this.api.getFilterInstance('skills', (instance) => {
let componentInstance = skillsFilter.getFrameworkComponentInstance(); let componentInstance = instance.getFrameworkComponentInstance();
componentInstance.helloFromSkillsFilter(); componentInstance.helloFromSkillsFilter();
});
}; };
dobFilter = () => { dobFilter = () => {
let dateFilterComponent = this.api.getFilterInstance('dob'); this.api.getFilterInstance('dob', (dateFilterComponent) => {
dateFilterComponent.setModel({ dateFilterComponent.setModel({
type: 'equals', type: 'equals',
dateFrom: '2000-01-01' dateFrom: '2000-01-01'
}); });
// as the date filter is a React component, and its using setState internally, we need // as the date filter is a React component, and its using setState internally, we need
// to allow time for the state to be set (as setState is an async operation) // to allow time for the state to be set (as setState is an async operation)
// simply wait for the next tick // simply wait for the next tick
setTimeout(() => { setTimeout(() => {
this.api.onFilterChanged(); this.api.onFilterChanged();
});
}); });
}; };
@@ -128,58 +130,58 @@ export default class RichGridDeclarativeExample extends Component {
render() { render() {
return ( return (
<div style={{width: '900px'}}> <div style={{ width: '900px' }}>
<h1>Rich Grid with Declarative Markup Example</h1> <h1>Rich Grid with Declarative Markup Example</h1>
<div style={{display: "inline-block", width: "100%"}}> <div style={{ display: "inline-block", width: "100%" }}>
<div style={{float: "left"}}> <div style={{ float: "left" }}>
<b>Employees Skills and Contact Details: </b>{ this.state.rowCount } <b>Employees Skills and Contact Details: </b>{this.state.rowCount}
</div> </div>
</div> </div>
<div style={{marginTop: 10}}> <div style={{ marginTop: 10 }}>
<div> <div>
<span> <span>
Grid API: Grid API:
<button onClick={() => { <button onClick={() => {
this.api.selectAll() this.api.selectAll();
}} className="btn btn-primary">Select All</button> }} className="btn btn-primary">Select All</button>
<button onClick={() => { <button onClick={() => {
this.api.deselectAll() this.api.deselectAll();
}} className="btn btn-primary">Clear Selection</button> }} className="btn btn-primary">Clear Selection</button>
</span> </span>
<span style={{float: "right"}}> <span style={{ float: "right" }}>
Column API: Column API:
<button onClick={() => { <button onClick={() => {
this.columnApi.setColumnVisible('country', false) this.columnApi.setColumnVisible('country', false);
}} className="btn btn-primary">Hide Country Column</button> }} className="btn btn-primary">Hide Country Column</button>
<button onClick={() => { <button onClick={() => {
this.columnApi.setColumnVisible('country', true) this.columnApi.setColumnVisible('country', true);
}} className="btn btn-primary">Show Country Column</button> }} className="btn btn-primary">Show Country Column</button>
</span> </span>
</div> </div>
<div style={{display: "inline-block", width: "100%", marginTop: 10, marginBottom: 10}}> <div style={{ display: "inline-block", width: "100%", marginTop: 10, marginBottom: 10 }}>
<div style={{float: "left"}}> <div style={{ float: "left" }}>
<button onClick={this.onRefreshData} className="btn btn-primary">Refresh Data</button> <button onClick={this.onRefreshData} className="btn btn-primary">Refresh Data</button>
</div> </div>
<div style={{float: "right"}}> <div style={{ float: "right" }}>
Filter API: Filter API:
<button onClick={this.invokeSkillsFilterMethod} <button onClick={this.invokeSkillsFilterMethod}
className="btn btn-primary">Invoke Skills Filter Method className="btn btn-primary">Invoke Skills Filter Method
</button> </button>
<button onClick={this.dobFilter} className="btn btn-primary">DOB equals to 01/01/2000 <button onClick={this.dobFilter} className="btn btn-primary">DOB equals to 01/01/2000
</button> </button>
</div> </div>
</div> </div>
<div style={{display: "inline-block", width: "100%", marginTop: 10, marginBottom: 10}}> <div style={{ display: "inline-block", width: "100%", marginTop: 10, marginBottom: 10 }}>
<div style={{float: "left"}}> <div style={{ float: "left" }}>
<label htmlFor="sideBarToggle">Show Side Bar&nbsp;</label> <label htmlFor="sideBarToggle">Show Side Bar&nbsp;</label>
<input type="checkbox" id="sideBarToggle" onChange={this.onToggleSidebar} style={{marginRight: 5}}/> <input type="checkbox" id="sideBarToggle" onChange={this.onToggleSidebar} style={{ marginRight: 5 }} />
</div> </div>
<div style={{float: "right", marginLeft: 20}}> <div style={{ float: "right", marginLeft: 20 }}>
<label htmlFor="quickFilter">Quick Filter:&nbsp;</label> <label htmlFor="quickFilter">Quick Filter:&nbsp;</label>
<input type="text" id="quickFilter" onChange={this.onQuickFilterText} placeholder="Type text to filter..."/> <input type="text" id="quickFilter" onChange={this.onQuickFilterText} placeholder="Type text to filter..." />
</div> </div>
</div> </div>
<div style={{height: 400, width: 900}} className="ag-theme-balham"> <div style={{ height: 400, width: 900 }} className="ag-theme-balham">
<AgGridReact <AgGridReact
// listening for events // listening for events
onGridReady={this.onGridReady} onGridReady={this.onGridReady}
@@ -219,36 +221,36 @@ export default class RichGridDeclarativeExample extends Component {
menuIcon: 'fa-bars' menuIcon: 'fa-bars'
} }
}}> }}>
<AgGridColumn headerName="#" width={30} <AgGridColumn headerName="#" width={40}
checkboxSelection sortable={false} suppressMenu filter={false} pinned> checkboxSelection sortable={false} suppressMenu filter={false} pinned>
</AgGridColumn> </AgGridColumn>
<AgGridColumn headerName="Employee" headerGroupComponentFramework={HeaderGroupComponent}> <AgGridColumn headerName="Employee" headerGroupComponentFramework={HeaderGroupComponent}>
<AgGridColumn field="name" width={150} <AgGridColumn field="name" width={150}
cellEditorFramework={NameCellEditor} cellEditorFramework={NameCellEditor}
enableRowGroup enablePivot pinned editable/> enableRowGroup enablePivot pinned editable />
<AgGridColumn field="country" width={150} <AgGridColumn field="country" width={150}
cellRenderer={RichGridDeclarativeExample.countryCellRenderer} cellRenderer={RichGridDeclarativeExample.countryCellRenderer}
filterParams={{ filterParams={{
cellRenderer: RichGridDeclarativeExample.countryCellRenderer, cellRenderer: RichGridDeclarativeExample.countryCellRenderer,
cellHeight: 20 cellHeight: 20
}} }}
enableRowGroup enablePivot pinned editable/> enableRowGroup enablePivot pinned editable />
<AgGridColumn field="dob" width={175} headerName="DOB" filter="agDateColumnFilter" <AgGridColumn field="dob" width={175} headerName="DOB" filter="agDateColumnFilter"
pinned columnGroupShow="open" pinned columnGroupShow="open"
cellRenderer={RichGridDeclarativeExample.dateCellRenderer}/> cellRenderer={RichGridDeclarativeExample.dateCellRenderer} />
</AgGridColumn> </AgGridColumn>
<AgGridColumn headerName="IT Skills"> <AgGridColumn headerName="IT Skills">
<AgGridColumn field="skills" width={120} enableRowGroup enablePivot sortable={false} <AgGridColumn field="skills" width={120} enableRowGroup enablePivot sortable={false}
cellRendererFramework={SkillsCellRenderer} cellRendererFramework={SkillsCellRenderer}
filterFramework={SkillsFilter}/> filterFramework={SkillsFilter} />
<AgGridColumn field="proficiency" width={160} enableValue <AgGridColumn field="proficiency" width={160} enableValue
cellRendererFramework={ProficiencyCellRenderer} cellRendererFramework={ProficiencyCellRenderer}
filterFramework={ProficiencyFilter}/> filterFramework={ProficiencyFilter} />
</AgGridColumn> </AgGridColumn>
<AgGridColumn headerName="Contact"> <AgGridColumn headerName="Contact">
<AgGridColumn field="mobile" width={150} filter="text"/> <AgGridColumn field="mobile" width={150} filter="text" />
<AgGridColumn field="landline" width={150} filter="text"/> <AgGridColumn field="landline" width={150} filter="text" />
<AgGridColumn field="address" width={500} filter="text"/> <AgGridColumn field="address" width={500} filter="text" />
</AgGridColumn> </AgGridColumn>
</AgGridReact> </AgGridReact>
</div> </div>

View File

@@ -5,7 +5,7 @@ import React from 'react';
import LargeGrid from './largeGrid.jsx'; import LargeGrid from './largeGrid.jsx';
import '@ag-grid-community/core/dist/styles/ag-grid.css'; import '@ag-grid-community/core/dist/styles/ag-grid.css';
import '@ag-grid-community/core/dist/styles/ag-theme-fresh.css'; import '@ag-grid-community/core/dist/styles/ag-theme-balham.css';
// waiting for dom to load before booting react. we could alternatively // waiting for dom to load before booting react. we could alternatively
// put the index.js reference at the end fo the index.html, but i prefer this way. // put the index.js reference at the end fo the index.html, but i prefer this way.

View File

@@ -63,7 +63,7 @@ export default class MyApp extends Component {
render() { render() {
return ( return (
<div style={{height: '100%'}} className="ag-theme-fresh"> <div style={{height: '100%'}} className="ag-theme-balham">
<AgGridReact columnDefs={this.state.columnDefs} rowData={this.state.rowData} modules={AllModules}/> <AgGridReact columnDefs={this.state.columnDefs} rowData={this.state.rowData} modules={AllModules}/>
</div> </div>
); );

View File

@@ -61,7 +61,7 @@ class FxQuoteMatrix extends Component {
render() { render() {
return ( return (
<div style={{height: 410, width: 800}} <div style={{height: 410, width: 800}}
className="ag-theme-fresh"> className="ag-theme-balham">
<AgGridReact <AgGridReact
// properties // properties
columnDefs={this.state.columnDefs} columnDefs={this.state.columnDefs}

View File

@@ -152,7 +152,7 @@ export default class extends Component {
render() { render() {
return ( return (
<div style={{height: 410, width: 800}} <div style={{height: 410, width: 800}}
className="ag-theme-fresh"> className="ag-theme-balham">
<AgGridReact <AgGridReact
// properties // properties
columnDefs={this.state.columnDefs} columnDefs={this.state.columnDefs}

View File

@@ -63,7 +63,7 @@ class TopMoversGrid extends Component {
render() { render() {
return ( return (
<div style={{height: 410, width: 400}} <div style={{height: 410, width: 400}}
className="ag-theme-fresh"> className="ag-theme-balham">
<AgGridReact <AgGridReact
// properties // properties
columnDefs={this.state.columnDefs} columnDefs={this.state.columnDefs}

View File

@@ -9,7 +9,7 @@ import StoreService from './services/StoreService';
import TraderDashboard from "./components/TraderDashboard.jsx"; import TraderDashboard from "./components/TraderDashboard.jsx";
import "@ag-grid-enterprise/all-modules/dist/styles/ag-grid.css"; import "@ag-grid-enterprise/all-modules/dist/styles/ag-grid.css";
import "@ag-grid-enterprise/all-modules/dist/styles/ag-theme-fresh.css"; import "@ag-grid-enterprise/all-modules/dist/styles/ag-theme-balham.css";
let store = StoreService.STORE; let store = StoreService.STORE;