declare var Ext: any; import { Component, Type } from '@angular/core'; import data from './data'; @Component({ selector: '', template: ` ` }) export class BoilerplateComponent { public employeeDetails: any; public ptoStore: any; public grid: any; public employeePanel: any; constructor() { this.ptoStore = Ext.create('Ext.data.Store', { fields: ['type', 'hours'] }); } responsiveConfig: any = { tall: { layout: 'vbox' }, wide: { layout: 'hbox' } }; gridPlugins: any = [ { type: 'columnresizing' } ]; gridColumns: any = [ { text: 'Name', dataIndex: 'name', flex: 2, resizable: true }, { text: 'Email', dataIndex: 'email', flex: 3, resizable: true, plugins: 'responsive', responsiveConfig: { tall: { hidden: true } } }, { text: 'Phone #', dataIndex: 'phone', flex: 2, resizable: true } ]; gridStore: any = { autoLoad: true, fields: ['name', 'email', 'phone', 'hoursTaken', 'hoursRemaining'], data }; onPersonSelect(event) { var employee = event.records[0].data; //console.log(employee); this.employeePanel.x.setTitle(employee.name); this.loadEmployeePTOData(employee); var html = `
${employee.email}
${employee.phone}
Vacation Balance
` this.employeeDetails.x.setHtml(html); } loadEmployeePTOData (employee) { this.ptoStore.loadData([ { type: 'Hrs Taken', hours: employee.hoursTaken, text: employee.hoursTaken + ' hours\ntaken' }, { type: 'Hrs Remaining', hours: employee.hoursRemaining, text: employee.hoursRemaining + ' hours\nremaining' } ]) } onGridReady(grid) { this.grid = grid; } onSearch({newValue}) { var store = this.grid.x.getStore(); const query = newValue; store.clearFilter(); if (query.length) store.filterBy(record => { const { name, email, phone } = record.data; return name.indexOf(query) !== -1 || email.indexOf(query) !== -1 || phone.indexOf(query) !== -1; }); } onEmployeePanelReady(employeePanel) { this.employeePanel = employeePanel; } responsiveConfigEmployee: any = { tall: { height: 390 }, wide: { width: 400 } }; tools: any = [ { type: 'close', handler: this.onCloseClick } ] onCloseClick() { alert('close'); } onEmployeeDetailsReady(employeeDetails) { this.employeeDetails = employeeDetails; } configPolar: any = { height: 300 }; interactions: any =['rotate', 'itemhighlight']; background: any ="#FAFAFA"; series: any = [{ type: 'pie', xField: 'hours', label: { field: 'text' }, donut: 20, colors: ['#4CAF50', '#BDBDBD'], style: { stroke: 'white', miterLimit: 10, lineCap: 'miter', lineWidth: 2 } }]; axes: any = []; }