jsgantt-improved 2.8.2 → 2.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  2. package/.github/ISSUE_TEMPLATE/custom.md +0 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  4. package/.travis.yml +0 -0
  5. package/.vscode/launch.json +0 -0
  6. package/CONTRIBUTING.md +0 -0
  7. package/Documentation.md +589 -587
  8. package/LICENSE +0 -0
  9. package/README.md +27 -2
  10. package/dist/e2e/app.e2e-spec.js +0 -0
  11. package/dist/e2e/app.e2e-spec.js.map +0 -0
  12. package/dist/e2e/app.po.js +0 -0
  13. package/dist/e2e/app.po.js.map +0 -0
  14. package/dist/index.js +0 -0
  15. package/dist/index.js.map +0 -0
  16. package/dist/jsgantt.css +1016 -1012
  17. package/dist/jsgantt.js +1126 -887
  18. package/dist/src/draw.js +226 -227
  19. package/dist/src/draw.js.map +1 -1
  20. package/dist/src/draw_columns.js +0 -0
  21. package/dist/src/draw_columns.js.map +0 -0
  22. package/dist/src/draw_dependencies.js +0 -0
  23. package/dist/src/draw_dependencies.js.map +0 -0
  24. package/dist/src/events.js +0 -0
  25. package/dist/src/events.js.map +0 -0
  26. package/dist/src/jsgantt.js +0 -0
  27. package/dist/src/jsgantt.js.map +0 -0
  28. package/dist/src/json.js +6 -1
  29. package/dist/src/json.js.map +1 -1
  30. package/dist/src/lang.js +877 -652
  31. package/dist/src/lang.js.map +1 -1
  32. package/dist/src/options.js +0 -0
  33. package/dist/src/options.js.map +0 -0
  34. package/dist/src/task.js +8 -3
  35. package/dist/src/task.js.map +1 -1
  36. package/dist/src/utils/date_utils.js +0 -0
  37. package/dist/src/utils/date_utils.js.map +0 -0
  38. package/dist/src/utils/draw_utils.js +0 -0
  39. package/dist/src/utils/draw_utils.js.map +0 -0
  40. package/dist/src/utils/general_utils.js +3 -2
  41. package/dist/src/utils/general_utils.js.map +1 -1
  42. package/dist/src/xml.js +6 -2
  43. package/dist/src/xml.js.map +1 -1
  44. package/dist/test/index.js +0 -0
  45. package/dist/test/index.js.map +0 -0
  46. package/docs/DotNet.md +0 -0
  47. package/docs/demo-plan-color.html +282 -0
  48. package/docs/demo.gif +0 -0
  49. package/docs/demo.html +273 -275
  50. package/docs/demo.png +0 -0
  51. package/docs/demobigdata.html +0 -0
  52. package/docs/fixes/bigdata.json +0 -0
  53. package/docs/fixes/bug141.json +0 -0
  54. package/docs/fixes/bug277.json +0 -0
  55. package/docs/fixes/bug318.json +0 -0
  56. package/docs/fixes/data-plan-color.json +177 -0
  57. package/docs/fixes/data.json +0 -0
  58. package/docs/fixes/data255.json +0 -0
  59. package/docs/fixes/general.html +0 -0
  60. package/docs/fixes/lang.html +0 -0
  61. package/docs/fixes/planend.json +0 -0
  62. package/docs/fixes/two-weaksafter.html +0 -0
  63. package/docs/home-bg.jpg +0 -0
  64. package/docs/index.html +0 -0
  65. package/docs/index.js +266 -278
  66. package/docs/main.css +0 -0
  67. package/docs/main.js +0 -0
  68. package/docs/project.xml +132 -131
  69. package/e2e/tsconfig.e2e.json +0 -0
  70. package/package.json +49 -49
  71. package/protractor.conf.js +0 -0
  72. package/src/jsgantt.css +1016 -1012
  73. package/test/index.html +0 -0
  74. package/tsconfig.json +0 -0
  75. package/tslint.json +0 -0
package/dist/src/draw.js CHANGED
@@ -53,7 +53,7 @@ exports.GanttChart = function (pDiv, pFormat) {
53
53
  3: true,
54
54
  4: true,
55
55
  5: true,
56
- 6: true
56
+ 6: true,
57
57
  };
58
58
  this.vEventClickCollapse = null;
59
59
  this.vEventClickRow = null;
@@ -72,7 +72,7 @@ exports.GanttChart = function (pDiv, pFormat) {
72
72
  beforeLineDraw: null,
73
73
  afterLineDraw: null,
74
74
  onLineDraw: null,
75
- onLineContainerHover: null
75
+ onLineContainerHover: null,
76
76
  };
