@refinitiv-ui/efx-grid 6.0.128 → 6.0.130
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 +258 -20
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataCache.js +29 -0
- package/lib/core/es6/data/DataTable.d.ts +4 -0
- package/lib/core/es6/data/DataTable.js +117 -1
- package/lib/core/es6/data/DataView.d.ts +6 -0
- package/lib/core/es6/data/DataView.js +43 -0
- package/lib/core/es6/data/SegmentCollection.d.ts +2 -0
- package/lib/core/es6/data/SegmentCollection.js +21 -0
- package/lib/core/es6/grid/Core.js +39 -10
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +9 -9
- package/lib/grid/index.js +1 -1
- package/lib/row-segmenting/es6/RowSegmenting.d.ts +6 -0
- package/lib/row-segmenting/es6/RowSegmenting.js +62 -11
- package/lib/rt-grid/dist/rt-grid.js +337 -55
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/DataConnector.js +1 -1
- package/lib/rt-grid/es6/Grid.d.ts +2 -0
- package/lib/rt-grid/es6/Grid.js +90 -23
- package/lib/rt-grid/es6/RowDefinition.d.ts +1 -1
- package/lib/rt-grid/es6/RowDefinition.js +26 -20
- package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +3 -2
- package/lib/tr-grid-cell-selection/es6/CellSelection.js +1100 -1124
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +2 -1
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +8 -2
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +2 -2
- package/lib/types/es6/CellSelection.d.ts +3 -2
- package/lib/types/es6/ColumnGrouping.d.ts +2 -1
- package/lib/types/es6/Core/data/DataTable.d.ts +4 -0
- package/lib/types/es6/Core/data/DataView.d.ts +6 -0
- package/lib/types/es6/Core/data/SegmentCollection.d.ts +2 -0
- package/lib/types/es6/RealtimeGrid/Grid.d.ts +2 -0
- package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +1 -1
- package/lib/types/es6/RowSegmenting.d.ts +6 -0
- package/lib/versions.json +6 -6
- package/package.json +1 -1
    
        package/lib/core/dist/core.js
    CHANGED
    
    | @@ -12594,6 +12594,35 @@ DataCache.prototype.cloneRowData = function (rid) { | |
| 12594 12594 | 
             
            	return values;
         | 
| 12595 12595 | 
             
            };
         | 
| 12596 12596 |  | 
| 12597 | 
            +
            /**
         | 
| 12598 | 
            +
             * @protected
         | 
| 12599 | 
            +
             * @ignore
         | 
| 12600 | 
            +
             * @param {string} fromRid
         | 
| 12601 | 
            +
             * @param {string} toRid
         | 
| 12602 | 
            +
             * @return {boolean}
         | 
| 12603 | 
            +
             */
         | 
| 12604 | 
            +
            DataCache.prototype._replaceRowId = function(fromRid, toRid) {
         | 
| 12605 | 
            +
            	let rows = this._rows;
         | 
| 12606 | 
            +
            	if(rows[fromRid]) {
         | 
| 12607 | 
            +
            		rows[toRid] = rows[fromRid];
         | 
| 12608 | 
            +
            		delete rows[fromRid];
         | 
| 12609 | 
            +
            		return true;
         | 
| 12610 | 
            +
            	}
         | 
| 12611 | 
            +
            	return false;
         | 
| 12612 | 
            +
            };
         | 
| 12613 | 
            +
            /**
         | 
| 12614 | 
            +
             * @public
         | 
| 12615 | 
            +
             * @ignore
         | 
| 12616 | 
            +
             * @param {Object} ridPair
         | 
| 12617 | 
            +
             */
         | 
| 12618 | 
            +
            DataCache.prototype.replaceRowIds = function(ridPair) {
         | 
| 12619 | 
            +
            	if(typeof ridPair === "object") {
         | 
| 12620 | 
            +
            		for(let oldRid in ridPair) {
         | 
| 12621 | 
            +
            			this._replaceRowId(oldRid, ridPair[oldRid]);
         | 
| 12622 | 
            +
            		}
         | 
| 12623 | 
            +
            	}
         | 
| 12624 | 
            +
            };
         | 
