@refinitiv-ui/efx-grid 6.0.34 → 6.0.36
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/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
         
     |