@syncfusion/ej2-schedule 19.4.40 → 19.4.47

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 (45) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/dist/ej2-schedule.umd.min.js +2 -2
  3. package/dist/ej2-schedule.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-schedule.es2015.js +59 -43
  5. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es5.js +59 -43
  7. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  8. package/dist/global/ej2-schedule.min.js +2 -2
  9. package/dist/global/ej2-schedule.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +13 -13
  12. package/src/schedule/actions/drag.js +1 -1
  13. package/src/schedule/actions/resize.js +44 -37
  14. package/src/schedule/base/css-constant.d.ts +6 -0
  15. package/src/schedule/base/css-constant.js +6 -0
  16. package/src/schedule/event-renderer/month.js +2 -1
  17. package/src/schedule/renderer/header-renderer.js +1 -1
  18. package/src/schedule/renderer/view-base.js +5 -3
  19. package/styles/bootstrap-dark.css +4 -0
  20. package/styles/bootstrap.css +4 -0
  21. package/styles/bootstrap4.css +4 -0
  22. package/styles/bootstrap5-dark.css +4 -0
  23. package/styles/bootstrap5.css +4 -0
  24. package/styles/fabric-dark.css +4 -0
  25. package/styles/fabric.css +4 -0
  26. package/styles/highcontrast-light.css +4 -0
  27. package/styles/highcontrast.css +4 -0
  28. package/styles/material-dark.css +4 -0
  29. package/styles/material.css +4 -0
  30. package/styles/schedule/_layout.scss +4 -0
  31. package/styles/schedule/bootstrap-dark.css +4 -0
  32. package/styles/schedule/bootstrap.css +4 -0
  33. package/styles/schedule/bootstrap4.css +4 -0
  34. package/styles/schedule/bootstrap5-dark.css +4 -0
  35. package/styles/schedule/bootstrap5.css +4 -0
  36. package/styles/schedule/fabric-dark.css +4 -0
  37. package/styles/schedule/fabric.css +4 -0
  38. package/styles/schedule/highcontrast-light.css +4 -0
  39. package/styles/schedule/highcontrast.css +4 -0
  40. package/styles/schedule/material-dark.css +4 -0
  41. package/styles/schedule/material.css +4 -0
  42. package/styles/schedule/tailwind-dark.css +4 -0
  43. package/styles/schedule/tailwind.css +4 -0
  44. package/styles/tailwind-dark.css +4 -0
  45. package/styles/tailwind.css +4 -0
@@ -515,6 +515,12 @@ var DATE_HEADER_CONTAINER_CLASS = 'e-date-header-container';
515
515
  /** @private */
516
516
  var HEADER_CELLS_CLASS = 'e-header-cells';
517
517
  /** @private */
518
+ var HEADER_WEEK_CELLS_CLASS = 'e-header-week-cell';
519
+ /** @private */
520
+ var HEADER_MONTH_CELLS_CLASS = 'e-header-month-cell';
521
+ /** @private */
522
+ var HEADER_YEAR_CELLS_CLASS = 'e-header-year-cell';
523
+ /** @private */
518
524
  var WORKDAY_CLASS = 'e-work-days';
519
525
  /** @private */
520
526
  var OTHERMONTH_CLASS = 'e-other-month';