| 12625 | 
            +
             | 
| 12597 12626 | 
             
            /** Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
         | 
| 12598 12627 | 
             
             * @public
         | 
| 12599 12628 | 
             
             * @ignore
         | 
| @@ -13964,6 +13993,27 @@ SegmentCollection.prototype.getSegmentIds = function() { | |
| 13964 13993 | 
             
            };
         | 
| 13965 13994 |  | 
| 13966 13995 |  | 
| 13996 | 
            +
            /** @public
         | 
| 13997 | 
            +
            * @param {Array.<string>} segmentIds
         | 
| 13998 | 
            +
            * @param {boolean=} bool
         | 
| 13999 | 
            +
            * @return {boolean} Returns true if there is any change. Otherwise, returns false
         | 
| 14000 | 
            +
            */
         | 
| 14001 | 
            +
            SegmentCollection.prototype.collapseSegments = function(segmentIds, bool) {
         | 
| 14002 | 
            +
            	if(this._segmentCount) {
         | 
| 14003 | 
            +
            		let dirty = 0;
         | 
| 14004 | 
            +
            		let len = segmentIds.length;
         | 
| 14005 | 
            +
            		for (let i = 0; i < len; i++) {
         | 
| 14006 | 
            +
            			let rowId = segmentIds[i];
         | 
| 14007 | 
            +
            			dirty |= this._segments[rowId].collapse(bool);
         | 
| 14008 | 
            +
             | 
| 14009 | 
            +
            		}
         | 
| 14010 | 
            +
            		if(dirty) {
         | 
| 14011 | 
            +
            			return true;
         | 
| 14012 | 
            +
            		}
         | 
| 14013 | 
            +
            	}
         | 
| 14014 | 
            +
            	return false;
         | 
| 14015 | 
            +
            };
         | 
| 14016 | 
            +
             | 
| 13967 14017 | 
             
            /** @public
         | 
| 13968 14018 | 
             
            * @param {string} segmentId
         | 
| 13969 14019 | 
             
            * @param {boolean=} bool
         | 
| @@ -15203,6 +15253,45 @@ DataTable.prototype.swapRow = function(fromIndex, toIndex) { // No event is fire | |
| 15203 15253 | 
             
            	this._rids[toIndex] = rid;
         | 
| 15204 15254 | 
             
            };
         | 
| 15205 15255 |  | 
| 15256 | 
            +
            /**
         | 
| 15257 | 
            +
            * @protected
         | 
| 15258 | 
            +
            * @override
         | 
| 15259 | 
            +
            * @ignore
         | 
| 15260 | 
            +
            * @param {string} fromRid
         | 
| 15261 | 
            +
            * @param {string} toRid
         | 
| 15262 | 
            +
            * @return {boolean}
         | 
| 15263 | 
            +
            */
         | 
| 15264 | 
            +
            DataTable.prototype._replaceRowId = function(fromRid, toRid) {
         | 
| 15265 | 
            +
            	let rids = this._rids;
         | 
| 15266 | 
            +
            	let idx = rids.indexOf(fromRid);
         | 
| 15267 | 
            +
            	if(idx >= 0) {
         | 
| 15268 | 
            +
            		rids[idx] = toRid;
         | 
| 15269 | 
            +
            		this._rows[toRid] = this._rows[fromRid];
         | 
| 15270 | 
            +
            		delete this._rows[fromRid];
         | 
| 15271 | 
            +
            		this._prevData[toRid] = this._prevData[fromRid];
         | 
| 15272 | 
            +
            		delete this._prevData[fromRid];
         | 
| 15273 | 
            +
            		return true;
         | 
| 15274 | 
            +
            	}
         | 
| 15275 | 
            +
            	return false;
         | 
| 15276 | 
            +
            };
         | 
| 15277 | 
            +
            /**
         | 
| 15278 | 
            +
            * @public
         | 
| 15279 | 
            +
            * @override
         | 
| 15280 | 
            +
            * @ignore
         | 
| 15281 | 
            +
            * @param {Object} ridPair
         | 
| 15282 | 
            +
            */
         | 
