@refinitiv-ui/efx-grid 6.0.31 → 6.0.33
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/core/dist/core.js +376 -126
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/grid/Core.d.ts +4 -0
- package/lib/core/es6/grid/Core.js +79 -33
- package/lib/core/es6/grid/ILayoutGrid.js +3 -3
- package/lib/core/es6/grid/LayoutGrid.js +67 -23
- package/lib/core/es6/grid/VirtualizedLayoutGrid.js +92 -55
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +1 -0
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +29 -5
- package/lib/core/es6/grid/util/SelectionList.d.ts +6 -2
- package/lib/core/es6/grid/util/SelectionList.js +76 -7
- package/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +521 -179
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/Grid.js +14 -13
- package/lib/rt-grid/es6/RowDefinition.js +1 -1
- package/lib/statistics-row/es6/StatisticsRow.d.ts +25 -25
- package/lib/statistics-row/es6/StatisticsRow.js +9 -4
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +4 -0
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +58 -30
- package/lib/tr-grid-column-selection/es6/ColumnSelection.d.ts +2 -0
- package/lib/tr-grid-column-selection/es6/ColumnSelection.js +14 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +2 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +35 -12
- package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +23 -1
- package/lib/tr-grid-row-dragging/es6/RowDragging.js +339 -40
- package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +2 -0
- package/lib/tr-grid-util/es6/GroupDefinitions.js +15 -0
- package/lib/tr-grid-util/es6/Util.d.ts +3 -0
- package/lib/tr-grid-util/es6/Util.js +15 -0
- package/lib/tr-grid-util/es6/jet/CollectionDict.d.ts +1 -1
- package/lib/tr-grid-util/es6/jet/CollectionDict.js +12 -2
- package/lib/tr-grid-util/es6/jet/MockQuotes2.js +170 -47
- package/lib/types/es6/ColumnGrouping.d.ts +4 -0
- package/lib/types/es6/ColumnSelection.d.ts +2 -0
- package/lib/types/es6/ColumnStack.d.ts +2 -0
- package/lib/types/es6/Core/grid/util/SelectionList.d.ts +6 -2
- package/lib/types/es6/RowDragging.d.ts +23 -1
- package/lib/types/es6/StatisticsRow.d.ts +25 -25
- package/lib/versions.json +6 -6
- package/package.json +1 -1
package/lib/core/dist/core.js
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
7
7
|
|
8
8
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
9
|
+
/* harmony export */ "Qr": () => (/* binding */ isEmptyObject),
|
9
10
|
/* harmony export */ "kI": () => (/* binding */ cloneObject)
|
10
11
|
/* harmony export */ });
|
11
12
|
/* unused harmony exports Util, extendObject, arrayToObject, extendProperty, extendArrayProperty, parseCondition, prettifyCss, getShadowRoot, injectCss, isIE, isMac, isTouchDevice, nestedObjectToArray, rgb2Hex, prepareTSVContent */
|
@@ -149,6 +150,20 @@ var extendObject = function (obj, extender, limiters) {
|
|
149
150
|
var cloneObject = function (obj, limiters) {
|
150
151
|
return extendObject({}, obj, limiters);
|
151
152
|
};
|
153
|
+
|
154
|
+
/** Check empty object
|
155
|
+
* @public
|
156
|
+
* @function
|
157
|
+
* @param {Object} obj
|
158
|
+
* @return {boolean}=true, if the obj is empty
|
159
|
+
*/
|
160
|
+
var isEmptyObject = function (obj) {
|
161
|
+
for (var key in obj) {
|
162
|
+
return false;
|
163
|
+
}
|
164
|
+
return true;
|
165
|
+
};
|
166
|
+
|
152
167
|
/** @public
|
153
168
|
* @param {Array=} data
|
154
169
|
* @param {Array.<string>=} fields In case of the given data is an array, this param will be used for mapping index to field
|
@@ -4693,11 +4708,11 @@ ILayoutGrid.prototype.getHorizontalLayout = function () {};
|
|
4693
4708
|
ILayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPositions, outNoBorders) {};
|
4694
4709
|
/** @public
|
4695
4710
|
* @ignore
|
4696
|
-
* @param {!Array.<
|
4697
|
-
* @param {!Array.<
|
4711
|
+
* @param {!Array.<Array>} posAry Left and right bound positions in pixel
|
4712
|
+
* @param {!Array.<Array>} noBorderAry Boolean values indicating existence of left and right CSS borders
|
4698
4713
|
* @param {number=} topPx Top position of bound
|
4699
4714
|
*/
|
4700
|
-
ILayoutGrid.prototype.updateColumnBounds = function (
|
4715
|
+
ILayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx) {};
|
4701
4716
|
|
4702
4717
|
/* harmony default export */ const grid_ILayoutGrid = (ILayoutGrid);
|
4703
4718
|
|
@@ -6263,6 +6278,34 @@ SelectionList.prototype.deselect = function (at) {
|
|
6263
6278
|
}
|
6264
6279
|
return false;
|
6265
6280
|
};
|
6281
|
+
/** Deselect all selections starting from the specified index
|
6282
|
+
* @public
|
6283
|
+
* @param {number} at
|
6284
|
+
* @return {boolean}
|
6285
|
+
*/
|
6286
|
+
SelectionList.prototype.deselectFrom = function (at) {
|
6287
|
+
if(this._lastIndex < at) {
|
6288
|
+
return false;
|
6289
|
+
}
|
6290
|
+
if(this._firstIndex >= at) {
|
6291
|
+
this.clearAllSelections();
|
6292
|
+
return true;
|
6293
|
+
}
|
6294
|
+
|
6295
|
+
var lastIndex = this._lastIndex;
|
6296
|
+
var sels = this._selections;
|
6297
|
+
for(var i = at; i <= lastIndex; ++i) {
|
6298
|
+
if (sels[i]) {
|
6299
|
+
sels[at] = false;
|
6300
|
+
--this._count;
|
6301
|
+
}
|
6302
|
+
}
|
6303
|
+
if (this._anchor >= at) {
|
6304
|
+
this._anchor = -1; // No anchor
|
6305
|
+
}
|
6306
|
+
this._lastIndex = this._findPrevSelection(at);
|
6307
|
+
return true;
|
6308
|
+
};
|
6266
6309
|
/** @public
|
6267
6310
|
* @param {number} at
|
6268
6311
|
*/
|
@@ -6459,14 +6502,16 @@ SelectionList.prototype.getLastSelectedIndex = function() {
|
|
6459
6502
|
|
6460
6503
|
/** WARNING: It will creates a new(EXPENSIVE) defragmented array of selected Index. The selected indices will always be sorted in ascending order
|
6461
6504
|
* @public
|
6462
|
-
* @return {Array.<number>}
|
6505
|
+
* @return {!Array.<number>}
|
6463
6506
|
*/
|
6464
6507
|
SelectionList.prototype.getAllSelections = function() {
|
6465
6508
|
if(this._count > 0) {
|
6466
6509
|
var ary = new Array(this._count); // Fastest way to create an array
|
6467
6510
|
var count = 0;
|
6468
|
-
|
6469
|
-
|
6511
|
+
var sels = this._selections;
|
6512
|
+
var lastIdx = this._lastIndex;
|
6513
|
+
for(var i = this._firstIndex; i <= lastIdx; ++i) {
|
6514
|
+
if(sels[i]) {
|
6470
6515
|
ary[count++] = i;
|
6471
6516
|
}
|
6472
6517
|
}
|
@@ -6474,6 +6519,45 @@ SelectionList.prototype.getAllSelections = function() {
|
|
6474
6519
|
}
|
6475
6520
|
return [];
|
6476
6521
|
};
|
6522
|
+
/** Get array of connected selection ranges. For intances, if indices 1, 2, 5, and 5 are selected, array of [1, 2] and [5, 5] are returned.
|
6523
|
+
* @public
|
6524
|
+
* @param {number=} from
|
6525
|
+
* @param {number=} to EXCLUSIVE
|
6526
|
+
* @return {!Array.<Array.<number>>}
|
6527
|
+
*/
|
6528
|
+
SelectionList.prototype.getConnectedRanges = function(from, to) {
|
6529
|
+
if(this._count > 0) {
|
6530
|
+
var ary = [];
|
6531
|
+
if(from == null || from < this._firstIndex) {
|
6532
|
+
from = this._firstIndex;
|
6533
|
+
}
|
6534
|
+
if(to == null || to > this._lastIndex) {
|
6535
|
+
to = this._lastIndex + 1;
|
6536
|
+
}
|
6537
|
+
|
6538
|
+
var pair = null;
|
6539
|
+
for(var i = from; i < to; ++i) {
|
6540
|
+
if(this._selections[i]) {
|
6541
|
+
if(!pair) {
|
6542
|
+
pair = [i, -1];
|
6543
|
+
}
|
6544
|
+
} else if(pair) {
|
6545
|
+
pair[1] = i - 1;
|
6546
|
+
ary.push(pair);
|
6547
|
+
pair = null;
|
6548
|
+
}
|
6549
|
+
}
|
6550
|
+
|
6551
|
+
if(pair) {
|
6552
|
+
pair[1] = this._lastIndex;
|
6553
|
+
ary.push(pair);
|
6554
|
+
pair = null;
|
6555
|
+
}
|
6556
|
+
return ary;
|
6557
|
+
}
|
6558
|
+
return [];
|
6559
|
+
};
|
6560
|
+
|
6477
6561
|
/**
|
6478
6562
|
* @public
|
6479
6563
|
* @return {Array.<boolean>}
|
@@ -6501,13 +6585,13 @@ SelectionList.prototype.clearAllSelections = function() {
|
|
6501
6585
|
* @public
|
6502
6586
|
* @param {SelectionList} srcSelections
|
6503
6587
|
* @param {number} fromSrcIndex
|
6504
|
-
* @param {number}
|
6588
|
+
* @param {number} offset Offset from the source index to map to destination index of this SelectionList. Use 0 if there is no shifting.
|
6505
6589
|
* @param {number} forLength Positive value only. negative valie is not allowed
|
6506
6590
|
*/
|
6507
|
-
SelectionList.prototype.copyFrom = function (srcSelections, fromSrcIndex,
|
6591
|
+
SelectionList.prototype.copyFrom = function (srcSelections, fromSrcIndex, offset, forLength) {
|
6508
6592
|
if (forLength <= 0) { return; }
|
6509
6593
|
|
6510
|
-
var toThisIndex = fromSrcIndex +
|
6594
|
+
var toThisIndex = fromSrcIndex + offset;
|
6511
6595
|
if (srcSelections == null) {
|
6512
6596
|
this.deselectRange(toThisIndex, forLength);
|
6513
6597
|
return;
|
@@ -6528,7 +6612,7 @@ SelectionList.prototype.copyFrom = function (srcSelections, fromSrcIndex, offset
|
|
6528
6612
|
this._anchor = -1;
|
6529
6613
|
if (srcSelections._anchor >= 0) {
|
6530
6614
|
if (srcSelections._anchor >= fromSrcIndex && srcSelections._anchor < (fromSrcIndex + forLength)) {
|
6531
|
-
this._anchor = srcSelections._anchor +
|
6615
|
+
this._anchor = srcSelections._anchor + offset;
|
6532
6616
|
}
|
6533
6617
|
}
|
6534
6618
|
};
|
@@ -8602,10 +8686,18 @@ LayoutGrid.prototype._ctxRows;
|
|
8602
8686
|
* @private
|
8603
8687
|
*/
|
8604
8688
|
LayoutGrid.prototype._boundLayer = null;
|
8605
|
-
/** @type {Element}
|
8689
|
+
/** @type {Array.<Element>}
|
8690
|
+
* @private
|
8691
|
+
*/
|
8692
|
+
LayoutGrid.prototype._colBounds = null;
|
8693
|
+
/** @type {Array.<Element>}
|
8606
8694
|
* @private
|
8607
8695
|
*/
|
8608
|
-
LayoutGrid.prototype.
|
8696
|
+
LayoutGrid.prototype._colBoundCache = null;
|
8697
|
+
/** @type {boolean}
|
8698
|
+
* @private
|
8699
|
+
*/
|
8700
|
+
LayoutGrid.prototype._colSelDirty = false;
|
8609
8701
|
/** @type {HScrollbar}
|
8610
8702
|
* @private
|
8611
8703
|
*/
|
@@ -8629,6 +8721,8 @@ LayoutGrid.prototype.dispose = function () {
|
|
8629
8721
|
}
|
8630
8722
|
|
8631
8723
|
this._colCount = this._rowCount = this._activeRowEnd = this._availableRowCount = 0;
|
8724
|
+
this._colBounds = this._colBoundCache = null;
|
8725
|
+
this._colSelDirty = false;
|
8632
8726
|
|
8633
8727
|
this._highlightedCells.length = 0;
|
8634
8728
|
this._ctx = null;
|
@@ -10570,16 +10664,15 @@ LayoutGrid.prototype.getContextRow = function (rowIndex) {
|
|
10570
10664
|
LayoutGrid.prototype.selectColumn = function (colIndex, selected) {
|
10571
10665
|
this.enableColumnClass(colIndex, "selected-column", selected);
|
10572
10666
|
|
10573
|
-
|
10574
|
-
|
10575
|
-
|
10576
|
-
|
10577
|
-
|
10578
|
-
|
10579
|
-
|
10580
|
-
|
10581
|
-
|
10582
|
-
this._updateLayers();
|
10667
|
+
if(selected) {
|
10668
|
+
this._colSelDirty = true;
|
10669
|
+
|
10670
|
+
var boundLayer = this._boundLayer;
|
10671
|
+
if(!boundLayer) {
|
10672
|
+
boundLayer = this._boundLayer = document.createElement("div");
|
10673
|
+
boundLayer.className = "cover-layer";
|
10674
|
+
this._updateLayers();
|
10675
|
+
}
|
10583
10676
|
}
|
10584
10677
|
};
|
10585
10678
|
/** @public
|
@@ -10682,24 +10775,56 @@ LayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPositi
|
|
10682
10775
|
};
|
10683
10776
|
/** @public
|
10684
10777
|
* @ignore
|
10685
|
-
* @param {!Array.<
|
10686
|
-
* @param {!Array.<
|
10778
|
+
* @param {!Array.<Array>} posAry Left and right bound positions in pixel
|
10779
|
+
* @param {!Array.<Array>} noBorderAry Boolean values indicating existence of left and right CSS borders
|
10687
10780
|
* @param {number=} topPx Top position of bound
|
10688
10781
|
*/
|
10689
|
-
LayoutGrid.prototype.updateColumnBounds = function (
|
10690
|
-
|
10691
|
-
if(!columnBound) {
|
10782
|
+
LayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx) {
|
10783
|
+
if(!this._colSelDirty) {
|
10692
10784
|
return;
|
10693
10785
|
}
|
10694
10786
|
|
10695
|
-
var
|
10696
|
-
var
|
10697
|
-
if(
|
10698
|
-
|
10787
|
+
var cbs = this._colBounds;
|
10788
|
+
var cbc = this._colBoundCache;
|
10789
|
+
if(!cbs) {
|
10790
|
+
cbs = this._colBounds = [];
|
10791
|
+
}
|
10792
|
+
if(!cbc) {
|
10793
|
+
cbc = this._colBoundCache = [];
|
10794
|
+
}
|
10795
|
+
|
10796
|
+
var rangeCount = posAry.length;
|
10797
|
+
var i;
|
10798
|
+
var pn = null; // parentNode
|
10799
|
+
var columnBound = null;
|
10800
|
+
|
10801
|
+
// Remove unused bounds from document
|
10802
|
+
var activeCount = cbs.length;
|
10803
|
+
for(i = rangeCount; i < activeCount; ++i) {
|
10804
|
+
columnBound = cbs[i];
|
10805
|
+
pn = columnBound.parentNode;
|
10699
10806
|
if(pn) {
|
10700
10807
|
pn.removeChild(columnBound);
|
10701
10808
|
}
|
10702
|
-
}
|
10809
|
+
}
|
10810
|
+
cbs.length = activeCount = rangeCount;
|
10811
|
+
|
10812
|
+
if(!rangeCount) {
|
10813
|
+
this._colSelDirty = false;
|
10814
|
+
return;
|
10815
|
+
}
|
10816
|
+
|
10817
|
+
for(i = 0; i < rangeCount; ++i) {
|
10818
|
+
var positions = posAry[i];
|
10819
|
+
var noBorders = noBorderAry[i];
|
10820
|
+
var lftPx = /** @type{number} */(positions[0]);
|
10821
|
+
var rgtPx = /** @type{number} */(positions[1]);
|
10822
|
+
|
10823
|
+
columnBound = cbc[i];
|
10824
|
+
if(!columnBound) {
|
10825
|
+
columnBound = cbc[i] = document.createElement("div");
|
10826
|
+
columnBound.className = "selection-bound column-bound";
|
10827
|
+
}
|
10703
10828
|
columnBound.style.left = lftPx + "px";
|
10704
10829
|
columnBound.style.width = (rgtPx - lftPx) + "px";
|
10705
10830
|
|
@@ -10709,7 +10834,10 @@ LayoutGrid.prototype.updateColumnBounds = function (positions, noBorders, topPx)
|
|
10709
10834
|
columnBound.classList.toggle("no-left-bound", noBorders[0]);
|
10710
10835
|
columnBound.classList.toggle("no-right-bound", noBorders[1]);
|
10711
10836
|
if(this._boundLayer) {
|
10712
|
-
|
10837
|
+
if(!cbs[i]) {
|
10838
|
+
cbs[i] = columnBound;
|
10839
|
+
this._boundLayer.appendChild(columnBound);
|
10840
|
+
}
|
10713
10841
|
}
|
10714
10842
|
}
|
10715
10843
|
};
|
@@ -11730,7 +11858,22 @@ GroupDefinitions.prototype.setGroupChildren = function (groupId, newChildList) {
|
|
11730
11858
|
}
|
11731
11859
|
return false;
|
11732
11860
|
};
|
11861
|
+
/** @public
|
11862
|
+
* @param {string} groupId
|
11863
|
+
* @param {string} groupName
|
11864
|
+
* @return {boolean}
|
11865
|
+
*/
|
11866
|
+
GroupDefinitions.prototype.setGroupName = function (groupId, groupName) {
|
11867
|
+
var groupDef = this._groupMap[groupId];
|
11868
|
+
if(groupDef) {
|
11869
|
+
if(groupDef.name !== groupName) {
|
11870
|
+
groupDef.name = groupName;
|
11871
|
+
return true;
|
11872
|
+
}
|
11873
|
+
}
|
11733
11874
|
|
11875
|
+
return false;
|
11876
|
+
};
|
11734
11877
|
/* harmony default export */ const es6_GroupDefinitions = ((/* unused pure expression or super */ null && (GroupDefinitions)));
|
11735
11878
|
|
11736
11879
|
|
@@ -23721,10 +23864,18 @@ VirtualizedLayoutGrid.prototype._selectionList = null;
|
|
23721
23864
|
* @private
|
23722
23865
|
*/
|
23723
23866
|
VirtualizedLayoutGrid.prototype._reverter = null;
|
23724
|
-
/** @type {Element}
|
23867
|
+
/** @type {Array.<Element>}
|
23725
23868
|
* @private
|
23726
23869
|
*/
|
23727
|
-
VirtualizedLayoutGrid.prototype.
|
23870
|
+
VirtualizedLayoutGrid.prototype._rowBounds = null;
|
23871
|
+
/** @type {Array.<Element>}
|
23872
|
+
* @private
|
23873
|
+
*/
|
23874
|
+
VirtualizedLayoutGrid.prototype._rowBoundCache = null;
|
23875
|
+
/** @type {boolean}
|
23876
|
+
* @private
|
23877
|
+
*/
|
23878
|
+
VirtualizedLayoutGrid.prototype._rowSelDirty = false;
|
23728
23879
|
/** @type {Element}
|
23729
23880
|
* @private
|
23730
23881
|
*/
|
@@ -23790,6 +23941,9 @@ VirtualizedLayoutGrid.prototype.dispose = function () {
|
|
23790
23941
|
this._grid.dispose();
|
23791
23942
|
this._dispose();
|
23792
23943
|
this._reverter.dispose();
|
23944
|
+
|
23945
|
+
this._rowBounds = this._rowBoundCache = null;
|
23946
|
+
this._rowSelDirty = false;
|
23793
23947
|
if(this._rowBoundTimer) {
|
23794
23948
|
clearTimeout(this._rowBoundTimer);
|
23795
23949
|
this._rowBoundTimer = 0;
|
@@ -24241,9 +24395,10 @@ VirtualizedLayoutGrid.prototype.setSelectedRow = function (rowIndex, opt_selecte
|
|
24241
24395
|
this._grid.setSelectedRow(rowIndex - this._firstIndex, selected);
|
24242
24396
|
|
24243
24397
|
if(selected) {
|
24244
|
-
this.
|
24398
|
+
this._rowSelDirty = true;
|
24399
|
+
this._initBoundLayer();
|
24245
24400
|
}
|
24246
|
-
this.
|
24401
|
+
this._requestUpdatingRowBounds();
|
24247
24402
|
};
|
24248
24403
|
|
24249
24404
|
/** @inheritDoc */
|
@@ -24256,14 +24411,15 @@ VirtualizedLayoutGrid.prototype.selectSingleRow = function (rowIndex) {
|
|
24256
24411
|
VirtualizedLayoutGrid.prototype.selectRowRange = function (rowIndex, length) {
|
24257
24412
|
this._selectionList.selectRange(rowIndex, length);
|
24258
24413
|
this._updateRowSelection();
|
24259
|
-
this.
|
24260
|
-
this.
|
24414
|
+
this._rowSelDirty = true;
|
24415
|
+
this._initBoundLayer();
|
24416
|
+
this._requestUpdatingRowBounds();
|
24261
24417
|
};
|
24262
24418
|
/** @inheritDoc */
|
24263
24419
|
VirtualizedLayoutGrid.prototype.clearSelectedRows = function () {
|
24264
24420
|
var count = this._selectionList.clearAllSelections();
|
24265
24421
|
this._grid.clearSelectedRows();
|
24266
|
-
this.
|
24422
|
+
this._requestUpdatingRowBounds(); // WARNING: Row bounds are not removed from the document immediately
|
24267
24423
|
return count;
|
24268
24424
|
};
|
24269
24425
|
/** @inheritDoc */
|
@@ -24705,12 +24861,12 @@ VirtualizedLayoutGrid.prototype._updateCellBounds = function () {
|
|
24705
24861
|
};
|
24706
24862
|
/** @public
|
24707
24863
|
* @ignore
|
24708
|
-
* @param {!Array.<
|
24709
|
-
* @param {!Array.<
|
24864
|
+
* @param {!Array.<Array>} posAry Left and right bound positions in pixel
|
24865
|
+
* @param {!Array.<Array>} noBorderAry Boolean values indicating existence of left and right CSS borders
|
24710
24866
|
* @param {number=} topPx Top position of bound
|
24711
24867
|
*/
|
24712
|
-
VirtualizedLayoutGrid.prototype.updateColumnBounds = function (
|
24713
|
-
this._grid.updateColumnBounds(
|
24868
|
+
VirtualizedLayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx) {
|
24869
|
+
this._grid.updateColumnBounds(posAry, noBorderAry, topPx);
|
24714
24870
|
this._updateRowBounds();
|
24715
24871
|
};
|
24716
24872
|
/** @private
|
@@ -24725,16 +24881,6 @@ VirtualizedLayoutGrid.prototype._initBoundLayer = function () {
|
|
24725
24881
|
};
|
24726
24882
|
/** @private
|
24727
24883
|
*/
|
24728
|
-
VirtualizedLayoutGrid.prototype._initRowBounds = function () {
|
24729
|
-
var rowBound = this._rowBound;
|
24730
|
-
if(!rowBound) {
|
24731
|
-
rowBound = this._rowBound = document.createElement("div");
|
24732
|
-
rowBound.className = "selection-bound";
|
24733
|
-
}
|
24734
|
-
this._initBoundLayer();
|
24735
|
-
};
|
24736
|
-
/** @private
|
24737
|
-
*/
|
24738
24884
|
VirtualizedLayoutGrid.prototype._requestUpdatingRowBounds = function () {
|
24739
24885
|
if(!this._rowBoundTimer) {
|
24740
24886
|
this._rowBoundTimer = setTimeout(this._updateRowBounds, 10);
|
@@ -24746,54 +24892,88 @@ VirtualizedLayoutGrid.prototype._updateRowBounds = function () {
|
|
24746
24892
|
this._rowBoundTimer = 0;
|
24747
24893
|
this._updateCellBounds();
|
24748
24894
|
|
24749
|
-
|
24750
|
-
if(!rowBound) {
|
24895
|
+
if(!this._rowSelDirty) {
|
24751
24896
|
return;
|
24752
24897
|
}
|
24753
|
-
var
|
24754
|
-
var
|
24755
|
-
|
24756
|
-
|
24757
|
-
var rowCount = this._layoutY.getLaneCount();
|
24758
|
-
if(topIdx >= rowCount) {
|
24759
|
-
topIdx = rowCount - 1;
|
24898
|
+
var rbs = this._rowBounds;
|
24899
|
+
var rbc = this._rowBoundCache;
|
24900
|
+
if(!rbs) {
|
24901
|
+
rbs = this._rowBounds = [];
|
24760
24902
|
}
|
24761
|
-
if(
|
24762
|
-
|
24763
|
-
if(btmIdx >= rowCount) {
|
24764
|
-
btmIdx = rowCount - 1;
|
24765
|
-
}
|
24766
|
-
topPx = this._layoutY.getLaneStart(topIdx);
|
24767
|
-
btmPx = this._layoutY.getLaneEnd(btmIdx);
|
24903
|
+
if(!rbc) {
|
24904
|
+
rbc = this._rowBoundCache = [];
|
24768
24905
|
}
|
24769
24906
|
|
24770
|
-
|
24771
|
-
|
24907
|
+
var selList = this._selectionList;
|
24908
|
+
var rowCount = this._layoutY.getLaneCount();
|
24909
|
+
selList.deselectFrom(rowCount); // TODO: move this to setRowCount
|
24910
|
+
|
24911
|
+
var selRanges = selList.getConnectedRanges();
|
24912
|
+
var rangeCount = selRanges.length;
|
24913
|
+
var i;
|
24914
|
+
var pn = null; // parentNode
|
24915
|
+
var rowBound = null;
|
24916
|
+
|
24917
|
+
// Remove unused bounds from document
|
24918
|
+
var activeCount = rbs.length;
|
24919
|
+
for(i = rangeCount; i < activeCount; ++i) {
|
24920
|
+
rowBound = rbs[i];
|
24921
|
+
pn = rowBound.parentNode;
|
24772
24922
|
if(pn) {
|
24773
24923
|
pn.removeChild(rowBound);
|
24774
24924
|
}
|
24775
|
-
}
|
24925
|
+
}
|
24926
|
+
rbs.length = activeCount = rangeCount;
|
24927
|
+
|
24928
|
+
if(!rangeCount) {
|
24929
|
+
var selCount = selList.getSelectionCount();
|
24930
|
+
if(!selCount) {
|
24931
|
+
this._rowSelDirty = false;
|
24932
|
+
}
|
24933
|
+
return;
|
24934
|
+
}
|
24935
|
+
|
24936
|
+
// Prepare shared parameters
|
24937
|
+
var scrollLeft = 0;
|
24938
|
+
var pinnedLftCount = 0;
|
24939
|
+
var pinnedRgtCount = 0;
|
24940
|
+
var endOfScroll = false;
|
24941
|
+
if(this._hscrollbar) {
|
24942
|
+
scrollLeft = this._hscrollbar.getScrollLeft();
|
24943
|
+
pinnedLftCount = this._hscrollbar.getPinnedLeftColumnCount();
|
24944
|
+
pinnedRgtCount = this._hscrollbar.getPinnedRightColumnCount();
|
24945
|
+
endOfScroll = this._hscrollbar.isEndOfHorizontalScroll();
|
24946
|
+
}
|
24947
|
+
var noLeftBound = !pinnedLftCount && scrollLeft > 0;
|
24948
|
+
var noRightBound = !pinnedRgtCount && !endOfScroll;
|
24949
|
+
var boundWidth = this._grid._getViewSize();
|
24950
|
+
|
24951
|
+
// Create row bound elements based on number of selection ranges
|
24952
|
+
for(i = 0; i < rangeCount; ++i) {
|
24953
|
+
var pair = selRanges[i];
|
24954
|
+
var topIdx = pair[0];
|
24955
|
+
var btmIdx = pair[1]; // Inclusive
|
24956
|
+
var topPx = this._layoutY.getLaneStart(topIdx);
|
24957
|
+
var btmPx = this._layoutY.getLaneEnd(btmIdx);
|
24958
|
+
|
24959
|
+
rowBound = rbc[i];
|
24960
|
+
if(!rowBound) {
|
24961
|
+
rowBound = rbc[i] = document.createElement("div");
|
24962
|
+
rowBound.className = "selection-bound";
|
24963
|
+
}
|
24964
|
+
|
24776
24965
|
rowBound.style.top = topPx + "px";
|
24777
24966
|
rowBound.style.height = (btmPx - topPx) + "px";
|
24778
|
-
|
24779
|
-
var boundWidth = this._grid._getViewSize();
|
24780
24967
|
rowBound.style.width = boundWidth + "px";
|
24781
24968
|
|
24782
|
-
|
24783
|
-
|
24784
|
-
var pinnedRgtCount = 0;
|
24785
|
-
var endOfScroll = false;
|
24786
|
-
if(this._hscrollbar) {
|
24787
|
-
scrollLeft = this._hscrollbar.getScrollLeft();
|
24788
|
-
pinnedLftCount = this._hscrollbar.getPinnedLeftColumnCount();
|
24789
|
-
pinnedRgtCount = this._hscrollbar.getPinnedRightColumnCount();
|
24790
|
-
endOfScroll = this._hscrollbar.isEndOfHorizontalScroll();
|
24791
|
-
}
|
24792
|
-
rowBound.classList.toggle("no-left-bound", !pinnedLftCount && scrollLeft > 0);
|
24793
|
-
rowBound.classList.toggle("no-right-bound", !pinnedRgtCount && !endOfScroll);
|
24969
|
+
rowBound.classList.toggle("no-left-bound", noLeftBound);
|
24970
|
+
rowBound.classList.toggle("no-right-bound", noRightBound);
|
24794
24971
|
|
24795
24972
|
if(this._boundLayer) {
|
24796
|
-
|
24973
|
+
if(!rbs[i]) {
|
24974
|
+
rbs[i] = rowBound;
|
24975
|
+
this._boundLayer.appendChild(rowBound);
|
24976
|
+
}
|
24797
24977
|
}
|
24798
24978
|
}
|
24799
24979
|
};
|
@@ -25438,7 +25618,7 @@ Core_Core.prototype._groupDefs = null;
|
|
25438
25618
|
* @return {string}
|
25439
25619
|
*/
|
25440
25620
|
Core_Core.getVersion = function () {
|
25441
|
-
return "5.1.
|
25621
|
+
return "5.1.42";
|
25442
25622
|
};
|
25443
25623
|
/** {@link ElementWrapper#dispose}
|
25444
25624
|
* @override
|
@@ -25574,10 +25754,10 @@ Core_Core.prototype.getConfigObject = function (gridOptions) {
|
|
25574
25754
|
}
|
25575
25755
|
}
|
25576
25756
|
|
25577
|
-
|
25578
|
-
|
25579
|
-
|
25580
|
-
obj["
|
25757
|
+
// It will be overwrite in rt-grid or atlas-blotter
|
25758
|
+
obj["rowVirtualization"] = this.isRowVirtualizationEnabled();
|
25759
|
+
obj["columnVirtualization"] = this.isColumnVirtualizationEnabled();
|
25760
|
+
obj["rowHighlighting"] = this._rowHighlighting;
|
25581
25761
|
|
25582
25762
|
if(this._fixFrozenTopSections) {
|
25583
25763
|
obj["topFreezingCount"] = this._startVScrollbarIndex >= 0 ? (this._startVScrollbarIndex + 1) : false;
|
@@ -25590,7 +25770,13 @@ Core_Core.prototype.getConfigObject = function (gridOptions) {
|
|
25590
25770
|
if(this._rowScrollingStep) {
|
25591
25771
|
obj["stepScroll"] = (this._rowScrollingStep === 1) ? true : this._rowScrollingStep;
|
25592
25772
|
}
|
25593
|
-
|
25773
|
+
|
25774
|
+
var val = this._vscrollbar.getAutoHide();
|
25775
|
+
if(val !== true) {
|
25776
|
+
// TODO: check this._hscrollbar and this._vscrollbar can be difference config
|
25777
|
+
obj["autoHideScrollbar"] = val; // this._hscrollbar has the same settings
|
25778
|
+
}
|
25779
|
+
|
25594
25780
|
var wheelSpeed = this._vscrollbar.getMouseWheelSpeed();
|
25595
25781
|
if(wheelSpeed) {
|
25596
25782
|
obj["linearWheelScrolling"] = wheelSpeed;
|
@@ -28563,6 +28749,14 @@ Core_Core.prototype.enableRowVirtualization = function (opt_enabled) {
|
|
28563
28749
|
this._rowVirtualizer.deactivate();
|
28564
28750
|
}
|
28565
28751
|
};
|
28752
|
+
|
28753
|
+
/** @public
|
28754
|
+
* @return {boolean}
|
28755
|
+
*/
|
28756
|
+
Core_Core.prototype.isRowVirtualizationEnabled = function () {
|
28757
|
+
return this._rowVirtualizer.isEnabled();
|
28758
|
+
};
|
28759
|
+
|
28566
28760
|
/** No runtime support
|
28567
28761
|
* @public
|
28568
28762
|
* @param {boolean=} opt_enabled
|
@@ -28577,6 +28771,13 @@ Core_Core.prototype.enableColumnVirtualization = function (opt_enabled) {
|
|
28577
28771
|
}
|
28578
28772
|
};
|
28579
28773
|
|
28774
|
+
/** @public
|
28775
|
+
* @return {boolean}
|
28776
|
+
*/
|
28777
|
+
Core_Core.prototype.isColumnVirtualizationEnabled = function () {
|
28778
|
+
return this._colVirtualizer.isEnabled();
|
28779
|
+
};
|
28780
|
+
|
28580
28781
|
/** Scrolling step will be multiple of the default row height in pixels. For example, if default row height is 32 pixel and row scrolling step is 2, <br>
|
28581
28782
|
* then the actual scrolling step for vertical scrollbar will be (32 * 2) = 64 pixels
|
28582
28783
|
* @public
|
@@ -28964,47 +29165,72 @@ Core_Core.prototype._updateColumnBounds = function () {
|
|
28964
29165
|
return;
|
28965
29166
|
}
|
28966
29167
|
|
29168
|
+
var sectCount = this._settings.length;
|
29169
|
+
if(!sectCount) {
|
29170
|
+
return;
|
29171
|
+
}
|
29172
|
+
|
29173
|
+
// Collecting column selection and selection ranges
|
29174
|
+
var selRanges = [];
|
29175
|
+
var pair = null;
|
28967
29176
|
var colCount = this.getColumnCount();
|
28968
|
-
var
|
29177
|
+
var selIndices = [];
|
28969
29178
|
var i;
|
28970
29179
|
for(i = 0; i < colCount; i++) {
|
28971
29180
|
if(this.isSelectedColumn(i)) {
|
28972
|
-
|
29181
|
+
selIndices.push(i);
|
29182
|
+
if(!pair) {
|
29183
|
+
pair = [i, -1];
|
29184
|
+
}
|
29185
|
+
} else if(pair) {
|
29186
|
+
pair[1] = i - 1;
|
29187
|
+
selRanges.push(pair);
|
29188
|
+
pair = null;
|
28973
29189
|
}
|
28974
29190
|
}
|
29191
|
+
if(pair) {
|
29192
|
+
pair[1] = colCount - 1;
|
29193
|
+
selRanges.push(pair);
|
29194
|
+
pair = null;
|
29195
|
+
}
|
29196
|
+
|
28975
29197
|
var arg = {
|
28976
|
-
selectedColumns:
|
29198
|
+
"selectedColumns": selIndices,
|
29199
|
+
"selectionRanges": selRanges
|
28977
29200
|
};
|
28978
29201
|
this._dispatch("beforeColumnBoundUpdate", arg);
|
28979
29202
|
|
28980
|
-
|
28981
|
-
var
|
28982
|
-
var
|
28983
|
-
|
28984
|
-
|
28985
|
-
|
28986
|
-
|
28987
|
-
|
28988
|
-
}
|
28989
|
-
}
|
28990
|
-
}
|
28991
|
-
var sectCount = this._settings.length;
|
28992
|
-
if(sectCount) {
|
28993
|
-
var sectionSetting = this._settings[0];
|
28994
|
-
var section = sectionSetting.getSection();
|
29203
|
+
// Calculate position from ranges
|
29204
|
+
var rangeCount = selRanges.length;
|
29205
|
+
var posAry = [];
|
29206
|
+
var noBorderAry = [];
|
29207
|
+
var topSectionSettings = this._settings[0];
|
29208
|
+
var section = topSectionSettings.getSection();
|
29209
|
+
for(i = 0; i < rangeCount; ++i) {
|
29210
|
+
pair = selRanges[i];
|
28995
29211
|
var positions = [0, 0];
|
28996
29212
|
var noBorders = [false, false];
|
28997
|
-
section.calculateColumnBounds(
|
28998
|
-
|
28999
|
-
|
29000
|
-
|
29001
|
-
}
|
29002
|
-
section.updateColumnBounds(positions, noBorders, topPx);
|
29003
|
-
for(i = 1; i < sectCount; i++) {
|
29004
|
-
section = this._settings[i].getSection();
|
29005
|
-
section.updateColumnBounds(positions, noBorders);
|
29213
|
+
section.calculateColumnBounds(pair[0], pair[1], positions, noBorders);
|
29214
|
+
if(positions[0] < positions[1]) {
|
29215
|
+
posAry.push(positions);
|
29216
|
+
noBorderAry.push(noBorders);
|
29006
29217
|
}
|
29007
29218
|
}
|
29219
|
+
|
29220
|
+
// Render column bounds
|
29221
|
+
var topPx = 0;
|
29222
|
+
var topBoundIdx = -1;
|
29223
|
+
if(arg["topBoundRowIndex"] != null) {
|
29224
|
+
topBoundIdx = +arg["topBoundRowIndex"];
|
29225
|
+
}
|
29226
|
+
if(topBoundIdx >= 0 && topSectionSettings.getType() === "title") {
|
29227
|
+
topPx = this._layoutY.getLaneStart(topBoundIdx);
|
29228
|
+
}
|
29229
|
+
section.updateColumnBounds(posAry, noBorderAry, topPx);
|
29230
|
+
for(i = 1; i < sectCount; i++) {
|
29231
|
+
section = this._settings[i].getSection();
|
29232
|
+
section.updateColumnBounds(posAry, noBorderAry);
|
29233
|
+
}
|
29008
29234
|
};
|
29009
29235
|
|
29010
29236
|
/** @public
|
@@ -30557,6 +30783,7 @@ Core_Core._proto = Core_Core.prototype;
|
|
30557
30783
|
|
30558
30784
|
|
30559
30785
|
|
30786
|
+
|
30560
30787
|
/* eslint-enable */
|
30561
30788
|
|
30562
30789
|
/** Fired when user click and before the sorting operation.
|
@@ -31016,7 +31243,10 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
31016
31243
|
}
|
31017
31244
|
field = opt["field"];
|
31018
31245
|
if (field) {
|
31019
|
-
col["
|
31246
|
+
if(col["field"] !== field) {
|
31247
|
+
col["sortBy"] = field;
|
31248
|
+
} // else The default value is an empty sortBy, which refers to the same column field by default.
|
31249
|
+
|
31020
31250
|
if (this._sortingSequenceMap && this._sortingSequenceMap[field]) {
|
31021
31251
|
col["sortingSequence"] = this._sortingSequenceMap[field];
|
31022
31252
|
}
|
@@ -31029,16 +31259,32 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
31029
31259
|
extOptions = obj["sorting"] = {};
|
31030
31260
|
}
|
31031
31261
|
|
31032
|
-
|
31033
|
-
|
31262
|
+
var val = this.getSortedColumns();
|
31263
|
+
if(val != null) {
|
31264
|
+
extOptions["initialSort"] = val;
|
31265
|
+
}
|
31266
|
+
|
31267
|
+
val = this._sortableIndicator;
|
31268
|
+
if(val !== false) {
|
31269
|
+
extOptions["sortableIndicator"] = val;
|
31270
|
+
}
|
31271
|
+
|
31034
31272
|
if(this._maxCount !== 1) {
|
31035
31273
|
extOptions["multiColumn"] = this._maxCount === -1 ? true : this._maxCount;
|
31036
31274
|
}
|
31037
31275
|
if(this._dblClickAllowed) {
|
31038
31276
|
extOptions["disableDoubleClickToSort"] = !this._dblClickAllowed;
|
31039
31277
|
}
|
31040
|
-
|
31041
|
-
|
31278
|
+
|
31279
|
+
val = this._sortableColumns;
|
31280
|
+
if(val !== true) {
|
31281
|
+
extOptions["sortableColumns"] = val;
|
31282
|
+
}
|
31283
|
+
|
31284
|
+
val = this._dataSorting;
|
31285
|
+
if(val !== true) {
|
31286
|
+
extOptions["indicatorOnly"] = val;
|
31287
|
+
}
|
31042
31288
|
// extOptions["mode"] = this._mode;
|
31043
31289
|
if(this._disabled) {
|
31044
31290
|
extOptions["disabled"] = true;
|
@@ -31055,6 +31301,10 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
31055
31301
|
extOptions["sortingSequence"] = sortingSeq.slice();
|
31056
31302
|
}
|
31057
31303
|
|
31304
|
+
if((0,es6_Util/* isEmptyObject */.Qr)(obj["sorting"])) {
|
31305
|
+
delete obj["sorting"];
|
31306
|
+
}
|
31307
|
+
|
31058
31308
|
return obj;
|
31059
31309
|
};
|
31060
31310
|
|