77
77
  this.vEventsChange = {
78
78
  taskname: null,
@@ -84,36 +84,36 @@ exports.GanttChart = function (pDiv, pFormat) {
84
84
  planstartdate: null,
85
85
  planenddate: null,
86
86
  cost: null,
87
- line: null
87
+ line: null,
88
88
  };
89
89
  this.vResources = null;
90
90
  this.vAdditionalHeaders = {};
91
91
  this.vColumnOrder = draw_columns_1.COLUMN_ORDER;
92
92
  this.vEditable = false;
93
93
  this.vDebug = false;
94
- this.vShowSelector = new Array('top');
95
- this.vDateInputFormat = 'yyyy-mm-dd';
96
- this.vDateTaskTableDisplayFormat = date_utils_1.parseDateFormatStr('dd/mm/yyyy');
97
- this.vDateTaskDisplayFormat = date_utils_1.parseDateFormatStr('dd month yyyy');
98
- this.vHourMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('day dd month yyyy');
99
- this.vHourMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('HH');
100
- this.vDayMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('dd/mm/yyyy');
101
- this.vDayMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('dd');
102
- this.vWeekMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('yyyy');
103
- this.vWeekMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('dd/mm');
104
- this.vMonthMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('yyyy');
105
- this.vMonthMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('mon');
106
- this.vQuarterMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('yyyy');
107
- this.vQuarterMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('qq');
108
- this.vUseFullYear = date_utils_1.parseDateFormatStr('dd/mm/yyyy');
94
+ this.vShowSelector = new Array("top");
95
+ this.vDateInputFormat = "yyyy-mm-dd";
96
+ this.vDateTaskTableDisplayFormat = date_utils_1.parseDateFormatStr("dd/mm/yyyy");
97
+ this.vDateTaskDisplayFormat = date_utils_1.parseDateFormatStr("dd month yyyy");
98
+ this.vHourMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("day dd month yyyy");
99
+ this.vHourMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("HH");
100
+ this.vDayMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("dd/mm/yyyy");
101
+ this.vDayMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("dd");
102
+ this.vWeekMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("yyyy");
103
+ this.vWeekMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("dd/mm");
104
+ this.vMonthMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("yyyy");
105
+ this.vMonthMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("mon");
106
+ this.vQuarterMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("yyyy");
107
+ this.vQuarterMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("qq");
108
+ this.vUseFullYear = date_utils_1.parseDateFormatStr("dd/mm/yyyy");
109
109
  this.vCaptionType;
110
110
  this.vDepId = 1;
111
111
  this.vTaskList = new Array();
112
- this.vFormatArr = new Array('hour', 'day', 'week', 'month', 'quarter');
112
+ this.vFormatArr = new Array("hour", "day", "week", "month", "quarter");
113
113
  this.vMonthDaysArr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
114
114
  this.vProcessNeeded = true;
115
115
  this.vMinGpLen = 8;
116
- this.vScrollTo = '';
116
+ this.vScrollTo = "";
117
117
  this.vHourColWidth = 18;
118
118
  this.vDayColWidth = 18;
119
119
  this.vWeekColWidth = 36;
@@ -122,7 +122,7 @@ exports.GanttChart = function (pDiv, pFormat) {
122
122
  this.vRowHeight = 20;
123
123
  this.vTodayPx = -1;
124
124
  this.vLangs = lang;
125
- this.vLang = navigator.language && navigator.language in lang ? navigator.language : 'en';
125
+ this.vLang = navigator.language && navigator.language in lang ? navigator.language : "en";
126
126
  this.vChartBody = null;
127
127
  this.vChartHead = null;
128
128
  this.vListBody = null;
@@ -156,10 +156,9 @@ exports.GanttChart = function (pDiv, pFormat) {
156
156
  this.printChart = general_utils_1.printChart.bind(this);
157
157
  this.clearDependencies = function () {
158
158
  var parent = this.getLines();
159
- if (this.vEventsChange.line &&
160
- typeof this.vEventsChange.line === 'function') {
161
- this.removeListener('click', this.vEventsChange.line, parent);
162
- this.addListener('click', this.vEventsChange.line, parent);
159
+ if (this.vEventsChange.line && typeof this.vEventsChange.line === "function") {
160
+ this.removeListener("click", this.vEventsChange.line, parent);
161
+ this.addListener("click", this.vEventsChange.line, parent);
163
162
  }
164
163
  while (parent.hasChildNodes())
165
164
  parent.removeChild(parent.firstChild);
@@ -167,20 +166,20 @@ exports.GanttChart = function (pDiv, pFormat) {
167
166
  };
168
167
  this.drawListHead = function (vLeftHeader) {
169
168
  var _this = this;
170
- var vTmpDiv = draw_utils_1.newNode(vLeftHeader, 'div', this.vDivId + 'glisthead', 'glistlbl gcontainercol');
169
+ var vTmpDiv = draw_utils_1.newNode(vLeftHeader, "div", this.vDivId + "glisthead", "glistlbl gcontainercol");
171
170
  var gListLbl = vTmpDiv;
172
171
  this.setListBody(vTmpDiv);
173
- var vTmpTab = draw_utils_1.newNode(vTmpDiv, 'table', null, 'gtasktableh');
174
- var vTmpTBody = draw_utils_1.newNode(vTmpTab, 'tbody');
175
- var vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr');
176
- draw_utils_1.newNode(vTmpRow, 'td', null, 'gtasklist', '\u00A0');
177
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gspanning gtaskname', null, null, null, null, this.getColumnOrder().length + 1);
178
- vTmpCell.appendChild(this.drawSelector('top'));
179
- vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr');
180
- draw_utils_1.newNode(vTmpRow, 'td', null, 'gtasklist', '\u00A0');
181
- draw_utils_1.newNode(vTmpRow, 'td', null, 'gtaskname', '\u00A0');
172
+ var vTmpTab = draw_utils_1.newNode(vTmpDiv, "table", null, "gtasktableh");
173
+ var vTmpTBody = draw_utils_1.newNode(vTmpTab, "tbody");
174
+ var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr");
175
+ draw_utils_1.newNode(vTmpRow, "td", null, "gtasklist", "\u00A0");
176
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gspanning gtaskname", null, null, null, null, this.getColumnOrder().length + 1);
177
+ vTmpCell.appendChild(this.drawSelector("top"));
178
+ vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr");
179
+ draw_utils_1.newNode(vTmpRow, "td", null, "gtasklist", "\u00A0");
180
+ draw_utils_1.newNode(vTmpRow, "td", null, "gtaskname", "\u00A0");
182
181
  this.getColumnOrder().forEach(function (column) {
183
- if (_this[column] == 1 || column === 'vAdditionalHeaders') {
182
+ if (_this[column] == 1 || column === "vAdditionalHeaders") {
184
183
  draw_columns_1.draw_task_headings(column, vTmpRow, _this.vLangs, _this.vLang, _this.vAdditionalHeaders, _this.vEvents);
185
184
  }
186
185
  });
@@ -188,38 +187,38 @@ exports.GanttChart = function (pDiv, pFormat) {
188
187
  };
189
188
  this.drawListBody = function (vLeftHeader) {
190
189
  var _this = this;
191
- var vTmpContentTabOuterWrapper = draw_utils_1.newNode(vLeftHeader, 'div', null, 'gtasktableouterwrapper');
192
- var vTmpContentTabWrapper = draw_utils_1.newNode(vTmpContentTabOuterWrapper, 'div', null, 'gtasktablewrapper');
190
+ var vTmpContentTabOuterWrapper = draw_utils_1.newNode(vLeftHeader, "div", null, "gtasktableouterwrapper");
191
+ var vTmpContentTabWrapper = draw_utils_1.newNode(vTmpContentTabOuterWrapper, "div", null, "gtasktablewrapper");
193
192
  vTmpContentTabWrapper.style.width = "calc(100% + " + general_utils_1.getScrollbarWidth() + "px)";
194
- var vTmpContentTab = draw_utils_1.newNode(vTmpContentTabWrapper, 'table', null, 'gtasktable');
195
- var vTmpContentTBody = draw_utils_1.newNode(vTmpContentTab, 'tbody');
193
+ var vTmpContentTab = draw_utils_1.newNode(vTmpContentTabWrapper, "table", null, "gtasktable");
194
+ var vTmpContentTBody = draw_utils_1.newNode(vTmpContentTab, "tbody");
196
195
  var vNumRows = 0;
197
196
  var _loop_1 = function (i) {
198
197
  var vBGColor = void 0;
199
198
  if (this_1.vTaskList[i].getGroup() == 1)
200
- vBGColor = 'ggroupitem';
199
+ vBGColor = "ggroupitem";
201
200
  else
202
- vBGColor = 'glineitem';
201
+ vBGColor = "glineitem a";
203
202
  var vID = this_1.vTaskList[i].getID();
204
203
  var vTmpRow_1, vTmpCell_1 = void 0;
205
- if ((!(this_1.vTaskList[i].getParItem() && this_1.vTaskList[i].getParItem().getGroup() == 2)) || this_1.vTaskList[i].getGroup() == 2) {
204
+ if (!(this_1.vTaskList[i].getParItem() && this_1.vTaskList[i].getParItem().getGroup() == 2) || this_1.vTaskList[i].getGroup() == 2) {
206
205
  if (this_1.vTaskList[i].getVisible() == 0)
207
- vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody, 'tr', this_1.vDivId + 'child_' + vID, 'gname ' + vBGColor, null, null, null, 'none');
206
+ vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody, "tr", this_1.vDivId + "child_" + vID, "gname " + vBGColor, null, null, null, "none");
208
207
  else
209
- vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody, 'tr', this_1.vDivId + 'child_' + vID, 'gname ' + vBGColor);
208
+ vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody, "tr", this_1.vDivId + "child_" + vID, "gname " + vBGColor);
210
209
  this_1.vTaskList[i].setListChildRow(vTmpRow_1);
211
- draw_utils_1.newNode(vTmpRow_1, 'td', null, 'gtasklist', '\u00A0');
212
- var editableClass = this_1.vEditable ? 'gtaskname gtaskeditable' : 'gtaskname';
213
- vTmpCell_1 = draw_utils_1.newNode(vTmpRow_1, 'td', null, editableClass);
214
- var vCellContents = '';
210
+ draw_utils_1.newNode(vTmpRow_1, "td", null, "gtasklist", "\u00A0");
211
+ var editableClass = this_1.vEditable ? "gtaskname gtaskeditable" : "gtaskname";
212
+ vTmpCell_1 = draw_utils_1.newNode(vTmpRow_1, "td", null, editableClass);
213
+ var vCellContents = "";
215
214
  for (var j = 1; j < this_1.vTaskList[i].getLevel(); j++) {
216
- vCellContents += '\u00A0\u00A0\u00A0\u00A0';
215
+ vCellContents += "\u00A0\u00A0\u00A0\u00A0";
217
216
  }
218
217
  var task_2 = this_1.vTaskList[i];
219
218
  var vEventClickRow_1 = this_1.vEventClickRow;
220
219
  var vEventClickCollapse_1 = this_1.vEventClickCollapse;
221
- events_1.addListener('click', function (e) {
222
- if (e.target.classList.contains('gfoldercollapse') === false) {
220
+ events_1.addListener("click", function (e) {
221
+ if (e.target.classList.contains("gfoldercollapse") === false) {
223
222
  if (vEventClickRow_1 && typeof vEventClickRow_1 === "function") {
224
223
  vEventClickRow_1(task_2);
225
224
  }
@@ -231,29 +230,29 @@ exports.GanttChart = function (pDiv, pFormat) {
231
230
  }
232
231
  }, vTmpRow_1);
233
232
  if (this_1.vTaskList[i].getGroup() == 1) {
234
- var vTmpDiv = draw_utils_1.newNode(vTmpCell_1, 'div', null, null, vCellContents);
235
- var vTmpSpan = draw_utils_1.newNode(vTmpDiv, 'span', this_1.vDivId + 'group_' + vID, 'gfoldercollapse', (this_1.vTaskList[i].getOpen() == 1) ? '-' : '+');
233
+ var vTmpDiv = draw_utils_1.newNode(vTmpCell_1, "div", null, null, vCellContents);
234
+ var vTmpSpan = draw_utils_1.newNode(vTmpDiv, "span", this_1.vDivId + "group_" + vID, "gfoldercollapse", this_1.vTaskList[i].getOpen() == 1 ? "-" : "+");
236
235
  this_1.vTaskList[i].setGroupSpan(vTmpSpan);
237
236
  events_1.addFolderListeners(this_1, vTmpSpan, vID);
238
- var divTask = document.createElement('span');
239
- divTask.innerHTML = '\u00A0' + this_1.vTaskList[i].getName();
237
+ var divTask = document.createElement("span");
238
+ divTask.innerHTML = "\u00A0" + this_1.vTaskList[i].getName();
240
239
  vTmpDiv.appendChild(divTask);
241
240
  // const text = makeInput(this.vTaskList[i].getName(), this.vEditable, 'text');
242
241
  // vTmpDiv.appendChild(document.createNode(text));
243
242
  var callback = function (task, e) { return task.setName(e.target.value); };
244
- events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i, 'taskname', this_1.Draw.bind(this_1));
245
- events_1.addListenerClickCell(vTmpDiv, this_1.vEvents, this_1.vTaskList[i], 'taskname');
243
+ events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i, "taskname", this_1.Draw.bind(this_1));
244
+ events_1.addListenerClickCell(vTmpDiv, this_1.vEvents, this_1.vTaskList[i], "taskname");
246
245
  }
247
246
  else {
248
- vCellContents += '\u00A0\u00A0\u00A0\u00A0';
249
- var text = draw_utils_1.makeInput(this_1.vTaskList[i].getName(), this_1.vEditable, 'text');
250
- var vTmpDiv = draw_utils_1.newNode(vTmpCell_1, 'div', null, null, vCellContents + text);
247
+ vCellContents += "\u00A0\u00A0\u00A0\u00A0";
248
+ var text = draw_utils_1.makeInput(this_1.vTaskList[i].getName(), this_1.vEditable, "text");
249
+ var vTmpDiv = draw_utils_1.newNode(vTmpCell_1, "div", null, null, vCellContents + text);
251
250
  var callback = function (task, e) { return task.setName(e.target.value); };
252
- events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i, 'taskname', this_1.Draw.bind(this_1));
253
- events_1.addListenerClickCell(vTmpCell_1, this_1.vEvents, this_1.vTaskList[i], 'taskname');
251
+ events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i, "taskname", this_1.Draw.bind(this_1));
252
+ events_1.addListenerClickCell(vTmpCell_1, this_1.vEvents, this_1.vTaskList[i], "taskname");
254
253
  }
255
254
  this_1.getColumnOrder().forEach(function (column) {
256
- if (_this[column] == 1 || column === 'vAdditionalHeaders') {
255
+ if (_this[column] == 1 || column === "vAdditionalHeaders") {
257
256
  draw_columns_1.draw_header(column, i, vTmpRow_1, _this.vTaskList, _this.vEditable, _this.vEventsChange, _this.vEvents, _this.vDateTaskTableDisplayFormat, _this.vAdditionalHeaders, _this.vFormat, _this.vLangs, _this.vLang, _this.vResources, _this.Draw.bind(_this));
258
257
  }
259
258
  });
@@ -266,23 +265,21 @@ exports.GanttChart = function (pDiv, pFormat) {
266
265
  }
267
266
  // Render no daa in the chart
268
267
  if (this.vTaskList.length == 0) {
269
- var totalColumns = this.getColumnOrder()
270
- .filter(function (column) { return _this[column] == 1 || column === 'vAdditionalHeaders'; })
271
- .length;
272
- var vTmpRow_2 = draw_utils_1.newNode(vTmpContentTBody, 'tr', this.vDivId + 'child_', 'gname ');
268
+ var totalColumns = this.getColumnOrder().filter(function (column) { return _this[column] == 1 || column === "vAdditionalHeaders"; }).length;
269
+ var vTmpRow_2 = draw_utils_1.newNode(vTmpContentTBody, "tr", this.vDivId + "child_", "gname ");
273
270
  // this.vTaskList[i].setListChildRow(vTmpRow);
274
- var vTmpCell_2 = draw_utils_1.newNode(vTmpRow_2, 'td', null, 'gtasknolist', '', null, null, null, totalColumns);
271
+ var vTmpCell_2 = draw_utils_1.newNode(vTmpRow_2, "td", null, "gtasknolist", "", null, null, null, totalColumns);
275
272
  var vOutput = document.createDocumentFragment();
276
- draw_utils_1.newNode(vOutput, 'div', null, 'gtasknolist-label', this.vLangs[this.vLang]['nodata'] + '.');
273
+ draw_utils_1.newNode(vOutput, "div", null, "gtasknolist-label", this.vLangs[this.vLang]["nodata"] + ".");
277
274
  vTmpCell_2.appendChild(vOutput);
278
275
  }
279
276
  // DRAW the date format selector at bottom left.
280
- var vTmpRow = draw_utils_1.newNode(vTmpContentTBody, 'tr');
281
- draw_utils_1.newNode(vTmpRow, 'td', null, 'gtasklist', '\u00A0');
282
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gspanning gtaskname');
283
- vTmpCell.appendChild(this.drawSelector('bottom'));
277
+ var vTmpRow = draw_utils_1.newNode(vTmpContentTBody, "tr");
278
+ draw_utils_1.newNode(vTmpRow, "td", null, "gtasklist", "\u00A0");
279
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gspanning gtaskname");
280
+ vTmpCell.appendChild(this.drawSelector("bottom"));
284
281
  this.getColumnOrder().forEach(function (column) {
285
- if (_this[column] == 1 || column === 'vAdditionalHeaders') {
282
+ if (_this[column] == 1 || column === "vAdditionalHeaders") {
286
283
  draw_columns_1.draw_bottom(column, vTmpRow, _this.vAdditionalHeaders);
287
284
  }
288
285
  });
@@ -292,7 +289,7 @@ exports.GanttChart = function (pDiv, pFormat) {
292
289
  // newNode(vTmpDiv2, 'br');
293
290
  return {
294
291
  vNumRows: vNumRows,
295
- vTmpContentTabWrapper: vTmpContentTabWrapper
292
+ vTmpContentTabWrapper: vTmpContentTabWrapper,
296
293
  };
297
294
  };
298
295
  /**
@@ -302,15 +299,15 @@ exports.GanttChart = function (pDiv, pFormat) {
302
299
  */
303
300
  this.drawChartHead = function (vMinDate, vMaxDate, vColWidth, vNumRows) {
304
301
  var vRightHeader = document.createDocumentFragment();
305
- var vTmpDiv = draw_utils_1.newNode(vRightHeader, 'div', this.vDivId + 'gcharthead', 'gchartlbl gcontainercol');
302
+ var vTmpDiv = draw_utils_1.newNode(vRightHeader, "div", this.vDivId + "gcharthead", "gchartlbl gcontainercol");
306
303
  var gChartLbl = vTmpDiv;
307
304
  this.setChartHead(vTmpDiv);
308
- var vTmpTab = draw_utils_1.newNode(vTmpDiv, 'table', this.vDivId + 'chartTableh', 'gcharttableh');
309
- var vTmpTBody = draw_utils_1.newNode(vTmpTab, 'tbody');
310
- var vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr');
305
+ var vTmpTab = draw_utils_1.newNode(vTmpDiv, "table", this.vDivId + "chartTableh", "gcharttableh");
306
+ var vTmpTBody = draw_utils_1.newNode(vTmpTab, "tbody");
307
+ var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr");
311
308
  var vTmpDate = new Date();
312
309
  vTmpDate.setFullYear(vMinDate.getFullYear(), vMinDate.getMonth(), vMinDate.getDate());
313
- if (this.vFormat == 'hour')
310
+ if (this.vFormat == "hour")
314
311
  vTmpDate.setHours(vMinDate.getHours());
315
312
  else
316
313
  vTmpDate.setHours(0);
@@ -320,90 +317,88 @@ exports.GanttChart = function (pDiv, pFormat) {
320
317
  var vColSpan = 1;
321
318
  // Major Date Header
322
319
  while (vTmpDate.getTime() <= vMaxDate.getTime()) {
323
- var vHeaderCellClass = 'gmajorheading';
324
- var vCellContents = '';
325
- if (this.vFormat == 'day') {
320
+ var vHeaderCellClass = "gmajorheading";
321
+ var vCellContents = "";
322
+ if (this.vFormat == "day") {
326
323
  var colspan = 7;
327
324
  if (!this.vShowWeekends) {
328
- vHeaderCellClass += ' headweekends';
325
+ vHeaderCellClass += " headweekends";
329
326
  colspan = 5;
330
327
  }
331
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, colspan);
328
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, null, null, null, colspan);
332
329
  vCellContents += date_utils_1.formatDateStr(vTmpDate, this.vDayMajorDateDisplayFormat, this.vLangs[this.vLang]);
333
330
  vTmpDate.setDate(vTmpDate.getDate() + 6);
334
331
  if (this.vShowEndWeekDate == 1)
335
- vCellContents += ' - ' + date_utils_1.formatDateStr(vTmpDate, this.vDayMajorDateDisplayFormat, this.vLangs[this.vLang]);
336
- draw_utils_1.newNode(vTmpCell, 'div', null, null, vCellContents, vColWidth * colspan);
332
+ vCellContents += " - " + date_utils_1.formatDateStr(vTmpDate, this.vDayMajorDateDisplayFormat, this.vLangs[this.vLang]);
333
+ draw_utils_1.newNode(vTmpCell, "div", null, null, vCellContents, vColWidth * colspan);
337
334
  vTmpDate.setDate(vTmpDate.getDate() + 1);
338
335
  }
339
- else if (this.vFormat == 'week') {
340
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, vColWidth);
341
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vWeekMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
336
+ else if (this.vFormat == "week") {
337
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, vColWidth);
338
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vWeekMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
342
339
  vTmpDate.setDate(vTmpDate.getDate() + 7);
343
340
  }
344
- else if (this.vFormat == 'month') {
345
- vColSpan = (12 - vTmpDate.getMonth());
341
+ else if (this.vFormat == "month") {
342
+ vColSpan = 12 - vTmpDate.getMonth();
346
343
  if (vTmpDate.getFullYear() == vMaxDate.getFullYear())
347
- vColSpan -= (11 - vMaxDate.getMonth());
348
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, vColSpan);
349
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vMonthMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
344
+ vColSpan -= 11 - vMaxDate.getMonth();
345
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, null, null, null, vColSpan);
346
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vMonthMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
350
347
  vTmpDate.setFullYear(vTmpDate.getFullYear() + 1, 0, 1);
351
348
  }
352
- else if (this.vFormat == 'quarter') {
353
- vColSpan = (4 - Math.floor(vTmpDate.getMonth() / 3));
349
+ else if (this.vFormat == "quarter") {
350
+ vColSpan = 4 - Math.floor(vTmpDate.getMonth() / 3);
354
351
  if (vTmpDate.getFullYear() == vMaxDate.getFullYear())
355
- vColSpan -= (3 - Math.floor(vMaxDate.getMonth() / 3));
356
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, vColSpan);
357
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vQuarterMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
352
+ vColSpan -= 3 - Math.floor(vMaxDate.getMonth() / 3);
353
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, null, null, null, vColSpan);
354
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vQuarterMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
358
355
  vTmpDate.setFullYear(vTmpDate.getFullYear() + 1, 0, 1);
359
356
  }
360
- else if (this.vFormat == 'hour') {
361
- vColSpan = (24 - vTmpDate.getHours());
362
- if (vTmpDate.getFullYear() == vMaxDate.getFullYear() &&
363
- vTmpDate.getMonth() == vMaxDate.getMonth() &&
364
- vTmpDate.getDate() == vMaxDate.getDate())
365
- vColSpan -= (23 - vMaxDate.getHours());
366
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, vColSpan);
367
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
357
+ else if (this.vFormat == "hour") {
358
+ vColSpan = 24 - vTmpDate.getHours();
359
+ if (vTmpDate.getFullYear() == vMaxDate.getFullYear() && vTmpDate.getMonth() == vMaxDate.getMonth() && vTmpDate.getDate() == vMaxDate.getDate())
360
+ vColSpan -= 23 - vMaxDate.getHours();
361
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, null, null, null, vColSpan);
362
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
368
363
  vTmpDate.setHours(0);
369
364
  vTmpDate.setDate(vTmpDate.getDate() + 1);
370
365
  }
371
366
  }
372
- vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', null, 'footerdays');
367
+ vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", null, "footerdays");
373
368
  // Minor Date header and Cell Rows
374
369
  vTmpDate.setFullYear(vMinDate.getFullYear(), vMinDate.getMonth(), vMinDate.getDate()); // , vMinDate.getHours()
375
- if (this.vFormat == 'hour')
370
+ if (this.vFormat == "hour")
376
371
  vTmpDate.setHours(vMinDate.getHours());
377
372
  var vNumCols = 0;
378
373
  while (vTmpDate.getTime() <= vMaxDate.getTime()) {
379
- var vMinorHeaderCellClass = 'gminorheading';
380
- if (this.vFormat == 'day') {
374
+ var vMinorHeaderCellClass = "gminorheading";
375
+ if (this.vFormat == "day") {
381
376
  if (vTmpDate.getDay() % 6 == 0) {
382
377
  if (!this.vShowWeekends) {
383
378
  vTmpDate.setDate(vTmpDate.getDate() + 1);
384
379
  continue;
385
380
  }
386
- vMinorHeaderCellClass += 'wkend';
381
+ vMinorHeaderCellClass += "wkend";
387
382
  }
388
383
  if (vTmpDate <= vMaxDate) {
389
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vMinorHeaderCellClass);
390
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vDayMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
384
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
385
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vDayMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
391
386
  vNumCols++;
392
387
  }
393
388
  vTmpDate.setDate(vTmpDate.getDate() + 1);
394
389
  }
395
- else if (this.vFormat == 'week') {
390
+ else if (this.vFormat == "week") {
396
391
  if (vTmpDate <= vMaxDate) {
397
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vMinorHeaderCellClass);
398
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vWeekMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
392
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
393
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vWeekMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
399
394
  vNumCols++;
400
395
  }
401
396
  vTmpDate.setDate(vTmpDate.getDate() + 7);
402
397
  }
403
- else if (this.vFormat == 'month') {
398
+ else if (this.vFormat == "month") {
404
399
  if (vTmpDate <= vMaxDate) {
405
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vMinorHeaderCellClass);
406
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vMonthMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
400
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
401
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vMonthMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
407
402
  vNumCols++;
408
403
  }
409
404
  vTmpDate.setDate(vTmpDate.getDate() + 1);
@@ -411,22 +406,22 @@ exports.GanttChart = function (pDiv, pFormat) {
411
406
  vTmpDate.setDate(vTmpDate.getDate() + 1);
412
407
  }
413
408
  }
414
- else if (this.vFormat == 'quarter') {
409
+ else if (this.vFormat == "quarter") {
415
410
  if (vTmpDate <= vMaxDate) {
416
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vMinorHeaderCellClass);
417
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vQuarterMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
411
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
412
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vQuarterMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
418
413
  vNumCols++;
419
414
  }
420
415
  vTmpDate.setDate(vTmpDate.getDate() + 81);
421
416
  while (vTmpDate.getDate() > 1)
422
417
  vTmpDate.setDate(vTmpDate.getDate() + 1);
423
418
  }
424
- else if (this.vFormat == 'hour') {
419
+ else if (this.vFormat == "hour") {
425
420
  for (var i = vTmpDate.getHours(); i < 24; i++) {
426
421
  vTmpDate.setHours(i); //works around daylight savings but may look a little odd on days where the clock goes forward
427
422
  if (vTmpDate <= vMaxDate) {
428
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vMinorHeaderCellClass);
429
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
423
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
424
+ draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
430
425
  vNumCols++;
431
426
  }
432
427
  }
@@ -436,18 +431,18 @@ exports.GanttChart = function (pDiv, pFormat) {
436
431
  }
437
432
  var vDateRow = vTmpRow;
438
433
  // Calculate size of grids : Plus 3 because 1 border left + 2 of paddings
439
- var vTaskLeftPx = (vNumCols * (vColWidth + 3)) + 1;
434
+ var vTaskLeftPx = vNumCols * (vColWidth + 3) + 1;
440
435
  // Fix a small space at the end for day
441
- if (this.vFormat === 'day') {
436
+ if (this.vFormat === "day") {
442
437
  vTaskLeftPx += 2;
443
438
  }
444
- vTmpTab.style.width = vTaskLeftPx + 'px'; // Ensure that the headings has exactly the same width as the chart grid
439
+ vTmpTab.style.width = vTaskLeftPx + "px"; // Ensure that the headings has exactly the same width as the chart grid
445
440
  // const vTaskPlanLeftPx = (vNumCols * (vColWidth + 3)) + 1;
446
441
  var vSingleCell = false;
447
- if (this.vUseSingleCell !== 0 && this.vUseSingleCell < (vNumCols * vNumRows))
442
+ if (this.vUseSingleCell !== 0 && this.vUseSingleCell < vNumCols * vNumRows)
448
443
  vSingleCell = true;
449
- draw_utils_1.newNode(vTmpDiv, 'div', null, 'rhscrpad', null, null, vTaskLeftPx + 1);
450
- vTmpDiv = draw_utils_1.newNode(vRightHeader, 'div', null, 'glabelfooter');
444
+ draw_utils_1.newNode(vTmpDiv, "div", null, "rhscrpad", null, null, vTaskLeftPx + 1);
445
+ vTmpDiv = draw_utils_1.newNode(vRightHeader, "div", null, "glabelfooter");
451
446
  return { gChartLbl: gChartLbl, vTaskLeftPx: vTaskLeftPx, vSingleCell: vSingleCell, vDateRow: vDateRow, vRightHeader: vRightHeader, vNumCols: vNumCols };
452
447
  };
453
448
  /**
@@ -457,23 +452,23 @@ exports.GanttChart = function (pDiv, pFormat) {
457
452
  */
458
453
  this.drawCharBody = function (vTaskLeftPx, vTmpContentTabWrapper, gChartLbl, gListLbl, vMinDate, vMaxDate, vSingleCell, vNumCols, vColWidth, vDateRow) {
459
454
  var vRightTable = document.createDocumentFragment();
460
- var vTmpDiv = draw_utils_1.newNode(vRightTable, 'div', this.vDivId + 'gchartbody', 'gchartgrid gcontainercol');
455
+ var vTmpDiv = draw_utils_1.newNode(vRightTable, "div", this.vDivId + "gchartbody", "gchartgrid gcontainercol");
461
456
  this.setChartBody(vTmpDiv);
462
- var vTmpTab = draw_utils_1.newNode(vTmpDiv, 'table', this.vDivId + 'chartTable', 'gcharttable', null, vTaskLeftPx);
457
+ var vTmpTab = draw_utils_1.newNode(vTmpDiv, "table", this.vDivId + "chartTable", "gcharttable", null, vTaskLeftPx);
463
458
  this.setChartTable(vTmpTab);
464
- draw_utils_1.newNode(vTmpDiv, 'div', null, 'rhscrpad', null, null, vTaskLeftPx + 1);
465
- var vTmpTBody = draw_utils_1.newNode(vTmpTab, 'tbody');
466
- var vTmpTFoot = draw_utils_1.newNode(vTmpTab, 'tfoot');
467
- events_1.syncScroll([vTmpContentTabWrapper, vTmpDiv], 'scrollTop');
468
- events_1.syncScroll([gChartLbl, vTmpDiv], 'scrollLeft');
469
- events_1.syncScroll([vTmpContentTabWrapper, gListLbl], 'scrollLeft');
459
+ draw_utils_1.newNode(vTmpDiv, "div", null, "rhscrpad", null, null, vTaskLeftPx + 1);
460
+ var vTmpTBody = draw_utils_1.newNode(vTmpTab, "tbody");
461
+ var vTmpTFoot = draw_utils_1.newNode(vTmpTab, "tfoot");
462
+ events_1.syncScroll([vTmpContentTabWrapper, vTmpDiv], "scrollTop");
463
+ events_1.syncScroll([gChartLbl, vTmpDiv], "scrollLeft");
464
+ events_1.syncScroll([vTmpContentTabWrapper, gListLbl], "scrollLeft");
470
465
  // Draw each row
471
466
  var i = 0;
472
467
  var j = 0;
473
468
  var bd;
474
469
  if (this.vDebug) {
475
470
  bd = new Date();
476
- console.info('before tasks loop', bd);
471
+ console.info("before tasks loop", bd);
477
472
  }
478
473
  for (i = 0; i < this.vTaskList.length; i++) {
479
474
  var curTaskStart = this.vTaskList[i].getStart() ? this.vTaskList[i].getStart() : this.vTaskList[i].getPlanStart();
@@ -490,31 +485,31 @@ exports.GanttChart = function (pDiv, pFormat) {
490
485
  vTaskPlanRightPx = general_utils_1.getOffset(curTaskPlanStart, curTaskPlanEnd, vColWidth, this.vFormat, this.vShowWeekends);
491
486
  }
492
487
  var vID = this.vTaskList[i].getID();
493
- var vComb = (this.vTaskList[i].getParItem() && this.vTaskList[i].getParItem().getGroup() == 2);
494
- var vCellFormat = '';
488
+ var vComb = this.vTaskList[i].getParItem() && this.vTaskList[i].getParItem().getGroup() == 2;
489
+ var vCellFormat = "";
495
490
  var vTmpDiv_1 = null;
496
491
  var vTmpItem = this.vTaskList[i];
497
492
  var vCaptClass = null;
498
493
  // set cell width only for first row because of table-layout:fixed
499
494
  var taskCellWidth = i === 0 ? vColWidth : null;
500
495
  if (this.vTaskList[i].getMile() && !vComb) {
501
- var vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', this.vDivId + 'childrow_' + vID, 'gmileitem gmile' + this.vFormat, null, null, null, ((this.vTaskList[i].getVisible() == 0) ? 'none' : null));
496
+ var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, "gmileitem gmile" + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null);
502
497
  this.vTaskList[i].setChildRow(vTmpRow);
503
498
  events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow);
504
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gtaskcell gtaskcellmile', null, vColWidth, null, null, null);
505
- vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, 'div', null, 'gtaskcelldiv', '\u00A0\u00A0');
506
- vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'bardiv_' + vID, 'gtaskbarcontainer', null, 12, vTaskLeftPx_1 + vTaskRightPx - 6);
499
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellmile", null, vColWidth, null, null, null);
500
+ vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0");
501
+ vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, 12, vTaskLeftPx_1 + vTaskRightPx - 6);
507
502
  this.vTaskList[i].setBarDiv(vTmpDiv_1);
508
- var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'taskbar_' + vID, this.vTaskList[i].getClass(), null, 12);
503
+ var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, 12);
509
504
  this.vTaskList[i].setTaskDiv(vTmpDiv2);
510
505
  if (this.vTaskList[i].getCompVal() < 100)
511
- vTmpDiv2.appendChild(document.createTextNode('\u25CA'));
506
+ vTmpDiv2.appendChild(document.createTextNode("\u25CA"));
512
507
  else {
513
- vTmpDiv2 = draw_utils_1.newNode(vTmpDiv2, 'div', null, 'gmilediamond');
514
- draw_utils_1.newNode(vTmpDiv2, 'div', null, 'gmdtop');
515
- draw_utils_1.newNode(vTmpDiv2, 'div', null, 'gmdbottom');
508
+ vTmpDiv2 = draw_utils_1.newNode(vTmpDiv2, "div", null, "gmilediamond");
509
+ draw_utils_1.newNode(vTmpDiv2, "div", null, "gmdtop");
510
+ draw_utils_1.newNode(vTmpDiv2, "div", null, "gmdbottom");
516
511
  }
517
- vCaptClass = 'gmilecaption';
512
+ vCaptClass = "gmilecaption";
518
513
  if (!vSingleCell && !vComb) {
519
514
  this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate);
520
515
  }
@@ -524,31 +519,31 @@ exports.GanttChart = function (pDiv, pFormat) {
524
519
  // Draw Group Bar which has outer div with inner group div
525
520
  // and several small divs to left and right to create angled-end indicators
526
521
  if (this.vTaskList[i].getGroup()) {
527
- vTaskWidth = (vTaskWidth > this.vMinGpLen && vTaskWidth < this.vMinGpLen * 2) ? this.vMinGpLen * 2 : vTaskWidth; // Expand to show two end points
528
- vTaskWidth = (vTaskWidth < this.vMinGpLen) ? this.vMinGpLen : vTaskWidth; // expand to show one end point
529
- var vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', this.vDivId + 'childrow_' + vID, ((this.vTaskList[i].getGroup() == 2) ? 'glineitem gitem' : 'ggroupitem ggroup') + this.vFormat, null, null, null, ((this.vTaskList[i].getVisible() == 0) ? 'none' : null));
522
+ vTaskWidth = vTaskWidth > this.vMinGpLen && vTaskWidth < this.vMinGpLen * 2 ? this.vMinGpLen * 2 : vTaskWidth; // Expand to show two end points
523
+ vTaskWidth = vTaskWidth < this.vMinGpLen ? this.vMinGpLen : vTaskWidth; // expand to show one end point
524
+ var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, (this.vTaskList[i].getGroup() == 2 ? "glineitem gitem" : "ggroupitem ggroup") + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null);
530
525
  this.vTaskList[i].setChildRow(vTmpRow);
531
526
  events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow);
532
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gtaskcell gtaskcellbar', null, vColWidth, null, null);
533
- vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, 'div', null, 'gtaskcelldiv', '\u00A0\u00A0');
527
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellbar", null, vColWidth, null, null);
528
+ vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0");
534
529
  this.vTaskList[i].setCellDiv(vTmpDiv_1);
535
530
  if (this.vTaskList[i].getGroup() == 1) {
536
- vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'bardiv_' + vID, 'gtaskbarcontainer', null, vTaskWidth, vTaskLeftPx_1);
531
+ vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, vTaskWidth, vTaskLeftPx_1);
537
532
  this.vTaskList[i].setBarDiv(vTmpDiv_1);
538
- var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'taskbar_' + vID, this.vTaskList[i].getClass(), null, vTaskWidth);
533
+ var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, vTaskWidth);
539
534
  this.vTaskList[i].setTaskDiv(vTmpDiv2);
