gantt-chart-angular
Version:
This library is used to generate gantt chart in angular application
63 lines • 7.59 kB
JavaScript
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