| 15283 | 
            +
            DataTable.prototype.replaceRowIds = function(ridPair) {
         | 
| 15284 | 
            +
            	if(typeof ridPair === "object") {
         | 
| 15285 | 
            +
            		let dirty = false;
         | 
| 15286 | 
            +
            		for(let oldRid in ridPair) {
         | 
| 15287 | 
            +
            			dirty |= this._replaceRowId(oldRid, ridPair[oldRid]);
         | 
| 15288 | 
            +
            		}
         | 
| 15289 | 
            +
            		if(dirty) {
         | 
| 15290 | 
            +
            			this.dispatchGlobalChange();
         | 
| 15291 | 
            +
            		}
         | 
| 15292 | 
            +
            	}
         | 
| 15293 | 
            +
            };
         | 
| 15294 | 
            +
             | 
| 15206 15295 | 
             
            /** @public
         | 
| 15207 15296 | 
             
            * @function
         | 
| 15208 15297 | 
             
            * @param {string} rid
         | 
| @@ -15344,6 +15433,55 @@ DataTable.prototype.isFrozen = function() { | |
| 15344 15433 | 
             
            	return this._frozen;
         | 
| 15345 15434 | 
             
            };
         | 
| 15346 15435 |  | 
| 15436 | 
            +
            /**
         | 
| 15437 | 
            +
            * @public
         | 
| 15438 | 
            +
            * @param {Array.<string>} rids
         | 
| 15439 | 
            +
            * @param {boolean=} enabled
         | 
| 15440 | 
            +
            * @return {boolean} Return true if there is any change
         | 
| 15441 | 
            +
            */
         | 
| 15442 | 
            +
            DataTable.prototype.setSegmentSeparators = function(rids, enabled) {
         | 
| 15443 | 
            +
            	let change = false;
         | 
| 15444 | 
            +
            	if (rids) {
         | 
| 15445 | 
            +
            		let len = rids.length;
         | 
| 15446 | 
            +
            		let segmentChanged = false;
         | 
| 15447 | 
            +
            		for (let i = 0; i < len; i++) {
         | 
| 15448 | 
            +
            			if(enabled !== false) {
         | 
| 15449 | 
            +
            				let rid = rids[i];
         | 
| 15450 | 
            +
            				if (!this._segments) {
         | 
| 15451 | 
            +
            					this._segments = new data_SegmentCollection();
         | 
| 15452 | 
            +
            					this._segments.addEventListener("subSegmentChanged", this._onSubSegmentChanged);
         | 
| 15453 | 
            +
            				}
         | 
| 15454 | 
            +
            				if(this._autoSegmentFilling) {
         | 
| 15455 | 
            +
            					let parentId = this._segments.getParentRowId(rid);
         | 
| 15456 | 
            +
            					if(parentId) {
         | 
| 15457 | 
            +
            						this._segments.removeSegmentChild(parentId, rid);
         | 
| 15458 | 
            +
            					}
         | 
| 15459 | 
            +
            				}
         | 
| 15460 | 
            +
            				segmentChanged = this._segments.addSegment(rid);
         | 
| 15461 | 
            +
            			} else if (this._segments) { // remove case
         | 
| 15462 | 
            +
            				let segment = this._segments.getSegment(rid);
         | 
| 15463 | 
            +
            				if(segment) {
         | 
| 15464 | 
            +
            					if(this._segments.removeSegment(rid)) {
         | 
| 15465 | 
            +
            						change = true;
         | 
| 15466 | 
            +
            						if(!this._segments.getSegmentCount()) {
         | 
| 15467 | 
            +
            							this._segments = null;
         | 
| 15468 | 
            +
            						}
         | 
| 15469 | 
            +
            					}
         | 
| 15470 | 
            +
            				}
         | 
| 15471 | 
            +
            			}
         | 
| 15472 | 
            +
             | 
| 15473 | 
            +
            		}
         | 
| 15474 | 
            +
            		if (enabled !== false && segmentChanged) {
         | 
| 15475 | 
            +
            			this._segments.calcSegmentOrder(this._rids);
         | 
| 15476 | 
            +
            			change = true;
         | 
| 15477 | 
            +
            		}
         | 
| 15478 | 
            +
            		if(change) {
         | 
| 15479 | 
            +
            			this.dispatchGlobalChange();
         | 
| 15480 | 
            +
            		}
         | 
| 15481 | 
            +
            	}
         | 
| 15482 | 
            +
            	return change;
         | 
| 15483 | 
            +
             | 
| 15484 | 
            +
            };
         | 
