UNPKG

angular-wrapper-kendo-ui-app

Version:

A sample application to use and test the TreeList component defined in the *angular-wrapper-kendo-ui* library.

430 lines (414 loc) 10.4 kB
import { Component, OnInit, ElementRef, NgZone, ViewChild, ViewEncapsulation } from '@angular/core'; import { TreeListComponent } from 'projects/angular-wrapper-kendo-ui/src/public_api'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], encapsulation: ViewEncapsulation.None }) export class AppComponent implements OnInit { @ViewChild('treelist', { static: false }) treelist: TreeListComponent; public options: any; constructor(private zone: NgZone) { } ngOnInit(): void { const data = [ { id: 1, Name: 'Daryl Sweeney', Position: 'CEO', Phone: '(555) 924-9726', parentId: null }, { id: 2, Name: 'Guy Wooten', Position: 'Chief Technical Officer', Phone: '(438) 738-4935', parentId: 1 }, { id: 32, Name: 'Buffy Weber', Position: 'VP, Engineering', Phone: '(699) 838-6121', parentId: 2 }, { id: 11, Name: 'Hyacinth Hood', Position: 'Team Lead', Phone: '(889) 345-2438', parentId: 32 }, { id: 60, Name: 'Akeem Carr', Position: 'Junior Software Developer', Phone: '(738) 136-2814', parentId: 11 }, { id: 78, Name: 'Rinah Simon', Position: 'Software Developer', Phone: '(285) 912-5271', parentId: 11 }, { id: 42, Name: 'Gage Daniels', Position: 'Software Architect', Phone: '(107) 290-6260', parentId: 32 }, { id: 43, Name: 'Constance Vazquez', Position: 'Director, Engineering', Phone: '(800) 301-1978', parentId: 32 }, { id: 46, Name: 'Darrel Solis', Position: 'Team Lead', Phone: '(327) 977-0216', parentId: 43 }, { id: 47, Name: 'Brian Yang', Position: 'Senior Software Developer', Phone: '(565) 146-5435', parentId: 46 }, { id: 50, Name: 'Lillian Bradshaw', Position: 'Software Developer', Phone: '(323) 509-3479', parentId: 46 }, { id: 51, Name: 'Christian Palmer', Position: 'Technical Lead', Phone: '(490) 421-8718', parentId: 46 }, { id: 55, Name: 'Summer Mosley', Position: 'QA Engineer', Phone: '(784) 962-2301', parentId: 46 }, { id: 56, Name: 'Barry Ayers', Position: 'Software Developer', Phone: '(452) 373-9227', parentId: 46 }, { id: 59, Name: 'Keiko Espinoza', Position: 'Junior QA Engineer', Phone: '(226) 600-5305', parentId: 46 }, { id: 61, Name: 'Candace Pickett', Position: 'Support Officer', Phone: '(120) 117-7475', parentId: 46 }, { id: 63, Name: 'Mia Caldwell', Position: 'Team Lead', Phone: '(848) 636-6470', parentId: 43 }, { id: 65, Name: 'Thomas Terry', Position: 'Senior Enterprise Support Officer', Phone: '(764) 831-4248', parentId: 63 }, { id: 67, Name: 'Ruth Downs', Position: 'Senior Software Developer', Phone: '(138) 991-1440', parentId: 63 }, { id: 70, Name: 'Yasir Wilder', Position: 'Senior QA Enginner', Phone: '(759) 701-8665', parentId: 63 }, { id: 71, Name: 'Flavia Short', Position: 'Support Officer', Phone: '(370) 133-9238', parentId: 63 }, { id: 74, Name: 'Aaron Roach', Position: 'Junior Software Developer', Phone: '(958) 717-9230', parentId: 63 }, { id: 75, Name: 'Eric Russell', Position: 'Software Developer', Phone: '(516) 575-8505', parentId: 63 }, { id: 76, Name: 'Cheyenne Olson', Position: 'Software Developer', Phone: '(241) 645-0257', parentId: 63 }, { id: 77, Name: 'Shaine Avila', Position: 'UI Designer', Phone: '(844) 435-1360', parentId: 63 }, { id: 81, Name: 'Chantale Long', Position: 'Senior QA Enginner', Phone: '(252) 419-6891', parentId: 63 }, { id: 83, Name: 'Dane Cruz', Position: 'Junior Software Developer', Phone: '(946) 701-6165', parentId: 63 }, { id: 84, Name: 'Regan Patterson', Position: 'Technical Writer', Phone: '(265) 946-1765', parentId: 63 }, { id: 85, Name: 'Drew Mckay', Position: 'Senior Software Developer', Phone: '(327) 293-0162', parentId: 63 }, { id: 88, Name: 'Bevis Miller', Position: 'Senior Software Developer', Phone: '(525) 557-0169', parentId: 63 }, { id: 89, Name: 'Bruce Mccarty', Position: 'Support Officer', Phone: '(936) 777-8730', parentId: 63 }, { id: 90, Name: 'Ocean Blair', Position: 'Team Lead', Phone: '(343) 586-6614', parentId: 43 }, { id: 91, Name: 'Guinevere Osborn', Position: 'Software Developer', Phone: '(424) 741-0006', parentId: 90 }, { id: 92, Name: 'Olga Strong', Position: 'Graphic Designer', Phone: '(949) 417-1168', parentId: 90 }, { id: 93, Name: 'Robert Orr', Position: 'Support Officer', Phone: '(977) 341-3721', parentId: 90 }, { id: 95, Name: 'Odette Sears', Position: 'Senior Software Developer', Phone: '(264) 818-6576', parentId: 90 }, { id: 45, Name: 'Zelda Medina', Position: 'QA Architect', Phone: '(563) 359-6023', parentId: 32 }, { id: 3, Name: 'Priscilla Frank', Position: 'Chief Product Officer', Phone: '(217) 280-5300', parentId: 1 }, { id: 4, Name: 'Ursula Holmes', Position: 'EVP, Product Strategy', Phone: '(370) 983-8796', parentId: 3 }, { id: 24, Name: 'Melvin Carrillo', Position: 'Director, Developer Relations', Phone: '(344) 496-9555', parentId: 3 }, { id: 29, Name: 'Martha Chavez', Position: 'Developer Advocate', Phone: '(140) 772-7509', parentId: 24 }, { id: 30, Name: 'Oren Fox', Position: 'Developer Advocate', Phone: '(714) 284-2408', parentId: 24 }, { id: 41, Name: 'Amos Barr', Position: 'Developer Advocate', Phone: '(996) 587-8405', parentId: 24 } ]; const dataSource = new kendo.data.TreeListDataSource({ transport: { create: function (options) { options.success([ { id: 100, Name: 'Bilal Haidar', Position: 'Senior Software Developer', Phone: '6944946666' } ]); }, read: options => { options.success(data); // options.error(); }, update: options => { // this.onUpdate(options.data.models); console.log(options.data.models); options.success(); }, destroy: options => { options.success(data); } }, batch: true, schema: { model: { id: 'id', fields: { id: { type: 'number', editable: false, nullable: false }, Name: { validation: { required: true } }, Phone: { type: 'string' }, Position: { type: 'string' } }, expanded: true } } }); this.options = { dataSource: dataSource, height: 540, toolbar: ['create'], editable: { move: true, inline: true }, columns: [ { field: 'Position' }, { field: 'Name' }, { field: 'Phone' }, { title: 'Edit', command: ['edit', 'destroy'], width: 250, attributes: { style: 'text-align: center;' } } ], selectable: true, change: ($event: kendo.ui.TreeListChangeEvent) => { this.zone.run(() => { console.log('Something has changed! ', $event); }); } }; } addRow(): void { return this.treelist && this.treelist.addRow(); // return this.treelist && this.treelist.addRow('#treelist tbody>tr:first'); } removeRow(): void { return ( this.treelist && this.treelist.removeRow('#treelist tbody>tr:nth(5)') ); } editRow(): void { return this.treelist && this.treelist.editRow('#treelist tbody>tr:eq(2)'); } expand(): void { return this.treelist && this.treelist.expand('#treelist tbody>tr:eq(0)'); } select(): void { this.treelist.select('#treelist tbody>tr:eq(1)'); } itemFor(id: any): void { const guyWooten = this.treelist.dataSource.get(id); const secondRow = this.treelist.itemFor(guyWooten); this.treelist.select(secondRow); } clearSelection(): void { console.log('content: ', this.treelist.content); console.log('tbody: ', this.treelist.tbody); return this.treelist && this.treelist.clearSelection(); } }