This example shows how to create custom groups.
In the demo, the salesDate field is programmatically grouped by time period.
This is done in the grouping Grid Layout Engine property.
The time periods are defined with a function in the converter property and the display is defined in the header property.
<!DOCTYPE html>
<html lang="en">
<head>
<base href="/dataviewsjs/demos/en/sample/Features/Grouping/CustomizedGroup/purejs/" />
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="keywords" content="grouping, aggregates, aggregation" />
<meta name="description" content="This example shows how to create custom groups." />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Customized Group | Features | MESCIUS DataViewsJS JavaScript Demos</title>
<link href="/dataviewsjs/demos/node_modules/normalize.css/normalize.css" rel="stylesheet" type="text/css" />
<link href="/dataviewsjs/demos/static/css/base.css" rel="stylesheet" type="text/css" />
<link href="/dataviewsjs/demos/static/dataviews/gc.dataviews.core.min.css" rel="stylesheet" type="text/css" />
<link href="/dataviewsjs/demos/static/dataviews/gc.dataviews.grid.min.css" rel="stylesheet" type="text/css" />
<link href="styles.css" rel="stylesheet" type="text/css" />
<script src="/dataviewsjs/demos/static/js/app-polyfills.min.js" type="text/javascript"></script>
<script type="text/javascript">
window.process = {
env: {
NODE_ENV: 'production',
USE_NPM: false,
USE_CDN: false,
SITE_ROOT: '/dataviewsjs/demos',
FRAMEWORK: 'purejs',
DVJS_LICENSE_KEY:
'E348418822993781#B0EWvwY4dNNVQqJHUDpFROVWe5ZWNYFlVQFmRsJWRht4Z6lDO4Vla7YUaXhEWxd7Z5YXMuRnY7tWTQRHSlVnaYlXNhlEOpdkZ0FHWYJ5QKd6VXN5aR3ieGhUav9kZTBXWahkYBhEVutmZ72CbjdlZvV5TVdGdiplQsZXe95kUmNmZVF5cJ3mcypWNyx4UydESE3UblxGZyE7KQ94R4BjbUxUewsiaoREMxRDNllWREV6Voh4Q4dDZPRjWrIzUJl4TERXcQZWMHp4Sp9WaMZzN5o6StJmVDJXcwIVVmR6UMVGOlxUW8RmTxZDZTJWVN5GZqJHZuVDMkVGSW3WdxNzKCdDdSB7TzY7cqlnMU5GVyNzNP9WMyhDRvEEOFdkQORDM4dFVlFFWqFWSyMjNQJiOiMlIsISQyIkQ9YjQxIiOigkIsUTM7YjNxYTM0IicfJye&Qf35VfikFVVljI0IyQiwiIxYHITp4c7VWaWFGdhRkI0IiTis7W0ICZyBlIsIiNxUTN6ADI8EDMxMjMwIjI0ICdyNkIsIyc59yc5l6YzVWbuoCLwpmLzVXajNXZt9iKs2WauMXdpN6cl5mLqwSbvNmLzVXajNXZt9iKsAnau26YuMXdpN6cl5mLqwSbvNmL6VGZ9RXajVGchJ7ZuoCLuNmLt36YukHdpNWZwFmcn9iKs46bj9Se4l6YlBXYydmLqwicr9ybj9Se4l6YlBXYydmLqwCcq9ybj9Se4l6YlBXYydmLqIiOiMXbEJCLiMVVJN4UF5kI0ISYONkIsUWdyRnOiwmdFJCLiEDO7MTO9IjM8gTM4gDNzIiOiQWSisnOiQkIsISP3EkVxBVUHFDMplzLlVUdGd7cI9UeIt4SshESzV7NvY7ZxlDOuNTb5tzLr',
SJS_LICENSE_KEY:
'E518585142165236#B0wm4nx4QzdlTHRTSOFzcvVnaJdjSnNEeXdTMUtSUzk6bU94QuVXNwZVZjd4SzYjcadXRIVEMzEXTThkVyR7R85UayoHZZBTYQ5mZyh4Shd6VxFXazF4cBNGRG5WTvUGTsV4T6knQYRzKxxUdk9EarplU7d6VLF6KIR7bPJ5N6ZUMWZWaURGRKRDbLJDN5YjSN5mUoxmaxonSD56LEh7Y7RXenpmTvomevZlV9dkaysCO7hTRQFHcGRWQyc5LI9kQmB7QwR4Z7ZHOR3CSXp6SiFWYzFXeXZUSp94K8VDTkFjdwl4KptSYlRWcDxmNE5kS6kzdrkVcNJXROVGbLJkcTNGRzIER8tmd4YGNhh7dxAnMvIHRv46VtBXS4U5KvJ6dZJ6M5p4TxIjd9I5QSpXTTV6SDZXb7lzaL56ZiojITJCLikTQxUTQFV4NiojIIJCLyETO7UzM7kTO0IicfJye&Qf35VfikkR9IkI0IyQiwiIyEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsISNwkTN6ADI8EDMxMjMwIjI0ICdyNkIsIyc59yc5l6YzVWbuoCLwpmLzVXajNXZt9iKs2WauMXdpN6cl5mLqwSbvNmLzVXajNXZt9iKsAnau26YuMXdpN6cl5mLqwSbvNmL6VGZ9RXajVGchJ7ZuoCLuNmLt36YukHdpNWZwFmcn9iKs46bj9Se4l6YlBXYydmLqwicr9ybj9Se4l6YlBXYydmLqwCcq9ybj9Se4l6YlBXYydmLqIiOiMXbEJCLiMVVJN4UF5kI0ISYONkIsUWdyRnOiwmdFJCLiYzMyUjNxIDNxUDO5gTM5IiOiQWSiwSfdtlOicGbmJCLlNHbhZmOiI7ckJye0ICbuFkI1pjIEJCLi4TPRtGOhtWWEFWd4IDOLRVRvx4SyMGcDhTW6n4ep',
},
};
</script>
<script src="/dataviewsjs/demos/static/dataviews/gc.dataviews.common.min.js" type="text/javascript"></script>
<script src="/dataviewsjs/demos/static/dataviews/gc.dataviews.core.min.js" type="text/javascript"></script>
<script src="/dataviewsjs/demos/static/dataviews/gc.dataviews.grid.min.js" type="text/javascript"></script>
<script src="/dataviewsjs/demos/static/js/license.js" type="text/javascript"></script>
</head>
<body class="theme-default">
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="grid" class="grid"></div>
<script src="data.js" type="text/javascript"></script>
<script src="app.js" type="text/javascript"></script>
</body>
</html>
var cols = [
{
id: 'salesDate',
caption: 'Sales Date',
dataField: 'salesDate',
format: 'yyyy/MM/dd',
dataType: 'date',
width: 120,
},
{
id: 'salesperson',
caption: 'Salesperson',
dataField: 'salesperson',
width: 120,
},
{
id: 'productName',
caption: 'Product Name',
dataField: 'productName',
width: 120,
},
{
id: 'unitPrice',
caption: 'Unit Price',
dataField: 'unitPrice',
format: '$#,##0',
width: 120,
},
{
id: 'quantity',
caption: 'Quantity',
dataField: 'quantity',
width: 120,
},
];
function toOADate(date) {
var epoch = new Date(1899, 11, 30);
var msPerDay = 8.64e7;
var v = (-1 * (epoch - date)) / msPerDay; // Deal with dates prior to 1899-12-30 00:00:00
var dec = v - Math.floor(v);
if (v < 0 && dec) {
v = Math.floor(v) - dec;
}
return v;
}
var now = Date.now();
var oneDayMilliseconds = 24 * 60 * 60 * 1000;
for (var i = 0, length = data.length; i < length; i++) {
data[i].salesDate = toOADate(now - i * oneDayMilliseconds);
}
var today = new Date(now);
var weeks = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var totalDayCount = Math.ceil(today / oneDayMilliseconds);
var day = today.getDay();
var layout = new GC.DataViews.GridLayout({
showRowHeader: false,
allowGrouping: false,
allowColumnReorder: false,
allowColumnResize: false,
grouping: [
{
field: 'salesDate',
header: {
template:
'<div class="header-cell">\n <span class="gc-grouping-toggle {{=it.groupStatus}}" style="margin-left:{{=it.margin+4}}px;">\n <svg class="expand-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M7,10L12,15L17,10H7Z" /></svg>\n <svg class="collapse-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M10,17L15,12L10,7V17Z" /></svg>\n </span>\n <span>{{=it.name}} ({{=it.count}} items)</span>\n </div>\n ',
},
footer: {
visible: false,
},
collapsed: true,
converter: function converter(time) {
var currentDayCount = Math.ceil(time.getTime() / oneDayMilliseconds);
var pastWeeks = Math.floor((totalDayCount - currentDayCount - day) / 7);
if (totalDayCount === currentDayCount) {
return 'Today';
}
if (currentDayCount === totalDayCount - 1) {
return 'Yesterday';
}
if (totalDayCount - currentDayCount <= day) {
return weeks[day + currentDayCount - totalDayCount];
}
if (pastWeeks === 0) {
return 'Last Week';
}
if (pastWeeks === 1) {
return '2 Weeks Ago';
}
if (pastWeeks === 2) {
return '3 Week Ago';
}
return 'Older';
},
},
],
});
new GC.DataViews.DataView(document.getElementById('grid'), data, cols, layout); // focus data.view by default
document.getElementById('grid').focus();
var data = [{
productName: 'iPad Air 2',
quantity: 16,
salesDate: 1412035200000,
salesperson: 'Alice',
total: 7984,
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 17,
salesDate: 1412121600000,
salesperson: 'Bob',
total: 6783,
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 18,
salesDate: 1412208000000,
salesperson: 'John',
total: 8982,
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 11,
salesDate: 1412294400000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 8,
salesDate: 1412380800000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 3,
salesDate: 1412467200000,
salesperson: 'Alex',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 19,
salesDate: 1412553600000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 18,
salesDate: 1412640000000,
salesperson: 'Chris',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 12,
salesDate: 1412726400000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 3,
salesDate: 1412812800000,
salesperson: 'Lucy',
unitPrice: 199
}, {
productName: 'iPhone6',
quantity: 18,
salesDate: 1412899200000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPhone6',
quantity: 14,
salesDate: 1412985600000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPhone6',
quantity: 16,
salesDate: 1413072000000,
salesperson: 'Lucy',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 17,
salesDate: 1413158400000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 8,
salesDate: 1413244800000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 14,
salesDate: 1413331200000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 8,
salesDate: 1413244800000,
salesperson: 'Chris',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 14,
salesDate: 1413331200000,
salesperson: 'Chris',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 12,
salesDate: 1413417600000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 11,
salesDate: 1413504000000,
salesperson: 'Chris',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 12,
salesDate: 1413417600000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 11,
salesDate: 1413504000000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 16,
salesDate: 1413590400000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 17,
salesDate: 1413676800000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 12,
salesDate: 1413763200000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 3,
salesDate: 1413849600000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 15,
salesDate: 1413936000000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 17,
salesDate: 1414022400000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 7,
salesDate: 1414108800000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 13,
salesDate: 1414195200000,
salesperson: 'Alex',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 16,
salesDate: 1414281600000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 3,
salesDate: 1414368000000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 5,
salesDate: 1414454400000,
salesperson: 'Chris',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1414540800000,
salesperson: 'Lucy',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 15,
salesDate: 1412035200000,
salesperson: 'Alex',
total: 7485,
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 13,
salesDate: 1412121600000,
salesperson: 'Alice',
total: 1287,
unitPrice: 99
}, {
productName: 'iPhone6',
quantity: 14,
salesDate: 1412208000000,
salesperson: 'Alex',
total: 2786,
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 4,
salesDate: 1412294400000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 17,
salesDate: 1412380800000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 17,
salesDate: 1412467200000,
salesperson: 'Alex',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 8,
salesDate: 1412553600000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 18,
salesDate: 1412640000000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 7,
salesDate: 1412726400000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 18,
salesDate: 1412812800000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 6,
salesDate: 1412899200000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 13,
salesDate: 1412985600000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 1,
salesDate: 1413072000000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPhone6 plus',
quantity: 16,
salesDate: 1413158400000,
salesperson: 'Alex',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 1,
salesDate: 1413244800000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 15,
salesDate: 1413331200000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 1,
salesDate: 1413417600000,
salesperson: 'Chris',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 19,
salesDate: 1413504000000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 7,
salesDate: 1413590400000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 6,
salesDate: 1413676800000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 15,
salesDate: 1413763200000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPad mini 3',
quantity: 12,
salesDate: 1413849600000,
salesperson: 'Chris',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 8,
salesDate: 1413936000000,
salesperson: 'Lucy',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 17,
salesDate: 1414022400000,
salesperson: 'Alex',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 14,
salesDate: 1414108800000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 0,
salesDate: 1414195200000,
salesperson: 'Alex',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 19,
salesDate: 1414281600000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 7,
salesDate: 1414368000000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 5,
salesDate: 1414454400000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 16,
salesDate: 1414540800000,
salesperson: 'Chris',
unitPrice: 199
}, {
productName: 'iPad mini 3',
quantity: 16,
salesDate: 1412035200000,
salesperson: 'John',
total: 6384,
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 12,
salesDate: 1412121600000,
salesperson: 'Alex',
total: 5988,
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 10,
salesDate: 1412208000000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 8,
salesDate: 1412294400000,
salesperson: 'John',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 2,
salesDate: 1412380800000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPhone6 plus',
quantity: 12,
salesDate: 1412467200000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 0,
salesDate: 1412553600000,
salesperson: 'Lucy',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 19,
salesDate: 1412640000000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 14,
salesDate: 1412726400000,
salesperson: 'John',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 15,
salesDate: 1412812800000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 15,
salesDate: 1412899200000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 12,
salesDate: 1412985600000,
salesperson: 'Lucy',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 8,
salesDate: 1413072000000,
salesperson: 'Lucy',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 6,
salesDate: 1413158400000,
salesperson: 'Alex',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 2,
salesDate: 1413244800000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 15,
salesDate: 1413331200000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 3,
salesDate: 1413417600000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 12,
salesDate: 1413504000000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 18,
salesDate: 1413590400000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 3,
salesDate: 1413676800000,
salesperson: 'Alex',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 4,
salesDate: 1413763200000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 1,
salesDate: 1413849600000,
salesperson: 'Alex',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 10,
salesDate: 1413936000000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 13,
salesDate: 1414022400000,
salesperson: 'Alex',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 3,
salesDate: 1414108800000,
salesperson: 'Bob',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 11,
salesDate: 1414195200000,
salesperson: 'John',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 4,
salesDate: 1414281600000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 12,
salesDate: 1414368000000,
salesperson: 'Bob',
unitPrice: 199
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1414454400000,
salesperson: 'Lucy',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 12,
salesDate: 1414540800000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 6,
salesDate: 1412035200000,
salesperson: 'Chris',
total: 2994,
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 0,
salesDate: 1412121600000,
salesperson: 'Chris',
total: 0,
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 2,
salesDate: 1412208000000,
salesperson: 'John',
total: 998,
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 4,
salesDate: 1412294400000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 4,
salesDate: 1412380800000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 13,
salesDate: 1412467200000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1412553600000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 1,
salesDate: 1412640000000,
salesperson: 'Lucy',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 1,
salesDate: 1412726400000,
salesperson: 'Bob',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 4,
salesDate: 1412812800000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 17,
salesDate: 1412899200000,
salesperson: 'Lucy',
unitPrice: 199
}, {
productName: 'iPhone6',
quantity: 12,
salesDate: 1412985600000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 11,
salesDate: 1413072000000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 10,
salesDate: 1413158400000,
salesperson: 'Lucy',
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 18,
salesDate: 1413244800000,
salesperson: 'Lucy',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 6,
salesDate: 1413331200000,
salesperson: 'John',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 6,
salesDate: 1413417600000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 18,
salesDate: 1413504000000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 14,
salesDate: 1413590400000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 13,
salesDate: 1413676800000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 17,
salesDate: 1413763200000,
salesperson: 'Lucy',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 9,
salesDate: 1413849600000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 10,
salesDate: 1413936000000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 18,
salesDate: 1414022400000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1414108800000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 2,
salesDate: 1414195200000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 3,
salesDate: 1414281600000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPhone6 plus',
quantity: 10,
salesDate: 1414368000000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 4,
salesDate: 1414454400000,
salesperson: 'Chris',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 17,
salesDate: 1414540800000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 16,
salesDate: 1412035200000,
salesperson: 'Alice',
total: 6384,
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 16,
salesDate: 1412121600000,
salesperson: 'Alex',
total: 1584,
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 11,
salesDate: 1412208000000,
salesperson: 'Alex',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 15,
salesDate: 1412294400000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPhone6',
quantity: 14,
salesDate: 1412380800000,
salesperson: 'Bob',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 15,
salesDate: 1412467200000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 0,
salesDate: 1412553600000,
salesperson: 'Chris',
unitPrice: 199
}, {
productName: 'iPad mini 3',
quantity: 19,
salesDate: 1412640000000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 19,
salesDate: 1412726400000,
salesperson: 'Alex',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 13,
salesDate: 1412812800000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 8,
salesDate: 1412899200000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 14,
salesDate: 1412985600000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 16,
salesDate: 1413072000000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 16,
salesDate: 1413158400000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1413244800000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 12,
salesDate: 1413331200000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 2,
salesDate: 1413417600000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 15,
salesDate: 1413504000000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 9,
salesDate: 1413590400000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 5,
salesDate: 1413676800000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 13,
salesDate: 1413763200000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 8,
salesDate: 1413849600000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 2,
salesDate: 1413936000000,
salesperson: 'Lucy',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 2,
salesDate: 1414022400000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 8,
salesDate: 1414108800000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 18,
salesDate: 1414195200000,
salesperson: 'Lucy',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 7,
salesDate: 1414281600000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 2,
salesDate: 1414368000000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 11,
salesDate: 1414454400000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 7,
salesDate: 1414540800000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 13,
salesDate: 1412035200000,
salesperson: 'Alex',
total: 1287,
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 6,
salesDate: 1412121600000,
salesperson: 'John',
total: 2394,
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 19,
salesDate: 1412208000000,
salesperson: 'Lucy',
total: 9481,
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 3,
salesDate: 1412294400000,
salesperson: 'Chris',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 12,
salesDate: 1412380800000,
salesperson: 'Alex',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 8,
salesDate: 1412467200000,
salesperson: 'Chris',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 12,
salesDate: 1412553600000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 12,
salesDate: 1412640000000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 11,
salesDate: 1412726400000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 11,
salesDate: 1412812800000,
salesperson: 'Lucy',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1412899200000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 2,
salesDate: 1412985600000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1413072000000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 2,
salesDate: 1413158400000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPhone6',
quantity: 7,
salesDate: 1413244800000,
salesperson: 'Bob',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 19,
salesDate: 1413331200000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 10,
salesDate: 1413417600000,
salesperson: 'Lucy',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 4,
salesDate: 1413504000000,
salesperson: 'Alex',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 7,
salesDate: 1413590400000,
salesperson: 'Alice',
unitPrice: 199
}, {
productName: 'iPad mini 3',
quantity: 1,
salesDate: 1413676800000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 14,
salesDate: 1413763200000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1413849600000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 13,
salesDate: 1413936000000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 5,
salesDate: 1414022400000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPad mini 3',
quantity: 15,
salesDate: 1414108800000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 8,
salesDate: 1414195200000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 6,
salesDate: 1414281600000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 11,
salesDate: 1414368000000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 1,
salesDate: 1414454400000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPhone6',
quantity: 18,
salesDate: 1414540800000,
salesperson: 'Bob',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 1,
salesDate: 1412035200000,
salesperson: 'Lucy',
total: 499,
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 10,
salesDate: 1412121600000,
salesperson: 'John',
total: 4990,
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 18,
salesDate: 1412208000000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 3,
salesDate: 1412294400000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 7,
salesDate: 1412380800000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 10,
salesDate: 1412467200000,
salesperson: 'Chris',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 15,
salesDate: 1412553600000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 19,
salesDate: 1412640000000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPad mini 3',
quantity: 15,
salesDate: 1412726400000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 19,
salesDate: 1412812800000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 6,
salesDate: 1412899200000,
salesperson: 'John',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 5,
salesDate: 1412985600000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 16,
salesDate: 1413072000000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 5,
salesDate: 1413158400000,
salesperson: 'Lucy',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 15,
salesDate: 1413244800000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 17,
salesDate: 1413331200000,
salesperson: 'John',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 6,
salesDate: 1413417600000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 16,
salesDate: 1413504000000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 19,
salesDate: 1413590400000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 8,
salesDate: 1413676800000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 14,
salesDate: 1413763200000,
salesperson: 'Lucy',
unitPrice: 99
}, {
productName: 'iPhone6',
quantity: 17,
salesDate: 1413849600000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 12,
salesDate: 1413936000000,
salesperson: 'Alex',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 18,
salesDate: 1414022400000,
salesperson: 'Lucy',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 17,
salesDate: 1414108800000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 0,
salesDate: 1414195200000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 16,
salesDate: 1414281600000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 2,
salesDate: 1414368000000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 5,
salesDate: 1414454400000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 12,
salesDate: 1414540800000,
salesperson: 'Chris',
unitPrice: 199
}, {
productName: 'iPhone6 plus',
quantity: 12,
salesDate: 1412035200000,
salesperson: 'John',
total: 3588,
unitPrice: 299
}, {
productName: 'iPhone5s',
quantity: 4,
salesDate: 1412121600000,
salesperson: 'Alice',
total: 396,
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 2,
salesDate: 1412208000000,
salesperson: 'Lucy',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 1,
salesDate: 1412294400000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 13,
salesDate: 1412380800000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 12,
salesDate: 1412467200000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 18,
salesDate: 1412553600000,
salesperson: 'John',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 16,
salesDate: 1412640000000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 3,
salesDate: 1412726400000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 19,
salesDate: 1412812800000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 3,
salesDate: 1412899200000,
salesperson: 'Alice',
unitPrice: 199
}, {
productName: 'iPad mini 3',
quantity: 5,
salesDate: 1412985600000,
salesperson: 'Lucy',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 3,
salesDate: 1413072000000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 5,
salesDate: 1413158400000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 3,
salesDate: 1413244800000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 0,
salesDate: 1413331200000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 2,
salesDate: 1413417600000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 5,
salesDate: 1413504000000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 3,
salesDate: 1413590400000,
salesperson: 'Lucy',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 9,
salesDate: 1413676800000,
salesperson: 'Lucy',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 11,
salesDate: 1413763200000,
salesperson: 'Alex',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 14,
salesDate: 1413849600000,
salesperson: 'Bob',
unitPrice: 199
}, {
productName: 'iPad mini 3',
quantity: 1,
salesDate: 1413936000000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 13,
salesDate: 1414022400000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 9,
salesDate: 1414108800000,
salesperson: 'Alex',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 13,
salesDate: 1414195200000,
salesperson: 'John',
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 17,
salesDate: 1414281600000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 19,
salesDate: 1414368000000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 18,
salesDate: 1414454400000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6',
quantity: 1,
salesDate: 1414540800000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPhone6 plus',
quantity: 3,
salesDate: 1412035200000,
salesperson: 'Alice',
total: 897,
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 11,
salesDate: 1412121600000,
salesperson: 'John',
total: 5489,
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 2,
salesDate: 1412208000000,
salesperson: 'Bob',
total: 998,
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 10,
salesDate: 1412294400000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 19,
salesDate: 1412380800000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 19,
salesDate: 1412467200000,
salesperson: 'Alex',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 17,
salesDate: 1412553600000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 2,
salesDate: 1412640000000,
salesperson: 'Lucy',
unitPrice: 399
}, {
productName: 'iPhone6 plus',
quantity: 0,
salesDate: 1412726400000,
salesperson: 'Alex',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 13,
salesDate: 1412812800000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 8,
salesDate: 1412899200000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 3,
salesDate: 1412985600000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 3,
salesDate: 1413072000000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 15,
salesDate: 1413158400000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 9,
salesDate: 1413244800000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 5,
salesDate: 1413331200000,
salesperson: 'Alice',
unitPrice: 199
}, {
productName: 'iPhone6',
quantity: 19,
salesDate: 1413417600000,
salesperson: 'Alice',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 7,
salesDate: 1413504000000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 12,
salesDate: 1413590400000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 19,
salesDate: 1413676800000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 7,
salesDate: 1413763200000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 11,
salesDate: 1413849600000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPad Air 2',
quantity: 11,
salesDate: 1413936000000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 15,
salesDate: 1414022400000,
salesperson: 'Lucy',
unitPrice: 299
}, {
productName: 'iPad Air 2',
quantity: 5,
salesDate: 1414108800000,
salesperson: 'Alice',
unitPrice: 499
}, {
productName: 'iPhone6 plus',
quantity: 19,
salesDate: 1414195200000,
salesperson: 'Bob',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 9,
salesDate: 1414281600000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 9,
salesDate: 1414368000000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 4,
salesDate: 1414454400000,
salesperson: 'Alex',
unitPrice: 99
}, {
productName: 'iPad mini 3',
quantity: 15,
salesDate: 1414540800000,
salesperson: 'John',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 10,
salesDate: 1412035200000,
salesperson: 'Alice',
total: 3990,
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 8,
salesDate: 1412121600000,
salesperson: 'Alex',
total: 3192,
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 3,
salesDate: 1412208000000,
salesperson: 'Lucy',
total: 1497,
unitPrice: 499
}, {
productName: 'iPad Air 2',
quantity: 6,
salesDate: 1412294400000,
salesperson: 'Chris',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 9,
salesDate: 1412380800000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 2,
salesDate: 1412467200000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 7,
salesDate: 1412553600000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPhone6',
quantity: 7,
salesDate: 1412640000000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 13,
salesDate: 1412726400000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPhone6',
quantity: 9,
salesDate: 1412812800000,
salesperson: 'Lucy',
unitPrice: 199
}, {
productName: 'iPhone6 plus',
quantity: 4,
salesDate: 1412899200000,
salesperson: 'Alex',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 4,
salesDate: 1412985600000,
salesperson: 'Alex',
unitPrice: 399
}, {
productName: 'iPhone5s',
quantity: 15,
salesDate: 1413072000000,
salesperson: 'Alice',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 5,
salesDate: 1413158400000,
salesperson: 'Bob',
unitPrice: 499
}, {
productName: 'iPad mini 3',
quantity: 5,
salesDate: 1413244800000,
salesperson: 'Alice',
unitPrice: 399
}, {
productName: 'iPhone6',
quantity: 7,
salesDate: 1413331200000,
salesperson: 'Chris',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 8,
salesDate: 1413417600000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPhone6',
quantity: 6,
salesDate: 1413504000000,
salesperson: 'John',
unitPrice: 199
}, {
productName: 'iPhone6 plus',
quantity: 16,
salesDate: 1413590400000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPhone6',
quantity: 17,
salesDate: 1413676800000,
salesperson: 'Alex',
unitPrice: 199
}, {
productName: 'iPhone6',
quantity: 4,
salesDate: 1413763200000,
salesperson: 'Alice',
unitPrice: 199
}, {
productName: 'iPhone5s',
quantity: 9,
salesDate: 1413849600000,
salesperson: 'Bob',
unitPrice: 99
}, {
productName: 'iPad Air 2',
quantity: 8,
salesDate: 1413936000000,
salesperson: 'Alex',
unitPrice: 499
}, {
productName: 'iPhone5s',
quantity: 3,
salesDate: 1414022400000,
salesperson: 'John',
unitPrice: 99
}, {
productName: 'iPhone5s',
quantity: 9,
salesDate: 1414108800000,
salesperson: 'Chris',
unitPrice: 99
}, {
productName: 'iPhone6 plus',
quantity: 7,
salesDate: 1414195200000,
salesperson: 'Alice',
unitPrice: 299
}, {
productName: 'iPhone6 plus',
quantity: 5,
salesDate: 1414281600000,
salesperson: 'Chris',
unitPrice: 299
}, {
productName: 'iPad mini 3',
quantity: 14,
salesDate: 1414368000000,
salesperson: 'Bob',
unitPrice: 399
}, {
productName: 'iPad mini 3',
quantity: 11,
salesDate: 1414454400000,
salesperson: 'Alex',
unitPrice: 399
}, {
productName: 'iPad Air 2',
quantity: 13,
salesDate: 1414540800000,
salesperson: 'John',
unitPrice: 499
}];
.gc-grouping-toggle {
display: inline-flex;
align-items: center;
margin-right: 6px;
}
.gc-grouping-toggle svg {
width: 24px;
height: 24px;
display: inline-flex;
align-items: center;
}
.gc-grouping-toggle.expand .expand-icon {
display: inline-flex;
}
.gc-grouping-toggle.expand .collapse-icon {
display: none;
}
.gc-grouping-toggle.collapsed .expand-icon {
display: none;
}
.gc-grouping-toggle.collapsed .collapse-icon {
display: inline-flex;
}
.header-cell {
display: flex;
align-items: center;
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
border-right: 1px solid rgba(0, 0, 0, 0.2);
font-weight: 700;
height: 100%;
position: absolute;
width: 600px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZlYXR1cmVzL0dyb3VwaW5nL0N1c3RvbWl6ZWRHcm91cC9wdXJlanMvc3R5bGVzLnNjc3MiLCJGZWF0dXJlcy9Hcm91cGluZy9DdXN0b21pemVkR3JvdXAvcHVyZWpzL3N0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxvQkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREdFO0VBQ0Usb0JBQUE7QUNBSjtBREVFO0VBQ0UsYUFBQTtBQ0FKOztBREtFO0VBQ0UsYUFBQTtBQ0ZKO0FESUU7RUFDRSxvQkFBQTtBQ0ZKOztBRE1BO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsMkNBQUE7RUFDQSwwQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQ0hGIiwiZmlsZSI6IkZlYXR1cmVzL0dyb3VwaW5nL0N1c3RvbWl6ZWRHcm91cC9wdXJlanMvc3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5nYy1ncm91cGluZy10b2dnbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG59XG5cbi5nYy1ncm91cGluZy10b2dnbGUgc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5nYy1ncm91cGluZy10b2dnbGUuZXhwYW5kIHtcbiAgLmV4cGFuZC1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfVxuICAuY29sbGFwc2UtaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uZ2MtZ3JvdXBpbmctdG9nZ2xlLmNvbGxhcHNlZCB7XG4gIC5leHBhbmQtaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuY29sbGFwc2UtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH1cbn1cblxuLmhlYWRlci1jZWxsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDYwMHB4O1xufVxuIiwiLmdjLWdyb3VwaW5nLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDZweDtcbn1cblxuLmdjLWdyb3VwaW5nLXRvZ2dsZSBzdmcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmdjLWdyb3VwaW5nLXRvZ2dsZS5leHBhbmQgLmV4cGFuZC1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4uZ2MtZ3JvdXBpbmctdG9nZ2xlLmV4cGFuZCAuY29sbGFwc2UtaWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5nYy1ncm91cGluZy10b2dnbGUuY29sbGFwc2VkIC5leHBhbmQtaWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ2MtZ3JvdXBpbmctdG9nZ2xlLmNvbGxhcHNlZCAuY29sbGFwc2UtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4uaGVhZGVyLWNlbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNjAwcHg7XG59Il19 */