@@ -1341,7 +1347,7 @@ var HeaderRenderer = /** @__PURE__ @class */ (function () {
1341
1347
  break;
1342
1348
  case 'e-today':
1343
1349
  currentTime = resetTime(this.parent.getCurrentTime());
1344
- if (this.parent.currentView === 'Agenda' || !this.parent.isSelectedDate(currentTime) ||
1350
+ if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda' || !this.parent.isSelectedDate(currentTime) ||
1345
1351
  this.parent.currentView === 'Month' && this.parent.activeViewOptions.displayDate && !this.hasSelectedDate() &&
1346
1352
  resetTime(this.parent.activeViewOptions.displayDate) !== currentTime || this.parent.currentView === 'Month' &&
1347
1353
  this.parent.activeViewOptions.numberOfWeeks > 0 && !this.hasSelectedDate()
@@ -7346,7 +7352,8 @@ var MonthEvent = /** @__PURE__ @class */ (function (_super) {
7346
7352
  setStyleAttribute(cell, { 'height': height_1 + 'px' });
7347
7353
  });
7348
7354
  }
7349
- var cellDetail = this.workCells.slice(-1)[0].getBoundingClientRect();
7355
+ var cellDetail = this.workCells[this.parent.activeView.isTimelineView() ?
7356
+ 0 : this.workCells.length - 1].getBoundingClientRect();
7350
7357
  this.cellWidth = cellDetail.width;
7351
7358
  this.cellHeight = cellDetail.height;
7352
7359
  this.dateRender = dateRender;
@@ -19053,9 +19060,9 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19053
19060
  bottom: resizeTarget.classList.contains(BOTTOM_RESIZE_HANDLER)
19054
19061
  };
19055
19062
  _this.actionObj.groupIndex = _this.parent.uiStateValues.isGroupAdaptive ? _this.parent.uiStateValues.groupIndex : 0;
19056
- var workCell = _this.parent.element.querySelector('.' + WORK_CELLS_CLASS);
19057
- _this.actionObj.cellWidth = workCell.offsetWidth;
19058
- _this.actionObj.cellHeight = workCell.offsetHeight;
19063
+ var workCell = _this.parent.element.querySelector('.' + WORK_CELLS_CLASS).getBoundingClientRect();
19064
+ _this.actionObj.cellWidth = workCell.width;
19065
+ _this.actionObj.cellHeight = workCell.height;
19059
19066
  var hRows = _this.parent.activeViewOptions.headerRows.map(function (row) { return row.option; });
19060
19067
  if (_this.parent.activeView.isTimelineView() && hRows.length > 0 && ['Date', 'Hour'].indexOf(hRows.slice(-1)[0]) < 0) {
19061
19068
  var tr = _this.parent.getContentTable().querySelector('tr');
@@ -19065,8 +19072,9 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19065
19072
  var td = tdCollections_1[_i];
19066
19073
  noOfDays += parseInt(td.getAttribute('colspan'), 10);
19067
19074
  }
19068
- _this.actionObj.cellWidth = tr.offsetWidth / noOfDays;
19069
- _this.actionObj.cellHeight = tr.offsetHeight;
19075
+ var trRect = tr.getBoundingClientRect();
19076
+ _this.actionObj.cellWidth = trRect.width / noOfDays;
19077
+ _this.actionObj.cellHeight = trRect.height;
19070
19078
  }
19071
19079
  var pages = _this.getPageCoordinates(e);
19072
19080
  _this.actionObj.X = pages.pageX;
@@ -19317,12 +19325,12 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19317
19325
  var eventEnd = new Date(this.actionObj.event[this.parent.eventFields.endTime].getTime());
19318
19326
  var resizeTime;
19319
19327
  var isDateHeader = false;
19328
+ var headerName = this.parent.currentView;
19320
19329
  var isTimeViews = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek'].indexOf(this.parent.currentView) > -1;
19321
19330
  var isTimelineMonth = this.parent.currentView === 'TimelineMonth';
19322
19331
  var isWithoutScale = isTimelineMonth || isTimeViews && !this.parent.activeViewOptions.timeScale.enable;
