UNPKG

ng-gantt

Version:

Angular Gantt Editor (wrapper for [jsgantt-improved](https://github.com/jsGanttImproved/jsgantt-improved)). View/Edit Gantt file with formatting.

83 lines 10.2 kB
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'; let GanttEditorComponent = class GanttEditorComponent { constructor() { 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'; } set data(value) { this._data = value; if (this.editor) { this.destroy(); this.ngOnInit(); } } ngOnInit() { let optionsBefore = this.options; if (!this.optionsChanged && this.editor) { optionsBefore = this.editor.options; } // document.getElementById('embedded-Gantt') const g = this.editor = new JSGantt.GanttChart(this.ganttEditorContainer.nativeElement, this.format); if (g.getDivId() != null) { // JSGantt.parseJSON('./fixes/data.json', g); g.setOptions(Object.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(row => { row.pGantt = g; g.AddTaskItemObject(row); }); } g.Draw(); } } // public get(): JSON { // return this.editor.get(); // } setOptions(newOptions) { if (this.editor) { this.destroy(); } this.optionsChanged = true; this.options = newOptions; this.ngOnInit(); } destroy() { // 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); export { GanttEditorComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZ2FudHQvIiwic291cmNlcyI6WyJnYW50dC9nYW50dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQ2hELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLDhDQUE4QztBQUM5QyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTzNELElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0lBcUIvQjtRQW5CTyxPQUFFLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDNUQsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsWUFBTyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBTXBELFlBQU8sR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZELFdBQU0sR0FBRyxNQUFNLENBQUM7SUFZekIsQ0FBQztJQVZELElBQUksSUFBSSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQU1ELFFBQVE7UUFDTixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdkMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ3JDO1FBRUQsNENBQTRDO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBVSxPQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVHLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRTtZQUV4Qiw2Q0FBNkM7WUFFN0MsQ0FBQyxDQUFDLFVBQVUsaUJBQ1YsWUFBWSxFQUFFLFVBQVUsRUFDeEIsZ0JBQWdCLEVBQUUsRUFBRSxFQUNwQixzQkFBc0IsRUFBRSxtQkFBbUIsRUFDM0MsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQ2hELDJCQUEyQixFQUFFLFFBQVEsRUFDckMsaUJBQWlCLEVBQUUsQ0FBQyxFQUNwQixnQkFBZ0IsRUFBRSxDQUFDLEVBQ25CLGNBQWMsRUFBRSxLQUFLO2dCQUNyQix1R0FBdUc7Z0JBQ3ZHLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFDOUIsYUFBYSxFQUNoQixDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdkIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7b0JBQ2YsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixDQUFDLENBQUMsQ0FBQTthQUNIO1lBQ0QsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLDhCQUE4QjtJQUM5QixJQUFJO0lBRUcsVUFBVSxDQUFDLFVBQThCO1FBQzlDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0sT0FBTztRQUNaLHlCQUF5QjtJQUMzQixDQUFDO0NBRUYsQ0FBQTtBQXhFc0Q7SUFBcEQsU0FBUyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO3NDQUF1QixVQUFVO2tFQUFDO0FBSTdFO0lBQVIsS0FBSyxFQUFFO3NDQUFVLGtCQUFrQjtxREFBNEI7QUFDdkQ7SUFBUixLQUFLLEVBQUU7O29EQUFpQjtBQUV6QjtJQURDLEtBQUssQ0FBQyxNQUFNLENBQUM7c0NBQ0UsTUFBTTs2Q0FBTixNQUFNO2dEQU1yQjtBQW5CVSxvQkFBb0I7SUFMaEMsU0FBUyxDQUFDO1FBQ1QsOENBQThDO1FBQzlDLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFFBQVEsRUFBRSw2Q0FBNkM7S0FDeEQsQ0FBQzs7R0FDVyxvQkFBb0IsQ0E4RWhDO1NBOUVZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgSlNHYW50dCB9IGZyb20gJ2pzZ2FudHQtaW1wcm92ZWQnO1xuaW1wb3J0ICogYXMgSlNHYW50dCBmcm9tICdqc2dhbnR0LWltcHJvdmVkJztcbmltcG9ydCB7IEdhbnR0RWRpdG9yT3B0aW9ucyB9IGZyb20gJy4vZ2FudHQuZWRpdG9yb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbmctZ2FudHQnLFxuICB0ZW1wbGF0ZTogJzxkaXYgW2lkXT1cImlkXCIgI2dhbnR0RWRpdG9yQ29udGFpbmVyPjwvZGl2Pidcbn0pXG5leHBvcnQgY2xhc3MgR2FudHRFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGVkaXRvcjogYW55O1xuICBwdWJsaWMgaWQgPSAnYW5nZ2FudHRlZGl0b3InICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCk7XG4gIHB1YmxpYyBvcHRpb25zQ2hhbmdlZCA9IGZhbHNlO1xuICBwdWJsaWMgZm9ybWF0cyA9IFsnSG91cicsICdEYXknLCAnV2VlaycsICdNb250aCcsICdRdWFydGVyJ107XG5cbiAgQFZpZXdDaGlsZCgnZ2FudHRFZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBnYW50dEVkaXRvckNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9kYXRhO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEdhbnR0RWRpdG9yT3B0aW9ucyA9IG5ldyBHYW50dEVkaXRvck9wdGlvbnMoKTtcbiAgQElucHV0KCkgZm9ybWF0ID0gJ3dlZWsnO1xuICBASW5wdXQoJ2RhdGEnKVxuICBzZXQgZGF0YSh2YWx1ZTogT2JqZWN0KSB7XG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmVkaXRvcikge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB0aGlzLm5nT25Jbml0KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGxldCBvcHRpb25zQmVmb3JlID0gdGhpcy5vcHRpb25zO1xuICAgIGlmICghdGhpcy5vcHRpb25zQ2hhbmdlZCAmJiB0aGlzLmVkaXRvcikge1xuICAgICAgb3B0aW9uc0JlZm9yZSA9IHRoaXMuZWRpdG9yLm9wdGlvbnM7XG4gICAgfVxuXG4gICAgLy8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VtYmVkZGVkLUdhbnR0JylcbiAgICBjb25zdCBnID0gdGhpcy5lZGl0b3IgPSBuZXcgKDxhbnk+SlNHYW50dCkuR2FudHRDaGFydCh0aGlzLmdhbnR0RWRpdG9yQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9ybWF0KTtcblxuICAgIGlmIChnLmdldERpdklkKCkgIT0gbnVsbCkge1xuXG4gICAgICAvLyBKU0dhbnR0LnBhcnNlSlNPTignLi9maXhlcy9kYXRhLmpzb24nLCBnKTtcblxuICAgICAgZy5zZXRPcHRpb25zKHtcbiAgICAgICAgdkNhcHRpb25UeXBlOiAnQ29tcGxldGUnLCAgLy8gU2V0IHRvIFNob3cgQ2FwdGlvbiA6IE5vbmUsQ2FwdGlvbixSZXNvdXJjZSxEdXJhdGlvbixDb21wbGV0ZSxcbiAgICAgICAgdlF1YXJ0ZXJDb2xXaWR0aDogMzYsXG4gICAgICAgIHZEYXRlVGFza0Rpc3BsYXlGb3JtYXQ6ICdkYXkgZGQgbW9udGggeXl5eScsIC8vIFNob3duIGluIHRvb2wgdGlwIGJveFxuICAgICAgICB2RGF5TWFqb3JEYXRlRGlzcGxheUZvcm1hdDogJ21vbiB5eXl5IC0gV2VlayB3dycsIC8vIFNldCBmb3JtYXQgdG8gZGlzcGxheSBkYXRlcyBpbiB0aGUgXCJNYWpvclwiIGhlYWRlciBvZiB0aGUgXCJEYXlcIiB2aWV3XG4gICAgICAgIHZXZWVrTWlub3JEYXRlRGlzcGxheUZvcm1hdDogJ2RkIG1vbicsIC8vIFNldCBmb3JtYXQgdG8gZGlzcGxheSBkYXRlcyBpbiB0aGUgXCJNaW5vclwiIGhlYWRlciBvZiB0aGUgXCJXZWVrXCIgdmlld1xuICAgICAgICB2U2hvd1Rhc2tJbmZvTGluazogMSwgLy8gU2hvdyBsaW5rIGluIHRvb2wgdGlwICgwLzEpXG4gICAgICAgIHZTaG93RW5kV2Vla0RhdGU6IDAsICAvLyBTaG93L0hpZGUgdGhlIGRhdGUgZm9yIHRoZSBsYXN0IGRheSBvZiB0aGUgd2VlayBpbiBoZWFkZXIgZm9yXG4gICAgICAgIHZVc2VTaW5nbGVDZWxsOiAxMDAwMCxcbiAgICAgICAgLy8gRXZlbiB3aXRoIHNldFVzZVNpbmdsZUNlbGwgdXNpbmcgSG91ciBmb3JtYXQgb24gc3VjaCBhIGxhcmdlIGNoYXJ0IGNhbiBjYXVzZSBpc3N1ZXMgaW4gc29tZSBicm93c2Vyc1xuICAgICAgICB2Rm9ybWF0QXJyOiB0aGlzLmZvcm1hdHMuc2xpY2UoMSksXG4gICAgICAgIC4uLm9wdGlvbnNCZWZvcmVcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuX2RhdGEgJiYgdGhpcy5fZGF0YS5mb3JFYWNoKSB7XG4gICAgICAgIHRoaXMuX2RhdGEuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgIHJvdy5wR2FudHQgPSBnO1xuICAgICAgICAgIGcuQWRkVGFza0l0ZW1PYmplY3Qocm93KTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGcuRHJhdygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHB1YmxpYyBnZXQoKTogSlNPTiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZWRpdG9yLmdldCgpO1xuICAvLyB9XG5cbiAgcHVibGljIHNldE9wdGlvbnMobmV3T3B0aW9uczogR2FudHRFZGl0b3JPcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zQ2hhbmdlZCA9IHRydWU7XG4gICAgdGhpcy5vcHRpb25zID0gbmV3T3B0aW9ucztcbiAgICB0aGlzLm5nT25Jbml0KCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICAvLyB0aGlzLmVkaXRvci5kZXN0cm95KCk7XG4gIH1cblxufVxuXG4iXX0=