@refinitiv-ui/efx-grid 6.0.34 → 6.0.36
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/column-dragging/es6/ColumnDragging.js +50 -40
- package/lib/core/dist/core.css +1 -1
- package/lib/core/dist/core.js +248 -8
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataCache.js +20 -1
- package/lib/core/es6/data/DataTable.d.ts +2 -0
- package/lib/core/es6/data/DataTable.js +18 -1
- package/lib/core/es6/data/DataView.d.ts +2 -0
- package/lib/core/es6/data/DataView.js +11 -0
- package/lib/core/es6/grid/Core.d.ts +12 -0
- package/lib/core/es6/grid/Core.js +88 -3
- package/lib/core/es6/grid/ILayoutGrid.js +4 -0
- package/lib/core/es6/grid/LayoutGrid.d.ts +4 -0
- package/lib/core/es6/grid/LayoutGrid.js +95 -3
- package/lib/core/es6/grid/VirtualizedLayoutGrid.js +6 -0
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +6 -0
- package/lib/core/es6/tr-grid-theme.js +1 -1
- package/lib/grid/index.js +1 -1
- package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
- package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
- package/lib/grid/themes/halo/efx-grid.less +1 -1
- package/lib/grid/themes/halo/light/efx-grid.js +1 -1
- package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +367 -148
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/Grid.js +37 -31
- package/lib/rt-grid/es6/RowDefSorter.d.ts +5 -5
- package/lib/rt-grid/es6/RowDefSorter.js +165 -71
- package/lib/tr-grid-column-selection/es6/ColumnSelection.js +66 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +3 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +566 -607
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +1 -1
- package/lib/tr-grid-range-bar/es6/RangeBar.d.ts +4 -1
- package/lib/tr-grid-range-bar/es6/RangeBar.js +99 -39
- package/lib/tr-grid-row-dragging/es6/RowDragging.js +14 -3
- package/lib/tr-grid-rowcoloring/es6/RowColoring.js +3 -2
- package/lib/tr-grid-util/es6/DragUI.js +7 -3
- package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +7 -1
- package/lib/tr-grid-util/es6/GroupDefinitions.js +39 -3
- package/lib/tr-grid-util/es6/jet/DataGenerator.js +36 -33
- package/lib/types/es6/ColumnStack.d.ts +2 -0
- package/lib/types/es6/Core/data/DataTable.d.ts +3 -1
- package/lib/types/es6/Core/data/DataView.d.ts +2 -0
- package/lib/types/es6/Core/grid/Core.d.ts +12 -0
- package/lib/types/es6/RealtimeGrid/RowDefSorter.d.ts +5 -5
- package/lib/versions.json +8 -8
- package/package.json +1 -1
@@ -832,7 +832,8 @@ DataCache.prototype._insertRic = function (subId, ric, values) {
|
|
832
832
|
// We cannot cache event arguments because user may want to collect all the updates
|
833
833
|
this._onADCForNewRic(subId, ric);
|
834
834
|
|
835
|
-
|
835
|
+
var rowData = this.getRowData(rid);
|
836
|
+
if (!rowData) { // Ensure that we have subscription id and ric from Quotes2
|
836
837
|
var tmp = values;
|
837
838
|
|
838
839
|
values = {}; // Clone a new object for duplicated ric
|
@@ -843,6 +844,11 @@ DataCache.prototype._insertRic = function (subId, ric, values) {
|
|
843
844
|
|
844
845
|
values["SUB_ID"] = subId;
|
845
846
|
values["RIC"] = ric;
|
847
|
+
} else {
|
848
|
+
var rowDef = rowData["ROW_DEF"];
|
849
|
+
if(rowDef && rowDef.isChain()){
|
850
|
+
values["SUB_ID"] = subId;
|
851
|
+
}
|
846
852
|
}
|
847
853
|
|
848
854
|
this.setRowData(rid, values);
|
@@ -879,6 +885,12 @@ DataCache.prototype._onQ2SubAdded = function (e) {
|
|
879
885
|
var sub = subs[i];
|
880
886
|
var ric = sub["ric"];
|
881
887
|
|
888
|
+
// chain subId fires twice, one with "_ci_" and one without "_ci_"
|
889
|
+
// the subId with "_ci_" should be ignore
|
890
|
+
if(sub["id"].indexOf("_ci_") >= 0){
|
891
|
+
continue;
|
892
|
+
}
|
893
|
+
|
882
894
|
this.addSubscription(sub, ric);
|
883
895
|
|
884
896
|
if (duplicateSubIds) { // There will be no network request for duplicate subs, and hence we need to update the data from our cache
|
@@ -903,6 +915,13 @@ DataCache.prototype._onQ2SubRemoved = function (e) {
|
|
903
915
|
|
904
916
|
for (var i = 0; i < len; ++i) {
|
905
917
|
var sub = subs[i];
|
918
|
+
|
919
|
+
// chain subId fires twice, one with "_ci_" and one without "_ci_"
|
920
|
+
// the subId with "_ci_" should be ignore
|
921
|
+
if(sub["id"].indexOf("_ci_") >= 0){
|
922
|
+
continue;
|
923
|
+
}
|
924
|
+
|
906
925
|
this.removeSubscription(sub);
|
907
926
|
}
|
908
927
|
};
|
@@ -70,6 +70,8 @@ declare class DataTable extends DataCache {
|
|
70
70
|
|
71
71
|
public setColumnSortingLogic(cid: string, func: DataTable.SortLogic|null): void;
|
72
72
|
|
73
|
+
public getColumnSortingLogic(cid?: string|null): DataTable.SortLogic|null;
|
74
|
+
|
73
75
|
public freeze(bool?: boolean|null): boolean;
|
74
76
|
|
75
77
|
public unfreeze(bool?: boolean|null): boolean;
|
@@ -882,7 +882,24 @@ DataTable.prototype.setSortingLogic = function(func) {
|
|
882
882
|
* @param {DataTable.SortLogic} func Use null to remove current sorting logic
|
883
883
|
*/
|
884
884
|
DataTable.prototype.setColumnSortingLogic = function(cid, func) {
|
885
|
-
|
885
|
+
if(cid) {
|
886
|
+
this._compMap[cid] = func;
|
887
|
+
}
|
888
|
+
};
|
889
|
+
/** Get sorting logic for the specified field. Default logic is returned, if no logic is specified for the column
|
890
|
+
* @public
|
891
|
+
* @param {string=} cid
|
892
|
+
* @return {DataTable.SortLogic}
|
893
|
+
*/
|
894
|
+
DataTable.prototype.getColumnSortingLogic = function(cid) {
|
895
|
+
if(cid) {
|
896
|
+
var logic = this._compMap[cid];
|
897
|
+
if(logic) {
|
898
|
+
return logic;
|
899
|
+
}
|
900
|
+
}
|
901
|
+
|
902
|
+
return this._compMap["_default"] || null;
|
886
903
|
};
|
887
904
|
|
888
905
|
/** Freeze data table so that no event is fired for data processing until executing {@link DataTable#unfreeze} method
|
@@ -80,6 +80,8 @@ declare class DataView extends EventDispatcher {
|
|
80
80
|
|
81
81
|
public setColumnSortingLogic(cid: string, func: DataTable.SortLogic|null): void;
|
82
82
|
|
83
|
+
public getColumnSortingLogic(cid?: string|null): DataTable.SortLogic|null;
|
84
|
+
|
83
85
|
public isSorting(): boolean;
|
84
86
|
|
85
87
|
public hideRow(rId: string|number|null, hidden?: boolean|null): void;
|
@@ -783,6 +783,17 @@ DataView.prototype.setColumnSortingLogic = function(cid, func) {
|
|
783
783
|
this._dt.setColumnSortingLogic(cid, func);
|
784
784
|
}
|
785
785
|
};
|
786
|
+
/** Get sorting logic for the specified field. Default logic is returned, if no logic is specified for the column
|
787
|
+
* @public
|
788
|
+
* @param {string=} cid
|
789
|
+
* @return {DataTable.SortLogic}
|
790
|
+
*/
|
791
|
+
DataView.prototype.getColumnSortingLogic = function(cid) {
|
792
|
+
if(this._dt) {
|
793
|
+
return this._dt.getColumnSortingLogic(cid);
|
794
|
+
}
|
795
|
+
return null;
|
796
|
+
};
|
786
797
|
/** Check if this view is in sorting mode
|
787
798
|
* @public
|
788
799
|
* @return {boolean}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import Ext from "../../../tr-grid-util/es6/Ext.js";
|
2
2
|
import GroupDefinitions from "../../../tr-grid-util/es6/GroupDefinitions.js"; // eslint-disable-line
|
3
|
+
import { isEmptyObject } from "../../../tr-grid-util/es6/Util.js";
|
3
4
|
import ElementWrapper from "./components/ElementWrapper.js";
|
4
5
|
import ILayoutGrid from "./ILayoutGrid.js"; // eslint-disable-line
|
5
6
|
import LayoutGrid from "./LayoutGrid.js";
|
@@ -32,6 +33,13 @@ declare namespace Core {
|
|
32
33
|
dataSource: DataView|null
|
33
34
|
};
|
34
35
|
|
36
|
+
type BatchInfo = {
|
37
|
+
reset?: string|null,
|
38
|
+
insertion?: string|null,
|
39
|
+
removal?: string|null,
|
40
|
+
moving?: string|null
|
41
|
+
};
|
42
|
+
|
35
43
|
type CellReference = Core.MouseInfo|ElementWrapper|Element|null;
|
36
44
|
|
37
45
|
type ColumnOptions = {
|
@@ -395,6 +403,10 @@ declare class Core extends ElementWrapper {
|
|
395
403
|
|
396
404
|
public getColumnGroupChildIds(groupId: string): (string)[]|null;
|
397
405
|
|
406
|
+
public startBatch(batchType: string): boolean;
|
407
|
+
|
408
|
+
public stopBatch(batchType: string): boolean;
|
409
|
+
|
398
410
|
public getColumnId(colIndex: number): string;
|
399
411
|
|
400
412
|
public getColumnIds(): (string)[];
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import Ext from "../../../tr-grid-util/es6/Ext.js";
|
2
2
|
import GroupDefinitions from "../../../tr-grid-util/es6/GroupDefinitions.js"; // eslint-disable-line
|
3
|
+
import { isEmptyObject } from "../../../tr-grid-util/es6/Util.js";
|
3
4
|
import ElementWrapper from "./components/ElementWrapper.js";
|
4
5
|
import ILayoutGrid from "./ILayoutGrid.js"; // eslint-disable-line
|
5
6
|
import LayoutGrid from "./LayoutGrid.js";
|
@@ -200,7 +201,9 @@ var Core = function (opt_initializer) {
|
|
200
201
|
"rowRemoved",
|
201
202
|
"columnPositionChanged",
|
202
203
|
"rowPositionChanged",
|
203
|
-
"beforeColumnBoundUpdate"
|
204
|
+
"beforeColumnBoundUpdate",
|
205
|
+
"beforeBatchOperation",
|
206
|
+
"afterBatchOperation"
|
204
207
|
);
|
205
208
|
|
206
209
|
// For debugging in advanced optimization mode
|
@@ -275,6 +278,15 @@ Core.SectionReference;
|
|
275
278
|
*/
|
276
279
|
Core.MouseInfo;
|
277
280
|
|
281
|
+
/** @typedef {Object} Core~BatchInfo
|
282
|
+
* @private
|
283
|
+
* @property {string=} reset //set columns
|
284
|
+
* @property {string=} insertion //add cols
|
285
|
+
* @property {string=} removal //remove cols
|
286
|
+
* @property {string=} moving //reorder
|
287
|
+
*/
|
288
|
+
Core.BatchInfo;
|
289
|
+
|
278
290
|
/** @typedef {Core.MouseInfo|ElementWrapper|Element} Core~CellReference
|
279
291
|
* @description A section in core grid can be refered by the following object <br>
|
280
292
|
* `{Core.MouseInfo}` : Object with valid x, y coordinates and section index <br>
|
@@ -529,6 +541,10 @@ Core.prototype._rowHeightTimerId = 0;
|
|
529
541
|
* @private
|
530
542
|
*/
|
531
543
|
Core.prototype._groupDefs = null;
|
544
|
+
/** @type {BatchInfo}
|
545
|
+
* @private
|
546
|
+
*/
|
547
|
+
Core.prototype._batches = null;
|
532
548
|
//#region Public Methods
|
533
549
|
|
534
550
|
/**
|
@@ -536,7 +552,7 @@ Core.prototype._groupDefs = null;
|
|
536
552
|
* @return {string}
|
537
553
|
*/
|
538
554
|
Core.getVersion = function () {
|
539
|
-
return "5.1.
|
555
|
+
return "5.1.50";
|
540
556
|
};
|
541
557
|
/** {@link ElementWrapper#dispose}
|
542
558
|
* @override
|
@@ -1475,6 +1491,10 @@ Core.prototype.removeColumnAt = function (index) {
|
|
1475
1491
|
|
1476
1492
|
if (this._hasListener("columnRemoved")) {
|
1477
1493
|
var e = {};
|
1494
|
+
var batches = this._batches;
|
1495
|
+
if(batches){
|
1496
|
+
e["batches"] = batches;
|
1497
|
+
}
|
1478
1498
|
e["atTheMiddle"] = true;
|
1479
1499
|
e["colIndex"] = index;
|
1480
1500
|
e["columns"] = "deprecated";
|
@@ -1745,6 +1765,7 @@ Core.prototype._moveColumn = function (fromCol, destCol) {
|
|
1745
1765
|
}
|
1746
1766
|
}
|
1747
1767
|
this._updateColumnBounds();
|
1768
|
+
this._updateColumnSeparators();
|
1748
1769
|
return true;
|
1749
1770
|
};
|
1750
1771
|
|
@@ -2075,6 +2096,7 @@ Core.prototype.setDefaultRowHeight = function (val, opt_includeTitle) {
|
|
2075
2096
|
this._syncRowHeights();
|
2076
2097
|
this._rowHeightSync = true;
|
2077
2098
|
this.setRowScrollingStep(this._rowScrollingStep);
|
2099
|
+
this._updateColumnSeparators();
|
2078
2100
|
}
|
2079
2101
|
};
|
2080
2102
|
|
@@ -2909,6 +2931,7 @@ Core.prototype.freezeColumn = function (frozenColIndex, numRightColumn) {
|
|
2909
2931
|
|
2910
2932
|
this._onColumnCountChanged(); // Activate horizontal scrollbar and column virtualization
|
2911
2933
|
this._updateScrollbarWidth(true, true);
|
2934
|
+
this._updateColumnSeparators();
|
2912
2935
|
};
|
2913
2936
|
|
2914
2937
|
/** @private
|
@@ -4150,6 +4173,21 @@ Core.prototype._updateColumnBounds = function () {
|
|
4150
4173
|
section.updateColumnBounds(posAry, noBorderAry);
|
4151
4174
|
}
|
4152
4175
|
};
|
4176
|
+
/* @private
|
4177
|
+
*/
|
4178
|
+
Core.prototype._updateColumnSeparators = function() {
|
4179
|
+
var sectCount = this._settings.length;
|
4180
|
+
if(!sectCount) {
|
4181
|
+
return;
|
4182
|
+
}
|
4183
|
+
|
4184
|
+
for(var i = 0; i < sectCount; i++) {
|
4185
|
+
var section = this._settings[i].getSection();
|
4186
|
+
if (section) {
|
4187
|
+
section.updateColumnSeparators();
|
4188
|
+
}
|
4189
|
+
}
|
4190
|
+
};
|
4153
4191
|
|
4154
4192
|
/** @public
|
4155
4193
|
* @param {number} startColIndex INCLUSIVE
|
@@ -4319,6 +4357,40 @@ Core.prototype.getColumnGroupChildIds = function (groupId) {
|
|
4319
4357
|
}
|
4320
4358
|
return null;
|
4321
4359
|
};
|
4360
|
+
|
4361
|
+
/** @public
|
4362
|
+
* @param {string} batchType
|
4363
|
+
* @return {boolean}
|
4364
|
+
* @fires Core#beforeBatchOperation
|
4365
|
+
*/
|
4366
|
+
Core.prototype.startBatch = function (batchType) {
|
4367
|
+
if(!batchType){
|
4368
|
+
return false;
|
4369
|
+
}
|
4370
|
+
if(!this._batches){
|
4371
|
+
this._batches = {};
|
4372
|
+
}
|
4373
|
+
this._batches[batchType] = batchType;
|
4374
|
+
this._dispatch("beforeBatchOperation", { batches: this._batches, batchType: batchType });
|
4375
|
+
return true;
|
4376
|
+
};
|
4377
|
+
/** @public
|
4378
|
+
* @param {string} batchType
|
4379
|
+
* @return {boolean}
|
4380
|
+
* @fires Core#afterBatchOperation
|
4381
|
+
*/
|
4382
|
+
Core.prototype.stopBatch = function (batchType) {
|
4383
|
+
if(!batchType){
|
4384
|
+
return false;
|
4385
|
+
}
|
4386
|
+
this._dispatch("afterBatchOperation", { batches: this._batches, batchType: batchType });
|
4387
|
+
|
4388
|
+
delete this._batches[batchType];
|
4389
|
+
if(isEmptyObject(this._batches)){
|
4390
|
+
this._batches = null;
|
4391
|
+
}
|
4392
|
+
return true;
|
4393
|
+
};
|
4322
4394
|
//#endregion Public Methods
|
4323
4395
|
|
4324
4396
|
//#region Private Methods
|
@@ -4562,6 +4634,10 @@ Core.prototype._dispatchColumnAddedEvent = function (at, count, atTheMiddle, ctx
|
|
4562
4634
|
if (this._hasListener("columnAdded")) {
|
4563
4635
|
var e = {};
|
4564
4636
|
e["atTheMiddle"] = atTheMiddle;
|
4637
|
+
var batches = this._batches;
|
4638
|
+
if(batches){
|
4639
|
+
e["batches"] = batches;
|
4640
|
+
}
|
4565
4641
|
if(count === 1) {
|
4566
4642
|
e["colIndex"] = at;
|
4567
4643
|
e["context"] = ctx;
|
@@ -4713,6 +4789,10 @@ Core.prototype._removeColumn = function (num) { // TODO: change the logic to us
|
|
4713
4789
|
|
4714
4790
|
if (this._hasListener("columnRemoved")) {
|
4715
4791
|
var e = {};
|
4792
|
+
var batches = this._batches;
|
4793
|
+
if(batches){
|
4794
|
+
e["batches"] = batches;
|
4795
|
+
}
|
4716
4796
|
for (var c = colCount; --c >= newCount; ) {
|
4717
4797
|
var colDef = removedCols[c - newCount];
|
4718
4798
|
e["colIndex"] = c;
|
@@ -5177,6 +5257,8 @@ Core.prototype._onRowCountChanged = function (e) {
|
|
5177
5257
|
if(!forceUpdate) {
|
5178
5258
|
this._updateVScrollbar(); // Asynchronous
|
5179
5259
|
}
|
5260
|
+
|
5261
|
+
this._updateColumnSeparators();
|
5180
5262
|
if(prevRowCount < newRowCount) {
|
5181
5263
|
this._dispatch("rowAdded", e);
|
5182
5264
|
} else if(prevRowCount > newRowCount) {
|
@@ -5234,7 +5316,7 @@ Core.prototype._onRowHeightChanged = function (e) {
|
|
5234
5316
|
minSectionIndex >= this._startVScrollbarIndex);
|
5235
5317
|
}
|
5236
5318
|
}
|
5237
|
-
|
5319
|
+
this._updateColumnSeparators();
|
5238
5320
|
this._dispatchRowPositionChanged();
|
5239
5321
|
};
|
5240
5322
|
/** @private
|
@@ -5299,6 +5381,7 @@ Core.prototype._onColumnCountChanged = function () {
|
|
5299
5381
|
var pinnedRight = this._countPinnedRightColumns();
|
5300
5382
|
|
5301
5383
|
this._updateColumnBounds();
|
5384
|
+
this._updateColumnSeparators();
|
5302
5385
|
|
5303
5386
|
if (this._hScrollbarEnabled && pinnedLeft + pinnedRight < this.getColumnCount()) {
|
5304
5387
|
this._hscrollbar.enable();
|
@@ -5580,6 +5663,7 @@ Core.prototype._syncLayoutToColumns = function (from, to, opt_forceDispatching)
|
|
5580
5663
|
var paneChanged = forceUpdate || (from < this.getHScrollStartIndex()) || (to > this.getFirstPinnedRightIndex());
|
5581
5664
|
this._updateScrollbarWidth(paneChanged, true /* contentChanged */);
|
5582
5665
|
this._updateColumnBounds();
|
5666
|
+
this._updateColumnSeparators();
|
5583
5667
|
this._dispatchColumnPositionChanged();
|
5584
5668
|
|
5585
5669
|
if (dirty || opt_forceDispatching) {
|
@@ -5675,6 +5759,7 @@ Core.prototype._updateLayout = function () {
|
|
5675
5759
|
var section = this._settings[s].getSection();
|
5676
5760
|
section.updateLayout(); // Notify section about forced recalculation of the layout
|
5677
5761
|
}
|
5762
|
+
this._updateColumnSeparators();
|
5678
5763
|
};
|
5679
5764
|
|
5680
5765
|
/** @private */
|
@@ -697,6 +697,10 @@ ILayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPosit
|
|
697
697
|
* @param {number=} topPx Top position of bound
|
698
698
|
*/
|
699
699
|
ILayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx) {};
|
700
|
+
/** @public
|
701
|
+
* @ignore
|
702
|
+
*/
|
703
|
+
ILayoutGrid.prototype.updateColumnSeparators = function () {};
|
700
704
|
|
701
705
|
export default ILayoutGrid;
|
702
706
|
export { ILayoutGrid };
|
@@ -26,7 +26,11 @@ declare class LayoutGrid extends ElementWrapper {
|
|
26
26
|
|
27
27
|
public setCellBounds(colIndex: number, rowIndex: number, width: number, height: number): void;
|
28
28
|
|
29
|
+
public updateColumnSeparators(): void;
|
30
|
+
|
29
31
|
}
|
30
32
|
|
33
|
+
declare function rgtPx(): void;
|
34
|
+
|
31
35
|
export default LayoutGrid;
|
32
36
|
export { LayoutGrid };
|
@@ -269,7 +269,14 @@ LayoutGrid.prototype._colSelDirty = false;
|
|
269
269
|
* @private
|
270
270
|
*/
|
271
271
|
LayoutGrid.prototype._hscrollbar = null;
|
272
|
-
|
272
|
+
/** @type {Element}
|
273
|
+
* @private
|
274
|
+
*/
|
275
|
+
LayoutGrid.prototype._leftColumnSeparator = null;
|
276
|
+
/** @type {Element}
|
277
|
+
* @private
|
278
|
+
*/
|
279
|
+
LayoutGrid.prototype._rightColumnSeparator = null;
|
273
280
|
|
274
281
|
/**
|
275
282
|
* {@link ElementWrapper#dispose}
|
@@ -2236,8 +2243,7 @@ LayoutGrid.prototype.selectColumn = function (colIndex, selected) {
|
|
2236
2243
|
|
2237
2244
|
var boundLayer = this._boundLayer;
|
2238
2245
|
if(!boundLayer) {
|
2239
|
-
|
2240
|
-
boundLayer.className = "cover-layer";
|
2246
|
+
this._initBoundLayer();
|
2241
2247
|
this._updateLayers();
|
2242
2248
|
}
|
2243
2249
|
}
|
@@ -2409,6 +2415,92 @@ LayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx)
|
|
2409
2415
|
}
|
2410
2416
|
};
|
2411
2417
|
|
2418
|
+
/** @public
|
2419
|
+
*/
|
2420
|
+
LayoutGrid.prototype.updateColumnSeparators = function () {
|
2421
|
+
var pinnedLeftCount = this._hscrollbar.getPinnedLeftColumnCount();
|
2422
|
+
var pinnedRightCount = this._hscrollbar.getPinnedRightColumnCount();
|
2423
|
+
if ((pinnedLeftCount || pinnedRightCount) && !this._boundLayer) {
|
2424
|
+
this._initBoundLayer();
|
2425
|
+
}
|
2426
|
+
|
2427
|
+
var isScrollbarActive = false;
|
2428
|
+
if(this._hscrollbar) {
|
2429
|
+
isScrollbarActive = this._hscrollbar.isActive();
|
2430
|
+
}
|
2431
|
+
|
2432
|
+
var boundLayer = this._boundLayer;
|
2433
|
+
|
2434
|
+
var colSeparator = this._leftColumnSeparator;
|
2435
|
+
if (isScrollbarActive && pinnedLeftCount) {
|
2436
|
+
if (!colSeparator) {
|
2437
|
+
colSeparator = this._leftColumnSeparator = this._createColumnSeparator();
|
2438
|
+
}
|
2439
|
+
if (!colSeparator.parentNode) {
|
2440
|
+
if (boundLayer.children.length) {
|
2441
|
+
boundLayer.insertBefore(colSeparator, boundLayer.children[0]);
|
2442
|
+
} else {
|
2443
|
+
boundLayer.appendChild(colSeparator);
|
2444
|
+
}
|
2445
|
+
}
|
2446
|
+
|
2447
|
+
var rightPos = this._trackX.getLaneStart(pinnedLeftCount);
|
2448
|
+
colSeparator.style.left = (rightPos - 1) + "px";
|
2449
|
+
colSeparator.style.height = this._trackY.getTrackSize() + "px";
|
2450
|
+
} else {
|
2451
|
+
if (colSeparator && colSeparator.parentNode) {
|
2452
|
+
this._boundLayer.removeChild(colSeparator);
|
2453
|
+
}
|
2454
|
+
}
|
2455
|
+
|
2456
|
+
colSeparator = this._rightColumnSeparator;
|
2457
|
+
if (isScrollbarActive && pinnedRightCount) {
|
2458
|
+
if (!colSeparator) {
|
2459
|
+
colSeparator = this._rightColumnSeparator = this._createColumnSeparator();
|
2460
|
+
}
|
2461
|
+
|
2462
|
+
if (!colSeparator.parentNode) {
|
2463
|
+
if (boundLayer.children.length) {
|
2464
|
+
boundLayer.insertBefore(colSeparator, boundLayer.children[0]);
|
2465
|
+
} else {
|
2466
|
+
boundLayer.appendChild(colSeparator);
|
2467
|
+
}
|
2468
|
+
}
|
2469
|
+
var colCount = this.getColumnCount();
|
2470
|
+
var colWidth = this._trackX.getLaneEnd(colCount - 1) - this._trackX.getLaneStart(colCount - pinnedRightCount);
|
2471
|
+
var viewSize = this._getViewSize();
|
2472
|
+
|
2473
|
+
colSeparator.style.left = (viewSize - colWidth - this._rightSpaceSize) + "px";
|
2474
|
+
colSeparator.style.height = this._trackY.getTrackSize() + "px";
|
2475
|
+
} else {
|
2476
|
+
if (colSeparator && colSeparator.parentNode) {
|
2477
|
+
this._boundLayer.removeChild(colSeparator);
|
2478
|
+
}
|
2479
|
+
}
|
2480
|
+
};
|
2481
|
+
|
2482
|
+
/** @private
|
2483
|
+
* @return {Element}
|
2484
|
+
*/
|
2485
|
+
LayoutGrid.prototype._createColumnSeparator = function() {
|
2486
|
+
var colSeparator = document.createElement("div");
|
2487
|
+
colSeparator.classList.add("column-separator");
|
2488
|
+
return colSeparator;
|
2489
|
+
};
|
2490
|
+
|
2491
|
+
/** @private
|
2492
|
+
* @return {Element}
|
2493
|
+
*/
|
2494
|
+
LayoutGrid.prototype._initBoundLayer = function () {
|
2495
|
+
var boundLayer = this._boundLayer;
|
2496
|
+
if(!boundLayer) {
|
2497
|
+
boundLayer = this._boundLayer = document.createElement("div");
|
2498
|
+
boundLayer.className = "cover-layer";
|
2499
|
+
this._element.appendChild(boundLayer);
|
2500
|
+
}
|
2501
|
+
return boundLayer;
|
2502
|
+
};
|
2503
|
+
|
2412
2504
|
/**
|
2413
2505
|
* @private
|
2414
2506
|
* @param {number} indexX
|
@@ -1102,6 +1102,12 @@ VirtualizedLayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderA
|
|
1102
1102
|
this._grid.updateColumnBounds(posAry, noBorderAry, topPx);
|
1103
1103
|
this._updateRowBounds();
|
1104
1104
|
};
|
1105
|
+
/** @public
|
1106
|
+
* @ignore
|
1107
|
+
*/
|
1108
|
+
VirtualizedLayoutGrid.prototype.updateColumnSeparators = function () {
|
1109
|
+
this._grid.updateColumnSeparators();
|
1110
|
+
};
|
1105
1111
|
/** @private
|
1106
1112
|
*/
|
1107
1113
|
VirtualizedLayoutGrid.prototype._initBoundLayer = function () {
|
@@ -1541,6 +1541,9 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
|
|
1541
1541
|
if (!this._dataSorting) { return; }
|
1542
1542
|
|
1543
1543
|
var sortCount = this._sortStates.length;
|
1544
|
+
if(this._userManagedLogic && sortCount > 1) { // The logic is managed by the user. There is no point in using multi-column sorting
|
1545
|
+
sortCount = 1;
|
1546
|
+
}
|
1544
1547
|
var orders = null;
|
1545
1548
|
var sortLogics = null;
|
1546
1549
|
var c_ref = null;
|
@@ -1556,6 +1559,9 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
|
|
1556
1559
|
} else {
|
1557
1560
|
c_ref = this.getColumnSortingFields();
|
1558
1561
|
}
|
1562
|
+
if(this._userManagedLogic && c_ref.length > 1) {
|
1563
|
+
c_ref = c_ref.slice(0, 1);
|
1564
|
+
}
|
1559
1565
|
}
|
1560
1566
|
|
1561
1567
|
// Perform sorting even if there is no sort state
|