UNPKG

gantt-chart-angular

Version:

This library is used to generate gantt chart in angular application

66 lines 7.88 kB
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=