gantt-chart-angular
Version:
This library is used to generate gantt chart in angular application
94 lines (87 loc) • 3.27 kB
JavaScript
import { __decorate } from 'tslib';
import { ɵɵdefineInjectable, Injectable, EventEmitter, ViewChild, Input, Output, Component, NgModule } from '@angular/core';
let GanttChartAngularService = class GanttChartAngularService {
constructor() { }
};
GanttChartAngularService.ɵprov = ɵɵdefineInjectable({ factory: function GanttChartAngularService_Factory() { return new GanttChartAngularService(); }, token: GanttChartAngularService, providedIn: "root" });
GanttChartAngularService = __decorate([
Injectable({
providedIn: 'root'
})
], GanttChartAngularService);
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);
let GanttChartAngularModule = class GanttChartAngularModule {
};
GanttChartAngularModule = __decorate([
NgModule({
declarations: [GanttChartAngularComponent],
imports: [],
exports: [GanttChartAngularComponent]
})
], GanttChartAngularModule);
/*
* Public API Surface of gantt-chart-angular
*/
/**
* Generated bundle index. Do not edit.
*/
export { GanttChartAngularComponent, GanttChartAngularModule, GanttChartAngularService };
//# sourceMappingURL=gantt-chart-angular.js.map