| 15347 15485 |  | 
| 15348 15486 | 
             
            /**
         | 
| 15349 15487 | 
             
            * @public
         | 
| @@ -15370,7 +15508,7 @@ DataTable.prototype.setSegmentSeparator = function(rid, enabled) { | |
| 15370 15508 | 
             
            				this._segments.calcSegmentOrder(this._rids);
         | 
| 15371 15509 | 
             
            				change = true;
         | 
| 15372 15510 | 
             
            			}
         | 
| 15373 | 
            -
            		} else if(this._segments) {
         | 
| 15511 | 
            +
            		} else if(this._segments) { // mean remove separator
         | 
| 15374 15512 | 
             
            			let segment = this._segments.getSegment(rid);
         | 
| 15375 15513 | 
             
            			if(segment) {
         | 
| 15376 15514 | 
             
            				memberCount = segment.getChildCount();
         | 
| @@ -15596,6 +15734,34 @@ DataTable.prototype.addSegmentChildren = function(segmentId, rids, dataIds) { | |
| 15596 15734 | 
             
            	}
         | 
| 15597 15735 | 
             
            	return false;
         | 
| 15598 15736 | 
             
            };
         | 
| 15737 | 
            +
             | 
| 15738 | 
            +
            /** @public
         | 
| 15739 | 
            +
            * @param {Array.<Object>} segmentArr Segment array that contain "segmentId", "rowIds" to set segment children
         | 
| 15740 | 
            +
            * @return {boolean} Return true if there is any change
         | 
| 15741 | 
            +
            */
         | 
| 15742 | 
            +
            DataTable.prototype.setSegmentChildren = function(segmentArr) {
         | 
| 15743 | 
            +
            	if(!this._segments) {
         | 
| 15744 | 
            +
            		return false;
         | 
| 15745 | 
            +
            	}
         | 
| 15746 | 
            +
            	this.removeAllSegmentChildren();
         | 
| 15747 | 
            +
            	let len = segmentArr.length;
         | 
| 15748 | 
            +
            	let dirty;
         | 
| 15749 | 
            +
            	for (let i = 0; i < len; i++) {
         | 
| 15750 | 
            +
            		let obj = segmentArr[i];
         | 
| 15751 | 
            +
            		if(this._segments.addSegmentChildren(obj.segmentId, obj.rowIds)) {
         | 
| 15752 | 
            +
            			dirty = true;
         | 
| 15753 | 
            +
            		}
         | 
| 15754 | 
            +
            	}
         | 
| 15755 | 
            +
            	if(dirty) {
         | 
| 15756 | 
            +
            		this._sort(null);
         | 
| 15757 | 
            +
            		this._dispatchPositionChange(); // Force rerendering, even if there is no position change
         | 
| 15758 | 
            +
             | 
| 15759 | 
            +
            		this.requestClassifying();
         | 
| 15760 | 
            +
            		return true;
         | 
| 15761 | 
            +
            	}
         | 
| 15762 | 
            +
             | 
| 15763 | 
            +
            	return false;
         | 
| 15764 | 
            +
            };
         | 
| 15599 15765 | 
             
            /** @public
         | 
| 15600 15766 | 
             
            * @param {string} segmentId Row id
         | 
| 15601 15767 | 
             
            * @param {string} rid Row id
         | 
| @@ -20805,6 +20971,23 @@ DataView.prototype.synchronizeRowOrder = function() { | |
| 20805 20971 | 
             
            		this._dt._sort(this._sortingDefs);
         | 
| 20806 20972 | 
             
            	}
         | 
| 20807 20973 | 
             
            };
         | 
| 20974 | 
            +
            /**
         | 
| 20975 | 
            +
            * @public
         | 
| 20976 | 
            +
            * @param {Array<string>} rowIds
         | 
| 20977 | 
            +
            * @param {boolean=} enabled
         | 
| 20978 | 
            +
            * @return {boolean} Return true if there is any change
         | 
| 20979 | 
            +
            */
         | 
