Excel Export

The TreeList provides options for exporting its data to Excel.

To enable the Excel export, import the ExcelModule and add the kendo-treelist-excel component to the Kendo UI TreeList for Angular. To initiate the export, use the kendoTreeListExcelCommand directive or the saveAsExcel method.

import { Component } from '@angular/core';
import { Employee, employees } from './employees';

@Component({
    selector: 'my-app',
    template: `
        <kendo-treelist [kendoTreeListFlatBinding]="data" idField="id" parentIdField="managerId"
                kendoTreeListExpandable
                [aggregate]="aggregate"
                [height]="410">
            <ng-template kendoTreeListToolbarTemplate>
                <button type="button" kendoTreeListExcelCommand icon="file-excel">Export to Excel</button>
            </ng-template>
            <kendo-treelist-column [expandable]="true" field="name" title="Name" [width]="250">
                <ng-template kendoTreeListFooterTemplate let-aggregates="aggregates">
                  {{ aggregates.name.count }} employee(s)
                </ng-template>
            </kendo-treelist-column>
            <kendo-treelist-column field="title" title="Title" [width]="180"></kendo-treelist-column>
            <kendo-treelist-column field="hireDate" title="hireDate" format="d" [width]="250">
                <ng-template kendoTreeListFooterTemplate let-aggregates="aggregates">
                  Last employee hired on {{ aggregates.hireDate.max | kendoDate : 'd' }}
                </ng-template>
            </kendo-treelist-column>
            <kendo-treelist-excel fileName="Employees.xlsx"></kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent {
    public aggregate: any[] = [{ field: 'name', aggregate: 'count' }, { field: 'hireDate', aggregate: 'max' }];

    public data: Employee[] = employees;
}

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { IntlModule } from '@progress/kendo-angular-intl';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, IntlModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

export interface Employee {
    id: number;
    managerId?: number;
    name: string;
    title: string;
    phone: string;
    hireDate?: Date;
}

export const employees: Employee[] = [
    {
        id: 1,
        name: 'Daryl Sweeney',
        title: 'Chief Executive Officer',
        phone: '(555) 924-9726',
        managerId: null,
        hireDate: new Date('2019-01-15')
    },
    {
        id: 2,
        name: 'Guy Wooten',
        title: 'Chief Technical Officer',
        phone: '(438) 738-4935',
        managerId: 1,
        hireDate: new Date('2019-02-19')
    },
    {
        id: 32,
        name: 'Buffy Weber',
        title: 'VP, Engineering',
        phone: '(699) 838-6121',
        managerId: 2,
        hireDate: new Date('2019-04-13')
    },
    {
        id: 11,
        name: 'Hyacinth Hood',
        title: 'Team Lead',
        phone: '(889) 345-2438',
        managerId: 32,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 60,
        name: 'Akeem Carr',
        title: 'Junior Software Developer',
        phone: '(738) 136-2814',
        managerId: 11,
        hireDate: new Date('2018-01-18')
    },
    {
        id: 78,
        name: 'Rinah Simon',
        title: 'Software Developer',
        phone: '(285) 912-5271',
        managerId: 11,
        hireDate: new Date('2018-03-17')
    },
    {
        id: 42,
        name: 'Gage Daniels',
        title: 'Software Architect',
        phone: '(107) 290-6260',
        managerId: 32,
        hireDate: new Date('2019-03-14')
    },
    {
        id: 43,
        name: 'Constance Vazquez',
        title: 'Director, Engineering',
        phone: '(800) 301-1978',
        managerId: 32,
        hireDate: new Date('2018-03-18')
    },
    {
        id: 46,
        name: 'Darrel Solis',
        title: 'Team Lead',
        phone: '(327) 977-0216',
        managerId: 43,
        hireDate: new Date('2019-04-15')
    },
    {
        id: 47,
        name: 'Brian Yang',
        title: 'Senior Software Developer',
        phone: '(565) 146-5435',
        managerId: 46,
        hireDate: new Date('2019-02-21')
    },
    {
        id: 50,
        name: 'Lillian Bradshaw',
        title: 'Software Developer',
        phone: '(323) 509-3479',
        managerId: 46,
        hireDate: new Date('2019-05-23')
    },
    {
        id: 51,
        name: 'Christian Palmer',
        title: 'Technical Lead',
        phone: '(490) 421-8718',
        managerId: 46,
        hireDate: new Date('2019-04-16')
    },
    {
        id: 55,
        name: 'Summer Mosley',
        title: 'QA Engineer',
        phone: '(784) 962-2301',
        managerId: 46,
        hireDate: new Date('2019-09-21')
    },
    {
        id: 56,
        name: 'Barry Ayers',
        title: 'Software Developer',
        phone: '(452) 373-9227',
        managerId: 46,
        hireDate: new Date('2018-04-16')
    },
    {
        id: 59,
        name: 'Keiko Espinoza',
        title: 'Junior QA Engineer',
        phone: '(226) 600-5305',
        managerId: 46,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 61,
        name: 'Candace Pickett',
        title: 'Support Officer',
        phone: '(120) 117-7475',
        managerId: 46,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 63,
        name: 'Mia Caldwell',
        title: 'Team Lead',
        phone: '(848) 636-6470',
        managerId: 43,
        hireDate: new Date('2018-07-17')
    },
    {
        id: 65,
        name: 'Thomas Terry',
        title: 'Senior Enterprise Support Officer',
        phone: '(764) 831-4248',
        managerId: 63,
        hireDate: new Date('2018-07-14')
    },
    {
        id: 67,
        name: 'Ruth Downs',
        title: 'Senior Software Developer',
        phone: '(138) 991-1440',
        managerId: 63,
        hireDate: new Date('2018-08-14')
    },
    {
        id: 70,
        name: 'Yasir Wilder',
        title: 'Senior QA Engineer',
        phone: '(759) 701-8665',
        managerId: 63,
        hireDate: new Date('2019-08-17')
    },
    {
        id: 71,
        name: 'Flavia Short',
        title: 'Support Officer',
        phone: '(370) 133-9238',
        managerId: 63,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 74,
        name: 'Aaron Roach',
        title: 'Junior Software Developer',
        phone: '(958) 717-9230',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 75,
        name: 'Eric Russell',
        title: 'Software Developer',
        phone: '(516) 575-8505',
        managerId: 63,
        hireDate: new Date('2019-09-13')
    },
    {
        id: 76,
        name: 'Cheyenne Olson',
        title: 'Software Developer',
        phone: '(241) 645-0257',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 77,
        name: 'Shaine Avila',
        title: 'UI Designer',
        phone: '(844) 435-1360',
        managerId: 63,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 81,
        name: 'Chantale Long',
        title: 'Senior QA Engineer',
        phone: '(252) 419-6891',
        managerId: 63,
        hireDate: new Date('2018-09-14')
    },
    {
        id: 83,
        name: 'Dane Cruz',
        title: 'Junior Software Developer',
        phone: '(946) 701-6165',
        managerId: 63,
        hireDate: new Date('2019-03-15')
    },
    {
        id: 84,
        name: 'Regan Patterson',
        title: 'Technical Writer',
        phone: '(265) 946-1765',
        managerId: 63,
        hireDate: new Date('2019-05-17')
    },
    {
        id: 85,
        name: 'Drew Mckay',
        title: 'Senior Software Developer',
        phone: '(327) 293-0162',
        managerId: 63,
        hireDate: new Date('2019-05-21')
    },
    {
        id: 88,
        name: 'Bevis Miller',
        title: 'Senior Software Developer',
        phone: '(525) 557-0169',
        managerId: 63,
        hireDate: new Date('2018-08-15')
    },
    {
        id: 89,
        name: 'Bruce Mccarty',
        title: 'Support Officer',
        phone: '(936) 777-8730',
        managerId: 63,
        hireDate: new Date('2019-10-21')
    },
    {
        id: 90,
        name: 'Ocean Blair',
        title: 'Team Lead',
        phone: '(343) 586-6614',
        managerId: 43,
        hireDate: new Date('2018-06-20')
    },
    {
        id: 91,
        name: 'Guinevere Osborn',
        title: 'Software Developer',
        phone: '(424) 741-0006',
        managerId: 90,
        hireDate: new Date('2019-06-17')
    },
    {
        id: 92,
        name: 'Olga Strong',
        title: 'Graphic Designer',
        phone: '(949) 417-1168',
        managerId: 90,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 93,
        name: 'Robert Orr',
        title: 'Support Officer',
        phone: '(977) 341-3721',
        managerId: 90,
        hireDate: new Date('2018-06-22')
    },
    {
        id: 95,
        name: 'Odette Sears',
        title: 'Senior Software Developer',
        phone: '(264) 818-6576',
        managerId: 90,
        hireDate: new Date('2019-05-20')
    },
    {
        id: 45,
        name: 'Zelda Medina',
        title: 'QA Architect',
        phone: '(563) 359-6023',
        managerId: 32,
        hireDate: new Date('2018-08-16')
    },
    {
        id: 3,
        name: 'Priscilla Frank',
        title: 'Chief Product Officer',
        phone: '(217) 280-5300',
        managerId: 1,
        hireDate: new Date('2019-04-22')
    },
    {
        id: 4,
        name: 'Ursula Holmes',
        title: 'EVP, Product Strategy',
        phone: '(370) 983-8796',
        managerId: 3,
        hireDate: new Date('2018-01-15')
    },
    {
        id: 24,
        name: 'Melvin Carrillo',
        title: 'Director, Developer Relations',
        phone: '(344) 496-9555',
        managerId: 3,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 29,
        name: 'Martha Chavez',
        title: 'Developer Advocate',
        phone: '(140) 772-7509',
        managerId: 24,
        hireDate: new Date('2018-05-14')
    },
    {
        id: 30,
        name: 'Oren Fox',
        title: 'Developer Advocate',
        phone: '(714) 284-2408',
        managerId: 24,
        hireDate: new Date('2018-07-19')
    },
    {
        id: 41,
        name: 'Amos Barr',
        title: 'Developer Advocate',
        phone: '(996) 587-8405',
        managerId: 24,
        hireDate: new Date('2019-01-16')
    }
  ];

Configuration

With regard to its Excel export, the TreeList enables you to:

Exporting Specific Data

By default, the TreeList exports its current data. To export data that is different from the current TreeList data, specify a custom fetchData function. The function should return an ExcelExportData object.

import { Component } from '@angular/core';
import { ExcelExportData } from '@progress/kendo-angular-treelist';
import { Entry, filesystem } from './filesystem';

@Component({
    selector: 'my-app',
    template: `
        <kendo-treelist [kendoTreeListHierarchyBinding]="data" childrenField="contents"
            kendoTreeListExpandable
            [height]="410">

            <ng-template kendoTreeListToolbarTemplate>
                <button type="button" kendoTreeListExcelCommand icon="file-excel">Export Folders</button>
            </ng-template>
            <kendo-treelist-column [expandable]="true" field="name" title="Name" [width]="300">
                <ng-template kendoTreeListCellTemplate let-dataItem>
                    <span class="k-icon k-i-{{ dataItem.type === 'directory' ? 'folder' : 'file' }}"></span>
                    {{ dataItem.name }}
                </ng-template>
            </kendo-treelist-column>
            <kendo-treelist-column field="type" title="Type" [width]="100">
            </kendo-treelist-column>
            <kendo-treelist-column field="size" title="Size" [width]="200">
            </kendo-treelist-column>

            <kendo-treelist-excel fileName="Folders.xlsx" [fetchData]="excelData"></kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent {
    public data: Entry[] = filesystem;

    public excelData = (): ExcelExportData => {
       return {
          data: filesystem.filter(e => e.type === 'directory'),
          fetchChildren: this.fetchExcelChildren,
          hasChildren: this.hasExcelChildren
       };
    }

    private fetchExcelChildren = (item: any): any[] => {
        return item.contents.filter(e => e.type === 'directory');
    }

    private hasExcelChildren = (item: any): boolean => {
        return item.contents && this.fetchExcelChildren(item).length > 0;
    }
}
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { IntlModule } from '@progress/kendo-angular-intl';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, IntlModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);
export interface Entry {
  name: string;
  id: number;
  type: 'file' | 'directory';
  time: Date;
  size?: number;
  contents?: Entry[];
}

let counter = 0;
const nextId = () => counter++;

export const filesystem: Entry[] = [
    {type: 'file', id: nextId(), name: 'LICENSE.md', size: 636, time: new Date('2019-12-18T15:06:11')},
    {type: 'file', id: nextId(), name: 'README.md', size: 4460, time: new Date('2019-12-18T15:06:11')},
    {type: 'file', id: nextId(), name: 'SUPPORT.md', size: 3181, time: new Date('2019-12-18T15:06:11')},
    {type: 'directory', id: nextId(), name: 'examples', time: new Date('2019-12-18T15:06:11'), contents: [
      {type: 'file', id: nextId(), name: 'README.md', size: 1153, time: new Date('2019-12-18T15:06:11')},
      {type: 'file', id: nextId(), name: 'angular.json', size: 37604, time: new Date('2019-12-18T15:06:11')},
      {type: 'directory', id: nextId(), name: 'bin', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'build-all.js', size: 597, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'publish-gh-pages', size: 164, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'serve-project.js', size: 345, time: new Date('2019-12-18T15:06:11')}
      ]},
      {type: 'file', id: nextId(), name: 'package-lock.json', size: 448632, time: new Date('2019-12-18T15:06:11')},
      {type: 'file', id: nextId(), name: 'package.json', size: 3050, time: new Date('2019-12-18T15:06:11')},
      {type: 'directory', id: nextId(), name: 'projects', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'directory', id: nextId(), name: 'chart-websockets', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1294, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1032, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'server', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'index.js', size: 1419, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package-lock.json', size: 13649, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package.json', size: 304, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 875, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1008, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 1383, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 595, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'websocket.service.ts', size: 575, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 302, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'grid-firebase', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1309, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 385, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'firebase.json', size: 234, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1029, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.html', size: 1221, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1035, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 2274, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 1169, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'edit.service.ts', size: 945, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'products.ts', size: 2346, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 299, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'grid-graphql', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 891, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 385, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1028, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'server', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'index.js', size: 417, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package-lock.json', size: 15151, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package.json', size: 400, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'schema', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'schema.js', size: 7470, time: new Date('2019-12-18T15:06:11')}
            ]}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 1416, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1013, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 2743, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 852, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'edit.service.ts', size: 1435, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'graphql.module.ts', size: 658, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'model.ts', size: 177, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'queries.js', size: 958, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 298, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'grid-jsdo', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 854, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1025, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 5190, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 1006, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'data', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'customer.config.ts', size: 470, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'customer.model.ts', size: 611, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'data-service.event.ts', size: 57, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'data-service.interface.ts', size: 728, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'data.service.ts', size: 6294, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'model-data-result.ts', size: 170, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'progress-service-config.ts', size: 559, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'progress-service-factory.ts', size: 907, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'progress-session.service.ts', size: 2172, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'progress.service.ts', size: 4978, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'service-config.ts', size: 1396, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 295, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'grid-signalr', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1859, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1028, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'server', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'Controllers', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'TodoController.cs', size: 1669, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'Hubs', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'TodoHub.cs', size: 162, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'Program.cs', size: 654, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'Properties', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'launchSettings.json', size: 775, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'Startup.cs', size: 1836, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'appsettings.Development.json', size: 137, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'appsettings.json', size: 97, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'server.csproj', size: 295, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'server.sln', size: 1110, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 29, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 977, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 989, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 1522, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 624, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'models', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'todo.model.ts', size: 91, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'services', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'signalr.service.ts', size: 944, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 298, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'integration-i18n', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 890, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1032, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'projects', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'integration-i18n', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'locale', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'messages.xlf', size: 49659, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.html', size: 111, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1000, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 515, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 302, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'locale', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'messages.es.xlf', size: 44842, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'messages.xlf', size: 42194, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'integration-jquery', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 866, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1034, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 624, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1000, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 340, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 2203, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'other.component.ts', size: 294, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-date-picker.component.ts', size: 1063, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-diagram.component.ts', size: 1694, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-editor.component.ts', size: 1154, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-gantt.component.ts', size: 4603, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-grid.component.ts', size: 1542, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-scheduler.component.ts', size: 4033, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-slider.component.ts', size: 689, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-splitter.component.ts', size: 2578, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 318, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'integration-pwa', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 3373, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1031, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: '_app-common.scss', size: 1617, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 310, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 32, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 986, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 3141, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.routes.ts', size: 717, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.style.css', size: 306, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'charts', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'active-issues.component.ts', size: 10882, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issue-types.component.ts', size: 2092, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'statistics.component.ts', size: 1532, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'types-distribution.component.ts', size: 4819, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'common', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 31, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'utils', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'Config.ts', size: 593, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 59, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'router-module.ts', size: 48, time: new Date('2019-12-18T15:06:11')}
                ]}
              ]},
              {type: 'directory', id: nextId(), name: 'dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'dashboard.component.ts', size: 3071, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'dashboard.template.html', size: 1531, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 40, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'dashboard.style.scss', size: 5235, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'issues', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.component.ts', size: 2245, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.template.html', size: 5149, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'label.directive.ts', size: 1136, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'main-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'main-menu.component.html', size: 1765, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.spec.ts', size: 643, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.ts', size: 1790, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'markdown', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'markdown.component.ts', size: 492, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'profile', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 38, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'profile.component.ts', size: 1566, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'profile.template.html', size: 6205, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'github.service.ts', size: 1472, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5617, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'shared.module.ts', size: 300, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'spinner.component.ts', size: 426, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'signin', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 39, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'signin.component.ts', size: 645, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'signin.template.html', size: 530, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'app_icon', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'angularX144.png', size: 5078, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX192.png', size: 7010, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX36.png', size: 1600, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX48.png', size: 2070, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX512.png', size: 19822, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX72.png', size: 2715, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX96.png', size: 3571, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'help_images', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'add_to_home.png', size: 51829, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'cached_local.png', size: 55215, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'cached_remote.png', size: 56083, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'confirm.png', size: 25508, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'dashboard.png', size: 101068, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'offline.png', size: 36927, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'sw.png', size: 36331, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'i18n', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'en.json', size: 417, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'issue-closed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issue-open.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issueclosed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issueopen.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'login-left-bg.png', size: 35043, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'login-right-bg.png', size: 40236, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'noConnection.png', size: 11232, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 893, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'manifest.json', size: 1484, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'ngsw-config.json', size: 551, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.scss', size: 1049, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'integration-pwa-material', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 3234, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1031, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 310, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 32, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 986, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 3227, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.routes.ts', size: 717, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'charts', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'active-issues.component.ts', size: 11951, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issue-types.component.ts', size: 2161, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'statistics.component.ts', size: 1300, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'types-distribution.component.ts', size: 5299, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'common', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 31, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'utils', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'Config.ts', size: 593, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 59, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'router-module.ts', size: 48, time: new Date('2019-12-18T15:06:11')}
                ]}
              ]},
              {type: 'directory', id: nextId(), name: 'dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'dashboard.component.ts', size: 3077, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'dashboard.template.html', size: 1555, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 39, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'issues', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 36, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.component.ts', size: 2266, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.template.html', size: 5078, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'label.directive.ts', size: 1136, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'main-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'main-menu.component.html', size: 2038, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.spec.ts', size: 643, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.ts', size: 1739, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'markdown', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'markdown.component.ts', size: 492, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'profile', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'profile.component.ts', size: 1343, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'profile.template.html', size: 6959, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'scss', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: '_dashboard.scss', size: 1330, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_globals.scss', size: 1741, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_header.scss', size: 212, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_issues.scss', size: 881, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_login.scss', size: 579, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_nav.scss', size: 2203, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_profile.scss', size: 143, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_typography.scss', size: 373, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_variables.scss', size: 2631, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'bootstrap-custom.scss', size: 84, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'github.service.ts', size: 1472, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5617, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'shared.module.ts', size: 300, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'spinner.component.ts', size: 403, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'signin', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'signin.component.ts', size: 660, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'signin.template.html', size: 1017, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'app_icon', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'angularX144.png', size: 5078, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX192.png', size: 7010, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX36.png', size: 1600, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX48.png', size: 2070, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX512.png', size: 19822, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX72.png', size: 2715, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX96.png', size: 3571, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'help_images', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'add_to_home.png', size: 51829, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'cached_local.png', size: 55215, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'cached_remote.png', size: 56083, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'confirm.png', size: 25508, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'dashboard.png', size: 101068, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'offline.png', size: 36927, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'sw.png', size: 36331, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'i18n', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'en.json', size: 417, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'issue-closed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issue-open.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issueclosed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issueopen.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'login-left-bg.png', size: 35043, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'login-right-bg.png', size: 40236, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'noConnection.png', size: 11232, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 703, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'manifest.json', size: 1422, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'ngsw-config.json', size: 551, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.scss', size: 389, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'pdf-embedded-fonts', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 700, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 385, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1034, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 778, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 744, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'invoice-data.ts', size: 345, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'invoice-row.ts', size: 209, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'invoice.component.ts', size: 2540, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'DejaVuSans.ttf', size: 757076, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 314, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.scss', size: 1195, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]}
      ]},
      {type: 'directory', id: nextId(), name: 'static', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: '404.html', size: 292, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'index.html', size: 883, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'styles.css', size: 57, time: new Date('2019-12-18T15:06:11')}
      ]},
      {type: 'file', id: nextId(), name: 'tsconfig.json', size: 467, time: new Date('2019-12-18T15:06:11')},
      {type: 'file', id: nextId(), name: 'tslint.json', size: 1954, time: new Date('2019-12-18T15:06:11')}
    ]},
    {type: 'directory', id: nextId(), name: 'examples-standalone', time: new Date('2019-12-18T15:06:11'), contents: [
      {type: 'directory', id: nextId(), name: 'angular-universal', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'README.md', size: 1699, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'aspnet_core_sample_application', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'ClientApp', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'README.md', size: 1040, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'angular.json', size: 4344, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'e2e', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'protractor.conf.js', size: 752, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'app.e2e-spec.ts', size: 277, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.po.ts', size: 206, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'tsconfig.e2e.json', size: 213, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'package-lock.json', size: 424000, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package.json', size: 2401, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'app.component.css', size: 172, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.html', size: 118, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.ts', size: 207, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.module.ts', size: 1297, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.server.module.ts', size: 413, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'counter', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'counter.component.html', size: 215, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'counter.component.spec.ts', size: 1133, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'counter.component.ts', size: 260, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'fetch-data', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'fetch-data.component.html', size: 842, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'fetch-data.component.ts', size: 819, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'home', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'home.component.html', size: 1480, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'home.component.ts', size: 155, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'nav-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'nav-menu.component.css', size: 249, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'nav-menu.component.html', size: 1239, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'nav-menu.component.ts', size: 337, time: new Date('2019-12-18T15:06:11')}
                ]}
              ]},
              {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
              ]},
              {type: 'file', id: nextId(), name: 'browserslist', size: 375, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'environment.ts', size: 631, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'index.html', size: 326, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'karma.conf.js', size: 965, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main.server.ts', size: 1137, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main.ts', size: 553, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'polyfills.ts', size: 3162, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'styles.scss', size: 80, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 194, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'tsconfig.server.json', size: 241, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 282, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'tslint.json', size: 314, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'tsconfig.json', size: 384, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tslint.json', size: 2998, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'Controllers', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'SampleDataController.cs', size: 1508, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'Pages', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'Error.cshtml', size: 856, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'Error.cshtml.cs', size: 619, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_ViewImports.cshtml', size: 107, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'Program.cs', size: 609, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'Properties', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'launchSettings.json', size: 626, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'Startup.cs', size: 2699, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'appsettings.Development.json', size: 137, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'appsettings.json', size: 97, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'dotnet-angular.csproj', size: 2804, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'wwwroot', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 32038, time: new Date('2019-12-18T15:06:11')}
          ]}
        ]},
        {type: 'directory', id: nextId(), name: 'node_sample_application', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 2169, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'angular.json', size: 4539, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'package-lock.json', size: 346174, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'package.json', size: 2952, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'prerender.ts', size: 1507, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'server.ts', size: 1506, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'server.tsconfig.json', size: 399, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 1047, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 1003, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.server.module.ts', size: 718, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'home', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'home.component.ts', size: 1009, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'products.ts', size: 37654, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'lazy', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'lazy.module.ts', size: 1107, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 383, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 302, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.server.ts', size: 57, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 459, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2480, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 229, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.server.json', size: 469, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'static.paths.ts', size: 62, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.json', size: 363, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 2987, time: new Date('2019-12-18T15:06:11')}
        ]}
      ]},
      {type: 'directory', id: nextId(), name: 'aspnetcore-data', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'directory', id: nextId(), name: 'ClientApp', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1059, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'angular.json', size: 4561, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 383, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'e2e', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'protractor.conf.js', size: 785, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.e2e-spec.ts', size: 291, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.po.ts', size: 217, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'tsconfig.e2e.json', size: 225, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'package-lock.json', size: 413163, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'package.json', size: 2310, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 178, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 124, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 178, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 1561, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.server.module.ts', size: 424, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'counter', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'counter.component.html', size: 241, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'counter.component.spec.ts', size: 1169, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'counter.component.ts', size: 273, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'fetch-data', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'data.service.ts', size: 2884, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'fetch-data.component.html', size: 1544, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'fetch-data.component.ts', size: 2304, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'home', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'home.component.html', size: 1494, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'home.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'nav-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'nav-menu.component.css', size: 267, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'nav-menu.component.html', size: 1472, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'nav-menu.component.ts', size: 355, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'file', id: nextId(), name: 'browserslist', size: 383, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 54, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 646, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'index.html', size: 354, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'karma.conf.js', size: 996, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 573, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2901, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 295, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 662, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 181, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.server.json', size: 192, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 274, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tslint.json', size: 331, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.json', size: 432, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 2930, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Controllers', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'BlogsController.cs', size: 1810, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Models', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'Blog.cs', size: 373, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'BloggingContext.cs', size: 1626, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'Post.cs', size: 360, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Pages', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'Error.cshtml', size: 882, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'Error.cshtml.cs', size: 847, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: '_ViewImports.cshtml', size: 112, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'Program.cs', size: 616, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'Properties', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'launchSettings.json', size: 682, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'README.md', size: 1991, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'Startup.cs', size: 2923, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'appsettings.Development.json', size: 146, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'appsettings.json', size: 111, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'aspnetcore-data.csproj', size: 3284, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'nuget.config', size: 502, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'wwwroot', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'favicon.ico', size: 32038, time: new Date('2019-12-18T15:06:11')}
        ]}
      ]},
      {type: 'directory', id: nextId(), name: 'aspnetcore-upload', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'directory', id: nextId(), name: 'ClientApp', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1050, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'angular.json', size: 4498, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 383, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'e2e', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'protractor.conf.js', size: 785, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.e2e-spec.ts', size: 291, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.po.ts', size: 217, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'tsconfig.e2e.json', size: 225, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'package-lock.json', size: 406641, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'package.json', size: 1810, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.html', size: 91, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 178, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 968, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.server.module.ts', size: 424, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'home', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'home.component.html', size: 135, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'home.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 54, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 646, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'index.html', size: 345, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'karma.conf.js', size: 996, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 573, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2901, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 295, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 662, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 181, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.server.json', size: 192, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 274, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tslint.json', size: 331, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.json', size: 432, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 2930, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Controllers', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'StreamingController.cs', size: 2461, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Pages', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'Error.cshtml', size: 882, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'Error.cshtml.cs', size: 849, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: '_ViewImports.cshtml', size: 116, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'Program.cs', size: 618, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'Properties', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'launchSettings.json', size: 684, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'README.md', size: 919, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'Startup.cs', size: 2519, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'appsettings.Development.json', size: 146, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'appsettings.json', size: 111, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'aspnetcore-upload.csproj', size: 2844, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'wwwroot', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'Upload_Directory', time: new Date('2019-12-18T15:06:11'), contents: [
          ]},
          {type: 'file', id: nextId(), name: 'favicon.ico', size: 32038, time: new Date('2019-12-18T15:06:11')}
        ]}
      ]},
      {type: 'directory', id: nextId(), name: 'electron-dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'README.md', size: 4551, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: '_config.yml', size: 29, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'angular.json', size: 3867, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'e2e', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'app.e2e-spec.ts', size: 386, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'app.po.ts', size: 175, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.e2e.json', size: 193, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'electron-builder.json', size: 315, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'hooks', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'README.md', size: 7709, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.config.ts.tpl', size: 509, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'set_profile.js', size: 581, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.config.ts', size: 509, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'appconfig.ts', size: 509, time: new Date('2019-12-18T15:06:11')}
            ]}
          ]}
        ]},
        {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1202, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'logo-angular.jpg', size: 3354, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'logo-electron.jpg', size: 8028, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'logo-kendo.png', size: 11430, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'main.ts', size: 2388, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'package.json', size: 4139, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'postcss.config.js', size: 20, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'protractor.conf.js', size: 960, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: '_app-common.scss', size: 1617, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 310, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.html', size: 23, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 986, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.ts', size: 156, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.config.ts', size: 507, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.module.ts', size: 2816, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.routes.ts', size: 717, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.style.css', size: 284, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'charts', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'active-issues.component.ts', size: 9854, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issue-types.component.ts', size: 2092, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'github.service.ts', size: 1853, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5639, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'github.service.ts', size: 1853, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5639, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'shared.module.ts', size: 301, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'file', id: nextId(), name: 'shared.module.ts', size: 301, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'statistics.component.ts', size: 1249, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'types-distribution.component.ts', size: 4649, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'common', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 31, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'utils', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'Config.ts', size: 593, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 59, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'router-module.ts', size: 48, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'dashboard.component.ts', size: 3014, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'dashboard.template.html', size: 1506, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'index.ts', size: 39, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'github.service.ts', size: 1853, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5639, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'shared.module.ts', size: 301, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'file', id: nextId(), name: 'dashboard.style.scss', size: 5154, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'directives', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'webview.directive.ts', size: 138, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'issues', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 36, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issues.component.ts', size: 2236, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issues.template.html', size: 5046, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'label.directive.ts', size: 1055, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'main-menu', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'main-menu.component.html', size: 1776, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main-menu.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main-menu.component.spec.ts', size: 643, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main-menu.component.ts', size: 1786, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'markdown', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'markdown.component.ts', size: 411, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'profile', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'profile.component.ts', size: 1571, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'profile.template.html', size: 6096, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'providers', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'electron.service.ts', size: 737, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'github.service.ts', size: 1853, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5639, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'shared.module.ts', size: 301, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'spinner.component.ts', size: 399, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'signin', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'signin.component.ts', size: 640, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'signin.template.html', size: 530, time: new Date('2019-12-18T15:06:11')}
            ]}
          ]},
          {type: 'file', id: nextId(), name: 'app.style.css', size: 284, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'background.jpg', size: 232337, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'i18n', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'en.json', size: 78, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'issue-closed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'issue-open.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'issueclosed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'issueopen.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'login-left-bg.png', size: 35043, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'login-right-bg.png', size: 40236, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'environment.dev.ts', size: 394, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'environment.local.ts', size: 75, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 72, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'favicon.256x256.png', size: 14430, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'favicon.icns', size: 85688, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'favicon.ico', size: 16224, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'favicon.png', size: 14430, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'index.html', size: 491, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'main.ts', size: 399, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'polyfills.ts', size: 1323, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'styles.scss', size: 333, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'test.ts', size: 761, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 259, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 416, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'typings.d.ts', size: 190, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'tsconfig.json', size: 438, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tslint.json', size: 2998, time: new Date('2019-12-18T15:06:11')}
      ]},
      {type: 'directory', id: nextId(), name: 'kendo-angular-finance-portfolio', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'README.md', size: 2408, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'angular.json', size: 2835, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'browserslist', size: 429, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'package-lock.json', size: 437540, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'package.json', size: 2359, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 949, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.ts', size: 312, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.module.ts', size: 2775, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'components', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'badge', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'badge.component.html', size: 261, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'badge.component.scss', size: 412, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'badge.component.ts', size: 250, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'footer', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'footer.component.html', size: 360, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'footer.component.scss', size: 634, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'footer.component.ts', size: 355, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'header', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'header.component.html', size: 930, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'header.component.scss', size: 1198, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'header.component.ts', size: 668, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'heatmap', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'heatmap.component.html', size: 1345, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'heatmap.component.scss', size: 1159, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'heatmap.component.ts', size: 4051, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'navigation', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'navigation.component.html', size: 419, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'navigation.component.scss', size: 318, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'navigation.component.ts', size: 304, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'real-time-data', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'real-time-data.component.html', size: 3229, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'real-time-data.component.scss', size: 697, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'real-time-data.component.ts', size: 2841, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'stock-chart', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'stock-chart.component.html', size: 3603, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-chart.component.scss', size: 559, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-chart.component.ts', size: 4120, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'stock-details', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'stock-details.component.html', size: 4674, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-details.component.scss', size: 230, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-details.component.ts', size: 3497, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'stock-list', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'stock-list.component.html', size: 7409, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-list.component.scss', size: 3106, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-list.component.ts', size: 3548, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'stocks', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'stocks.component.html', size: 304, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stocks.component.scss', size: 434, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stocks.component.ts', size: 330, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'user-profile', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'user-profile.component.html', size: 3166, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'user-profile.component.scss', size: 1177, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'user-profile.component.ts', size: 1267, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'data', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'stocks.ts', size: 41277, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'directives', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'dropdownlist-popup-selector.directive.ts',
               size: 1188, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'models', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 98, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'interval.ts', size: 298, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'stock-interval-details.ts', size: 158, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'stock.ts', size: 272, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'pipes', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'helpers.ts', size: 1981, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'number-format.pipe.ts', size: 275, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'services', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'stock-data.service.ts', size: 4988, time: new Date('2019-12-18T15:06:11')}
            ]}
          ]},
          {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'area.png', size: 410, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'candle.png', size: 391, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'cross-out.svg', size: 774, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'footer-bg.svg', size: 2643, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'header-bg.svg', size: 2649, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'line.png', size: 522, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'progress-logo.svg', size: 3665, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'user.jpg', size: 136966, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'index.html', size: 422, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'styles', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: '_bootstrap.scss', size: 557, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_kendo.scss', size: 1687, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_main.scss', size: 147, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_responsive.scss', size: 859, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_typography.scss', size: 238, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_variables.scss', size: 2212, time: new Date('2019-12-18T15:06:11')}
          ]}
        ]},
        {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 210, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tsconfig.json', size: 543, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tslint.json', size: 1988, time: new Date('2019-12-18T15:06:11')}
      ]},
      {type: 'directory', id: nextId(), name: 'material-dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'angular.json', size: 3757, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'bin', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'build-all.js', size: 597, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'serve-project.js', size: 345, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'package-lock.json', size: 448330, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'package.json', size: 3063, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'project', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'integration-pwa-material', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'README.md', size: 3234, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1031, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'ngsw-config.json', size: 551, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 310, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.html', size: 32, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 986, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.module.ts', size: 3227, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.routes.ts', size: 717, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'charts', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'active-issues.component.ts', size: 11951, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issue-types.component.ts', size: 2161, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'statistics.component.ts', size: 1300, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'types-distribution.component.ts', size: 5299, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'common', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'index.ts', size: 31, time: new Date('2019-12-18T15:06:11')},
                  {type: 'directory', id: nextId(), name: 'utils', time: new Date('2019-12-18T15:06:11'), contents: [
                    {type: 'file', id: nextId(), name: 'Config.ts', size: 593, time: new Date('2019-12-18T15:06:11')},
                    {type: 'file', id: nextId(), name: 'index.ts', size: 59, time: new Date('2019-12-18T15:06:11')},
                    {type: 'file', id: nextId(), name: 'router-module.ts', size: 48, time: new Date('2019-12-18T15:06:11')}
                  ]}
                ]},
                {type: 'directory', id: nextId(), name: 'dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'dashboard.component.ts', size: 3077, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'dashboard.template.html', size: 1555, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 39, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'issues', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'index.ts', size: 36, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues.component.ts', size: 2266, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues.template.html', size: 5078, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'label.directive.ts', size: 1136, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'main-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'main-menu.component.html', size: 2038, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'main-menu.component.spec.ts', size: 643, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'main-menu.component.ts', size: 1739, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'markdown', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'markdown.component.ts', size: 492, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'profile', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'profile.component.ts', size: 1343, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'profile.template.html', size: 6959, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'scss', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: '_dashboard.scss', size: 1330, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_globals.scss', size: 1741, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_header.scss', size: 212, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_issues.scss', size: 881, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_login.scss', size: 579, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_nav.scss', size: 2203, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_profile.scss', size: 143, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_typography.scss', size: 373, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_variables.scss', size: 2631, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'bootstrap-custom.scss', size: 95, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'github.service.ts', size: 1472, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5617, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'shared.module.ts', size: 300, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'spinner.component.ts', size: 403, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'signin', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'signin.component.ts', size: 660, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'signin.template.html', size: 1017, time: new Date('2019-12-18T15:06:11')}
                ]}
              ]},
              {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'directory', id: nextId(), name: 'app_icon', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'angularX144.png', size: 5078, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX192.png', size: 7010, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX36.png', size: 1600, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX48.png', size: 2070, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX512.png', size: 19822, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX72.png', size: 2715, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX96.png', size: 3571, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'help_images', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'add_to_home.png', size: 51829, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'cached_local.png', size: 55215, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'cached_remote.png', size: 56083, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'confirm.png', size: 25508, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'dashboard.png', size: 101068, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'offline.png', size: 36927, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'sw.png', size: 36331, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'i18n', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'en.json', size: 417, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'file', id: nextId(), name: 'issue-closed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issue-open.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issueclosed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issueopen.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'login-left-bg.png', size: 35043, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'login-right-bg.png', size: 40236, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'noConnection.png', size: 11232, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'index.html', size: 703, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'manifest.json', size: 1422, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'styles.scss', size: 389, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
          ]}
        ]},
        {type: 'directory', id: nextId(), name: 'static', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: '404.html', size: 292, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'index.html', size: 724, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'styles.css', size: 57, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'tsconfig.json', size: 467, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tslint.json', size: 1954, time: new Date('2019-12-18T15:06:11')}
      ]}
    ]}
];