540
- draw_utils_1.newNode(vTmpDiv2, 'div', this.vDivId + 'complete_' + vID, this.vTaskList[i].getClass() + 'complete', null, this.vTaskList[i].getCompStr());
541
- draw_utils_1.newNode(vTmpDiv_1, 'div', null, this.vTaskList[i].getClass() + 'endpointleft');
535
+ draw_utils_1.newNode(vTmpDiv2, "div", this.vDivId + "complete_" + vID, this.vTaskList[i].getClass() + "complete", null, this.vTaskList[i].getCompStr());
536
+ draw_utils_1.newNode(vTmpDiv_1, "div", null, this.vTaskList[i].getClass() + "endpointleft");
542
537
  if (vTaskWidth >= this.vMinGpLen * 2)
543
- draw_utils_1.newNode(vTmpDiv_1, 'div', null, this.vTaskList[i].getClass() + 'endpointright');
544
- vCaptClass = 'ggroupcaption';
538
+ draw_utils_1.newNode(vTmpDiv_1, "div", null, this.vTaskList[i].getClass() + "endpointright");
539
+ vCaptClass = "ggroupcaption";
545
540
  }
546
541
  if (!vSingleCell && !vComb) {
547
542
  this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate);
548
543
  }
549
544
  }
550
545
  else {
551
- vTaskWidth = (vTaskWidth <= 0) ? 1 : vTaskWidth;
546
+ vTaskWidth = vTaskWidth <= 0 ? 1 : vTaskWidth;
552
547
  /**
553
548
  * DRAW THE BOXES FOR GANTT
554
549
  */
@@ -558,40 +553,44 @@ exports.GanttChart = function (pDiv, pFormat) {
558
553
  }
559
554
  else {
560
555
  // Draw Task Bar which has colored bar div
561
- vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', this.vDivId + 'childrow_' + vID, 'glineitem gitem' + this.vFormat, null, null, null, ((this.vTaskList[i].getVisible() == 0) ? 'none' : null));
556
+ var differentDatesHighlight = "";
557
+ if (this.vTaskList[i].getEnd() && this.vTaskList[i].getPlanEnd() && this.vTaskList[i].getStart() && this.vTaskList[i].getPlanStart())
558
+ if (Date.parse(this.vTaskList[i].getEnd()) !== Date.parse(this.vTaskList[i].getPlanEnd()) || Date.parse(this.vTaskList[i].getStart()) !== Date.parse(this.vTaskList[i].getPlanStart()))
559
+ differentDatesHighlight = "gitemdifferent ";
560
+ vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, "glineitem " + differentDatesHighlight + "gitem" + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null);
562
561
  this.vTaskList[i].setChildRow(vTmpRow);
563
562
  events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow);
