UNPKG

gantt-chart-angular

Version:

This library is used to generate gantt chart in angular application

63 lines 7.59 kB
import { __decorate } from "tslib"; import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'; let GanttChartAngularComponent = class GanttChartAngularComponent { constructor() { this.config = {}; this.onClick = new EventEmitter(); } ngOnInit() { setTimeout(() => { this.generateChart(); }, 1000); } /** * generate chart */ generateChart() { google.charts.load('current', { 'packages': ['gantt'] }); google.charts.setOnLoadCallback(() => { const data = new google.visualization.DataTable(); if (this.config && this.config.columns && this.config.columns.length) { this.config.columns.forEach(col => { data.addColumn(col.type, col.name); }); } const temp = []; if (this.config && this.config.data && this.config.data.length) { this.config.data.forEach(rowData => { const rowsData = []; this.config.columns.forEach(col => { rowsData.push(rowData[col.field]); }); temp.push(rowsData); }); data.addRows(temp); } const options = this.config.options; const chart = new google.visualization.Gantt(this.chartContainer.nativeElement); chart.draw(data, options); google.visualization.events.addListener(chart, 'select', () => { const selection = chart.getSelection(); this.onClick.emit({ selectedRow: selection[0] }); }); }); } }; __decorate([ ViewChild("chartContainer") ], GanttChartAngularComponent.prototype, "chartContainer", void 0); __decorate([ Input() ], GanttChartAngularComponent.prototype, "config", void 0); __decorate([ Output() ], GanttChartAngularComponent.prototype, "onClick", void 0); GanttChartAngularComponent = __decorate([ Component({ selector: 'gantt-chart-angular', template: "<div #chartContainer></div>\r\n", styles: [""] }) ], GanttChartAngularComponent); export { GanttChartAngularComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtY2hhcnQtYW5ndWxhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9nYW50dC1jaGFydC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dhbnR0LWNoYXJ0LWFuZ3VsYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVF0RyxJQUFhLDBCQUEwQixHQUF2QyxNQUFhLDBCQUEwQjtJQU1yQztRQUhTLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDaEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFdkIsQ0FBQztJQUVqQixRQUFRO1FBQ04sVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFDLFVBQVUsRUFBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUN0RCxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQzlELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDakMsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNwQyxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BCO1lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFFcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2hGLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDNUQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUYsQ0FBQTtBQS9DOEI7SUFBNUIsU0FBUyxDQUFDLGdCQUFnQixDQUFDO2tFQUE0QjtBQUMvQztJQUFSLEtBQUssRUFBRTswREFBa0I7QUFDaEI7SUFBVCxNQUFNLEVBQUU7MkRBQThCO0FBSjVCLDBCQUEwQjtJQUx0QyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUscUJBQXFCO1FBQy9CLDJDQUFtRDs7S0FFcEQsQ0FBQztHQUNXLDBCQUEwQixDQWlEdEM7U0FqRFksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2FudHQtY2hhcnQtYW5ndWxhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9nYW50dC1jaGFydC1hbmd1bGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2dhbnR0LWNoYXJ0LWFuZ3VsYXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEdhbnR0Q2hhcnRBbmd1bGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKFwiY2hhcnRDb250YWluZXJcIikgY2hhcnRDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBJbnB1dCgpIGNvbmZpZzogYW55ID0ge307XG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2hhcnQoKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZW5lcmF0ZSBjaGFydFxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNoYXJ0KCkge1xuICAgIGdvb2dsZS5jaGFydHMubG9hZCgnY3VycmVudCcsIHsncGFja2FnZXMnOlsnZ2FudHQnXX0pO1xuICAgIGdvb2dsZS5jaGFydHMuc2V0T25Mb2FkQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTtcblxuICAgICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmNvbHVtbnMgJiYgdGhpcy5jb25maWcuY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jb25maWcuY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICAgICAgZGF0YS5hZGRDb2x1bW4oY29sLnR5cGUsIGNvbC5uYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZW1wID0gW107XG4gICAgICBpZiAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuZGF0YSAmJiB0aGlzLmNvbmZpZy5kYXRhLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmNvbmZpZy5kYXRhLmZvckVhY2gocm93RGF0YSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93c0RhdGEgPSBbXTtcbiAgICAgICAgICB0aGlzLmNvbmZpZy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgICAgICAgIHJvd3NEYXRhLnB1c2gocm93RGF0YVtjb2wuZmllbGRdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0ZW1wLnB1c2gocm93c0RhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgZGF0YS5hZGRSb3dzKHRlbXApO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLm9wdGlvbnM7XG4gIFxuICAgICAgY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uR2FudHQodGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgIGNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7XG4gICAgICBnb29nbGUudmlzdWFsaXphdGlvbi5ldmVudHMuYWRkTGlzdGVuZXIoY2hhcnQsICdzZWxlY3QnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGNoYXJ0LmdldFNlbGVjdGlvbigpO1xuICAgICAgICB0aGlzLm9uQ2xpY2suZW1pdCh7c2VsZWN0ZWRSb3c6IHNlbGVjdGlvblswXX0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxufVxuIl19