1
1
/*
2
2
@license
3
3
4
- dhtmlxGantt v.7.1.5 Standard
4
+ dhtmlxGantt v.7.1.6 Standard
5
5
6
6
This version of dhtmlxGantt is distributed under GPL 2.0 license and can be legally used in GPL projects.
7
7
@@ -10846,9 +10846,18 @@ DataStore.prototype = {
10846
10846
this.refresh();
10847
10847
},
10848
10848
silent: function silent(code, master) {
10849
+ var alreadySilent = false;
10850
+
10851
+ if (this._skip_refresh) {
10852
+ alreadySilent = true;
10853
+ }
10854
+
10849
10855
this._skip_refresh = true;
10850
10856
code.call(master || this);
10851
- this._skip_refresh = false;
10857
+
10858
+ if (!alreadySilent) {
10859
+ this._skip_refresh = false;
10860
+ }
10852
10861
},
10853
10862
arraysEqual: function arraysEqual(arr1, arr2) {
10854
10863
if (arr1.length !== arr2.length) return false;
@@ -12704,7 +12713,15 @@ var createDatastoreFacade = function createDatastoreFacade() {
12704
12713
});
12705
12714
},
12706
12715
clearAll: function clearAll() {
12707
- var stores = getDatastores.call(this);
12716
+ var stores = getDatastores.call(this); // clear all stores without invoking clearAll event
12717
+ // in order to prevent calling handlers when only some stores are cleared
12718
+
12719
+ for (var i = 0; i < stores.length; i++) {
12720
+ stores[i].silent(function () {
12721
+ stores[i].clearAll();
12722
+ });
12723
+ } // run clearAll again to invoke events
12724
+
12708
12725
12709
12726
for (var i = 0; i < stores.length; i++) {
12710
12727
stores[i].clearAll();
@@ -19916,6 +19933,8 @@ var Layout = function (_super) {
19916
19933
if (!cells.length) return;
19917
19934
var property = cells[0].$parent._xLayout ? "width" : "height";
19918
19935
var direction = cells[0].$parent.getNextSibling(cells[0].$id) ? 1 : -1;
19936
+ var newSizeValue = newSize.value;
19937
+ var isGravity = newSize.isGravity;
19919
19938
19920
19939
for (var i = 0; i < cells.length; i++) {
19921
19940
var ownSize = cells[i].getSize();
@@ -19927,21 +19946,25 @@ var Layout = function (_super) {
19927
19946
19928
19947
var siblingSize = resizeSibling.getSize();
19929
19948
19930
- if (resizeSibling[property]) {
19931
- var totalGravity = ownSize.gravity + siblingSize.gravity;
19932
- var totalSize = ownSize[property] + siblingSize[property];
19933
- var k = totalGravity / totalSize;
19934
- cells[i].$config.gravity = k * newSize;
19935
- resizeSibling.$config[property] = totalSize - newSize;
19936
- resizeSibling.$config.gravity = totalGravity - k * newSize;
19949
+ if (!isGravity) {
19950
+ if (resizeSibling[property]) {
19951
+ var totalGravity = ownSize.gravity + siblingSize.gravity;
19952
+ var totalSize = ownSize[property] + siblingSize[property];
19953
+ var k = totalGravity / totalSize;
19954
+ cells[i].$config.gravity = k * newSizeValue;
19955
+ resizeSibling.$config[property] = totalSize - newSizeValue;
19956
+ resizeSibling.$config.gravity = totalGravity - k * newSizeValue;
19957
+ } else {
19958
+ cells[i].$config[property] = newSizeValue;
19959
+ }
19937
19960
} else {
19938
- cells[i].$config[property] = newSize ;
19961
+ cells[i].$config.gravity = newSizeValue ;
19939
19962
}
19940
19963
19941
19964
var mainGrid = this.$gantt.$ui.getView("grid");
19942
19965
19943
- if (mainGrid && cells[i].$content === mainGrid && !mainGrid.$config.scrollable) {
19944
- this.$gantt.config.grid_width = newSize ;
19966
+ if (mainGrid && cells[i].$content === mainGrid && !mainGrid.$config.scrollable && !isGravity ) {
19967
+ this.$gantt.config.grid_width = newSizeValue ;
19945
19968
}
19946
19969
}
19947
19970
};
@@ -23408,7 +23431,19 @@ var initializer = function () {
23408
23431
if (grid_limits[1] && gantt.config.grid_width > grid_limits[1]) gantt.config.grid_width = grid_limits[1];
23409
23432
23410
23433
if (mainTimeline && gantt.config.show_chart) {
23411
- mainGrid.$config.width = gantt.config.grid_width - 1;
23434
+ mainGrid.$config.width = gantt.config.grid_width - 1; // GS-1314: Don't let the non-scrollable grid to be larger than the container
23435
+
23436
+ if (!mainGrid.$config.scrollable && mainGrid.$config.scrollY) {
23437
+ var ganttContainerWidth = mainGrid.$gantt.$layout.$container.offsetWidth;
23438
+ var verticalScrollbar = gantt.$ui.getView(mainGrid.$config.scrollY);
23439
+ var verticalScrollbarWidth = verticalScrollbar.$config.width;
23440
+ var gridOverflow = ganttContainerWidth - (mainGrid.$config.width + verticalScrollbarWidth);
23441
+
23442
+ if (gridOverflow < 0) {
23443
+ mainGrid.$config.width += gridOverflow;
23444
+ gantt.config.grid_width += gridOverflow;
23445
+ }
23446
+ }
23412
23447
23413
23448
if (!first) {
23414
23449
if (mainTimeline && !domHelpers.isChildOf(mainTimeline.$task, layout.$view)) {
@@ -23428,13 +23463,19 @@ var initializer = function () {
23428
23463
} else {
23429
23464
mainGrid.$parent._setContentSize(mainGrid.$config.width, null);
23430
23465
23431
- gantt.$layout._syncCellSizes(mainGrid.$parent.$config.group, gantt.config.grid_width);
23466
+ gantt.$layout._syncCellSizes(mainGrid.$parent.$config.group, {
23467
+ value: gantt.config.grid_width,
23468
+ isGravity: false
23469
+ });
23432
23470
}
23433
23471
} else {
23434
23472
mainGrid.$parent.$config.width = gantt.config.grid_width;
23435
23473
23436
23474
if (mainGrid.$parent.$config.group) {
23437
- gantt.$layout._syncCellSizes(mainGrid.$parent.$config.group, mainGrid.$parent.$config.width);
23475
+ gantt.$layout._syncCellSizes(mainGrid.$parent.$config.group, {
23476
+ value: mainGrid.$parent.$config.width,
23477
+ isGravity: false
23478
+ });
23438
23479
}
23439
23480
}
23440
23481
} else {
@@ -23470,7 +23511,14 @@ var initializer = function () {
23470
23511
if (horizontal) {
23471
23512
horizontal.attachEvent("onScroll", function (oldPos, newPos, dir) {
23472
23513
var scrollState = gantt.getScrollState();
23473
- gantt.callEvent("onGanttScroll", [oldPos, scrollState.y, newPos, scrollState.y]);
23514
+ gantt.callEvent("onGanttScroll", [oldPos, scrollState.y, newPos, scrollState.y]); // if the grid doesn't fit the width, scroll the row container
23515
+
23516
+ var grid = gantt.$ui.getView("grid");
23517
+
23518
+ if (grid && grid.$grid_data && !grid.$config.scrollable) {
23519
+ grid.$grid_data.style.left = grid.$grid.scrollLeft + "px";
23520
+ grid.$grid_data.scrollLeft = grid.$grid.scrollLeft;
23521
+ }
23474
23522
});
23475
23523
}
23476
23524
@@ -23522,6 +23570,11 @@ var initializer = function () {
23522
23570
if (resizeInfo.resizer) {
23523
23571
var gridFirst = resizeInfo.gridFirst,
23524
23572
next = resizeInfo.resizer;
23573
+
23574
+ if (next.$config.mode !== "x") {
23575
+ return; // track only horizontal resize
23576
+ }
23577
+
23525
23578
var initialWidth;
23526
23579
next.attachEvent("onResizeStart", function (prevCellWidth, nextCellWidth) {
23527
23580
var grid = gantt.$ui.getView("grid");
@@ -23554,7 +23607,8 @@ var initializer = function () {
23554
23607
23555
23608
var res = gantt.callEvent("onGridResizeEnd", [oldSize, newSize]);
23556
23609
23557
- if (res) {
23610
+ if (res && newSize !== 0) {
23611
+ // new size may be numeric zero when cell size is defined by 'gravity', actual size will be calculated by layout later
23558
23612
gantt.config.grid_width = newSize;
23559
23613
}
23560
23614
@@ -26012,6 +26066,8 @@ var rendererFactory = function rendererFactory(gantt) {
26012
26066
renderedItems[i] = true;
26013
26067
}
26014
26068
26069
+ var renderCalledFor = {};
26070
+
26015
26071
for (var i = 0, vis = items.length; i < vis; i++) {
26016
26072
var item = items[i];
26017
26073
var itemNode = this.rendered[item.id];
@@ -26036,6 +26092,7 @@ var rendererFactory = function rendererFactory(gantt) {
26036
26092
this.restore(item, buffer);
26037
26093
}
26038
26094
} else {
26095
+ renderCalledFor[items[i].id] = true;
26039
26096
this.render_item(items[i], buffer, viewPort, view, viewConfig);
26040
26097
}
26041
26098
}
@@ -26054,7 +26111,7 @@ var rendererFactory = function rendererFactory(gantt) {
26054
26111
var newElements = {};
26055
26112
26056
26113
for (var i in this.rendered) {
26057
- if (!renderedItems[i]) {
26114
+ if (!renderedItems[i] || renderCalledFor[i] ) {
26058
26115
newElements[i] = this.rendered[i];
26059
26116
renderCallbackMethod.call(gantt, itemsSearch[i], this.rendered[i], view);
26060
26117
}
@@ -33475,7 +33532,7 @@ CalendarWorkTimeStrategy.prototype = {
33475
33532
33476
33533
var timezoneDifference = next.getTimezoneOffset() - current.getTimezoneOffset();
33477
33534
33478
- if (timezoneDifference < 0 && step > 0) {
33535
+ if (timezoneDifference < 0 && step > 0 && unit != "day" ) {
33479
33536
// the step parameter is for backward scheduling and startDate calcuation
33480
33537
next.setTime(next.getTime() + 60 * 1000 * timezoneDifference);
33481
33538
}
@@ -39551,7 +39608,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
39551
39608
39552
39609
function DHXGantt() {
39553
39610
this.constants = __webpack_require__(/*! ../constants */ "./sources/constants/index.js");
39554
- this.version = "7.1.5 ";
39611
+ this.version = "7.1.6 ";
39555
39612
this.license = "gpl";
39556
39613
this.templates = {};
39557
39614
this.ext = {};
0 commit comments