| 20980 | 
            +
            DataView.prototype.setSegmentSeparators = function(rowIds, enabled) {
         | 
| 20981 | 
            +
            	if(rowIds) {
         | 
| 20982 | 
            +
            		enabled = enabled !== false;
         | 
| 20983 | 
            +
            		if(enabled) {
         | 
| 20984 | 
            +
            			this.synchronizeRowOrder();
         | 
| 20985 | 
            +
            		}
         | 
| 20986 | 
            +
            		// TODO: Force expanding of segment before unsetting segment separator
         | 
| 20987 | 
            +
            		return this._dt.setSegmentSeparators(rowIds, enabled);
         | 
| 20988 | 
            +
            	}
         | 
| 20989 | 
            +
            	return false;
         | 
| 20990 | 
            +
            };
         | 
| 20808 20991 | 
             
            /** Set visible row as segment separator (hidden or filtered rows cannot be a segment separator)
         | 
| 20809 20992 | 
             
            * @public
         | 
| 20810 20993 | 
             
            * @param {string|number} rowRef Row id or row index
         | 
| @@ -20905,6 +21088,22 @@ DataView.prototype.collapseSegment = function(rowRef, collapsed) { | |
| 20905 21088 | 
             
            	return false;
         | 
| 20906 21089 | 
             
            };
         | 
| 20907 21090 | 
             
            /** @public
         | 
| 21091 | 
            +
            * @param {Array<string|number>} rowIds
         | 
| 21092 | 
            +
            * @param {boolean=} collapsed
         | 
| 21093 | 
            +
            * @return {boolean} Return true if there is any change
         | 
| 21094 | 
            +
            */
         | 
| 21095 | 
            +
            DataView.prototype.collapseSegments = function(rowIds, collapsed) {
         | 
| 21096 | 
            +
            	collapsed = collapsed !== false;
         | 
| 21097 | 
            +
            	let segments = this._dt._getSegmentSeparators();
         | 
| 21098 | 
            +
            	if(segments) {
         | 
| 21099 | 
            +
            		if(segments.collapseSegments(rowIds, collapsed)) {
         | 
| 21100 | 
            +
            			this._refreshAndNotify(); // dispatch global change event
         | 
| 21101 | 
            +
            			return true;
         | 
| 21102 | 
            +
            		}
         | 
| 21103 | 
            +
            	}
         | 
| 21104 | 
            +
            	return false;
         | 
| 21105 | 
            +
            };
         | 
| 21106 | 
            +
            /** @public
         | 
| 20908 21107 | 
             
            * @param {string|number} rowRef Row id or row index
         | 
| 20909 21108 | 
             
            * @param {boolean=} expanded
         | 
| 20910 21109 | 
             
            * @return {boolean} Return true if there is any change
         | 
| @@ -20983,6 +21182,16 @@ DataView.prototype.addSegmentChildren = function(segmentRef, rowRefs, dataIds) { | |
| 20983 21182 | 
             
            	return false;
         | 
| 20984 21183 | 
             
            };
         | 
| 20985 21184 | 
             
            /** @public
         | 
| 21185 | 
            +
            * @param {Array<Object>} segmentArr Segment array that contain "segmentId", "rowIds" to set segment children
         | 
| 21186 | 
            +
            * @return {boolean} Return true if there is any change
         | 
| 21187 | 
            +
            */
         | 
| 21188 | 
            +
            DataView.prototype.setSegmentChildren = function(segmentArr) {
         | 
| 21189 | 
            +
            	if(this._dt._getSegmentSeparators()) {
         | 
| 21190 | 
            +
            		return this._dt.setSegmentChildren(segmentArr);
         | 
| 21191 | 
            +
            	}
         | 
| 21192 | 
            +
            	return false;
         | 
| 21193 | 
            +
            };
         | 
