Customized Group

This example shows how to create custom groups.

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&amp;Qf35VfikFVVljI0IyQiwiIxYHITp4c7VWaWFGdhRkI0IiTis7W0ICZyBlIsIiNxUTN6ADI8EDMxMjMwIjI0ICdyNkIsIyc59yc5l6YzVWbuoCLwpmLzVXajNXZt9iKs2WauMXdpN6cl5mLqwSbvNmLzVXajNXZt9iKsAnau26YuMXdpN6cl5mLqwSbvNmL6VGZ9RXajVGchJ7ZuoCLuNmLt36YukHdpNWZwFmcn9iKs46bj9Se4l6YlBXYydmLqwicr9ybj9Se4l6YlBXYydmLqwCcq9ybj9Se4l6YlBXYydmLqIiOiMXbEJCLiMVVJN4UF5kI0ISYONkIsUWdyRnOiwmdFJCLiEDO7MTO9IjM8gTM4gDNzIiOiQWSisnOiQkIsISP3EkVxBVUHFDMplzLlVUdGd7cI9UeIt4SshESzV7NvY7ZxlDOuNTb5tzLr', SJS_LICENSE_KEY: 'E518585142165236#B0wm4nx4QzdlTHRTSOFzcvVnaJdjSnNEeXdTMUtSUzk6bU94QuVXNwZVZjd4SzYjcadXRIVEMzEXTThkVyR7R85UayoHZZBTYQ5mZyh4Shd6VxFXazF4cBNGRG5WTvUGTsV4T6knQYRzKxxUdk9EarplU7d6VLF6KIR7bPJ5N6ZUMWZWaURGRKRDbLJDN5YjSN5mUoxmaxonSD56LEh7Y7RXenpmTvomevZlV9dkaysCO7hTRQFHcGRWQyc5LI9kQmB7QwR4Z7ZHOR3CSXp6SiFWYzFXeXZUSp94K8VDTkFjdwl4KptSYlRWcDxmNE5kS6kzdrkVcNJXROVGbLJkcTNGRzIER8tmd4YGNhh7dxAnMvIHRv46VtBXS4U5KvJ6dZJ6M5p4TxIjd9I5QSpXTTV6SDZXb7lzaL56ZiojITJCLikTQxUTQFV4NiojIIJCLyETO7UzM7kTO0IicfJye&amp;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 */