gantt-chart-angular
Version:
This library is used to generate gantt chart in angular application
66 lines • 7.88 kB
JavaScript
import { __decorate } from "tslib";
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
var GanttChartAngularComponent = /** @class */ (function () {
function GanttChartAngularComponent() {
this.config = {};
this.onClick = new EventEmitter();
}
GanttChartAngularComponent.prototype.ngOnInit = function () {
var _this = this;
setTimeout(function () {
_this.generateChart();
}, 1000);
};
/**
* generate chart
*/
GanttChartAngularComponent.prototype.generateChart = function () {
var _this = this;
google.charts.load('current', { 'packages': ['gantt'] });
google.charts.setOnLoadCallback(function () {
var data = new google.visualization.DataTable();
if (_this.config && _this.config.columns && _this.config.columns.length) {
_this.config.columns.forEach(function (col) {
data.addColumn(col.type, col.name);
});
}
var temp = [];
if (_this.config && _this.config.data && _this.config.data.length) {
_this.config.data.forEach(function (rowData) {
var rowsData = [];
_this.config.columns.forEach(function (col) {
rowsData.push(rowData[col.field]);
});
temp.push(rowsData);
});
data.addRows(temp);
}
var options = _this.config.options;
var chart = new google.visualization.Gantt(_this.chartContainer.nativeElement);
chart.draw(data, options);
google.visualization.events.addListener(chart, 'select', function () {
var 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);
return GanttChartAngularComponent;
}());
export { GanttChartAngularComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtY2hhcnQtYW5ndWxhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9nYW50dC1jaGFydC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dhbnR0LWNoYXJ0LWFuZ3VsYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVF0RztJQU1FO1FBSFMsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNoQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUV2QixDQUFDO0lBRWpCLDZDQUFRLEdBQVI7UUFBQSxpQkFJQztRQUhDLFVBQVUsQ0FBQztZQUNULEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrREFBYSxHQUFyQjtRQUFBLGlCQThCQztRQTdCQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBQyxVQUFVLEVBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QixJQUFNLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFbEQsSUFBSSxLQUFJLENBQUMsTUFBTSxJQUFJLEtBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDcEUsS0FBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQUEsR0FBRztvQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLEtBQUksQ0FBQyxNQUFNLElBQUksS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUM5RCxLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBQSxPQUFPO29CQUM5QixJQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7b0JBQ3BCLEtBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEdBQUc7d0JBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNwQyxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BCO1lBQ0QsSUFBTSxPQUFPLEdBQUcsS0FBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFFcEMsSUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2hGLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUN2RCxJQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUE3QzRCO1FBQTVCLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztzRUFBNEI7SUFDL0M7UUFBUixLQUFLLEVBQUU7OERBQWtCO0lBQ2hCO1FBQVQsTUFBTSxFQUFFOytEQUE4QjtJQUo1QiwwQkFBMEI7UUFMdEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQiwyQ0FBbUQ7O1NBRXBELENBQUM7T0FDVywwQkFBMEIsQ0FpRHRDO0lBQUQsaUNBQUM7Q0FBQSxBQWpERCxJQWlEQztTQWpEWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmRlY2xhcmUgdmFyIGdvb2dsZTogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnYW50dC1jaGFydC1hbmd1bGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbnR0LWNoYXJ0LWFuZ3VsYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZ2FudHQtY2hhcnQtYW5ndWxhci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR2FudHRDaGFydEFuZ3VsYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoXCJjaGFydENvbnRhaW5lclwiKSBjaGFydENvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgY29uZmlnOiBhbnkgPSB7fTtcbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVDaGFydCgpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdlbmVyYXRlIGNoYXJ0XG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlQ2hhcnQoKSB7XG4gICAgZ29vZ2xlLmNoYXJ0cy5sb2FkKCdjdXJyZW50JywgeydwYWNrYWdlcyc6WydnYW50dCddfSk7XG4gICAgZ29vZ2xlLmNoYXJ0cy5zZXRPbkxvYWRDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpO1xuXG4gICAgICBpZiAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuY29sdW1ucyAmJiB0aGlzLmNvbmZpZy5jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmNvbmZpZy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgICAgICBkYXRhLmFkZENvbHVtbihjb2wudHlwZSwgY29sLm5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRlbXAgPSBbXTtcbiAgICAgIGlmICh0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbmZpZy5kYXRhICYmIHRoaXMuY29uZmlnLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLmRhdGEuZm9yRWFjaChyb3dEYXRhID0+IHtcbiAgICAgICAgICBjb25zdCByb3dzRGF0YSA9IFtdO1xuICAgICAgICAgIHRoaXMuY29uZmlnLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgcm93c0RhdGEucHVzaChyb3dEYXRhW2NvbC5maWVsZF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRlbXAucHVzaChyb3dzRGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkYXRhLmFkZFJvd3ModGVtcCk7XG4gICAgICB9XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcub3B0aW9ucztcbiAgXG4gICAgICBjb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5HYW50dCh0aGlzLmNoYXJ0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTtcbiAgICAgIGdvb2dsZS52aXN1YWxpemF0aW9uLmV2ZW50cy5hZGRMaXN0ZW5lcihjaGFydCwgJ3NlbGVjdCcsICgpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gY2hhcnQuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMub25DbGljay5lbWl0KHtzZWxlY3RlZFJvdzogc2VsZWN0aW9uWzBdfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=