| 21194 | 
            +
            /** @public
         | 
| 20986 21195 | 
             
            * @param {string|number} segmentRef Row id or row index
         | 
| 20987 21196 | 
             
            * @param {string|number} rowRef Row id, row index
         | 
| 20988 21197 | 
             
            * @return {boolean} Return true if there is any change
         | 
| @@ -25686,7 +25895,7 @@ Core_Core.prototype._hasPendingRowChange = false; | |
| 25686 25895 | 
             
            * @return {string}
         | 
| 25687 25896 | 
             
            */
         | 
| 25688 25897 | 
             
            Core_Core.getVersion = function () {
         | 
| 25689 | 
            -
            	return "5.1. | 
| 25898 | 
            +
            	return "5.1.130";
         | 
| 25690 25899 | 
             
            };
         | 
| 25691 25900 | 
             
            /** {@link ElementWrapper#dispose}
         | 
| 25692 25901 | 
             
            * @override
         | 
| @@ -27417,21 +27626,45 @@ Core_Core.prototype.setColumnBackgroundColor = function(colIndex, color) { | |
| 27417 27626 | 
             
            		}
         | 
| 27418 27627 |  | 
| 27419 27628 | 
             
            		if(settings.getType() !== "content") {
         | 
| 27420 | 
            -
            			 | 
| 27421 | 
            -
            			for(let r = 0; r < rowCount; r++) {
         | 
| 27422 | 
            -
            				let cellSpan = section.getCellColSpan(colIndex, r);
         | 
| 27423 | 
            -
            				if(cellSpan > 1) { continue; }
         | 
| 27424 | 
            -
            				let cell = section.getCell(colIndex, r);
         | 
| 27425 | 
            -
            				if(cell) {
         | 
| 27426 | 
            -
            					cell.setStyle("backgroundColor", color);
         | 
| 27427 | 
            -
            				}
         | 
| 27428 | 
            -
            			}
         | 
| 27629 | 
            +
            			this._applyCellsBackgroundColor(section, colIndex, color);
         | 
| 27429 27630 | 
             
            		} else {
         | 
| 27430 27631 | 
             
            			let column = section.getColumn(colIndex);
         | 
| 27431 27632 | 
             
            			column.setStyle("backgroundColor", color);
         | 
| 27432 27633 | 
             
            		}
         | 
| 27433 27634 | 
             
            	}
         | 
| 27434 27635 | 
             
            };
         | 
| 27636 | 
            +
            /** @private
         | 
| 27637 | 
            +
            * @param {ILayoutGrid} section
         | 
| 27638 | 
            +
            * @param {number} colIndex
         | 
| 27639 | 
            +
            * @param {string} color
         | 
| 27640 | 
            +
            */
         | 
| 27641 | 
            +
            Core_Core.prototype._applyCellsBackgroundColor = function(section, colIndex, color) {
         | 
| 27642 | 
            +
            	let rowCount = section.getRowCount();
         | 
| 27643 | 
            +
            	for(let r = 0; r < rowCount; r++) {
         | 
| 27644 | 
            +
            		let cellSpan = section.getCellColSpan(colIndex, r);
         | 
| 27645 | 
            +
            		if(cellSpan > 1) { continue; }
         | 
| 27646 | 
            +
            		let cell = section.getCell(colIndex, r);
         | 
| 27647 | 
            +
            		if(cell) {
         | 
| 27648 | 
            +
            			cell.setStyle("backgroundColor", color);
         | 
| 27649 | 
            +
            		}
         | 
| 27650 | 
            +
            	}
         | 
| 27651 | 
            +
            };
         | 
| 27652 | 
            +
            /** @public
         | 
| 27653 | 
            +
            * @ignore
         | 
| 27654 | 
            +
            * @param {ILayoutGrid} section
         | 
| 27655 | 
            +
            */
         | 
| 27656 | 
            +
            Core_Core.prototype.applyColumnsBackgroundColor = function(section) {
         | 
| 27657 | 
            +
            	if(!section) {
         | 
| 27658 | 
            +
            		return;
         | 
| 27659 | 
            +
            	}
         | 
| 27660 | 
            +
             | 
| 27661 | 
            +
            	let colCount = section.getColumnCount();
         | 
| 27662 | 
            +
            	for(let c = 0; c < colCount; c++) {
         | 
| 27663 | 
            +
            		let colDef = this._getColumnDef(c);
         | 
| 27664 | 
            +
            		let color = colDef["backgroundColor"] || "";
         | 
| 27665 | 
            +
            		this._applyCellsBackgroundColor(section, c, color);
         | 
| 27666 | 
            +
            	}
         | 
| 27667 | 
            +
            };
         | 
| 27435 27668 |  | 
| 27436 27669 | 
             
            /** @public
         | 
| 27437 27670 | 
             
            * @param {number} colIndex
         | 
| @@ -30689,6 +30922,11 @@ Core_Core.prototype._onRowCountChanged = function (e) { | |
| 30689 30922 |  | 
| 30690 30923 | 
             
            	this._updateColumnSeparators();
         | 
| 30691 30924 | 
             
            	if(prevRowCount < newRowCount) {
         | 
| 30925 | 
            +
            		// Apply column background color
         | 
| 30926 | 
            +
            		let settings = this.getSectionSettings(section);
         | 
| 30927 | 
            +
            		if(settings.getType() !== "content") {
         | 
| 30928 | 
            +
            			this.applyColumnsBackgroundColor(section);
         | 
| 30929 | 
            +
            		}
         | 
| 30692 30930 | 
             
            		this._dispatch("rowAdded", e);
         | 
| 30693 30931 | 
             
            	} else if(prevRowCount > newRowCount) {
         | 
| 30694 30932 | 
             
            		this._dispatch("rowRemoved", e);
         | 
| @@ -32031,7 +32269,15 @@ SortableTitlePlugin.prototype.isSorting = function () { | |
| 32031 32269 | 
             
            * @fires SortableTitlePlugin#columnSorted
         | 
| 32032 32270 | 
             
            */
         | 
| 32033 32271 | 
             
            SortableTitlePlugin.prototype.sortColumn = function (colRef, sortOrder, opt_arg) {
         | 
| 32034 | 
            -
            	this. | 
| 32272 | 
            +
            	let sortOptions = this._prepareSorting(colRef, sortOrder);
         | 
| 32273 | 
            +
            	this._sortColumn(sortOptions, opt_arg);
         | 
| 32274 | 
            +
            	if (opt_arg && opt_arg["isUserAction"]) { // Currently, the 'isUserAction' flag is triggered by a user clicking on the title and clicking the filter dialog. TODO: preClicked should be firing too.
         | 
| 32275 | 
            +
            		let ce = {};
         | 
| 32276 | 
            +
            		ce["colIndex"] = sortOptions.colIndex;
         | 
| 32277 | 
            +
            		ce["sortOrder"] = this.getSortOrder(sortOptions.colIndex);
         | 
| 32278 | 
            +
            		ce["dataColumnName"] = this.getColumnSortingField(sortOptions.colIndex); // This should be deprecated
         | 
| 32279 | 
            +
            		this._dispatch("clicked", ce);
         | 
| 32280 | 
            +
            	}
         | 
| 32035 32281 | 
             
            };
         | 
| 32036 32282 |  | 
| 32037 32283 | 
             
            /** Sort multiple columns at once
         | 
| @@ -32430,14 +32676,6 @@ SortableTitlePlugin.prototype._proceedSorting = function (hitObj) { | |
| 32430 32676 | 
             
            		if(grid && grid["focus"]) {
         | 
| 32431 32677 | 
             
            			grid["focus"]();
         | 
| 32432 32678 | 
             
            		}
         | 
| 32433 | 
            -
             | 
| 32434 | 
            -
            		if (this._hasListener("clicked")) {
         | 
| 32435 | 
            -
            			let ce = {};
         | 
| 32436 | 
            -
            			ce["colIndex"] = colIndex;
         | 
| 32437 | 
            -
            			ce["sortOrder"] = this.getSortOrder(colIndex);
         | 
| 32438 | 
            -
            			ce["dataColumnName"] = this.getColumnSortingField(colIndex); // This should be deprecated
         | 
| 32439 | 
            -
            			this._dispatch("clicked", ce);
         | 
| 32440 | 
            -
            		}
         | 
| 32441 32679 | 
             
            	}
         | 
| 32442 32680 | 
             
            };
         | 
| 32443 32681 |  |