If the export data needs to be asynchronously loaded, you can set an Observable to the data field.

import { Component } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';

const EXCEL_TITLES = ['CEO', 'Chief Technical Officer', 'VP, Engineering', 'Director, Engineering',
    'Team Lead', 'Junior Software Developer', 'Software Developer', 'Senior Software Developer', 'Software Architect'];

const includePosition = (item: any): boolean => EXCEL_TITLES.indexOf(item.Position) >= 0;

@Component({
    selector: 'my-app',
    template: `
        <kendo-treelist
            kendoTreeListExpandable
            [data]="rootData"
            [fetchChildren]="fetchChildren"
            [hasChildren]="hasChildren"
            [height]="400"
          >

          <ng-template kendoTreeListToolbarTemplate>
              <button type="button" kendoTreeListExcelCommand icon="file-excel">Export Engineering Staff</button>
          </ng-template>
          <kendo-treelist-column [expandable]="true" field="FirstName" title="First Name" [width]="150">
          </kendo-treelist-column>
          <kendo-treelist-column field="LastName"  title="Last Name" [width]="150">
          </kendo-treelist-column>
          <kendo-treelist-column field="Position" title="Position" [width]="180">
          </kendo-treelist-column>
          <kendo-treelist-column field="Extension" title="Extension" [width]="180">
          </kendo-treelist-column>

          <kendo-treelist-excel fileName="EngineeringStaff.xlsx" [fetchData]="excelData"></kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent implements OnInit {
    public rootData: Observable<any[]>;
    private serviceUrl = 'https://demos.telerik.com/kendo-ui/service/EmployeeDirectory';

    constructor(private http: HttpClient) {
    }

    public ngOnInit(): void {
        this.rootData = this.query();
    }

    public fetchChildren = (item?: any): Observable<any[]> => {
        return this.query(item ? item.EmployeeId : null);
    }

    public hasChildren = (item: any): boolean => {
        return item.hasChildren;
    }

    public query(reportsTo: number = null): Observable<any[]> {
        return this.http.jsonp<any[]>(
            `${this.serviceUrl}?id=${reportsTo}`,
            'callback'
        );
    }

    public excelData = (): ExcelExportData => {
        return {
            data: this.fetchChildren().pipe(map(result => result.filter(includePosition))),
            fetchChildren: this.fetchExcelChildren,
            hasChildren: this.hasExcelChildren
        };
    }

    private fetchExcelChildren = (item: any): any[] => {
        return this.fetchChildren(item).pipe(map(result => result.filter(includePosition)));
    }

    private hasExcelChildren = (item: any): boolean => {
        return item.hasChildren && includePosition(item);
    }
}
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, HttpClientModule, HttpClientJsonpModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

All Pages

By default, the TreeList exports all pages of the current data. To export only the current page set the the allPages option to false.

import { Component } from '@angular/core';
import { ExcelExportData } from '@progress/kendo-angular-treelist';
import { Entry, filesystem } from './filesystem';

@Component({
    selector: 'my-app',
    template: `
        <kendo-treelist [kendoTreeListHierarchyBinding]="data" childrenField="contents" [height]="410"
            kendoTreeListExpandable
            [pageSize]="10"
            [pageable]="true">
            <ng-template kendoTreeListToolbarTemplate>
                <button type="button" kendoTreeListExcelCommand icon="file-excel">Export Folders</button>
            </ng-template>
            <kendo-treelist-column [expandable]="true" field="name" title="Name" [width]="300">
                <ng-template kendoTreeListCellTemplate let-dataItem>
                    <span class="k-icon k-i-{{ dataItem.type === 'directory' ? 'folder' : 'file' }}"></span>
                    {{ dataItem.name }}
                </ng-template>
            </kendo-treelist-column>
            <kendo-treelist-column field="type" title="Type" [width]="100">
            </kendo-treelist-column>
            <kendo-treelist-column field="size" title="Size" [width]="200">
            </kendo-treelist-column>

            <kendo-treelist-excel fileName="Folders.xlsx" [allPages]="false"></kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent {
    public data: Entry[] = filesystem;
}
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { IntlModule } from '@progress/kendo-angular-intl';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, IntlModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);
export interface Entry {
  name: string;
  id: number;
  type: 'file' | 'directory';
  time: Date;
  size?: number;
  contents?: Entry[];
}

let counter = 0;
const nextId = () => counter++;

export const filesystem: Entry[] = [
    {type: 'file', id: nextId(), name: 'LICENSE.md', size: 636, time: new Date('2019-12-18T15:06:11')},
    {type: 'file', id: nextId(), name: 'README.md', size: 4460, time: new Date('2019-12-18T15:06:11')},
    {type: 'file', id: nextId(), name: 'SUPPORT.md', size: 3181, time: new Date('2019-12-18T15:06:11')},
    {type: 'directory', id: nextId(), name: 'examples', time: new Date('2019-12-18T15:06:11'), contents: [
      {type: 'file', id: nextId(), name: 'README.md', size: 1153, time: new Date('2019-12-18T15:06:11')},
      {type: 'file', id: nextId(), name: 'angular.json', size: 37604, time: new Date('2019-12-18T15:06:11')},
      {type: 'directory', id: nextId(), name: 'bin', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'build-all.js', size: 597, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'publish-gh-pages', size: 164, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'serve-project.js', size: 345, time: new Date('2019-12-18T15:06:11')}
      ]},
      {type: 'file', id: nextId(), name: 'package-lock.json', size: 448632, time: new Date('2019-12-18T15:06:11')},
      {type: 'file', id: nextId(), name: 'package.json', size: 3050, time: new Date('2019-12-18T15:06:11')},
      {type: 'directory', id: nextId(), name: 'projects', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'directory', id: nextId(), name: 'chart-websockets', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1294, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1032, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'server', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'index.js', size: 1419, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package-lock.json', size: 13649, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package.json', size: 304, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 875, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1008, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 1383, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 595, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'websocket.service.ts', size: 575, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 302, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'grid-firebase', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1309, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 385, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'firebase.json', size: 234, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1029, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.html', size: 1221, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1035, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 2274, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 1169, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'edit.service.ts', size: 945, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'products.ts', size: 2346, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 299, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'grid-graphql', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 891, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 385, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1028, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'server', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'index.js', size: 417, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package-lock.json', size: 15151, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package.json', size: 400, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'schema', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'schema.js', size: 7470, time: new Date('2019-12-18T15:06:11')}
            ]}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 1416, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1013, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 2743, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 852, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'edit.service.ts', size: 1435, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'graphql.module.ts', size: 658, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'model.ts', size: 177, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'queries.js', size: 958, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 298, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'grid-jsdo', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 854, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1025, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 5190, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 1006, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'data', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'customer.config.ts', size: 470, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'customer.model.ts', size: 611, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'data-service.event.ts', size: 57, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'data-service.interface.ts', size: 728, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'data.service.ts', size: 6294, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'model-data-result.ts', size: 170, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'progress-service-config.ts', size: 559, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'progress-service-factory.ts', size: 907, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'progress-session.service.ts', size: 2172, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'progress.service.ts', size: 4978, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'service-config.ts', size: 1396, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 295, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'grid-signalr', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1859, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1028, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'server', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'Controllers', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'TodoController.cs', size: 1669, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'Hubs', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'TodoHub.cs', size: 162, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'Program.cs', size: 654, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'Properties', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'launchSettings.json', size: 775, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'Startup.cs', size: 1836, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'appsettings.Development.json', size: 137, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'appsettings.json', size: 97, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'server.csproj', size: 295, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'server.sln', size: 1110, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 29, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 977, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 989, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 1522, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 624, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'models', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'todo.model.ts', size: 91, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'services', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'signalr.service.ts', size: 944, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 298, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'integration-i18n', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 890, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1032, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'projects', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'integration-i18n', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'locale', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'messages.xlf', size: 49659, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.html', size: 111, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1000, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 515, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 302, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'locale', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'messages.es.xlf', size: 44842, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'messages.xlf', size: 42194, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'integration-jquery', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 866, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1034, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 624, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 1000, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 340, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 2203, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'other.component.ts', size: 294, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-date-picker.component.ts', size: 1063, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-diagram.component.ts', size: 1694, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-editor.component.ts', size: 1154, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-gantt.component.ts', size: 4603, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-grid.component.ts', size: 1542, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-scheduler.component.ts', size: 4033, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-slider.component.ts', size: 689, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test-splitter.component.ts', size: 2578, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 318, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'integration-pwa', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 3373, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1031, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: '_app-common.scss', size: 1617, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 310, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 32, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 986, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 3141, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.routes.ts', size: 717, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.style.css', size: 306, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'charts', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'active-issues.component.ts', size: 10882, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issue-types.component.ts', size: 2092, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'statistics.component.ts', size: 1532, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'types-distribution.component.ts', size: 4819, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'common', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 31, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'utils', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'Config.ts', size: 593, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 59, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'router-module.ts', size: 48, time: new Date('2019-12-18T15:06:11')}
                ]}
              ]},
              {type: 'directory', id: nextId(), name: 'dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'dashboard.component.ts', size: 3071, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'dashboard.template.html', size: 1531, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 40, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'dashboard.style.scss', size: 5235, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'issues', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.component.ts', size: 2245, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.template.html', size: 5149, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'label.directive.ts', size: 1136, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'main-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'main-menu.component.html', size: 1765, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.spec.ts', size: 643, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.ts', size: 1790, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'markdown', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'markdown.component.ts', size: 492, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'profile', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 38, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'profile.component.ts', size: 1566, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'profile.template.html', size: 6205, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'github.service.ts', size: 1472, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5617, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'shared.module.ts', size: 300, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'spinner.component.ts', size: 426, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'signin', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 39, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'signin.component.ts', size: 645, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'signin.template.html', size: 530, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'app_icon', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'angularX144.png', size: 5078, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX192.png', size: 7010, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX36.png', size: 1600, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX48.png', size: 2070, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX512.png', size: 19822, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX72.png', size: 2715, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX96.png', size: 3571, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'help_images', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'add_to_home.png', size: 51829, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'cached_local.png', size: 55215, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'cached_remote.png', size: 56083, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'confirm.png', size: 25508, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'dashboard.png', size: 101068, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'offline.png', size: 36927, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'sw.png', size: 36331, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'i18n', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'en.json', size: 417, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'issue-closed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issue-open.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issueclosed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issueopen.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'login-left-bg.png', size: 35043, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'login-right-bg.png', size: 40236, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'noConnection.png', size: 11232, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 893, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'manifest.json', size: 1484, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'ngsw-config.json', size: 551, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.scss', size: 1049, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'integration-pwa-material', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 3234, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1031, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 310, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 32, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 986, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 3227, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.routes.ts', size: 717, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'charts', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'active-issues.component.ts', size: 11951, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issue-types.component.ts', size: 2161, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'statistics.component.ts', size: 1300, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'types-distribution.component.ts', size: 5299, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'common', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 31, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'utils', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'Config.ts', size: 593, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 59, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'router-module.ts', size: 48, time: new Date('2019-12-18T15:06:11')}
                ]}
              ]},
              {type: 'directory', id: nextId(), name: 'dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'dashboard.component.ts', size: 3077, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'dashboard.template.html', size: 1555, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 39, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'issues', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 36, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.component.ts', size: 2266, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.template.html', size: 5078, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'label.directive.ts', size: 1136, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'main-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'main-menu.component.html', size: 2038, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.spec.ts', size: 643, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'main-menu.component.ts', size: 1739, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'markdown', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'markdown.component.ts', size: 492, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'profile', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'profile.component.ts', size: 1343, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'profile.template.html', size: 6959, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'scss', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: '_dashboard.scss', size: 1330, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_globals.scss', size: 1741, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_header.scss', size: 212, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_issues.scss', size: 881, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_login.scss', size: 579, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_nav.scss', size: 2203, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_profile.scss', size: 143, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_typography.scss', size: 373, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: '_variables.scss', size: 2631, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'bootstrap-custom.scss', size: 84, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'github.service.ts', size: 1472, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5617, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'shared.module.ts', size: 300, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'spinner.component.ts', size: 403, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'signin', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'signin.component.ts', size: 660, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'signin.template.html', size: 1017, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'app_icon', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'angularX144.png', size: 5078, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX192.png', size: 7010, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX36.png', size: 1600, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX48.png', size: 2070, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX512.png', size: 19822, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX72.png', size: 2715, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'angularX96.png', size: 3571, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'help_images', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'add_to_home.png', size: 51829, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'cached_local.png', size: 55215, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'cached_remote.png', size: 56083, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'confirm.png', size: 25508, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'dashboard.png', size: 101068, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'offline.png', size: 36927, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'sw.png', size: 36331, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'i18n', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'en.json', size: 417, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'issue-closed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issue-open.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issueclosed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issueopen.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'login-left-bg.png', size: 35043, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'login-right-bg.png', size: 40236, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'noConnection.png', size: 11232, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 703, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'manifest.json', size: 1422, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'ngsw-config.json', size: 551, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.scss', size: 389, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'pdf-embedded-fonts', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 700, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 385, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1034, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 778, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 744, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'invoice-data.ts', size: 345, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'invoice-row.ts', size: 209, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'invoice.component.ts', size: 2540, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'DejaVuSans.ttf', size: 757076, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 314, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.scss', size: 1195, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
        ]}
      ]},
      {type: 'directory', id: nextId(), name: 'static', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: '404.html', size: 292, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'index.html', size: 883, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'styles.css', size: 57, time: new Date('2019-12-18T15:06:11')}
      ]},
      {type: 'file', id: nextId(), name: 'tsconfig.json', size: 467, time: new Date('2019-12-18T15:06:11')},
      {type: 'file', id: nextId(), name: 'tslint.json', size: 1954, time: new Date('2019-12-18T15:06:11')}
    ]},
    {type: 'directory', id: nextId(), name: 'examples-standalone', time: new Date('2019-12-18T15:06:11'), contents: [
      {type: 'directory', id: nextId(), name: 'angular-universal', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'README.md', size: 1699, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'aspnet_core_sample_application', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'ClientApp', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'README.md', size: 1040, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'angular.json', size: 4344, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'e2e', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'protractor.conf.js', size: 752, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'app.e2e-spec.ts', size: 277, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.po.ts', size: 206, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'tsconfig.e2e.json', size: 213, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'package-lock.json', size: 424000, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'package.json', size: 2401, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'app.component.css', size: 172, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.html', size: 118, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.ts', size: 207, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.module.ts', size: 1297, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.server.module.ts', size: 413, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'counter', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'counter.component.html', size: 215, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'counter.component.spec.ts', size: 1133, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'counter.component.ts', size: 260, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'fetch-data', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'fetch-data.component.html', size: 842, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'fetch-data.component.ts', size: 819, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'home', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'home.component.html', size: 1480, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'home.component.ts', size: 155, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'nav-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'nav-menu.component.css', size: 249, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'nav-menu.component.html', size: 1239, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'nav-menu.component.ts', size: 337, time: new Date('2019-12-18T15:06:11')}
                ]}
              ]},
              {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
              ]},
              {type: 'file', id: nextId(), name: 'browserslist', size: 375, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'environment.ts', size: 631, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'index.html', size: 326, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'karma.conf.js', size: 965, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main.server.ts', size: 1137, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main.ts', size: 553, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'polyfills.ts', size: 3162, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'styles.scss', size: 80, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 194, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'tsconfig.server.json', size: 241, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 282, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'tslint.json', size: 314, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'tsconfig.json', size: 384, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tslint.json', size: 2998, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'Controllers', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'SampleDataController.cs', size: 1508, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'Pages', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'Error.cshtml', size: 856, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'Error.cshtml.cs', size: 619, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_ViewImports.cshtml', size: 107, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'Program.cs', size: 609, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'Properties', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'launchSettings.json', size: 626, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'Startup.cs', size: 2699, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'appsettings.Development.json', size: 137, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'appsettings.json', size: 97, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'dotnet-angular.csproj', size: 2804, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'wwwroot', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 32038, time: new Date('2019-12-18T15:06:11')}
          ]}
        ]},
        {type: 'directory', id: nextId(), name: 'node_sample_application', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 2169, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'angular.json', size: 4539, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'package-lock.json', size: 346174, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'package.json', size: 2952, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'prerender.ts', size: 1507, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'server.ts', size: 1506, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'server.tsconfig.json', size: 399, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 1047, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 1003, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.server.module.ts', size: 718, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'home', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'home.component.ts', size: 1009, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'products.ts', size: 37654, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'lazy', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'lazy.module.ts', size: 1107, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 383, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'index.html', size: 302, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.server.ts', size: 57, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 459, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2480, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 80, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 229, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.server.json', size: 469, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'static.paths.ts', size: 62, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.json', size: 363, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 2987, time: new Date('2019-12-18T15:06:11')}
        ]}
      ]},
      {type: 'directory', id: nextId(), name: 'aspnetcore-data', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'directory', id: nextId(), name: 'ClientApp', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1059, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'angular.json', size: 4561, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 383, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'e2e', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'protractor.conf.js', size: 785, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.e2e-spec.ts', size: 291, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.po.ts', size: 217, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'tsconfig.e2e.json', size: 225, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'package-lock.json', size: 413163, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'package.json', size: 2310, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.css', size: 178, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.html', size: 124, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 178, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 1561, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.server.module.ts', size: 424, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'counter', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'counter.component.html', size: 241, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'counter.component.spec.ts', size: 1169, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'counter.component.ts', size: 273, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'fetch-data', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'data.service.ts', size: 2884, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'fetch-data.component.html', size: 1544, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'fetch-data.component.ts', size: 2304, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'home', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'home.component.html', size: 1494, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'home.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'nav-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'nav-menu.component.css', size: 267, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'nav-menu.component.html', size: 1472, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'nav-menu.component.ts', size: 355, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'file', id: nextId(), name: 'browserslist', size: 383, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 54, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 646, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'index.html', size: 354, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'karma.conf.js', size: 996, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 573, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2901, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 295, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 662, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 181, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.server.json', size: 192, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 274, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tslint.json', size: 331, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.json', size: 432, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 2930, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Controllers', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'BlogsController.cs', size: 1810, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Models', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'Blog.cs', size: 373, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'BloggingContext.cs', size: 1626, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'Post.cs', size: 360, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Pages', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'Error.cshtml', size: 882, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'Error.cshtml.cs', size: 847, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: '_ViewImports.cshtml', size: 112, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'Program.cs', size: 616, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'Properties', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'launchSettings.json', size: 682, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'README.md', size: 1991, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'Startup.cs', size: 2923, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'appsettings.Development.json', size: 146, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'appsettings.json', size: 111, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'aspnetcore-data.csproj', size: 3284, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'nuget.config', size: 502, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'wwwroot', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'favicon.ico', size: 32038, time: new Date('2019-12-18T15:06:11')}
        ]}
      ]},
      {type: 'directory', id: nextId(), name: 'aspnetcore-upload', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'directory', id: nextId(), name: 'ClientApp', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'README.md', size: 1050, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'angular.json', size: 4498, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'browserslist', size: 383, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'e2e', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'protractor.conf.js', size: 785, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.e2e-spec.ts', size: 291, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.po.ts', size: 217, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'tsconfig.e2e.json', size: 225, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'package-lock.json', size: 406641, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'package.json', size: 1810, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.component.html', size: 91, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.component.ts', size: 178, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.module.ts', size: 968, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'app.server.module.ts', size: 424, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'home', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'home.component.html', size: 135, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'home.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            ]},
            {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 54, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'environment.ts', size: 646, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'index.html', size: 345, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'karma.conf.js', size: 996, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'main.ts', size: 573, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2901, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'styles.css', size: 295, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'test.ts', size: 662, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 181, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.server.json', size: 192, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 274, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tslint.json', size: 331, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'tsconfig.json', size: 432, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tslint.json', size: 2930, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Controllers', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'StreamingController.cs', size: 2461, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'directory', id: nextId(), name: 'Pages', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'Error.cshtml', size: 882, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'Error.cshtml.cs', size: 849, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: '_ViewImports.cshtml', size: 116, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'Program.cs', size: 618, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'Properties', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'launchSettings.json', size: 684, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'README.md', size: 919, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'Startup.cs', size: 2519, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'appsettings.Development.json', size: 146, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'appsettings.json', size: 111, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'aspnetcore-upload.csproj', size: 2844, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'wwwroot', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'Upload_Directory', time: new Date('2019-12-18T15:06:11'), contents: [
          ]},
          {type: 'file', id: nextId(), name: 'favicon.ico', size: 32038, time: new Date('2019-12-18T15:06:11')}
        ]}
      ]},
      {type: 'directory', id: nextId(), name: 'electron-dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'README.md', size: 4551, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: '_config.yml', size: 29, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'angular.json', size: 3867, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'e2e', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'app.e2e-spec.ts', size: 386, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'app.po.ts', size: 175, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.e2e.json', size: 193, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'electron-builder.json', size: 315, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'hooks', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'README.md', size: 7709, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.config.ts.tpl', size: 509, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'set_profile.js', size: 581, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'app.config.ts', size: 509, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'appconfig.ts', size: 509, time: new Date('2019-12-18T15:06:11')}
            ]}
          ]}
        ]},
        {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1202, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'logo-angular.jpg', size: 3354, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'logo-electron.jpg', size: 8028, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'logo-kendo.png', size: 11430, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'main.ts', size: 2388, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'package.json', size: 4139, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'postcss.config.js', size: 20, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'protractor.conf.js', size: 960, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: '_app-common.scss', size: 1617, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 310, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.html', size: 23, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 986, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.ts', size: 156, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.config.ts', size: 507, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.module.ts', size: 2816, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.routes.ts', size: 717, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.style.css', size: 284, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'charts', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'active-issues.component.ts', size: 9854, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issue-types.component.ts', size: 2092, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'github.service.ts', size: 1853, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5639, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'github.service.ts', size: 1853, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5639, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'shared.module.ts', size: 301, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'file', id: nextId(), name: 'shared.module.ts', size: 301, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'statistics.component.ts', size: 1249, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'types-distribution.component.ts', size: 4649, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'common', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 31, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'utils', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'Config.ts', size: 593, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 59, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'router-module.ts', size: 48, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'dashboard.component.ts', size: 3014, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'dashboard.template.html', size: 1506, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'index.ts', size: 39, time: new Date('2019-12-18T15:06:11')},
              {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'github.service.ts', size: 1853, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5639, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'shared.module.ts', size: 301, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'file', id: nextId(), name: 'dashboard.style.scss', size: 5154, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'directives', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'webview.directive.ts', size: 138, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'issues', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 36, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issues.component.ts', size: 2236, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issues.template.html', size: 5046, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'label.directive.ts', size: 1055, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'main-menu', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'main-menu.component.html', size: 1776, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main-menu.component.scss', size: 0, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main-menu.component.spec.ts', size: 643, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main-menu.component.ts', size: 1786, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'markdown', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'markdown.component.ts', size: 411, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'profile', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'profile.component.ts', size: 1571, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'profile.template.html', size: 6096, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'providers', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'electron.service.ts', size: 737, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: '_custom.scss', size: 2402, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'github.service.ts', size: 1853, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5639, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'shared.module.ts', size: 301, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'spinner.component.ts', size: 399, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'signin', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'signin.component.ts', size: 640, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'signin.template.html', size: 530, time: new Date('2019-12-18T15:06:11')}
            ]}
          ]},
          {type: 'file', id: nextId(), name: 'app.style.css', size: 284, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'background.jpg', size: 232337, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'i18n', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'en.json', size: 78, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'issue-closed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'issue-open.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'issueclosed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'issueopen.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'login-left-bg.png', size: 35043, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'login-right-bg.png', size: 40236, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'environment.dev.ts', size: 394, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'environment.local.ts', size: 75, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 72, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'favicon.256x256.png', size: 14430, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'favicon.icns', size: 85688, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'favicon.ico', size: 16224, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'favicon.png', size: 14430, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'index.html', size: 491, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'main.ts', size: 399, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'polyfills.ts', size: 1323, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'styles.scss', size: 333, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'test.ts', size: 761, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 259, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 416, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'typings.d.ts', size: 190, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'tsconfig.json', size: 438, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tslint.json', size: 2998, time: new Date('2019-12-18T15:06:11')}
      ]},
      {type: 'directory', id: nextId(), name: 'kendo-angular-finance-portfolio', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'README.md', size: 2408, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'angular.json', size: 2835, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'browserslist', size: 429, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'package-lock.json', size: 437540, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'package.json', size: 2359, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 949, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.component.ts', size: 312, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'app.module.ts', size: 2775, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'components', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'badge', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'badge.component.html', size: 261, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'badge.component.scss', size: 412, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'badge.component.ts', size: 250, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'footer', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'footer.component.html', size: 360, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'footer.component.scss', size: 634, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'footer.component.ts', size: 355, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'header', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'header.component.html', size: 930, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'header.component.scss', size: 1198, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'header.component.ts', size: 668, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'heatmap', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'heatmap.component.html', size: 1345, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'heatmap.component.scss', size: 1159, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'heatmap.component.ts', size: 4051, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'navigation', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'navigation.component.html', size: 419, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'navigation.component.scss', size: 318, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'navigation.component.ts', size: 304, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'real-time-data', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'real-time-data.component.html', size: 3229, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'real-time-data.component.scss', size: 697, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'real-time-data.component.ts', size: 2841, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'stock-chart', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'stock-chart.component.html', size: 3603, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-chart.component.scss', size: 559, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-chart.component.ts', size: 4120, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'stock-details', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'stock-details.component.html', size: 4674, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-details.component.scss', size: 230, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-details.component.ts', size: 3497, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'stock-list', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'stock-list.component.html', size: 7409, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-list.component.scss', size: 3106, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stock-list.component.ts', size: 3548, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'stocks', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'stocks.component.html', size: 304, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stocks.component.scss', size: 434, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'stocks.component.ts', size: 330, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'user-profile', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'user-profile.component.html', size: 3166, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'user-profile.component.scss', size: 1177, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'user-profile.component.ts', size: 1267, time: new Date('2019-12-18T15:06:11')}
              ]}
            ]},
            {type: 'directory', id: nextId(), name: 'data', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'stocks.ts', size: 41277, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'directives', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'dropdownlist-popup-selector.directive.ts',
               size: 1188, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'models', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'index.ts', size: 98, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'interval.ts', size: 298, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'stock-interval-details.ts', size: 158, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'stock.ts', size: 272, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'pipes', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'helpers.ts', size: 1981, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'number-format.pipe.ts', size: 275, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'directory', id: nextId(), name: 'services', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'file', id: nextId(), name: 'stock-data.service.ts', size: 4988, time: new Date('2019-12-18T15:06:11')}
            ]}
          ]},
          {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'area.png', size: 410, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'candle.png', size: 391, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'cross-out.svg', size: 774, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'footer-bg.svg', size: 2643, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'header-bg.svg', size: 2649, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'line.png', size: 522, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'progress-logo.svg', size: 3665, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'user.jpg', size: 136966, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
          ]},
          {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'index.html', size: 422, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
          {type: 'directory', id: nextId(), name: 'styles', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: '_bootstrap.scss', size: 557, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_kendo.scss', size: 1687, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_main.scss', size: 147, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_responsive.scss', size: 859, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_typography.scss', size: 238, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: '_variables.scss', size: 2212, time: new Date('2019-12-18T15:06:11')}
          ]}
        ]},
        {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 210, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tsconfig.json', size: 543, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tslint.json', size: 1988, time: new Date('2019-12-18T15:06:11')}
      ]},
      {type: 'directory', id: nextId(), name: 'material-dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
        {type: 'file', id: nextId(), name: 'angular.json', size: 3757, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'bin', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: 'build-all.js', size: 597, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'serve-project.js', size: 345, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'package-lock.json', size: 448330, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'package.json', size: 3063, time: new Date('2019-12-18T15:06:11')},
        {type: 'directory', id: nextId(), name: 'project', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'directory', id: nextId(), name: 'integration-pwa-material', time: new Date('2019-12-18T15:06:11'), contents: [
            {type: 'file', id: nextId(), name: 'README.md', size: 3234, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'browserslist', size: 388, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'karma.conf.js', size: 1031, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'ngsw-config.json', size: 551, time: new Date('2019-12-18T15:06:11')},
            {type: 'directory', id: nextId(), name: 'src', time: new Date('2019-12-18T15:06:11'), contents: [
              {type: 'directory', id: nextId(), name: 'app', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'app-routing.module.ts', size: 310, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.html', size: 32, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.spec.ts', size: 986, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.component.ts', size: 163, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.module.ts', size: 3227, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'app.routes.ts', size: 717, time: new Date('2019-12-18T15:06:11')},
                {type: 'directory', id: nextId(), name: 'charts', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'active-issues.component.ts', size: 11951, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issue-types.component.ts', size: 2161, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'statistics.component.ts', size: 1300, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'types-distribution.component.ts', size: 5299, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'common', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'index.ts', size: 31, time: new Date('2019-12-18T15:06:11')},
                  {type: 'directory', id: nextId(), name: 'utils', time: new Date('2019-12-18T15:06:11'), contents: [
                    {type: 'file', id: nextId(), name: 'Config.ts', size: 593, time: new Date('2019-12-18T15:06:11')},
                    {type: 'file', id: nextId(), name: 'index.ts', size: 59, time: new Date('2019-12-18T15:06:11')},
                    {type: 'file', id: nextId(), name: 'router-module.ts', size: 48, time: new Date('2019-12-18T15:06:11')}
                  ]}
                ]},
                {type: 'directory', id: nextId(), name: 'dashboard', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'dashboard.component.ts', size: 3077, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'dashboard.template.html', size: 1555, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 39, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'issues', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'index.ts', size: 36, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues.component.ts', size: 2266, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues.template.html', size: 5078, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'label.directive.ts', size: 1136, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'main-menu', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'main-menu.component.html', size: 2038, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'main-menu.component.spec.ts', size: 643, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'main-menu.component.ts', size: 1739, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'markdown', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'markdown.component.ts', size: 492, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'profile', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'profile.component.ts', size: 1343, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'profile.template.html', size: 6959, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'scss', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: '_dashboard.scss', size: 1330, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_globals.scss', size: 1741, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_header.scss', size: 212, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_issues.scss', size: 881, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_login.scss', size: 579, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_nav.scss', size: 2203, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_profile.scss', size: 143, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_typography.scss', size: 373, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: '_variables.scss', size: 2631, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'bootstrap-custom.scss', size: 95, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'shared', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'github.service.ts', size: 1472, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'index.ts', size: 33, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues-processor.service.ts', size: 5617, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'issues.model.ts', size: 1313, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'shared.module.ts', size: 300, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'spinner.component.ts', size: 403, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'signin', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'index.ts', size: 37, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'signin.component.ts', size: 660, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'signin.template.html', size: 1017, time: new Date('2019-12-18T15:06:11')}
                ]}
              ]},
              {type: 'directory', id: nextId(), name: 'assets', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'directory', id: nextId(), name: 'app_icon', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'angularX144.png', size: 5078, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX192.png', size: 7010, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX36.png', size: 1600, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX48.png', size: 2070, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX512.png', size: 19822, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX72.png', size: 2715, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'angularX96.png', size: 3571, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'help_images', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'add_to_home.png', size: 51829, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'cached_local.png', size: 55215, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'cached_remote.png', size: 56083, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'confirm.png', size: 25508, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'dashboard.png', size: 101068, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'offline.png', size: 36927, time: new Date('2019-12-18T15:06:11')},
                  {type: 'file', id: nextId(), name: 'sw.png', size: 36331, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'directory', id: nextId(), name: 'i18n', time: new Date('2019-12-18T15:06:11'), contents: [
                  {type: 'file', id: nextId(), name: 'en.json', size: 417, time: new Date('2019-12-18T15:06:11')}
                ]},
                {type: 'file', id: nextId(), name: 'issue-closed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issue-open.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issueclosed.png', size: 1222, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'issueopen.png', size: 1159, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'login-left-bg.png', size: 35043, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'login-right-bg.png', size: 40236, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'noConnection.png', size: 11232, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'directory', id: nextId(), name: 'environments', time: new Date('2019-12-18T15:06:11'), contents: [
                {type: 'file', id: nextId(), name: 'environment.prod.ts', size: 51, time: new Date('2019-12-18T15:06:11')},
                {type: 'file', id: nextId(), name: 'environment.ts', size: 662, time: new Date('2019-12-18T15:06:11')}
              ]},
              {type: 'file', id: nextId(), name: 'favicon.ico', size: 5430, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'index.html', size: 703, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'main.ts', size: 372, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'manifest.json', size: 1422, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'polyfills.ts', size: 2838, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'styles.scss', size: 389, time: new Date('2019-12-18T15:06:11')},
              {type: 'file', id: nextId(), name: 'test.ts', size: 642, time: new Date('2019-12-18T15:06:11')}
            ]},
            {type: 'file', id: nextId(), name: 'tsconfig.app.json', size: 172, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tsconfig.spec.json', size: 270, time: new Date('2019-12-18T15:06:11')},
            {type: 'file', id: nextId(), name: 'tslint.json', size: 247, time: new Date('2019-12-18T15:06:11')}
          ]}
        ]},
        {type: 'directory', id: nextId(), name: 'static', time: new Date('2019-12-18T15:06:11'), contents: [
          {type: 'file', id: nextId(), name: '404.html', size: 292, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'index.html', size: 724, time: new Date('2019-12-18T15:06:11')},
          {type: 'file', id: nextId(), name: 'styles.css', size: 57, time: new Date('2019-12-18T15:06:11')}
        ]},
        {type: 'file', id: nextId(), name: 'tsconfig.json', size: 467, time: new Date('2019-12-18T15:06:11')},
        {type: 'file', id: nextId(), name: 'tslint.json', size: 1954, time: new Date('2019-12-18T15:06:11')}
      ]}
    ]}
];