564
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gtaskcell gtaskcellcolorbar', null, taskCellWidth, null, null);
565
- vTmpDivCell = vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, 'div', null, 'gtaskcelldiv', '\u00A0\u00A0');
563
+ var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellcolorbar", null, taskCellWidth, null, null);
564
+ vTmpDivCell = vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0");
566
565
  }
567
566
  // DRAW TASK BAR
568
- vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'bardiv_' + vID, 'gtaskbarcontainer', null, vTaskWidth, vTaskLeftPx_1);
567
+ vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, vTaskWidth, vTaskLeftPx_1);
569
568
  this.vTaskList[i].setBarDiv(vTmpDiv_1);
570
569
  var vTmpDiv2 = void 0;
571
570
  if (this.vTaskList[i].getStartVar()) {
572
571
  // textbar
573
- vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'taskbar_' + vID, this.vTaskList[i].getClass(), null, vTaskWidth);
572
+ vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, vTaskWidth);
574
573
  if (this.vTaskList[i].getBarText()) {
575
- draw_utils_1.newNode(vTmpDiv2, 'span', this.vDivId + 'tasktextbar_' + vID, 'textbar', this.vTaskList[i].getBarText(), this.vTaskList[i].getCompRestStr());
574
+ draw_utils_1.newNode(vTmpDiv2, "span", this.vDivId + "tasktextbar_" + vID, "textbar", this.vTaskList[i].getBarText(), this.vTaskList[i].getCompRestStr());
576
575
  }
