diff --git a/11-tree/a-basic-tree/package-lock.json b/11-tree/a-basic-tree/package-lock.json
index c575830..48282e6 100644
--- a/11-tree/a-basic-tree/package-lock.json
+++ b/11-tree/a-basic-tree/package-lock.json
@@ -78,6 +78,11 @@
"resolved": "https://registry.npmjs.org/ag-grid/-/ag-grid-15.0.0.tgz",
"integrity": "sha1-cwSNgSpDVHSU1D3H9culM0Y/zD4="
},
+ "ag-grid-enterprise": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/ag-grid-enterprise/-/ag-grid-enterprise-15.0.0.tgz",
+ "integrity": "sha1-AkDq1UAPGvPwdT9JE3vEg2o7kns="
+ },
"ag-grid-react": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/ag-grid-react/-/ag-grid-react-15.0.0.tgz",
diff --git a/11-tree/a-basic-tree/package.json b/11-tree/a-basic-tree/package.json
index b19e70f..df014a2 100644
--- a/11-tree/a-basic-tree/package.json
+++ b/11-tree/a-basic-tree/package.json
@@ -4,6 +4,7 @@
"private": true,
"dependencies": {
"ag-grid": "^15.0.0",
+ "ag-grid-enterprise": "^15.0.0",
"ag-grid-react": "^15.0.0",
"autoprefixer": "7.1.6",
"babel-core": "6.26.0",
diff --git a/11-tree/a-basic-tree/src/App.js b/11-tree/a-basic-tree/src/App.js
index 67824e0..17d153b 100644
--- a/11-tree/a-basic-tree/src/App.js
+++ b/11-tree/a-basic-tree/src/App.js
@@ -1,11 +1,124 @@
import React, { Component } from 'react';
-import Tree from './Tree';
-import './App.css';
+import { AgGridReact } from 'ag-grid-react';
+import 'ag-grid/dist/styles/ag-grid.css';
+import 'ag-grid/dist/styles/ag-theme-material.css';
+import 'ag-grid-enterprise';
+
+import {LicenseManager} from "ag-grid-enterprise/main";
+// The tree view from ag-Grid requires an enterprise license and a product key
+// Pricing: https://www.ag-grid.com/license-pricing.php
+// Trial: https://www.ag-grid.com/start-trial.php
+LicenseManager.setLicenseKey("your license key");
+
+const data = [
+ {
+ orgHierarchy: ['Erica Rogers'],
+ jobTitle: 'CEO',
+ employmentType: 'Permanent',
+ email: 'erica.rogers@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett'],
+ jobTitle: 'Exec. Vice President',
+ employmentType: 'Permanent',
+ email: 'malcolm.barrett@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker'],
+ jobTitle: 'Director of Operations',
+ employmentType: 'Permanent',
+ email: 'esther.baker@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson'],
+ jobTitle: 'Fleet Coordinator',
+ employmentType: 'Permanent',
+ email: 'brittany.hanson@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson', 'Leah Flowers'],
+ jobTitle: 'Parts Technician',
+ employmentType: 'Contract',
+ email: 'leah.flowers@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson', 'Tammy Sutton'],
+ jobTitle: 'Service Technician',
+ employmentType: 'Contract',
+ email: 'tammy.sutton@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Derek Paul'],
+ jobTitle: 'Inventory Control',
+ employmentType: 'Permanent',
+ email: 'derek.paul@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland'],
+ jobTitle: 'VP Sales',
+ employmentType: 'Permanent',
+ email: 'francis.strickland@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Morris Hanson'],
+ jobTitle: 'Sales Manager',
+ employmentType: 'Permanent',
+ email: 'morris.hanson@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Todd Tyler'],
+ jobTitle: 'Sales Executive',
+ employmentType: 'Contract',
+ email: 'todd.tyler@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Bennie Wise'],
+ jobTitle: 'Sales Executive',
+ employmentType: 'Contract',
+ email: 'bennie.wise@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Joel Cooper'],
+ jobTitle: 'Sales Executive',
+ employmentType: 'Permanent',
+ email: 'joel.cooper@acme.com'
+ }
+];
class App extends Component {
- render() {
+ columns = [
+ {
+ field: 'jobTitle'
+ },
+ {
+ field: 'employmentType'
+ }
+ ]
+
+ getDataPath = (data) => {
+ return data.orgHierarchy;
+ }
+
+ autoGroupColumnDef = {
+ headerName: 'Organisation Hierarchy',
+ width: 300,
+ cellRendererParams: {
+ suppressCount: true
+ }
+ }
+
+ render () {
return (
-
+
);
}
}
diff --git a/11-tree/a-basic-tree/src/Tree.js b/11-tree/a-basic-tree/src/Tree.js
deleted file mode 100644
index 5b239e2..0000000
--- a/11-tree/a-basic-tree/src/Tree.js
+++ /dev/null
@@ -1,115 +0,0 @@
-import React, { Component } from 'react';
-import { AgGridReact } from 'ag-grid-react';
-import 'ag-grid/dist/styles/ag-grid.css';
-import 'ag-grid/dist/styles/ag-theme-material.css';
-import 'ag-grid/dist/styles/theme-material.css';
-class Tree extends Component {
- columns = [
- {
- field: 'jobTitle'
- },
- {
- field: 'employmentType'
- }
- ]
- getDataPath = (data) => {
- return data.orgHierarchy;
- }
- autoGroupColumnDef = {
- headerName: 'Organisation Hierarchy',
- cellRendererParams: {
- suppressCount: true
- }
- }
- render () {
- return (
-
- );
- }
-}
-const data = [
- {
- orgHierarchy: ['Erica Rogers'],
- jobTitle: 'CEO',
- employmentType: 'Permanent',
- email: 'erica.rogers@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett'],
- jobTitle: 'Exec. Vice President',
- employmentType: 'Permanent',
- email: 'malcolm.barrett@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker'],
- jobTitle: 'Director of Operations',
- employmentType: 'Permanent',
- email: 'esther.baker@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson'],
- jobTitle: 'Fleet Coordinator',
- employmentType: 'Permanent',
- email: 'brittany.hanson@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson', 'Leah Flowers'],
- jobTitle: 'Parts Technician',
- employmentType: 'Contract',
- email: 'leah.flowers@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson', 'Tammy Sutton'],
- jobTitle: 'Service Technician',
- employmentType: 'Contract',
- email: 'tammy.sutton@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Derek Paul'],
- jobTitle: 'Inventory Control',
- employmentType: 'Permanent',
- email: 'derek.paul@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland'],
- jobTitle: 'VP Sales',
- employmentType: 'Permanent',
- email: 'francis.strickland@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Morris Hanson'],
- jobTitle: 'Sales Manager',
- employmentType: 'Permanent',
- email: 'morris.hanson@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Todd Tyler'],
- jobTitle: 'Sales Executive',
- employmentType: 'Contract',
- email: 'todd.tyler@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Bennie Wise'],
- jobTitle: 'Sales Executive',
- employmentType: 'Contract',
- email: 'bennie.wise@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Joel Cooper'],
- jobTitle: 'Sales Executive',
- employmentType: 'Permanent',
- email: 'joel.cooper@acme.com'
- }
-];
-
-export default Tree;
-
diff --git a/11-tree/b-advanced-tree/package-lock.json b/11-tree/b-advanced-tree/package-lock.json
index 35c0441..39dd357 100644
--- a/11-tree/b-advanced-tree/package-lock.json
+++ b/11-tree/b-advanced-tree/package-lock.json
@@ -78,6 +78,11 @@
"resolved": "https://registry.npmjs.org/ag-grid/-/ag-grid-15.0.0.tgz",
"integrity": "sha1-cwSNgSpDVHSU1D3H9culM0Y/zD4="
},
+ "ag-grid-enterprise": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/ag-grid-enterprise/-/ag-grid-enterprise-15.0.0.tgz",
+ "integrity": "sha1-AkDq1UAPGvPwdT9JE3vEg2o7kns="
+ },
"ag-grid-react": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/ag-grid-react/-/ag-grid-react-15.0.0.tgz",
diff --git a/11-tree/b-advanced-tree/package.json b/11-tree/b-advanced-tree/package.json
index cbc53cb..19feaf6 100644
--- a/11-tree/b-advanced-tree/package.json
+++ b/11-tree/b-advanced-tree/package.json
@@ -4,6 +4,7 @@
"private": true,
"dependencies": {
"ag-grid": "^15.0.0",
+ "ag-grid-enterprise": "^15.0.0",
"ag-grid-react": "^15.0.0",
"autoprefixer": "7.1.6",
"babel-core": "6.26.0",
diff --git a/11-tree/b-advanced-tree/src/App.js b/11-tree/b-advanced-tree/src/App.js
index 67824e0..9135766 100644
--- a/11-tree/b-advanced-tree/src/App.js
+++ b/11-tree/b-advanced-tree/src/App.js
@@ -1,11 +1,133 @@
import React, { Component } from 'react';
-import Tree from './Tree';
-import './App.css';
+import { AgGridReact } from 'ag-grid-react';
+import 'ag-grid/dist/styles/ag-grid.css';
+import 'ag-grid/dist/styles/ag-theme-material.css';
+import 'ag-grid-enterprise';
+
+import {LicenseManager} from "ag-grid-enterprise/main";
+// The tree view from ag-Grid requires an enterprise license and a product key
+// Pricing: https://www.ag-grid.com/license-pricing.php
+// Trial: https://www.ag-grid.com/start-trial.php
+LicenseManager.setLicenseKey("your license key");
+
+const data = [
+ {
+ orgHierarchy: ['Erica Rogers'],
+ jobTitle: 'CEO',
+ employmentType: 'Permanent',
+ email: 'erica.rogers@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett'],
+ jobTitle: 'Exec. Vice President',
+ employmentType: 'Permanent',
+ email: 'malcolm.barrett@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker'],
+ jobTitle: 'Director of Operations',
+ employmentType: 'Permanent',
+ email: 'esther.baker@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson'],
+ jobTitle: 'Fleet Coordinator',
+ employmentType: 'Permanent',
+ email: 'brittany.hanson@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson', 'Leah Flowers'],
+ jobTitle: 'Parts Technician',
+ employmentType: 'Contract',
+ email: 'leah.flowers@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson', 'Tammy Sutton'],
+ jobTitle: 'Service Technician',
+ employmentType: 'Contract',
+ email: 'tammy.sutton@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Derek Paul'],
+ jobTitle: 'Inventory Control',
+ employmentType: 'Permanent',
+ email: 'derek.paul@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland'],
+ jobTitle: 'VP Sales',
+ employmentType: 'Permanent',
+ email: 'francis.strickland@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Morris Hanson'],
+ jobTitle: 'Sales Manager',
+ employmentType: 'Permanent',
+ email: 'morris.hanson@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Todd Tyler'],
+ jobTitle: 'Sales Executive',
+ employmentType: 'Contract',
+ email: 'todd.tyler@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Bennie Wise'],
+ jobTitle: 'Sales Executive',
+ employmentType: 'Contract',
+ email: 'bennie.wise@acme.com'
+ },
+ {
+ orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Joel Cooper'],
+ jobTitle: 'Sales Executive',
+ employmentType: 'Permanent',
+ email: 'joel.cooper@acme.com'
+ }
+];
class App extends Component {
- render() {
+ columns = [
+ {
+ field: 'jobTitle',
+ editable: true
+ },
+ {
+ field: 'employmentType'
+ },
+ {
+ field: 'email',
+ cellRenderer: params => {
+ return `${params.value}`;
+ }
+ }
+ ]
+
+ getDataPath = (data) => {
+ return data.orgHierarchy;
+ }
+ autoGroupColumnDef = {
+ headerName: 'Organisation Hierarchy',
+ width: 300,
+ pinned: 'left',
+ editable: true,
+ cellRendererParams: {
+ suppressCount: true
+ }
+ }
+
+ render () {
return (
-
+
);
}
}
diff --git a/11-tree/b-advanced-tree/src/Tree.js b/11-tree/b-advanced-tree/src/Tree.js
deleted file mode 100644
index 065e39b..0000000
--- a/11-tree/b-advanced-tree/src/Tree.js
+++ /dev/null
@@ -1,126 +0,0 @@
-import React, { Component } from 'react';
-import { AgGridReact } from 'ag-grid-react';
-import 'ag-grid/dist/styles/ag-grid.css';
-import 'ag-grid/dist/styles/ag-theme-material.css';
-import 'ag-grid/dist/styles/theme-material.css';
-class Tree extends Component {
- columns = [
- {
- field: 'jobTitle',
- editable: true
- },
- {
- field: 'employmentType'
- },
- {
- field: 'email',
- cellRenderer: params => {
- return `${params.value}`;
- }
- }
- ]
- getDataPath = (data) => {
- return data.orgHierarchy;
- }
- autoGroupColumnDef = {
- headerName: 'Organisation Hierarchy',
- pinned: 'left',
- editable: true,
- cellRendererParams: {
- suppressCount: true
- }
- }
- render () {
- return (
-
- );
- }
-}
-
-const data = [
- {
- orgHierarchy: ['Erica Rogers'],
- jobTitle: 'CEO',
- employmentType: 'Permanent',
- email: 'erica.rogers@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett'],
- jobTitle: 'Exec. Vice President',
- employmentType: 'Permanent',
- email: 'malcolm.barrett@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker'],
- jobTitle: 'Director of Operations',
- employmentType: 'Permanent',
- email: 'esther.baker@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson'],
- jobTitle: 'Fleet Coordinator',
- employmentType: 'Permanent',
- email: 'brittany.hanson@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson', 'Leah Flowers'],
- jobTitle: 'Parts Technician',
- employmentType: 'Contract',
- email: 'leah.flowers@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Brittany Hanson', 'Tammy Sutton'],
- jobTitle: 'Service Technician',
- employmentType: 'Contract',
- email: 'tammy.sutton@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Esther Baker', 'Derek Paul'],
- jobTitle: 'Inventory Control',
- employmentType: 'Permanent',
- email: 'derek.paul@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland'],
- jobTitle: 'VP Sales',
- employmentType: 'Permanent',
- email: 'francis.strickland@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Morris Hanson'],
- jobTitle: 'Sales Manager',
- employmentType: 'Permanent',
- email: 'morris.hanson@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Todd Tyler'],
- jobTitle: 'Sales Executive',
- employmentType: 'Contract',
- email: 'todd.tyler@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Bennie Wise'],
- jobTitle: 'Sales Executive',
- employmentType: 'Contract',
- email: 'bennie.wise@acme.com'
- },
- {
- orgHierarchy: ['Erica Rogers', 'Malcolm Barrett', 'Francis Strickland', 'Joel Cooper'],
- jobTitle: 'Sales Executive',
- employmentType: 'Permanent',
- email: 'joel.cooper@acme.com'
- }
-];
-
-export default Tree;
-