19323
19332
  if (this.parent.activeView.isTimelineView()) {
19324
19333
  var tr = this.parent.getContentTable().querySelector('tr');
19325
- var headerName = this.parent.currentView;
19326
19334
  if (this.parent.activeViewOptions.headerRows.length > 0) {
19327
19335
  var rows = this.parent.activeViewOptions.headerRows.map(function (row) { return row.option; });
19328
19336
  headerName = rows.slice(-1)[0];
@@ -19334,6 +19342,11 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19334
19342
  var cellIndex = 0;
19335
19343
  var tdCollections = [].slice.call(tr.children);
19336
19344
  var isLastCell = false;
19345
+ var pixelsPerMinute = this.actionObj.cellWidth / (this.parent.activeViewOptions.timeScale.interval /
19346
+ this.parent.activeViewOptions.timeScale.slotCount);
19347
+ var offset = parseFloat(this.parent.enableRtl ? this.actionObj.clone.style.right :
19348
+ this.actionObj.clone.style.left);
19349
+ offset = Math.round(offset / pixelsPerMinute) * pixelsPerMinute;
19337
19350
  if (['Year', 'Month', 'Week', 'Date'].indexOf(headerName) !== -1) {
19338
19351
  var noOfDays = 0;
19339
19352
  for (var _i = 0, tdCollections_2 = tdCollections; _i < tdCollections_2.length; _i++) {
@@ -19342,28 +19355,28 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19342
19355
  }
19343
19356
  var offsetValue = this.parent.enableRtl ? parseInt(this.actionObj.clone.style.right, 10) :
19344
19357
  parseInt(this.actionObj.clone.style.left, 10);
19358
+ offsetValue = Math.round(offsetValue / this.actionObj.cellWidth) * this.actionObj.cellWidth;
19345
19359
  if (!isLeft) {
19346
- offsetValue += (this.actionObj.clone.offsetWidth - this.actionObj.cellWidth);
19360
+ offsetValue += (this.actionObj.clone.getBoundingClientRect().width - this.actionObj.cellWidth);
19347
19361
  }
19348
- cellIndex = Math.floor(offsetValue / Math.floor(tr.offsetWidth / noOfDays));
19362
+ cellIndex = Math.floor(offsetValue / Math.floor(tr.getBoundingClientRect().width / noOfDays));
19349
19363
  isDateHeader = isTimeViews && headerName === 'Date';
19350
- cellIndex = isLeft ? cellIndex : (isTimelineMonth || isDateHeader) ? cellIndex + 1 : cellIndex;
19364
+ cellIndex = isLeft ? cellIndex : isTimelineMonth ? cellIndex + 1 : cellIndex;
19351
19365
  isLastCell = cellIndex === tdCollections.length;
19352
19366
  cellIndex = (cellIndex < 0) ? 0 : (cellIndex >= noOfDays) ? noOfDays - 1 : cellIndex;
19353
19367
  }
19354
19368
  else {
19355
19369
  var cellWidth = this.actionObj.cellWidth;
19356
- cellIndex = isLeft ? Math.floor(this.actionObj.clone.offsetLeft / this.actionObj.cellWidth) :
19357
- Math.ceil((this.actionObj.clone.offsetLeft + (this.actionObj.clone.offsetWidth - cellWidth)) /
19358
- this.actionObj.cellWidth);
19370
+ cellIndex = isLeft ? Math.floor(offset / this.actionObj.cellWidth) :
19371
+ Math.ceil((offset + (this.actionObj.clone.getBoundingClientRect().width - cellWidth)) / this.actionObj.cellWidth);
19359
19372
  if (this.parent.enableRtl) {
19360
19373
  var cellOffsetWidth = 0;
19361
19374
  if (headerName === 'TimelineMonth' || (!this.parent.activeViewOptions.timeScale.enable &&
19362
19375
  !isTimelineMonth)) {
19363
19376
  cellOffsetWidth = this.actionObj.cellWidth;
19364
19377
  }
19365
- var offsetWidth = (Math.floor(parseInt(this.actionObj.clone.style.right, 10) / this.actionObj.cellWidth) *
19366
- this.actionObj.cellWidth) + (isLeft ? 0 : this.actionObj.clone.offsetWidth - cellOffsetWidth);
19378
+ var offsetWidth = (Math.floor(offset / this.actionObj.cellWidth) *
19379
+ this.actionObj.cellWidth) + (isLeft ? 0 : this.actionObj.clone.getBoundingClientRect().width - cellOffsetWidth);
19367
19380
  cellIndex = Math.floor(offsetWidth / this.actionObj.cellWidth);
19368
19381
  }
19369
19382
  isLastCell = cellIndex === tdCollections.length;
@@ -19381,13 +19394,11 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19381
19394
  resizeTime = new Date(resizeDate.setHours(resizeTime.getHours(), resizeTime.getMinutes(), resizeTime.getSeconds()));
19382
19395
  }
19383
19396
  else {
19384
- var offsetValue = this.parent.enableRtl ? parseFloat(this.actionObj.clone.style.right) :
19385
- parseFloat(this.actionObj.clone.style.left);
19386
19397
  if (!isLeft) {
19387
- offsetValue += this.actionObj.clone.offsetWidth;
19398
+ offset += this.actionObj.clone.getBoundingClientRect().width;
19388
19399
  }
19389
19400
  var spanMinutes = Math.ceil((this.actionObj.slotInterval / this.actionObj.cellWidth) *
19390
- (offsetValue - Math.floor(offsetValue / this.actionObj.cellWidth) * this.actionObj.cellWidth));
19401
+ (offset - Math.floor(offset / this.actionObj.cellWidth) * this.actionObj.cellWidth));
19391
19402
  spanMinutes = (isLastCell || (!isLeft && spanMinutes === 0)) ? this.actionObj.slotInterval : spanMinutes;
19392
19403
  resizeTime = new Date(resizeDate.getTime());
19393
19404
  resizeTime.setMinutes(resizeTime.getMinutes() + spanMinutes);
@@ -19396,9 +19407,10 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19396
19407
  }
19397
19408
  else {
19398
19409
  var cloneIndex = closest(this.actionObj.clone, 'td').cellIndex;
19399
- var originalWidth = Math.ceil((isLeft ? this.actionObj.element.offsetWidth : 0) / this.actionObj.cellWidth) *
19400
- this.actionObj.cellWidth;
19401
- var noOfDays = Math.ceil((this.actionObj.clone.offsetWidth - originalWidth) / this.actionObj.cellWidth);
19410
+ var originalWidth = Math.ceil((isLeft ? this.actionObj.element.getBoundingClientRect().width : 0) /
19411
+ this.actionObj.cellWidth) * this.actionObj.cellWidth;
19412
+ var noOfDays = Math.ceil((this.actionObj.clone.getBoundingClientRect().width - originalWidth) /
19413
+ this.actionObj.cellWidth);
19402
19414
  var tr = closest(this.actionObj.clone, 'tr');
19403
19415
  var dayIndex = isLeft ? cloneIndex - noOfDays : cloneIndex + noOfDays - 1;
19404
19416
  dayIndex = this.getIndex(dayIndex);
@@ -19418,8 +19430,8 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19418
19430
  }
19419
19431
  else {
19420
19432
  var isTimeScaleViews = isTimeViews && this.parent.activeViewOptions.timeScale.enable;
19421
- var resizeEnd = ((!isTimeScaleViews || isDateHeader) && resizeTime.getHours() === 0 && resizeTime.getMinutes() === 0) ?
19422
- addDays(resizeTime, 1) : resizeTime;
19433
+ var resizeEnd = ((!isTimeScaleViews || isDateHeader || isTimeViews && ['Week', 'Month', 'Year'].indexOf(headerName) > -1)
19434
+ && resizeTime.getHours() === 0 && resizeTime.getMinutes() === 0) ? addDays(resizeTime, 1) : resizeTime;
19423
19435
  if (isWithoutScale && (resizeEnd.getTime() - eventStart.getTime()) <= 0) {
19424
19436
  resizeEnd = addDays(resetTime(eventStart), 1);
19425
19437
  }
@@ -19456,29 +19468,30 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19456
19468
  var slotInterval = (this.actionObj.cellWidth / this.actionObj.slotInterval) * this.actionObj.interval;
19457
19469
  var pageWidth = isLeft ? (this.actionObj.X - this.actionObj.pageX) : (this.actionObj.pageX - this.actionObj.X);
19458
19470
  var targetWidth = isTimelineView ?
19459
- (this.actionObj.element.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth :
19460
- this.parent.currentView === 'Month' ? this.actionObj.element.offsetWidth :
19461
- Math.ceil(this.actionObj.element.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth;
19471
+ (this.actionObj.element.getBoundingClientRect().width / this.actionObj.cellWidth) * this.actionObj.cellWidth :
19472
+ this.parent.currentView === 'Month' ? this.actionObj.element.getBoundingClientRect().width :
19473
+ Math.ceil(this.actionObj.element.getBoundingClientRect().width / this.actionObj.cellWidth) * this.actionObj.cellWidth;
19462
19474
  var offsetWidth = targetWidth + (Math.ceil(pageWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth);
19475
+ var left = (this.parent.enableRtl) ? parseInt(this.actionObj.element.style.right, 10) : this.actionObj.clone.offsetLeft;
19463
19476
  if (isTimeViews) {
19464
- offsetWidth = targetWidth + (isLeft ? (Math.ceil(pageWidth / slotInterval) * slotInterval) :
19465
- (Math.floor(pageWidth / slotInterval) * slotInterval));
19477
+ offsetWidth = targetWidth + (Math.ceil(pageWidth / slotInterval) * slotInterval);
19478
+ offsetWidth = (Math.round((left + offsetWidth) / slotInterval) * slotInterval) - left;
19466
19479
  this.actionObj.event[this.parent.eventFields.isAllDay] = false;
19467
19480
  }
19468
19481
  var width = !isLeft && ((offsetWidth + this.actionObj.clone.offsetLeft > this.scrollArgs.width)) ?
19469
- this.actionObj.clone.offsetWidth : (offsetWidth < this.actionObj.cellWidth) ? offsetWidth : offsetWidth;
19482
+ this.actionObj.clone.getBoundingClientRect().width : (offsetWidth < this.actionObj.cellWidth) ? offsetWidth : offsetWidth;
19470
19483
  if (this.parent.enableRtl) {
19471
19484
  var rightValue = isTimelineView ? parseInt(this.actionObj.element.style.right, 10) :
19472
19485
  -(offsetWidth - this.actionObj.cellWidth);
19473
19486
  rightValue = isTimelineView ? rightValue : isLeft ? 0 : rightValue > 0 ? 0 : rightValue;
19474
19487
  if (isTimelineView && !isLeft) {
19475
- rightValue = Math.ceil((this.actionObj.element.offsetLeft + (this.actionObj.element.offsetWidth +
19488
+ rightValue = Math.ceil((this.actionObj.element.offsetLeft + (this.actionObj.element.getBoundingClientRect().width +
19476
19489
  (this.actionObj.pageX - this.actionObj.X))) / slotInterval) * slotInterval;
19477
19490
  rightValue = rightValue < 0 ? Math.abs(rightValue) : -rightValue;
19478
19491
  }
19479
19492
  rightValue = rightValue >= this.scrollArgs.width ? this.scrollArgs.width - this.actionObj.cellWidth : rightValue;
19480
19493
  styles.right = formatUnit(rightValue);
19481
- width = width + rightValue > this.scrollArgs.width ? this.actionObj.clone.offsetWidth : width;
19494
+ width = width + rightValue > this.scrollArgs.width ? this.actionObj.clone.getBoundingClientRect().width : width;
19482
19495
  }
19483
19496
  else {
19484
19497
  var offsetLeft = isLeft ? this.actionObj.element.offsetLeft - (this.actionObj.X - this.actionObj.pageX) :
@@ -19486,12 +19499,12 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19486
19499
  if (isTimelineView) {
19487
19500
  offsetLeft = isLeft ? offsetLeft : parseInt(this.actionObj.clone.style.left, 10);
19488
19501
  if (this.parent.enableRtl) {
19489
- offsetLeft = !isLeft ? (this.actionObj.pageX < this.actionObj.X - this.actionObj.clone.offsetWidth) ?
19490
- parseInt(this.actionObj.clone.style.right, 10) : offsetLeft : offsetLeft;
19502
+ offsetLeft = !isLeft ? (this.actionObj.pageX < this.actionObj.X - this.actionObj.clone.getBoundingClientRect().width)
19503
+ ? parseInt(this.actionObj.clone.style.right, 10) : offsetLeft : offsetLeft;
19491
19504
  }
19492
19505
  else {
19493
- offsetLeft = isLeft ? (this.actionObj.pageX > this.actionObj.X + this.actionObj.clone.offsetWidth &&
19494
- this.actionObj.clone.offsetWidth === this.actionObj.cellWidth) ?
19506
+ offsetLeft = isLeft ? (this.actionObj.pageX > this.actionObj.X + this.actionObj.clone.getBoundingClientRect().width &&
19507
+ this.actionObj.clone.getBoundingClientRect().width === this.actionObj.cellWidth) ?
19495
19508
  parseInt(this.actionObj.clone.style.left, 10) : offsetLeft : offsetLeft;
19496
19509
  }
19497
19510
  }
@@ -19501,9 +19514,10 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
19501
19514
  Math.ceil(Math.abs(offsetLeft) / this.actionObj.cellWidth) * this.actionObj.cellWidth;
19502
19515
  if (offsetLeft < 0) {
19503
19516
  offsetLeft = 0;
19504
- width = this.actionObj.clone.offsetWidth;
19517
+ width = this.actionObj.clone.getBoundingClientRect().width;
19505
19518
  }
19506
- var cloneWidth = Math.ceil(this.actionObj.clone.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth;
19519
+ var cloneWidth = Math.ceil(this.actionObj.clone.getBoundingClientRect().width / this.actionObj.cellWidth) *
19520
+ this.actionObj.cellWidth;
19507
19521
  if (isLeft) {
19508
19522
  styles.left = formatUnit(isTimelineView ? offsetLeft : isLeft ? leftValue < 0 ? -offsetLeft :
19509
19523
  (Math.ceil((targetWidth - cloneWidth) / this.actionObj.cellWidth) * this.actionObj.cellWidth) : offsetLeft);
@@ -21129,7 +21143,7 @@ var DragAndDrop = /** @__PURE__ @class */ (function (_super) {
21129
21143
  if (!isNullOrUndefined(targetDate)) {
21130
21144
  if (!this.parent.activeViewOptions.timeScale.enable || (this.parent.currentView === 'TimelineMonth')) {
21131
21145
  var eventSrt = eventObj[this.parent.eventFields.startTime];
21132
- eventStart = new Date(eventStart.setHours(eventSrt.getHours(), eventSrt.getMinutes(), eventSrt.getSeconds()));
21146
+ eventStart = new Date(targetDate.setHours(eventSrt.getHours(), eventSrt.getMinutes(), eventSrt.getSeconds()));
21133
21147
  }
21134
21148
  else {
21135
21149
  eventStart = targetDate;
@@ -21796,7 +21810,7 @@ var ViewBase = /** @__PURE__ @class */ (function () {
21796
21810
  if (this.isTimelineView()) {
21797
21811
  var colElements = this.getColElements();
21798
21812
  var contentBody = this.element.querySelector('.' + CONTENT_TABLE_CLASS + ' tbody');
21799
- var colWidth_1 = Math.ceil(contentBody.offsetWidth / (colElements.length / 2));
21813
+ var colWidth_1 = (contentBody.getBoundingClientRect().width / (colElements.length / 2));
21800
21814
  colElements.forEach(function (col) { return setStyleAttribute(col, { 'width': formatUnit(colWidth_1) }); });
21801
21815
  if (content.offsetHeight !== content.clientHeight) {
21802
21816
  var resourceColumn = this.parent.element.querySelector('.' + RESOURCE_COLUMN_WRAP_CLASS);
@@ -21804,9 +21818,11 @@ var ViewBase = /** @__PURE__ @class */ (function () {
21804
21818
  setStyleAttribute(resourceColumn, { 'height': formatUnit(content.clientHeight) });
21805
21819
  }
21806
21820
  }
21807
- var headerCellElements = [].slice.call(this.element.querySelectorAll('.' + HEADER_CELLS_CLASS));
21821
+ var cssClass = "." + HEADER_CELLS_CLASS + ",." + TIME_SLOT_CLASS + ",." + HEADER_WEEK_CELLS_CLASS + ",." + HEADER_MONTH_CELLS_CLASS + ",." + HEADER_YEAR_CELLS_CLASS;
21822
+ var headerCellElements = [].slice.call(this.element.querySelectorAll(cssClass));
21808
21823
  headerCellElements.forEach(function (ele) {
21809
- var headerCellColSpan = parseInt(ele.getAttribute('colspan'), 10);
21824
+ var colSpan = isNullOrUndefined(ele.getAttribute('colspan')) ? '1' : ele.getAttribute('colspan');
21825
+ var headerCellColSpan = parseInt(colSpan, 10);
21810
21826
  setStyleAttribute(ele, { 'width': formatUnit(colWidth_1 * headerCellColSpan) });
21811
21827
  });
21812
21828
  }