577
576
  this.vTaskList[i].setTaskDiv(vTmpDiv2);
578
577
  }
579
578
  // PLANNED
580
579
  // If exist and one of them are different, show plan bar... show if there is no real vStart as well (just plan dates)
581
- if (vTaskPlanLeftPx && ((vTaskPlanLeftPx != vTaskLeftPx_1 || vTaskPlanRightPx != vTaskRightPx) || !this.vTaskList[i].getStartVar())) {
582
- var vTmpPlanDiv = draw_utils_1.newNode(vTmpDivCell, 'div', this.vDivId + 'bardiv_' + vID, 'gtaskbarcontainer gplan', null, vTaskPlanRightPx, vTaskPlanLeftPx);
583
- var vTmpPlanDiv2 = draw_utils_1.newNode(vTmpPlanDiv, 'div', this.vDivId + 'taskbar_' + vID, this.vTaskList[i].getClass() + ' gplan', null, vTaskPlanRightPx);
580
+ if (vTaskPlanLeftPx && (vTaskPlanLeftPx != vTaskLeftPx_1 || vTaskPlanRightPx != vTaskRightPx || !this.vTaskList[i].getStartVar())) {
581
+ var vTmpPlanDiv = draw_utils_1.newNode(vTmpDivCell, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer gplan", null, vTaskPlanRightPx, vTaskPlanLeftPx);
582
+ var vTmpPlanDiv2 = draw_utils_1.newNode(vTmpPlanDiv, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getPlanClass() + " gplan", null, vTaskPlanRightPx);
584
583
  this.vTaskList[i].setPlanTaskDiv(vTmpPlanDiv2);
585
584
  }
586
585
  // and opaque completion div
587
586
  if (vTmpDiv2) {
588
- draw_utils_1.newNode(vTmpDiv2, 'div', this.vDivId + 'complete_' + vID, this.vTaskList[i].getClass() + 'complete', null, this.vTaskList[i].getCompStr());
587
+ draw_utils_1.newNode(vTmpDiv2, "div", this.vDivId + "complete_" + vID, this.vTaskList[i].getClass() + "complete", null, this.vTaskList[i].getCompStr());
589
588
  }
590
589
  // caption
591
590
  if (vComb)
592
591
  vTmpItem = this.vTaskList[i].getParItem();
593
592
  if (!vComb || (vComb && this.vTaskList[i].getParItem().getEnd() == this.vTaskList[i].getEnd()))
594
- vCaptClass = 'gcaption';
593
+ vCaptClass = "gcaption";
595
594
  // Background cells
596
595
  if (!vSingleCell && !vComb && vTmpRow) {
597
596
  this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate);
@@ -601,31 +600,31 @@ exports.GanttChart = function (pDiv, pFormat) {
601
600
  if (this.getCaptionType() && vCaptClass !== null) {
602
601
  var vCaptionStr = void 0;
603
602
  switch (this.getCaptionType()) {
604
- case 'Caption':
603
+ case "Caption":
605
604
  vCaptionStr = vTmpItem.getCaption();
606
605
  break;
607
- case 'Resource':
606
+ case "Resource":
608
607
  vCaptionStr = vTmpItem.getResource();
609
608
  break;
610
- case 'Duration':
609
+ case "Duration":
611
610
  vCaptionStr = vTmpItem.getDuration(this.vFormat, this.vLangs[this.vLang]);
612
611
  break;
613
- case 'Complete':
612
+ case "Complete":
614
613
  vCaptionStr = vTmpItem.getCompStr();
615
614
  break;
616
615
  }
617
- draw_utils_1.newNode(vTmpDiv_1, 'div', null, vCaptClass, vCaptionStr, 120, (vCaptClass == 'gmilecaption') ? 12 : 0);
616
+ draw_utils_1.newNode(vTmpDiv_1, "div", null, vCaptClass, vCaptionStr, 120, vCaptClass == "gmilecaption" ? 12 : 0);
618
617
  }
619
618
  // Add Task Info div for tooltip
620
619
  if (this.vTaskList[i].getTaskDiv() && vTmpDiv_1) {
621
- var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'tt' + vID, null, null, null, null, 'none');
620
+ var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "tt" + vID, null, null, null, null, "none");
622
621
  var _a = this.createTaskInfo(this.vTaskList[i], this.vTooltipTemplate), component = _a.component, callback = _a.callback;
623
622
  vTmpDiv2.appendChild(component);
624
623
  events_1.addTooltipListeners(this, this.vTaskList[i].getTaskDiv(), vTmpDiv2, callback);
625
624
  }
626
625
  // Add Plan Task Info div for tooltip
627
626
  if (this.vTaskList[i].getPlanTaskDiv() && vTmpDiv_1) {
628
- var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'tt' + vID, null, null, null, null, 'none');
627
+ var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "tt" + vID, null, null, null, null, "none");
629
628
  var _b = this.createTaskInfo(this.vTaskList[i], this.vTooltipTemplate), component = _b.component, callback = _b.callback;
