ng-gantt
Version:
Angular Gantt Editor (wrapper for [jsgantt-improved](https://github.com/jsGanttImproved/jsgantt-improved)). View/Edit Gantt file with formatting.
88 lines • 10.7 kB
JavaScript
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, ViewChild } from '@angular/core';
// import { JSGantt } from 'jsgantt-improved';
import * as JSGantt from 'jsgantt-improved';
import { GanttEditorOptions } from './gantt.editoroptions';
var GanttEditorComponent = /** @class */ (function () {
function GanttEditorComponent() {
this.id = 'anggantteditor' + Math.floor(Math.random() * 1000000);
this.optionsChanged = false;
this.formats = ['Hour', 'Day', 'Week', 'Month', 'Quarter'];
this.options = new GanttEditorOptions();
this.format = 'week';
}
Object.defineProperty(GanttEditorComponent.prototype, "data", {
set: function (value) {
this._data = value;
if (this.editor) {
this.destroy();
this.ngOnInit();
}
},
enumerable: true,
configurable: true
});
GanttEditorComponent.prototype.ngOnInit = function () {
var optionsBefore = this.options;
if (!this.optionsChanged && this.editor) {
optionsBefore = this.editor.options;
}
// document.getElementById('embedded-Gantt')
var g = this.editor = new JSGantt.GanttChart(this.ganttEditorContainer.nativeElement, this.format);
if (g.getDivId() != null) {
// JSGantt.parseJSON('./fixes/data.json', g);
g.setOptions(tslib_1.__assign({ vCaptionType: 'Complete', vQuarterColWidth: 36, vDateTaskDisplayFormat: 'day dd month yyyy', vDayMajorDateDisplayFormat: 'mon yyyy - Week ww', vWeekMinorDateDisplayFormat: 'dd mon', vShowTaskInfoLink: 1, vShowEndWeekDate: 0, vUseSingleCell: 10000,
// Even with setUseSingleCell using Hour format on such a large chart can cause issues in some browsers
vFormatArr: this.formats.slice(1) }, optionsBefore));
if (this._data && this._data.forEach) {
this._data.forEach(function (row) {
row.pGantt = g;
g.AddTaskItemObject(row);
});
}
g.Draw();
}
};
// public get(): JSON {
// return this.editor.get();
// }
GanttEditorComponent.prototype.setOptions = function (newOptions) {
if (this.editor) {
this.destroy();
}
this.optionsChanged = true;
this.options = newOptions;
this.ngOnInit();
};
GanttEditorComponent.prototype.destroy = function () {
// this.editor.destroy();
};
tslib_1.__decorate([
ViewChild('ganttEditorContainer', { static: true }),
tslib_1.__metadata("design:type", ElementRef)
], GanttEditorComponent.prototype, "ganttEditorContainer", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", GanttEditorOptions)
], GanttEditorComponent.prototype, "options", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Object)
], GanttEditorComponent.prototype, "format", void 0);
tslib_1.__decorate([
Input('data'),
tslib_1.__metadata("design:type", Object),
tslib_1.__metadata("design:paramtypes", [Object])
], GanttEditorComponent.prototype, "data", null);
GanttEditorComponent = tslib_1.__decorate([
Component({
// tslint:disable-next-line:component-selector
selector: 'ng-gantt',
template: '<div [id]="id" #ganttEditorContainer></div>'
}),
tslib_1.__metadata("design:paramtypes", [])
], GanttEditorComponent);
return GanttEditorComponent;
}());
export { GanttEditorComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZ2FudHQvIiwic291cmNlcyI6WyJnYW50dC9nYW50dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQ2hELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLDhDQUE4QztBQUM5QyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTzNEO0lBcUJFO1FBbkJPLE9BQUUsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUM1RCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixZQUFPLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFNcEQsWUFBTyxHQUF1QixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQztJQVl6QixDQUFDO0lBVkQsc0JBQUksc0NBQUk7YUFBUixVQUFTLEtBQWE7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDakI7UUFDSCxDQUFDOzs7T0FBQTtJQU1ELHVDQUFRLEdBQVI7UUFDRSxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdkMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ3JDO1FBRUQsNENBQTRDO1FBQzVDLElBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBVSxPQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVHLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRTtZQUV4Qiw2Q0FBNkM7WUFFN0MsQ0FBQyxDQUFDLFVBQVUsb0JBQ1YsWUFBWSxFQUFFLFVBQVUsRUFDeEIsZ0JBQWdCLEVBQUUsRUFBRSxFQUNwQixzQkFBc0IsRUFBRSxtQkFBbUIsRUFDM0MsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQ2hELDJCQUEyQixFQUFFLFFBQVEsRUFDckMsaUJBQWlCLEVBQUUsQ0FBQyxFQUNwQixnQkFBZ0IsRUFBRSxDQUFDLEVBQ25CLGNBQWMsRUFBRSxLQUFLO2dCQUNyQix1R0FBdUc7Z0JBQ3ZHLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFDOUIsYUFBYSxFQUNoQixDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEdBQUc7b0JBQ3BCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUNmLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUE7YUFDSDtZQUNELENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNWO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsSUFBSTtJQUVHLHlDQUFVLEdBQWpCLFVBQWtCLFVBQThCO1FBQzlDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0sc0NBQU8sR0FBZDtRQUNFLHlCQUF5QjtJQUMzQixDQUFDO0lBdEVvRDtRQUFwRCxTQUFTLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7MENBQXVCLFVBQVU7c0VBQUM7SUFJN0U7UUFBUixLQUFLLEVBQUU7MENBQVUsa0JBQWtCO3lEQUE0QjtJQUN2RDtRQUFSLEtBQUssRUFBRTs7d0RBQWlCO0lBRXpCO1FBREMsS0FBSyxDQUFDLE1BQU0sQ0FBQzswQ0FDRSxNQUFNO2lEQUFOLE1BQU07b0RBTXJCO0lBbkJVLG9CQUFvQjtRQUxoQyxTQUFTLENBQUM7WUFDVCw4Q0FBOEM7WUFDOUMsUUFBUSxFQUFFLFVBQVU7WUFDcEIsUUFBUSxFQUFFLDZDQUE2QztTQUN4RCxDQUFDOztPQUNXLG9CQUFvQixDQThFaEM7SUFBRCwyQkFBQztDQUFBLEFBOUVELElBOEVDO1NBOUVZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgSlNHYW50dCB9IGZyb20gJ2pzZ2FudHQtaW1wcm92ZWQnO1xuaW1wb3J0ICogYXMgSlNHYW50dCBmcm9tICdqc2dhbnR0LWltcHJvdmVkJztcbmltcG9ydCB7IEdhbnR0RWRpdG9yT3B0aW9ucyB9IGZyb20gJy4vZ2FudHQuZWRpdG9yb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbmctZ2FudHQnLFxuICB0ZW1wbGF0ZTogJzxkaXYgW2lkXT1cImlkXCIgI2dhbnR0RWRpdG9yQ29udGFpbmVyPjwvZGl2Pidcbn0pXG5leHBvcnQgY2xhc3MgR2FudHRFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGVkaXRvcjogYW55O1xuICBwdWJsaWMgaWQgPSAnYW5nZ2FudHRlZGl0b3InICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCk7XG4gIHB1YmxpYyBvcHRpb25zQ2hhbmdlZCA9IGZhbHNlO1xuICBwdWJsaWMgZm9ybWF0cyA9IFsnSG91cicsICdEYXknLCAnV2VlaycsICdNb250aCcsICdRdWFydGVyJ107XG5cbiAgQFZpZXdDaGlsZCgnZ2FudHRFZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBnYW50dEVkaXRvckNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9kYXRhO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEdhbnR0RWRpdG9yT3B0aW9ucyA9IG5ldyBHYW50dEVkaXRvck9wdGlvbnMoKTtcbiAgQElucHV0KCkgZm9ybWF0ID0gJ3dlZWsnO1xuICBASW5wdXQoJ2RhdGEnKVxuICBzZXQgZGF0YSh2YWx1ZTogT2JqZWN0KSB7XG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmVkaXRvcikge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB0aGlzLm5nT25Jbml0KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGxldCBvcHRpb25zQmVmb3JlID0gdGhpcy5vcHRpb25zO1xuICAgIGlmICghdGhpcy5vcHRpb25zQ2hhbmdlZCAmJiB0aGlzLmVkaXRvcikge1xuICAgICAgb3B0aW9uc0JlZm9yZSA9IHRoaXMuZWRpdG9yLm9wdGlvbnM7XG4gICAgfVxuXG4gICAgLy8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VtYmVkZGVkLUdhbnR0JylcbiAgICBjb25zdCBnID0gdGhpcy5lZGl0b3IgPSBuZXcgKDxhbnk+SlNHYW50dCkuR2FudHRDaGFydCh0aGlzLmdhbnR0RWRpdG9yQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9ybWF0KTtcblxuICAgIGlmIChnLmdldERpdklkKCkgIT0gbnVsbCkge1xuXG4gICAgICAvLyBKU0dhbnR0LnBhcnNlSlNPTignLi9maXhlcy9kYXRhLmpzb24nLCBnKTtcblxuICAgICAgZy5zZXRPcHRpb25zKHtcbiAgICAgICAgdkNhcHRpb25UeXBlOiAnQ29tcGxldGUnLCAgLy8gU2V0IHRvIFNob3cgQ2FwdGlvbiA6IE5vbmUsQ2FwdGlvbixSZXNvdXJjZSxEdXJhdGlvbixDb21wbGV0ZSxcbiAgICAgICAgdlF1YXJ0ZXJDb2xXaWR0aDogMzYsXG4gICAgICAgIHZEYXRlVGFza0Rpc3BsYXlGb3JtYXQ6ICdkYXkgZGQgbW9udGggeXl5eScsIC8vIFNob3duIGluIHRvb2wgdGlwIGJveFxuICAgICAgICB2RGF5TWFqb3JEYXRlRGlzcGxheUZvcm1hdDogJ21vbiB5eXl5IC0gV2VlayB3dycsIC8vIFNldCBmb3JtYXQgdG8gZGlzcGxheSBkYXRlcyBpbiB0aGUgXCJNYWpvclwiIGhlYWRlciBvZiB0aGUgXCJEYXlcIiB2aWV3XG4gICAgICAgIHZXZWVrTWlub3JEYXRlRGlzcGxheUZvcm1hdDogJ2RkIG1vbicsIC8vIFNldCBmb3JtYXQgdG8gZGlzcGxheSBkYXRlcyBpbiB0aGUgXCJNaW5vclwiIGhlYWRlciBvZiB0aGUgXCJXZWVrXCIgdmlld1xuICAgICAgICB2U2hvd1Rhc2tJbmZvTGluazogMSwgLy8gU2hvdyBsaW5rIGluIHRvb2wgdGlwICgwLzEpXG4gICAgICAgIHZTaG93RW5kV2Vla0RhdGU6IDAsICAvLyBTaG93L0hpZGUgdGhlIGRhdGUgZm9yIHRoZSBsYXN0IGRheSBvZiB0aGUgd2VlayBpbiBoZWFkZXIgZm9yXG4gICAgICAgIHZVc2VTaW5nbGVDZWxsOiAxMDAwMCxcbiAgICAgICAgLy8gRXZlbiB3aXRoIHNldFVzZVNpbmdsZUNlbGwgdXNpbmcgSG91ciBmb3JtYXQgb24gc3VjaCBhIGxhcmdlIGNoYXJ0IGNhbiBjYXVzZSBpc3N1ZXMgaW4gc29tZSBicm93c2Vyc1xuICAgICAgICB2Rm9ybWF0QXJyOiB0aGlzLmZvcm1hdHMuc2xpY2UoMSksXG4gICAgICAgIC4uLm9wdGlvbnNCZWZvcmVcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuX2RhdGEgJiYgdGhpcy5fZGF0YS5mb3JFYWNoKSB7XG4gICAgICAgIHRoaXMuX2RhdGEuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgIHJvdy5wR2FudHQgPSBnO1xuICAgICAgICAgIGcuQWRkVGFza0l0ZW1PYmplY3Qocm93KTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGcuRHJhdygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHB1YmxpYyBnZXQoKTogSlNPTiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZWRpdG9yLmdldCgpO1xuICAvLyB9XG5cbiAgcHVibGljIHNldE9wdGlvbnMobmV3T3B0aW9uczogR2FudHRFZGl0b3JPcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zQ2hhbmdlZCA9IHRydWU7XG4gICAgdGhpcy5vcHRpb25zID0gbmV3T3B0aW9ucztcbiAgICB0aGlzLm5nT25Jbml0KCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICAvLyB0aGlzLmVkaXRvci5kZXN0cm95KCk7XG4gIH1cblxufVxuXG4iXX0=