Expanded State

By default, the TreeList expands all items during export. To export the data with the currently expanded items, set expandAll to false.

import { Component } from '@angular/core';
import { Employee, employees } from './employees';

@Component({
    selector: 'my-app',
    template: `
        <kendo-treelist [kendoTreeListFlatBinding]="data" idField="id" parentIdField="managerId"
            kendoTreeListExpandable
            [height]="410">
            <ng-template kendoTreeListToolbarTemplate>
                <button type="button" kendoTreeListExcelCommand icon="file-excel">Export to Excel</button>
            </ng-template>
            <kendo-treelist-column [expandable]="true" field="name" title="Name" [width]="250">
            </kendo-treelist-column>
            <kendo-treelist-column field="title" title="Title" [width]="180"></kendo-treelist-column>
            <kendo-treelist-column field="hireDate" title="hireDate" format="d" [width]="250">
            </kendo-treelist-column>
            <kendo-treelist-excel fileName="Employees.xlsx" [expandAll]="false"></kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent {
    public data: Employee[] = employees;
}

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { IntlModule } from '@progress/kendo-angular-intl';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, IntlModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

export interface Employee {
    id: number;
    managerId?: number;
    name: string;
    title: string;
    phone: string;
    hireDate?: Date;
}

export const employees: Employee[] = [
    {
        id: 1,
        name: 'Daryl Sweeney',
        title: 'Chief Executive Officer',
        phone: '(555) 924-9726',
        managerId: null,
        hireDate: new Date('2019-01-15')
    },
    {
        id: 2,
        name: 'Guy Wooten',
        title: 'Chief Technical Officer',
        phone: '(438) 738-4935',
        managerId: 1,
        hireDate: new Date('2019-02-19')
    },
    {
        id: 32,
        name: 'Buffy Weber',
        title: 'VP, Engineering',
        phone: '(699) 838-6121',
        managerId: 2,
        hireDate: new Date('2019-04-13')
    },
    {
        id: 11,
        name: 'Hyacinth Hood',
        title: 'Team Lead',
        phone: '(889) 345-2438',
        managerId: 32,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 60,
        name: 'Akeem Carr',
        title: 'Junior Software Developer',
        phone: '(738) 136-2814',
        managerId: 11,
        hireDate: new Date('2018-01-18')
    },
    {
        id: 78,
        name: 'Rinah Simon',
        title: 'Software Developer',
        phone: '(285) 912-5271',
        managerId: 11,
        hireDate: new Date('2018-03-17')
    },
    {
        id: 42,
        name: 'Gage Daniels',
        title: 'Software Architect',
        phone: '(107) 290-6260',
        managerId: 32,
        hireDate: new Date('2019-03-14')
    },
    {
        id: 43,
        name: 'Constance Vazquez',
        title: 'Director, Engineering',
        phone: '(800) 301-1978',
        managerId: 32,
        hireDate: new Date('2018-03-18')
    },
    {
        id: 46,
        name: 'Darrel Solis',
        title: 'Team Lead',
        phone: '(327) 977-0216',
        managerId: 43,
        hireDate: new Date('2019-04-15')
    },
    {
        id: 47,
        name: 'Brian Yang',
        title: 'Senior Software Developer',
        phone: '(565) 146-5435',
        managerId: 46,
        hireDate: new Date('2019-02-21')
    },
    {
        id: 50,
        name: 'Lillian Bradshaw',
        title: 'Software Developer',
        phone: '(323) 509-3479',
        managerId: 46,
        hireDate: new Date('2019-05-23')
    },
    {
        id: 51,
        name: 'Christian Palmer',
        title: 'Technical Lead',
        phone: '(490) 421-8718',
        managerId: 46,
        hireDate: new Date('2019-04-16')
    },
    {
        id: 55,
        name: 'Summer Mosley',
        title: 'QA Engineer',
        phone: '(784) 962-2301',
        managerId: 46,
        hireDate: new Date('2019-09-21')
    },
    {
        id: 56,
        name: 'Barry Ayers',
        title: 'Software Developer',
        phone: '(452) 373-9227',
        managerId: 46,
        hireDate: new Date('2018-04-16')
    },
    {
        id: 59,
        name: 'Keiko Espinoza',
        title: 'Junior QA Engineer',
        phone: '(226) 600-5305',
        managerId: 46,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 61,
        name: 'Candace Pickett',
        title: 'Support Officer',
        phone: '(120) 117-7475',
        managerId: 46,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 63,
        name: 'Mia Caldwell',
        title: 'Team Lead',
        phone: '(848) 636-6470',
        managerId: 43,
        hireDate: new Date('2018-07-17')
    },
    {
        id: 65,
        name: 'Thomas Terry',
        title: 'Senior Enterprise Support Officer',
        phone: '(764) 831-4248',
        managerId: 63,
        hireDate: new Date('2018-07-14')
    },
    {
        id: 67,
        name: 'Ruth Downs',
        title: 'Senior Software Developer',
        phone: '(138) 991-1440',
        managerId: 63,
        hireDate: new Date('2018-08-14')
    },
    {
        id: 70,
        name: 'Yasir Wilder',
        title: 'Senior QA Engineer',
        phone: '(759) 701-8665',
        managerId: 63,
        hireDate: new Date('2019-08-17')
    },
    {
        id: 71,
        name: 'Flavia Short',
        title: 'Support Officer',
        phone: '(370) 133-9238',
        managerId: 63,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 74,
        name: 'Aaron Roach',
        title: 'Junior Software Developer',
        phone: '(958) 717-9230',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 75,
        name: 'Eric Russell',
        title: 'Software Developer',
        phone: '(516) 575-8505',
        managerId: 63,
        hireDate: new Date('2019-09-13')
    },
    {
        id: 76,
        name: 'Cheyenne Olson',
        title: 'Software Developer',
        phone: '(241) 645-0257',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 77,
        name: 'Shaine Avila',
        title: 'UI Designer',
        phone: '(844) 435-1360',
        managerId: 63,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 81,
        name: 'Chantale Long',
        title: 'Senior QA Engineer',
        phone: '(252) 419-6891',
        managerId: 63,
        hireDate: new Date('2018-09-14')
    },
    {
        id: 83,
        name: 'Dane Cruz',
        title: 'Junior Software Developer',
        phone: '(946) 701-6165',
        managerId: 63,
        hireDate: new Date('2019-03-15')
    },
    {
        id: 84,
        name: 'Regan Patterson',
        title: 'Technical Writer',
        phone: '(265) 946-1765',
        managerId: 63,
        hireDate: new Date('2019-05-17')
    },
    {
        id: 85,
        name: 'Drew Mckay',
        title: 'Senior Software Developer',
        phone: '(327) 293-0162',
        managerId: 63,
        hireDate: new Date('2019-05-21')
    },
    {
        id: 88,
        name: 'Bevis Miller',
        title: 'Senior Software Developer',
        phone: '(525) 557-0169',
        managerId: 63,
        hireDate: new Date('2018-08-15')
    },
    {
        id: 89,
        name: 'Bruce Mccarty',
        title: 'Support Officer',
        phone: '(936) 777-8730',
        managerId: 63,
        hireDate: new Date('2019-10-21')
    },
    {
        id: 90,
        name: 'Ocean Blair',
        title: 'Team Lead',
        phone: '(343) 586-6614',
        managerId: 43,
        hireDate: new Date('2018-06-20')
    },
    {
        id: 91,
        name: 'Guinevere Osborn',
        title: 'Software Developer',
        phone: '(424) 741-0006',
        managerId: 90,
        hireDate: new Date('2019-06-17')
    },
    {
        id: 92,
        name: 'Olga Strong',
        title: 'Graphic Designer',
        phone: '(949) 417-1168',
        managerId: 90,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 93,
        name: 'Robert Orr',
        title: 'Support Officer',
        phone: '(977) 341-3721',
        managerId: 90,
        hireDate: new Date('2018-06-22')
    },
    {
        id: 95,
        name: 'Odette Sears',
        title: 'Senior Software Developer',
        phone: '(264) 818-6576',
        managerId: 90,
        hireDate: new Date('2019-05-20')
    },
    {
        id: 45,
        name: 'Zelda Medina',
        title: 'QA Architect',
        phone: '(563) 359-6023',
        managerId: 32,
        hireDate: new Date('2018-08-16')
    },
    {
        id: 3,
        name: 'Priscilla Frank',
        title: 'Chief Product Officer',
        phone: '(217) 280-5300',
        managerId: 1,
        hireDate: new Date('2019-04-22')
    },
    {
        id: 4,
        name: 'Ursula Holmes',
        title: 'EVP, Product Strategy',
        phone: '(370) 983-8796',
        managerId: 3,
        hireDate: new Date('2018-01-15')
    },
    {
        id: 24,
        name: 'Melvin Carrillo',
        title: 'Director, Developer Relations',
        phone: '(344) 496-9555',
        managerId: 3,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 29,
        name: 'Martha Chavez',
        title: 'Developer Advocate',
        phone: '(140) 772-7509',
        managerId: 24,
        hireDate: new Date('2018-05-14')
    },
    {
        id: 30,
        name: 'Oren Fox',
        title: 'Developer Advocate',
        phone: '(714) 284-2408',
        managerId: 24,
        hireDate: new Date('2018-07-19')
    },
    {
        id: 41,
        name: 'Amos Barr',
        title: 'Developer Advocate',
        phone: '(996) 587-8405',
        managerId: 24,
        hireDate: new Date('2019-01-16')
    }
  ];

Customizing Exported Columns

By default, the TreeList exports its current columns. To export columns that are different from the current TreeList columns, include the <kendo-excelexport-column> and <kendo-excelexport-column-group> components inside the <kendo-treelist-excel> component.

import { Component } from '@angular/core';
import { Employee, employees } from './employees';

@Component({
    selector: 'my-app',
    template: `
        <kendo-treelist [kendoTreeListFlatBinding]="data" idField="id" parentIdField="managerId"
            kendoTreeListExpandable
            [height]="410">

            <ng-template kendoTreeListToolbarTemplate>
                <button type="button" kendoTreeListExcelCommand icon="file-excel">Export to Excel</button>
            </ng-template>
            <kendo-treelist-column [expandable]="true" field="name" title="Name" [width]="250">
            </kendo-treelist-column>
            <kendo-treelist-column field="title" title="Title" [width]="180">
            </kendo-treelist-column>
            <kendo-treelist-excel fileName="Employees.xlsx">
                <kendo-excelexport-column field="name" title="Name">
                </kendo-excelexport-column>
                <kendo-excelexport-column field="title" title="Title">
                </kendo-excelexport-column>
                <kendo-excelexport-column field="phone" title="Phone" [width]="100">
                </kendo-excelexport-column>
                <kendo-excelexport-column field="hireDate" title="HireDate" [width]="100">
                </kendo-excelexport-column>
            </kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent {
    public data: Employee[] = employees;
}

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { IntlModule } from '@progress/kendo-angular-intl';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, IntlModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

export interface Employee {
    id: number;
    managerId?: number;
    name: string;
    title: string;
    phone: string;
    hireDate?: Date;
}

export const employees: Employee[] = [
    {
        id: 1,
        name: 'Daryl Sweeney',
        title: 'Chief Executive Officer',
        phone: '(555) 924-9726',
        managerId: null,
        hireDate: new Date('2019-01-15')
    },
    {
        id: 2,
        name: 'Guy Wooten',
        title: 'Chief Technical Officer',
        phone: '(438) 738-4935',
        managerId: 1,
        hireDate: new Date('2019-02-19')
    },
    {
        id: 32,
        name: 'Buffy Weber',
        title: 'VP, Engineering',
        phone: '(699) 838-6121',
        managerId: 2,
        hireDate: new Date('2019-04-13')
    },
    {
        id: 11,
        name: 'Hyacinth Hood',
        title: 'Team Lead',
        phone: '(889) 345-2438',
        managerId: 32,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 60,
        name: 'Akeem Carr',
        title: 'Junior Software Developer',
        phone: '(738) 136-2814',
        managerId: 11,
        hireDate: new Date('2018-01-18')
    },
    {
        id: 78,
        name: 'Rinah Simon',
        title: 'Software Developer',
        phone: '(285) 912-5271',
        managerId: 11,
        hireDate: new Date('2018-03-17')
    },
    {
        id: 42,
        name: 'Gage Daniels',
        title: 'Software Architect',
        phone: '(107) 290-6260',
        managerId: 32,
        hireDate: new Date('2019-03-14')
    },
    {
        id: 43,
        name: 'Constance Vazquez',
        title: 'Director, Engineering',
        phone: '(800) 301-1978',
        managerId: 32,
        hireDate: new Date('2018-03-18')
    },
    {
        id: 46,
        name: 'Darrel Solis',
        title: 'Team Lead',
        phone: '(327) 977-0216',
        managerId: 43,
        hireDate: new Date('2019-04-15')
    },
    {
        id: 47,
        name: 'Brian Yang',
        title: 'Senior Software Developer',
        phone: '(565) 146-5435',
        managerId: 46,
        hireDate: new Date('2019-02-21')
    },
    {
        id: 50,
        name: 'Lillian Bradshaw',
        title: 'Software Developer',
        phone: '(323) 509-3479',
        managerId: 46,
        hireDate: new Date('2019-05-23')
    },
    {
        id: 51,
        name: 'Christian Palmer',
        title: 'Technical Lead',
        phone: '(490) 421-8718',
        managerId: 46,
        hireDate: new Date('2019-04-16')
    },
    {
        id: 55,
        name: 'Summer Mosley',
        title: 'QA Engineer',
        phone: '(784) 962-2301',
        managerId: 46,
        hireDate: new Date('2019-09-21')
    },
    {
        id: 56,
        name: 'Barry Ayers',
        title: 'Software Developer',
        phone: '(452) 373-9227',
        managerId: 46,
        hireDate: new Date('2018-04-16')
    },
    {
        id: 59,
        name: 'Keiko Espinoza',
        title: 'Junior QA Engineer',
        phone: '(226) 600-5305',
        managerId: 46,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 61,
        name: 'Candace Pickett',
        title: 'Support Officer',
        phone: '(120) 117-7475',
        managerId: 46,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 63,
        name: 'Mia Caldwell',
        title: 'Team Lead',
        phone: '(848) 636-6470',
        managerId: 43,
        hireDate: new Date('2018-07-17')
    },
    {
        id: 65,
        name: 'Thomas Terry',
        title: 'Senior Enterprise Support Officer',
        phone: '(764) 831-4248',
        managerId: 63,
        hireDate: new Date('2018-07-14')
    },
    {
        id: 67,
        name: 'Ruth Downs',
        title: 'Senior Software Developer',
        phone: '(138) 991-1440',
        managerId: 63,
        hireDate: new Date('2018-08-14')
    },
    {
        id: 70,
        name: 'Yasir Wilder',
        title: 'Senior QA Engineer',
        phone: '(759) 701-8665',
        managerId: 63,
        hireDate: new Date('2019-08-17')
    },
    {
        id: 71,
        name: 'Flavia Short',
        title: 'Support Officer',
        phone: '(370) 133-9238',
        managerId: 63,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 74,
        name: 'Aaron Roach',
        title: 'Junior Software Developer',
        phone: '(958) 717-9230',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 75,
        name: 'Eric Russell',
        title: 'Software Developer',
        phone: '(516) 575-8505',
        managerId: 63,
        hireDate: new Date('2019-09-13')
    },
    {
        id: 76,
        name: 'Cheyenne Olson',
        title: 'Software Developer',
        phone: '(241) 645-0257',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 77,
        name: 'Shaine Avila',
        title: 'UI Designer',
        phone: '(844) 435-1360',
        managerId: 63,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 81,
        name: 'Chantale Long',
        title: 'Senior QA Engineer',
        phone: '(252) 419-6891',
        managerId: 63,
        hireDate: new Date('2018-09-14')
    },
    {
        id: 83,
        name: 'Dane Cruz',
        title: 'Junior Software Developer',
        phone: '(946) 701-6165',
        managerId: 63,
        hireDate: new Date('2019-03-15')
    },
    {
        id: 84,
        name: 'Regan Patterson',
        title: 'Technical Writer',
        phone: '(265) 946-1765',
        managerId: 63,
        hireDate: new Date('2019-05-17')
    },
    {
        id: 85,
        name: 'Drew Mckay',
        title: 'Senior Software Developer',
        phone: '(327) 293-0162',
        managerId: 63,
        hireDate: new Date('2019-05-21')
    },
    {
        id: 88,
        name: 'Bevis Miller',
        title: 'Senior Software Developer',
        phone: '(525) 557-0169',
        managerId: 63,
        hireDate: new Date('2018-08-15')
    },
    {
        id: 89,
        name: 'Bruce Mccarty',
        title: 'Support Officer',
        phone: '(936) 777-8730',
        managerId: 63,
        hireDate: new Date('2019-10-21')
    },
    {
        id: 90,
        name: 'Ocean Blair',
        title: 'Team Lead',
        phone: '(343) 586-6614',
        managerId: 43,
        hireDate: new Date('2018-06-20')
    },
    {
        id: 91,
        name: 'Guinevere Osborn',
        title: 'Software Developer',
        phone: '(424) 741-0006',
        managerId: 90,
        hireDate: new Date('2019-06-17')
    },
    {
        id: 92,
        name: 'Olga Strong',
        title: 'Graphic Designer',
        phone: '(949) 417-1168',
        managerId: 90,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 93,
        name: 'Robert Orr',
        title: 'Support Officer',
        phone: '(977) 341-3721',
        managerId: 90,
        hireDate: new Date('2018-06-22')
    },
    {
        id: 95,
        name: 'Odette Sears',
        title: 'Senior Software Developer',
        phone: '(264) 818-6576',
        managerId: 90,
        hireDate: new Date('2019-05-20')
    },
    {
        id: 45,
        name: 'Zelda Medina',
        title: 'QA Architect',
        phone: '(563) 359-6023',
        managerId: 32,
        hireDate: new Date('2018-08-16')
    },
    {
        id: 3,
        name: 'Priscilla Frank',
        title: 'Chief Product Officer',
        phone: '(217) 280-5300',
        managerId: 1,
        hireDate: new Date('2019-04-22')
    },
    {
        id: 4,
        name: 'Ursula Holmes',
        title: 'EVP, Product Strategy',
        phone: '(370) 983-8796',
        managerId: 3,
        hireDate: new Date('2018-01-15')
    },
    {
        id: 24,
        name: 'Melvin Carrillo',
        title: 'Director, Developer Relations',
        phone: '(344) 496-9555',
        managerId: 3,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 29,
        name: 'Martha Chavez',
        title: 'Developer Advocate',
        phone: '(140) 772-7509',
        managerId: 24,
        hireDate: new Date('2018-05-14')
    },
    {
        id: 30,
        name: 'Oren Fox',
        title: 'Developer Advocate',
        phone: '(714) 284-2408',
        managerId: 24,
        hireDate: new Date('2018-07-19')
    },
    {
        id: 41,
        name: 'Amos Barr',
        title: 'Developer Advocate',
        phone: '(996) 587-8405',
        managerId: 24,
        hireDate: new Date('2019-01-16')
    }
  ];

Customizing Generated Workbooks

The excelExport event allows you to customize the generated Excel document. The workbook event argument exposes the generated Excel workbook configuration.

import { Component } from '@angular/core';
import { Employee, employees } from './employees';

@Component({
    selector: 'my-app',
    template: `
        <kendo-treelist [kendoTreeListFlatBinding]="data" idField="id" parentIdField="managerId" [height]="410"
            kendoTreeListExpandable
            (excelExport)="onExcelExport($event)">
            <ng-template kendoTreeListToolbarTemplate>
                <button type="button" kendoTreeListExcelCommand icon="file-excel">Export to Excel</button>
            </ng-template>
            <kendo-treelist-column [expandable]="true" field="name" title="Name" [width]="250">
            </kendo-treelist-column>
            <kendo-treelist-column field="title" title="Title" [width]="180"></kendo-treelist-column>
            <kendo-treelist-column field="hireDate" title="hireDate" format="d" [width]="250">
            </kendo-treelist-column>
            <kendo-treelist-excel fileName="Employees.xlsx"></kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent {
    public data: Employee[] = employees;

    public onExcelExport(e: any): void {
        const rows = e.workbook.sheets[0].rows;

        // set alternating row color
        let altIdx = 0;
        rows.forEach((row) => {
            if (row.type === 'data') {
                if (altIdx % 2 !== 0) {
                    row.cells.forEach((cell) => {
                        cell.background = '#aabbcc';
                    });
                }
                altIdx++;
            }
        });
    }
}

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { IntlModule } from '@progress/kendo-angular-intl';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, IntlModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

export interface Employee {
    id: number;
    managerId?: number;
    name: string;
    title: string;
    phone: string;
    hireDate?: Date;
}

export const employees: Employee[] = [
    {
        id: 1,
        name: 'Daryl Sweeney',
        title: 'Chief Executive Officer',
        phone: '(555) 924-9726',
        managerId: null,
        hireDate: new Date('2019-01-15')
    },
    {
        id: 2,
        name: 'Guy Wooten',
        title: 'Chief Technical Officer',
        phone: '(438) 738-4935',
        managerId: 1,
        hireDate: new Date('2019-02-19')
    },
    {
        id: 32,
        name: 'Buffy Weber',
        title: 'VP, Engineering',
        phone: '(699) 838-6121',
        managerId: 2,
        hireDate: new Date('2019-04-13')
    },
    {
        id: 11,
        name: 'Hyacinth Hood',
        title: 'Team Lead',
        phone: '(889) 345-2438',
        managerId: 32,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 60,
        name: 'Akeem Carr',
        title: 'Junior Software Developer',
        phone: '(738) 136-2814',
        managerId: 11,
        hireDate: new Date('2018-01-18')
    },
    {
        id: 78,
        name: 'Rinah Simon',
        title: 'Software Developer',
        phone: '(285) 912-5271',
        managerId: 11,
        hireDate: new Date('2018-03-17')
    },
    {
        id: 42,
        name: 'Gage Daniels',
        title: 'Software Architect',
        phone: '(107) 290-6260',
        managerId: 32,
        hireDate: new Date('2019-03-14')
    },
    {
        id: 43,
        name: 'Constance Vazquez',
        title: 'Director, Engineering',
        phone: '(800) 301-1978',
        managerId: 32,
        hireDate: new Date('2018-03-18')
    },
    {
        id: 46,
        name: 'Darrel Solis',
        title: 'Team Lead',
        phone: '(327) 977-0216',
        managerId: 43,
        hireDate: new Date('2019-04-15')
    },
    {
        id: 47,
        name: 'Brian Yang',
        title: 'Senior Software Developer',
        phone: '(565) 146-5435',
        managerId: 46,
        hireDate: new Date('2019-02-21')
    },
    {
        id: 50,
        name: 'Lillian Bradshaw',
        title: 'Software Developer',
        phone: '(323) 509-3479',
        managerId: 46,
        hireDate: new Date('2019-05-23')
    },
    {
        id: 51,
        name: 'Christian Palmer',
        title: 'Technical Lead',
        phone: '(490) 421-8718',
        managerId: 46,
        hireDate: new Date('2019-04-16')
    },
    {
        id: 55,
        name: 'Summer Mosley',
        title: 'QA Engineer',
        phone: '(784) 962-2301',
        managerId: 46,
        hireDate: new Date('2019-09-21')
    },
    {
        id: 56,
        name: 'Barry Ayers',
        title: 'Software Developer',
        phone: '(452) 373-9227',
        managerId: 46,
        hireDate: new Date('2018-04-16')
    },
    {
        id: 59,
        name: 'Keiko Espinoza',
        title: 'Junior QA Engineer',
        phone: '(226) 600-5305',
        managerId: 46,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 61,
        name: 'Candace Pickett',
        title: 'Support Officer',
        phone: '(120) 117-7475',
        managerId: 46,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 63,
        name: 'Mia Caldwell',
        title: 'Team Lead',
        phone: '(848) 636-6470',
        managerId: 43,
        hireDate: new Date('2018-07-17')
    },
    {
        id: 65,
        name: 'Thomas Terry',
        title: 'Senior Enterprise Support Officer',
        phone: '(764) 831-4248',
        managerId: 63,
        hireDate: new Date('2018-07-14')
    },
    {
        id: 67,
        name: 'Ruth Downs',
        title: 'Senior Software Developer',
        phone: '(138) 991-1440',
        managerId: 63,
        hireDate: new Date('2018-08-14')
    },
    {
        id: 70,
        name: 'Yasir Wilder',
        title: 'Senior QA Engineer',
        phone: '(759) 701-8665',
        managerId: 63,
        hireDate: new Date('2019-08-17')
    },
    {
        id: 71,
        name: 'Flavia Short',
        title: 'Support Officer',
        phone: '(370) 133-9238',
        managerId: 63,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 74,
        name: 'Aaron Roach',
        title: 'Junior Software Developer',
        phone: '(958) 717-9230',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 75,
        name: 'Eric Russell',
        title: 'Software Developer',
        phone: '(516) 575-8505',
        managerId: 63,
        hireDate: new Date('2019-09-13')
    },
    {
        id: 76,
        name: 'Cheyenne Olson',
        title: 'Software Developer',
        phone: '(241) 645-0257',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 77,
        name: 'Shaine Avila',
        title: 'UI Designer',
        phone: '(844) 435-1360',
        managerId: 63,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 81,
        name: 'Chantale Long',
        title: 'Senior QA Engineer',
        phone: '(252) 419-6891',
        managerId: 63,
        hireDate: new Date('2018-09-14')
    },
    {
        id: 83,
        name: 'Dane Cruz',
        title: 'Junior Software Developer',
        phone: '(946) 701-6165',
        managerId: 63,
        hireDate: new Date('2019-03-15')
    },
    {
        id: 84,
        name: 'Regan Patterson',
        title: 'Technical Writer',
        phone: '(265) 946-1765',
        managerId: 63,
        hireDate: new Date('2019-05-17')
    },
    {
        id: 85,
        name: 'Drew Mckay',
        title: 'Senior Software Developer',
        phone: '(327) 293-0162',
        managerId: 63,
        hireDate: new Date('2019-05-21')
    },
    {
        id: 88,
        name: 'Bevis Miller',
        title: 'Senior Software Developer',
        phone: '(525) 557-0169',
        managerId: 63,
        hireDate: new Date('2018-08-15')
    },
    {
        id: 89,
        name: 'Bruce Mccarty',
        title: 'Support Officer',
        phone: '(936) 777-8730',
        managerId: 63,
        hireDate: new Date('2019-10-21')
    },
    {
        id: 90,
        name: 'Ocean Blair',
        title: 'Team Lead',
        phone: '(343) 586-6614',
        managerId: 43,
        hireDate: new Date('2018-06-20')
    },
    {
        id: 91,
        name: 'Guinevere Osborn',
        title: 'Software Developer',
        phone: '(424) 741-0006',
        managerId: 90,
        hireDate: new Date('2019-06-17')
    },
    {
        id: 92,
        name: 'Olga Strong',
        title: 'Graphic Designer',
        phone: '(949) 417-1168',
        managerId: 90,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 93,
        name: 'Robert Orr',
        title: 'Support Officer',
        phone: '(977) 341-3721',
        managerId: 90,
        hireDate: new Date('2018-06-22')
    },
    {
        id: 95,
        name: 'Odette Sears',
        title: 'Senior Software Developer',
        phone: '(264) 818-6576',
        managerId: 90,
        hireDate: new Date('2019-05-20')
    },
    {
        id: 45,
        name: 'Zelda Medina',
        title: 'QA Architect',
        phone: '(563) 359-6023',
        managerId: 32,
        hireDate: new Date('2018-08-16')
    },
    {
        id: 3,
        name: 'Priscilla Frank',
        title: 'Chief Product Officer',
        phone: '(217) 280-5300',
        managerId: 1,
        hireDate: new Date('2019-04-22')
    },
    {
        id: 4,
        name: 'Ursula Holmes',
        title: 'EVP, Product Strategy',
        phone: '(370) 983-8796',
        managerId: 3,
        hireDate: new Date('2018-01-15')
    },
    {
        id: 24,
        name: 'Melvin Carrillo',
        title: 'Director, Developer Relations',
        phone: '(344) 496-9555',
        managerId: 3,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 29,
        name: 'Martha Chavez',
        title: 'Developer Advocate',
        phone: '(140) 772-7509',
        managerId: 24,
        hireDate: new Date('2018-05-14')
    },
    {
        id: 30,
        name: 'Oren Fox',
        title: 'Developer Advocate',
        phone: '(714) 284-2408',
        managerId: 24,
        hireDate: new Date('2018-07-19')
    },
    {
        id: 41,
        name: 'Amos Barr',
        title: 'Developer Advocate',
        phone: '(996) 587-8405',
        managerId: 24,
        hireDate: new Date('2019-01-16')
    }
  ];

Triggering Export Externally

The TreeList enables you to trigger the export operation by calling the saveAsExcel method.

import { Component } from '@angular/core';
import { Employee, employees } from './employees';

@Component({
    selector: 'my-app',
    template: `
        <p>
          <button (click)="exportToExcel(treelist)">Export TreeList to Excel...</button>
        </p>

        <kendo-treelist #treelist [kendoTreeListFlatBinding]="data" idField="id" parentIdField="managerId"
                kendoTreeListExpandable
                [aggregate]="aggregate"
                [height]="410">
            <kendo-treelist-column [expandable]="true" field="name" title="Name" [width]="250">
                <ng-template kendoTreeListFooterTemplate let-aggregates="aggregates">
                  {{ aggregates.name.count }} employee(s)
                </ng-template>
            </kendo-treelist-column>
            <kendo-treelist-column field="title" title="Title" [width]="180"></kendo-treelist-column>
            <kendo-treelist-column field="hireDate" title="hireDate" format="d" [width]="250">
                <ng-template kendoTreeListFooterTemplate let-aggregates="aggregates">
                  Last employee hired on {{ aggregates.hireDate.max | kendoDate : 'd' }}
                </ng-template>
            </kendo-treelist-column>
            <kendo-treelist-excel fileName="Employees.xlsx"></kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent {
    public aggregate: any[] = [{ field: 'name', aggregate: 'count' }, { field: 'hireDate', aggregate: 'max' }];

    public data: Employee[] = employees;

    public exportToExcel(treelist: TreeListComponent): void {
      treelist.saveAsExcel();
    }
}


import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { IntlModule } from '@progress/kendo-angular-intl';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, IntlModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

export interface Employee {
    id: number;
    managerId?: number;
    name: string;
    title: string;
    phone: string;
    hireDate?: Date;
}

export const employees: Employee[] = [
    {
        id: 1,
        name: 'Daryl Sweeney',
        title: 'Chief Executive Officer',
        phone: '(555) 924-9726',
        managerId: null,
        hireDate: new Date('2019-01-15')
    },
    {
        id: 2,
        name: 'Guy Wooten',
        title: 'Chief Technical Officer',
        phone: '(438) 738-4935',
        managerId: 1,
        hireDate: new Date('2019-02-19')
    },
    {
        id: 32,
        name: 'Buffy Weber',
        title: 'VP, Engineering',
        phone: '(699) 838-6121',
        managerId: 2,
        hireDate: new Date('2019-04-13')
    },
    {
        id: 11,
        name: 'Hyacinth Hood',
        title: 'Team Lead',
        phone: '(889) 345-2438',
        managerId: 32,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 60,
        name: 'Akeem Carr',
        title: 'Junior Software Developer',
        phone: '(738) 136-2814',
        managerId: 11,
        hireDate: new Date('2018-01-18')
    },
    {
        id: 78,
        name: 'Rinah Simon',
        title: 'Software Developer',
        phone: '(285) 912-5271',
        managerId: 11,
        hireDate: new Date('2018-03-17')
    },
    {
        id: 42,
        name: 'Gage Daniels',
        title: 'Software Architect',
        phone: '(107) 290-6260',
        managerId: 32,
        hireDate: new Date('2019-03-14')
    },
    {
        id: 43,
        name: 'Constance Vazquez',
        title: 'Director, Engineering',
        phone: '(800) 301-1978',
        managerId: 32,
        hireDate: new Date('2018-03-18')
    },
    {
        id: 46,
        name: 'Darrel Solis',
        title: 'Team Lead',
        phone: '(327) 977-0216',
        managerId: 43,
        hireDate: new Date('2019-04-15')
    },
    {
        id: 47,
        name: 'Brian Yang',
        title: 'Senior Software Developer',
        phone: '(565) 146-5435',
        managerId: 46,
        hireDate: new Date('2019-02-21')
    },
    {
        id: 50,
        name: 'Lillian Bradshaw',
        title: 'Software Developer',
        phone: '(323) 509-3479',
        managerId: 46,
        hireDate: new Date('2019-05-23')
    },
    {
        id: 51,
        name: 'Christian Palmer',
        title: 'Technical Lead',
        phone: '(490) 421-8718',
        managerId: 46,
        hireDate: new Date('2019-04-16')
    },
    {
        id: 55,
        name: 'Summer Mosley',
        title: 'QA Engineer',
        phone: '(784) 962-2301',
        managerId: 46,
        hireDate: new Date('2019-09-21')
    },
    {
        id: 56,
        name: 'Barry Ayers',
        title: 'Software Developer',
        phone: '(452) 373-9227',
        managerId: 46,
        hireDate: new Date('2018-04-16')
    },
    {
        id: 59,
        name: 'Keiko Espinoza',
        title: 'Junior QA Engineer',
        phone: '(226) 600-5305',
        managerId: 46,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 61,
        name: 'Candace Pickett',
        title: 'Support Officer',
        phone: '(120) 117-7475',
        managerId: 46,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 63,
        name: 'Mia Caldwell',
        title: 'Team Lead',
        phone: '(848) 636-6470',
        managerId: 43,
        hireDate: new Date('2018-07-17')
    },
    {
        id: 65,
        name: 'Thomas Terry',
        title: 'Senior Enterprise Support Officer',
        phone: '(764) 831-4248',
        managerId: 63,
        hireDate: new Date('2018-07-14')
    },
    {
        id: 67,
        name: 'Ruth Downs',
        title: 'Senior Software Developer',
        phone: '(138) 991-1440',
        managerId: 63,
        hireDate: new Date('2018-08-14')
    },
    {
        id: 70,
        name: 'Yasir Wilder',
        title: 'Senior QA Engineer',
        phone: '(759) 701-8665',
        managerId: 63,
        hireDate: new Date('2019-08-17')
    },
    {
        id: 71,
        name: 'Flavia Short',
        title: 'Support Officer',
        phone: '(370) 133-9238',
        managerId: 63,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 74,
        name: 'Aaron Roach',
        title: 'Junior Software Developer',
        phone: '(958) 717-9230',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 75,
        name: 'Eric Russell',
        title: 'Software Developer',
        phone: '(516) 575-8505',
        managerId: 63,
        hireDate: new Date('2019-09-13')
    },
    {
        id: 76,
        name: 'Cheyenne Olson',
        title: 'Software Developer',
        phone: '(241) 645-0257',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 77,
        name: 'Shaine Avila',
        title: 'UI Designer',
        phone: '(844) 435-1360',
        managerId: 63,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 81,
        name: 'Chantale Long',
        title: 'Senior QA Engineer',
        phone: '(252) 419-6891',
        managerId: 63,
        hireDate: new Date('2018-09-14')
    },
    {
        id: 83,
        name: 'Dane Cruz',
        title: 'Junior Software Developer',
        phone: '(946) 701-6165',
        managerId: 63,
        hireDate: new Date('2019-03-15')
    },
    {
        id: 84,
        name: 'Regan Patterson',
        title: 'Technical Writer',
        phone: '(265) 946-1765',
        managerId: 63,
        hireDate: new Date('2019-05-17')
    },
    {
        id: 85,
        name: 'Drew Mckay',
        title: 'Senior Software Developer',
        phone: '(327) 293-0162',
        managerId: 63,
        hireDate: new Date('2019-05-21')
    },
    {
        id: 88,
        name: 'Bevis Miller',
        title: 'Senior Software Developer',
        phone: '(525) 557-0169',
        managerId: 63,
        hireDate: new Date('2018-08-15')
    },
    {
        id: 89,
        name: 'Bruce Mccarty',
        title: 'Support Officer',
        phone: '(936) 777-8730',
        managerId: 63,
        hireDate: new Date('2019-10-21')
    },
    {
        id: 90,
        name: 'Ocean Blair',
        title: 'Team Lead',
        phone: '(343) 586-6614',
        managerId: 43,
        hireDate: new Date('2018-06-20')
    },
    {
        id: 91,
        name: 'Guinevere Osborn',
        title: 'Software Developer',
        phone: '(424) 741-0006',
        managerId: 90,
        hireDate: new Date('2019-06-17')
    },
    {
        id: 92,
        name: 'Olga Strong',
        title: 'Graphic Designer',
        phone: '(949) 417-1168',
        managerId: 90,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 93,
        name: 'Robert Orr',
        title: 'Support Officer',
        phone: '(977) 341-3721',
        managerId: 90,
        hireDate: new Date('2018-06-22')
    },
    {
        id: 95,
        name: 'Odette Sears',
        title: 'Senior Software Developer',
        phone: '(264) 818-6576',
        managerId: 90,
        hireDate: new Date('2019-05-20')
    },
    {
        id: 45,
        name: 'Zelda Medina',
        title: 'QA Architect',
        phone: '(563) 359-6023',
        managerId: 32,
        hireDate: new Date('2018-08-16')
    },
    {
        id: 3,
        name: 'Priscilla Frank',
        title: 'Chief Product Officer',
        phone: '(217) 280-5300',
        managerId: 1,
        hireDate: new Date('2019-04-22')
    },
    {
        id: 4,
        name: 'Ursula Holmes',
        title: 'EVP, Product Strategy',
        phone: '(370) 983-8796',
        managerId: 3,
        hireDate: new Date('2018-01-15')
    },
    {
        id: 24,
        name: 'Melvin Carrillo',
        title: 'Director, Developer Relations',
        phone: '(344) 496-9555',
        managerId: 3,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 29,
        name: 'Martha Chavez',
        title: 'Developer Advocate',
        phone: '(140) 772-7509',
        managerId: 24,
        hireDate: new Date('2018-05-14')
    },
    {
        id: 30,
        name: 'Oren Fox',
        title: 'Developer Advocate',
        phone: '(714) 284-2408',
        managerId: 24,
        hireDate: new Date('2018-07-19')
    },
    {
        id: 41,
        name: 'Amos Barr',
        title: 'Developer Advocate',
        phone: '(996) 587-8405',
        managerId: 24,
        hireDate: new Date('2019-01-16')
    }
  ];

Making Item Levels Collapsible

The collapsible option allows you to create a collapsible outline for each item level.

The option is only applicable if the TreeList has footers.

import { Component } from '@angular/core';
import { Employee, employees } from './employees';

@Component({
    selector: 'my-app',
    template: `
        <kendo-treelist [kendoTreeListFlatBinding]="data" idField="id" parentIdField="managerId"
                kendoTreeListExpandable
                [aggregate]="aggregate"
                [height]="410">
            <ng-template kendoTreeListToolbarTemplate>
                <button type="button" kendoTreeListExcelCommand icon="file-excel">Export to Excel</button>
            </ng-template>
            <kendo-treelist-column [expandable]="true" field="name" title="Name" [width]="250">
                <ng-template kendoTreeListFooterTemplate let-aggregates="aggregates">
                  {{ aggregates.name.count }} employee(s)
                </ng-template>
            </kendo-treelist-column>
            <kendo-treelist-column field="title" title="Title" [width]="180"></kendo-treelist-column>
            <kendo-treelist-column field="hireDate" title="hireDate" format="d" [width]="250">
                <ng-template kendoTreeListFooterTemplate let-aggregates="aggregates">
                  Last employee hired on {{ aggregates.hireDate.max | kendoDate : 'd' }}
                </ng-template>
            </kendo-treelist-column>
            <kendo-treelist-excel fileName="Employees.xlsx" [collapsible]="true"></kendo-treelist-excel>
        </kendo-treelist>
    `
})
export class AppComponent {
    public aggregate: any[] = [{ field: 'name', aggregate: 'count' }, { field: 'hireDate', aggregate: 'max' }];

    public data: Employee[] = employees;
}

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';
import { IntlModule } from '@progress/kendo-angular-intl';
import { AppComponent } from './app.component';

@NgModule({
  imports:      [ BrowserModule, TreeListModule, ExcelModule, IntlModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';

enableProdMode();

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

export interface Employee {
    id: number;
    managerId?: number;
    name: string;
    title: string;
    phone: string;
    hireDate?: Date;
}

export const employees: Employee[] = [
    {
        id: 1,
        name: 'Daryl Sweeney',
        title: 'Chief Executive Officer',
        phone: '(555) 924-9726',
        managerId: null,
        hireDate: new Date('2019-01-15')
    },
    {
        id: 2,
        name: 'Guy Wooten',
        title: 'Chief Technical Officer',
        phone: '(438) 738-4935',
        managerId: 1,
        hireDate: new Date('2019-02-19')
    },
    {
        id: 32,
        name: 'Buffy Weber',
        title: 'VP, Engineering',
        phone: '(699) 838-6121',
        managerId: 2,
        hireDate: new Date('2019-04-13')
    },
    {
        id: 11,
        name: 'Hyacinth Hood',
        title: 'Team Lead',
        phone: '(889) 345-2438',
        managerId: 32,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 60,
        name: 'Akeem Carr',
        title: 'Junior Software Developer',
        phone: '(738) 136-2814',
        managerId: 11,
        hireDate: new Date('2018-01-18')
    },
    {
        id: 78,
        name: 'Rinah Simon',
        title: 'Software Developer',
        phone: '(285) 912-5271',
        managerId: 11,
        hireDate: new Date('2018-03-17')
    },
    {
        id: 42,
        name: 'Gage Daniels',
        title: 'Software Architect',
        phone: '(107) 290-6260',
        managerId: 32,
        hireDate: new Date('2019-03-14')
    },
    {
        id: 43,
        name: 'Constance Vazquez',
        title: 'Director, Engineering',
        phone: '(800) 301-1978',
        managerId: 32,
        hireDate: new Date('2018-03-18')
    },
    {
        id: 46,
        name: 'Darrel Solis',
        title: 'Team Lead',
        phone: '(327) 977-0216',
        managerId: 43,
        hireDate: new Date('2019-04-15')
    },
    {
        id: 47,
        name: 'Brian Yang',
        title: 'Senior Software Developer',
        phone: '(565) 146-5435',
        managerId: 46,
        hireDate: new Date('2019-02-21')
    },
    {
        id: 50,
        name: 'Lillian Bradshaw',
        title: 'Software Developer',
        phone: '(323) 509-3479',
        managerId: 46,
        hireDate: new Date('2019-05-23')
    },
    {
        id: 51,
        name: 'Christian Palmer',
        title: 'Technical Lead',
        phone: '(490) 421-8718',
        managerId: 46,
        hireDate: new Date('2019-04-16')
    },
    {
        id: 55,
        name: 'Summer Mosley',
        title: 'QA Engineer',
        phone: '(784) 962-2301',
        managerId: 46,
        hireDate: new Date('2019-09-21')
    },
    {
        id: 56,
        name: 'Barry Ayers',
        title: 'Software Developer',
        phone: '(452) 373-9227',
        managerId: 46,
        hireDate: new Date('2018-04-16')
    },
    {
        id: 59,
        name: 'Keiko Espinoza',
        title: 'Junior QA Engineer',
        phone: '(226) 600-5305',
        managerId: 46,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 61,
        name: 'Candace Pickett',
        title: 'Support Officer',
        phone: '(120) 117-7475',
        managerId: 46,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 63,
        name: 'Mia Caldwell',
        title: 'Team Lead',
        phone: '(848) 636-6470',
        managerId: 43,
        hireDate: new Date('2018-07-17')
    },
    {
        id: 65,
        name: 'Thomas Terry',
        title: 'Senior Enterprise Support Officer',
        phone: '(764) 831-4248',
        managerId: 63,
        hireDate: new Date('2018-07-14')
    },
    {
        id: 67,
        name: 'Ruth Downs',
        title: 'Senior Software Developer',
        phone: '(138) 991-1440',
        managerId: 63,
        hireDate: new Date('2018-08-14')
    },
    {
        id: 70,
        name: 'Yasir Wilder',
        title: 'Senior QA Engineer',
        phone: '(759) 701-8665',
        managerId: 63,
        hireDate: new Date('2019-08-17')
    },
    {
        id: 71,
        name: 'Flavia Short',
        title: 'Support Officer',
        phone: '(370) 133-9238',
        managerId: 63,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 74,
        name: 'Aaron Roach',
        title: 'Junior Software Developer',
        phone: '(958) 717-9230',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 75,
        name: 'Eric Russell',
        title: 'Software Developer',
        phone: '(516) 575-8505',
        managerId: 63,
        hireDate: new Date('2019-09-13')
    },
    {
        id: 76,
        name: 'Cheyenne Olson',
        title: 'Software Developer',
        phone: '(241) 645-0257',
        managerId: 63,
        hireDate: new Date('2018-09-18')
    },
    {
        id: 77,
        name: 'Shaine Avila',
        title: 'UI Designer',
        phone: '(844) 435-1360',
        managerId: 63,
        hireDate: new Date('2018-01-22')
    },
    {
        id: 81,
        name: 'Chantale Long',
        title: 'Senior QA Engineer',
        phone: '(252) 419-6891',
        managerId: 63,
        hireDate: new Date('2018-09-14')
    },
    {
        id: 83,
        name: 'Dane Cruz',
        title: 'Junior Software Developer',
        phone: '(946) 701-6165',
        managerId: 63,
        hireDate: new Date('2019-03-15')
    },
    {
        id: 84,
        name: 'Regan Patterson',
        title: 'Technical Writer',
        phone: '(265) 946-1765',
        managerId: 63,
        hireDate: new Date('2019-05-17')
    },
    {
        id: 85,
        name: 'Drew Mckay',
        title: 'Senior Software Developer',
        phone: '(327) 293-0162',
        managerId: 63,
        hireDate: new Date('2019-05-21')
    },
    {
        id: 88,
        name: 'Bevis Miller',
        title: 'Senior Software Developer',
        phone: '(525) 557-0169',
        managerId: 63,
        hireDate: new Date('2018-08-15')
    },
    {
        id: 89,
        name: 'Bruce Mccarty',
        title: 'Support Officer',
        phone: '(936) 777-8730',
        managerId: 63,
        hireDate: new Date('2019-10-21')
    },
    {
        id: 90,
        name: 'Ocean Blair',
        title: 'Team Lead',
        phone: '(343) 586-6614',
        managerId: 43,
        hireDate: new Date('2018-06-20')
    },
    {
        id: 91,
        name: 'Guinevere Osborn',
        title: 'Software Developer',
        phone: '(424) 741-0006',
        managerId: 90,
        hireDate: new Date('2019-06-17')
    },
    {
        id: 92,
        name: 'Olga Strong',
        title: 'Graphic Designer',
        phone: '(949) 417-1168',
        managerId: 90,
        hireDate: new Date('2018-06-15')
    },
    {
        id: 93,
        name: 'Robert Orr',
        title: 'Support Officer',
        phone: '(977) 341-3721',
        managerId: 90,
        hireDate: new Date('2018-06-22')
    },
    {
        id: 95,
        name: 'Odette Sears',
        title: 'Senior Software Developer',
        phone: '(264) 818-6576',
        managerId: 90,
        hireDate: new Date('2019-05-20')
    },
    {
        id: 45,
        name: 'Zelda Medina',
        title: 'QA Architect',
        phone: '(563) 359-6023',
        managerId: 32,
        hireDate: new Date('2018-08-16')
    },
    {
        id: 3,
        name: 'Priscilla Frank',
        title: 'Chief Product Officer',
        phone: '(217) 280-5300',
        managerId: 1,
        hireDate: new Date('2019-04-22')
    },
    {
        id: 4,
        name: 'Ursula Holmes',
        title: 'EVP, Product Strategy',
        phone: '(370) 983-8796',
        managerId: 3,
        hireDate: new Date('2018-01-15')
    },
    {
        id: 24,
        name: 'Melvin Carrillo',
        title: 'Director, Developer Relations',
        phone: '(344) 496-9555',
        managerId: 3,
        hireDate: new Date('2018-01-17')
    },
    {
        id: 29,
        name: 'Martha Chavez',
        title: 'Developer Advocate',
        phone: '(140) 772-7509',
        managerId: 24,
        hireDate: new Date('2018-05-14')
    },
    {
        id: 30,
        name: 'Oren Fox',
        title: 'Developer Advocate',
        phone: '(714) 284-2408',
        managerId: 24,
        hireDate: new Date('2018-07-19')
    },
    {
        id: 41,
        name: 'Amos Barr',
        title: 'Developer Advocate',
        phone: '(996) 587-8405',
        managerId: 24,
        hireDate: new Date('2019-01-16')
    }
  ];

Known Limitations

  • During the export to Excel, the cell templates of the TreeList are not evaluated. Instead, the TreeList exports only the data and the field value is serialized to preserve the type information. To tweak the cell content, use an accessor or transform the data in advance.
  • During the export to Excel, the TreeList does not use column formats. Column formats are incompatible with Excel. For more information, refer to the page on the Excel-supported formats.
  • The maximum size of the exported file to Excel has a system-specific limit. For large data sets, it is highly recommended that you use a server-side solution.
  • When you export the TreeList to Excel in older browsers, such as Internet Explorer 9 and Safari, you have to implement a server proxy. For more information, refer to the proxyUrl configuration.

In this article