630
629
  vTmpDiv2.appendChild(component);
631
630
  events_1.addTooltipListeners(this, this.vTaskList[i].getPlanTaskDiv(), vTmpDiv2, callback);
@@ -633,10 +632,10 @@ exports.GanttChart = function (pDiv, pFormat) {
633
632
  }
634
633
  // Include the footer with the days/week/month...
635
634
  if (vSingleCell) {
636
- var vTmpTFootTRow = draw_utils_1.newNode(vTmpTFoot, 'tr');
637
- var vTmpTFootTCell = draw_utils_1.newNode(vTmpTFootTRow, 'td', null, null, null, '100%');
638
- var vTmpTFootTCellTable = draw_utils_1.newNode(vTmpTFootTCell, 'table', null, 'gcharttableh', null, '100%');
639
- var vTmpTFootTCellTableTBody = draw_utils_1.newNode(vTmpTFootTCellTable, 'tbody');
635
+ var vTmpTFootTRow = draw_utils_1.newNode(vTmpTFoot, "tr");
636
+ var vTmpTFootTCell = draw_utils_1.newNode(vTmpTFootTRow, "td", null, null, null, "100%");
637
+ var vTmpTFootTCellTable = draw_utils_1.newNode(vTmpTFootTCell, "table", null, "gcharttableh", null, "100%");
638
+ var vTmpTFootTCellTableTBody = draw_utils_1.newNode(vTmpTFootTCellTable, "tbody");
640
639
  vTmpTFootTCellTableTBody.appendChild(vDateRow.cloneNode(true));
641
640
  }
