@refinitiv-ui/efx-grid 6.0.31 → 6.0.33
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.
- 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
|
|