642
641
  else {
@@ -649,28 +648,28 @@ exports.GanttChart = function (pDiv, pFormat) {
649
648
  if (pEndDate === void 0) { pEndDate = null; }
650
649
  var columnCurrentDay = null;
651
650
  // Find the Current day cell to put a different class
652
- if (this.vShowWeekends !== false && pStartDate && pEndDate && (this.vFormat == 'day' || this.vFormat == 'week')) {
651
+ if (this.vShowWeekends !== false && pStartDate && pEndDate && (this.vFormat == "day" || this.vFormat == "week")) {
653
652
  var curTaskStart = new Date(pStartDate.getTime());
654
653
  var curTaskEnd = new Date();
655
654
  var onePeriod = 3600000;
656
- if (this.vFormat == 'day') {
655
+ if (this.vFormat == "day") {
657
656
  onePeriod *= 24;
658
657
  }
659
- else if (this.vFormat == 'week') {
658
+ else if (this.vFormat == "week") {
660
659
  onePeriod *= 24 * 7;
661
660
  }
662
661
  columnCurrentDay = Math.floor(general_utils_1.calculateCurrentDateOffset(curTaskStart, curTaskEnd) / onePeriod) - 1;
663
662
  }
664
663
  for (var j = 0; j < vNumCols - 1; j++) {
665
- var vCellFormat = 'gtaskcell gtaskcellcols';
666
- if (this.vShowWeekends !== false && this.vFormat == 'day' && ((j % 7 == 4) || (j % 7 == 5))) {
667
- vCellFormat = 'gtaskcellwkend';
664
+ var vCellFormat = "gtaskcell gtaskcellcols";
665
+ if (this.vShowWeekends !== false && this.vFormat == "day" && (j % 7 == 4 || j % 7 == 5)) {
666
+ vCellFormat = "gtaskcellwkend";
668
667
  }
669
668
  //When is the column is the current day/week,give a different class
670
- else if ((this.vFormat == 'week' || this.vFormat == 'day') && j === columnCurrentDay) {
671
- vCellFormat = 'gtaskcellcurrent';
669
+ else if ((this.vFormat == "week" || this.vFormat == "day") && j === columnCurrentDay) {
670
+ vCellFormat = "gtaskcellcurrent";
672
671
  }
673
- draw_utils_1.newNode(vTmpRow, 'td', null, vCellFormat, '\u00A0\u00A0', taskCellWidth);
672
+ draw_utils_1.newNode(vTmpRow, "td", null, vCellFormat, "\u00A0\u00A0", taskCellWidth);
674
673
  }
675
674
  };
676
675
  /**
@@ -690,7 +689,7 @@ exports.GanttChart = function (pDiv, pFormat) {
690
689
  }
691
690
  if (this.vDebug) {
692
691
  bd = new Date();
693
- console.info('before draw', bd);
692
+ console.info("before draw", bd);
694
693
  }
695
694
  // Process all tasks, reset parent date and completion % if task list has altered
696
695
  if (this.vProcessNeeded)
@@ -700,25 +699,25 @@ exports.GanttChart = function (pDiv, pFormat) {
700
699
  vMinDate = date_utils_1.getMinDate(this.vTaskList, this.vFormat, this.getMinDate() && date_utils_1.coerceDate(this.getMinDate()));
701
700
  vMaxDate = date_utils_1.getMaxDate(this.vTaskList, this.vFormat, this.getMaxDate() && date_utils_1.coerceDate(this.getMaxDate()));
702
701
  // Calculate chart width variables.
703
- if (this.vFormat == 'day')
702
+ if (this.vFormat == "day")
704
703
  vColWidth = this.vDayColWidth;
705
- else if (this.vFormat == 'week')
704
+ else if (this.vFormat == "week")
706
705
  vColWidth = this.vWeekColWidth;
707
- else if (this.vFormat == 'month')
706
+ else if (this.vFormat == "month")
708
707
  vColWidth = this.vMonthColWidth;
709
- else if (this.vFormat == 'quarter')
708
+ else if (this.vFormat == "quarter")
710
709
  vColWidth = this.vQuarterColWidth;
711
- else if (this.vFormat == 'hour')
710
+ else if (this.vFormat == "hour")
712
711
  vColWidth = this.vHourColWidth;
713
712
  // DRAW the Left-side of the chart (names, resources, comp%)
714
713
  var vLeftHeader = document.createDocumentFragment();
715
714
  /**
716
715
  * LIST HEAD
717
- */
716
+ */
718
717
  var gListLbl = this.drawListHead(vLeftHeader);
719
718
  /**
720
719
  * LIST BODY
721
- */
720
+ */
722
721
  var _a = this.drawListBody(vLeftHeader), vNumRows = _a.vNumRows, vTmpContentTabWrapper = _a.vTmpContentTabWrapper;
723
722
  /**
724
723
  * CHART HEAD
@@ -730,28 +729,28 @@ exports.GanttChart = function (pDiv, pFormat) {
730
729
  var vRightTable = this.drawCharBody(vTaskLeftPx, vTmpContentTabWrapper, gChartLbl, gListLbl, vMinDate, vMaxDate, vSingleCell, vNumCols, vColWidth, vDateRow).vRightTable;
731
730
  if (this.vDebug) {
732
731
  var ad = new Date();
733
- console.info('after tasks loop', ad, (ad.getTime() - bd.getTime()));
732
+ console.info("after tasks loop", ad, ad.getTime() - bd.getTime());
734
733
  }
735
734
  // MAIN VIEW: Appending all generated components to main view
736
735
  while (this.vDiv.hasChildNodes())
737
736
  this.vDiv.removeChild(this.vDiv.firstChild);
738
- var vTmpDiv = draw_utils_1.newNode(this.vDiv, 'div', null, 'gchartcontainer');
737
+ var vTmpDiv = draw_utils_1.newNode(this.vDiv, "div", null, "gchartcontainer");
739
738
  vTmpDiv.style.height = this.vTotalHeight;
740
- var leftvTmpDiv = draw_utils_1.newNode(vTmpDiv, 'div', null, 'gmain gmainleft');
739
+ var leftvTmpDiv = draw_utils_1.newNode(vTmpDiv, "div", null, "gmain gmainleft");
741
740
  leftvTmpDiv.appendChild(vLeftHeader);
742
741
  // leftvTmpDiv.appendChild(vLeftTable);
743
- var rightvTmpDiv = draw_utils_1.newNode(vTmpDiv, 'div', null, 'gmain gmainright');
742
+ var rightvTmpDiv = draw_utils_1.newNode(vTmpDiv, "div", null, "gmain gmainright");
744
743
  rightvTmpDiv.appendChild(vRightHeader);
745
744
  rightvTmpDiv.appendChild(vRightTable);
746
745
  vTmpDiv.appendChild(leftvTmpDiv);
747
746
  vTmpDiv.appendChild(rightvTmpDiv);
748
- draw_utils_1.newNode(vTmpDiv, 'div', null, 'ggridfooter');
749
- var vTmpDiv2 = draw_utils_1.newNode(this.getChartBody(), 'div', this.vDivId + 'Lines', 'glinediv');
750
- if (this.vEvents.onLineContainerHover && typeof this.vEvents.onLineContainerHover === 'function') {
751
- events_1.addListener('mouseover', this.vEvents.onLineContainerHover, vTmpDiv2);
752
- events_1.addListener('mouseout', this.vEvents.onLineContainerHover, vTmpDiv2);
747
+ draw_utils_1.newNode(vTmpDiv, "div", null, "ggridfooter");
748
+ var vTmpDiv2 = draw_utils_1.newNode(this.getChartBody(), "div", this.vDivId + "Lines", "glinediv");
749
+ if (this.vEvents.onLineContainerHover && typeof this.vEvents.onLineContainerHover === "function") {
750
+ events_1.addListener("mouseover", this.vEvents.onLineContainerHover, vTmpDiv2);
751
+ events_1.addListener("mouseout", this.vEvents.onLineContainerHover, vTmpDiv2);
753
752
  }
754
- vTmpDiv2.style.visibility = 'hidden';
753
+ vTmpDiv2.style.visibility = "hidden";
755
754
  this.setLines(vTmpDiv2);
756
755
  /* Quick hack to show the generated HTML on older browsers
757
756
  let tmpGenSrc=document.createElement('textarea');
@@ -761,14 +760,14 @@ exports.GanttChart = function (pDiv, pFormat) {
761
760
  // LISTENERS: Now all the content exists, register scroll listeners
762
761
  events_1.addScrollListeners(this);
763
762
  // SCROLL: now check if we are actually scrolling the pane
764
- if (this.vScrollTo != '') {
763
+ if (this.vScrollTo != "") {
765
764
  var vScrollDate = new Date(vMinDate.getTime());
766
765
  var vScrollPx = 0;
767
- if (this.vScrollTo.substr && this.vScrollTo.substr(0, 2) == 'px') {
766
+ if (this.vScrollTo.substr && this.vScrollTo.substr(0, 2) == "px") {
768
767
  vScrollPx = parseInt(this.vScrollTo.substr(2));
769
768
  }
770
769
  else {
771
- if (this.vScrollTo === 'today') {
770
+ if (this.vScrollTo === "today") {
772
771
  vScrollDate = new Date();
773
772
  }
774
773
  else if (this.vScrollTo instanceof Date) {
@@ -777,7 +776,7 @@ exports.GanttChart = function (pDiv, pFormat) {
777
776
  else {
778
777
  vScrollDate = date_utils_1.parseDateStr(this.vScrollTo, this.getDateInputFormat());
779
778
  }
780
- if (this.vFormat == 'hour')
779
+ if (this.vFormat == "hour")
781
780
  vScrollDate.setMinutes(0, 0, 0);
782
781
  else
783
782
  vScrollDate.setHours(0, 0, 0, 0);
@@ -785,7 +784,7 @@ exports.GanttChart = function (pDiv, pFormat) {
785
784
  }
786
785
  this.getChartBody().scrollLeft = vScrollPx;
787
786
  }
788
- if (vMinDate.getTime() <= (new Date()).getTime() && vMaxDate.getTime() >= (new Date()).getTime()) {
787
+ if (vMinDate.getTime() <= new Date().getTime() && vMaxDate.getTime() >= new Date().getTime()) {
789
788
  this.vTodayPx = general_utils_1.getOffset(vMinDate, new Date(), vColWidth, this.vFormat, this.vShowWeekends);
790
789
  }
791
790
  else
@@ -794,20 +793,20 @@ exports.GanttChart = function (pDiv, pFormat) {
794
793
  var bdd;
795
794
  if (this.vDebug) {
796
795
  bdd = new Date();
797
- console.info('before DrawDependencies', bdd);
796
+ console.info("before DrawDependencies", bdd);
798
797
  }
799
- if (this.vEvents && typeof this.vEvents.beforeLineDraw === 'function') {
798
+ if (this.vEvents && typeof this.vEvents.beforeLineDraw === "function") {
800
799
  this.vEvents.beforeLineDraw();
801
800
  }
802
801
  this.DrawDependencies(this.vDebug);
803
802
  events_1.addListenerDependencies(this.vLineOptions);
804
803
  // EVENTS
805
- if (this.vEvents && typeof this.vEvents.afterLineDraw === 'function') {
804
+ if (this.vEvents && typeof this.vEvents.afterLineDraw === "function") {
806
805
  this.vEvents.afterLineDraw();
807
806
  }
808
807
  if (this.vDebug) {
809
808
  var ad = new Date();
810
- console.info('after DrawDependencies', ad, (ad.getTime() - bdd.getTime()));
809
+ console.info("after DrawDependencies", ad, ad.getTime() - bdd.getTime());
811
810
  }
812
811
  this.drawComplete(vMinDate, vColWidth, bd);
813
812
  };
@@ -817,7 +816,7 @@ exports.GanttChart = function (pDiv, pFormat) {
817
816
  this.drawComplete = function (vMinDate, vColWidth, bd) {
818
817
  if (this.vDebug) {
819
818
  var ad = new Date();
820
- console.info('after draw', ad, (ad.getTime() - bd.getTime()));
819
+ console.info("after draw", ad, ad.getTime() - bd.getTime());
821
820
  }
822
821
  events_1.updateGridHeaderWidth(this);
823
822
  this.chartRowDateToX = function (date) {
@@ -827,7 +826,7 @@ exports.GanttChart = function (pDiv, pFormat) {
827
826
  this.vEvents.afterDraw();
828
827
  }
829
828
  };
830
- if (this.vDiv && this.vDiv.nodeName && this.vDiv.nodeName.toLowerCase() == 'div')
829
+ if (this.vDiv && this.vDiv.nodeName && this.vDiv.nodeName.toLowerCase() == "div")
831
830
  this.vDivId = this.vDiv.id;
832
831
  }; //GanttChart
833
832
  //# sourceMappingURL=draw.js.map