@refinitiv-ui/efx-grid 6.0.57 → 6.0.59

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.
Files changed (31) hide show
  1. package/lib/core/dist/core.js +25 -4
  2. package/lib/core/dist/core.min.js +1 -1
  3. package/lib/core/es6/data/DataTable.js +8 -0
  4. package/lib/core/es6/grid/Core.js +3 -1
  5. package/lib/core/es6/grid/event/EventListeners.js +3 -0
  6. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +3 -3
  7. package/lib/core/es6/grid/util/TrackLayout.d.ts +2 -0
  8. package/lib/core/es6/grid/util/TrackLayout.js +8 -0
  9. package/lib/grid/index.js +1 -1
  10. package/lib/rt-grid/dist/rt-grid.js +48 -16
  11. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  12. package/lib/rt-grid/es6/Grid.d.ts +3 -3
  13. package/lib/rt-grid/es6/Grid.js +16 -8
  14. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +3 -1
  15. package/lib/tr-grid-column-stack/es6/ColumnStack.js +64 -8
  16. package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +1 -1
  17. package/lib/tr-grid-textformatting/es6/TextFormatting.js +35 -5
  18. package/lib/tr-grid-util/es6/ElementObserver.js +4 -2
  19. package/lib/tr-grid-util/es6/ElementWrapper.js +3 -2
  20. package/lib/tr-grid-util/es6/GridPlugin.js +5 -0
  21. package/lib/tr-grid-util/es6/SubTable.d.ts +4 -2
  22. package/lib/tr-grid-util/es6/SubTable.js +136 -72
  23. package/lib/tr-grid-util/es6/Table.d.ts +25 -10
  24. package/lib/tr-grid-util/es6/Table.js +103 -78
  25. package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +1 -1
  26. package/lib/types/es6/ColumnStack.d.ts +3 -1
  27. package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +2 -0
  28. package/lib/types/es6/RealtimeGrid/Grid.d.ts +3 -3
  29. package/lib/types/es6/TextFormatting.d.ts +1 -1
  30. package/lib/versions.json +3 -3
  31. package/package.json +1 -1
@@ -126,6 +126,7 @@ DataTable.prototype.dispose = function() {
126
126
 
127
127
  this._compMap = null; // Release user function that may be bound
128
128
  this._clsSource = null;
129
+ DataTable._removeIndexArray();
129
130
  if(this._segments) {
130
131
  this._segments.dispose();
131
132
  this._segments = null;
@@ -1939,6 +1940,13 @@ DataTable._createIndexArray = function(len) {
1939
1940
  }
1940
1941
  return ary.slice(); // Fastest way to clone an array is to perform slice() method
1941
1942
  };
1943
+ /** Remove _idxAryMap and _idAryCount
1944
+ * @private
1945
+ */
1946
+ DataTable._removeIndexArray = function() {
1947
+ DataTable._idxAryMap = {};
1948
+ DataTable._idxAryCount = 0;
1949
+ };
1942
1950
  /** @private
1943
1951
  * @type {Object.<number, Array.<number>>}
1944
1952
  */
@@ -562,7 +562,7 @@ Core.prototype._batches = null;
562
562
  * @return {string}
563
563
  */
564
564
  Core.getVersion = function () {
565
- return "5.1.72";
565
+ return "5.1.74";
566
566
  };
567
567
  /** {@link ElementWrapper#dispose}
568
568
  * @override
@@ -617,6 +617,8 @@ Core.prototype.dispose = function () {
617
617
  this._columnBoundConflator.dispose();
618
618
  this._columnPositionConflator.dispose();
619
619
  this._rowPositionConflator.dispose();
620
+ this._layoutX.dispose();
621
+ this._layoutY.dispose();
620
622
 
621
623
 
622
624
  // Clean Top node
@@ -83,6 +83,9 @@ EventListeners.prototype.dispatch = function (eventArg) {
83
83
  this._listeners[i](eventArg);
84
84
  }
85
85
 
86
+ if(this._sender !== null) {
87
+ eventArg["sender"] = null; // Clear ref variable to prevent memory leak
88
+ }
86
89
  this._dispatching = false;
87
90
  };
88
91
  /** @public
@@ -781,9 +781,9 @@ SortableTitlePlugin.prototype.sortColumns = function (sortOptions, opt_arg) {
781
781
  var states = [];
782
782
  for (var i = 0; i < sortOptions.length; i++) {
783
783
  var opt = sortOptions[i];
784
- var colRef = opt["colIndex"];
785
- if(colRef < 0 || colRef == null) {
786
- colRef = opt["colId"] || opt["field"];
784
+ var colRef = opt["colId"] || opt["field"];
785
+ if(colRef == null) {
786
+ colRef = opt["colIndex"];
787
787
  }
788
788
  var state = this._prepareSorting(
789
789
  colRef,
@@ -6,6 +6,8 @@ declare class TrackLayout {
6
6
 
7
7
  public hitTest(val: number): number;
8
8
 
9
+ public dispose(): void;
10
+
9
11
  public isAtDefaultSize(opt_index?: number|null): boolean;
10
12
 
11
13
  public isHomogeneous(): boolean;
@@ -76,6 +76,14 @@ TrackLayout.prototype.hitTest = function (val) {
76
76
  return hitIndex;
77
77
  };
78
78
 
79
+ /**
80
+ * @public
81
+ */
82
+ TrackLayout.prototype.dispose = function () {
83
+ // TODO: Column dragging extension refers to this variable, so the reference instance should be deleted instead of set a new pointer
84
+ this._cols = this._ends = null;
85
+ };
86
+
79
87
  /** If optional index is not given, the entire track is taken into account
80
88
  * @public
81
89
  * @param {number=} opt_index
package/lib/grid/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import {Grid} from "./lib/efx-grid.js";
2
2
  export {Grid}
3
- window.EFX_GRID = { version: "6.0.57" };
3
+ window.EFX_GRID = { version: "6.0.59" };
@@ -8227,6 +8227,9 @@ EventListeners.prototype.dispatch = function (eventArg) {
8227
8227
  this._listeners[i](eventArg);
8228
8228
  }
8229
8229
 
8230
+ if(this._sender !== null) {
8231
+ eventArg["sender"] = null; // Clear ref variable to prevent memory leak
8232
+ }
8230
8233
  this._dispatching = false;
8231
8234
  };
8232
8235
  /** @public
@@ -11299,6 +11302,7 @@ DataTable.prototype.dispose = function() {
11299
11302
 
11300
11303
  this._compMap = null; // Release user function that may be bound
11301
11304
  this._clsSource = null;
11305
+ DataTable._removeIndexArray();
11302
11306
  if(this._segments) {
11303
11307
  this._segments.dispose();
11304
11308
  this._segments = null;
@@ -13112,6 +13116,13 @@ DataTable._createIndexArray = function(len) {
13112
13116
  }
13113
13117
  return ary.slice(); // Fastest way to clone an array is to perform slice() method
13114
13118
  };
13119
+ /** Remove _idxAryMap and _idAryCount
13120
+ * @private
13121
+ */
13122
+ DataTable._removeIndexArray = function() {
13123
+ DataTable._idxAryMap = {};
13124
+ DataTable._idxAryCount = 0;
13125
+ };
13115
13126
  /** @private
13116
13127
  * @type {Object.<number, Array.<number>>}
13117
13128
  */
@@ -18984,6 +18995,14 @@ TrackLayout.prototype.hitTest = function (val) {
18984
18995
  return hitIndex;
18985
18996
  };
18986
18997
 
18998
+ /**
18999
+ * @public
19000
+ */
19001
+ TrackLayout.prototype.dispose = function () {
19002
+ // TODO: Column dragging extension refers to this variable, so the reference instance should be deleted instead of set a new pointer
19003
+ this._cols = this._ends = null;
19004
+ };
19005
+
18987
19006
  /** If optional index is not given, the entire track is taken into account
18988
19007
  * @public
18989
19008
  * @param {number=} opt_index
@@ -36127,7 +36146,7 @@ Core.prototype._batches = null;
36127
36146
  * @return {string}
36128
36147
  */
36129
36148
  Core.getVersion = function () {
36130
- return "5.1.71";
36149
+ return "5.1.73";
36131
36150
  };
36132
36151
  /** {@link ElementWrapper#dispose}
36133
36152
  * @override
@@ -36182,6 +36201,8 @@ Core.prototype.dispose = function () {
36182
36201
  this._columnBoundConflator.dispose();
36183
36202
  this._columnPositionConflator.dispose();
36184
36203
  this._rowPositionConflator.dispose();
36204
+ this._layoutX.dispose();
36205
+ this._layoutY.dispose();
36185
36206
 
36186
36207
 
36187
36208
  // Clean Top node
@@ -40010,18 +40031,21 @@ Core.prototype.getValidColumnList = function (colIds, columnMap) {
40010
40031
  };
40011
40032
 
40012
40033
  /** @public
40013
- * @description Create mapping object from an array of strings
40014
- * @param {Array.<string>=} colIds
40034
+ * @description Create mapping object from an array of strings or column indices
40035
+ * @param {Array.<string|number>=} colRefs
40015
40036
  * @return {!Object} Column mapping object
40016
40037
  */
40017
- Core.prototype.createColumnMap = function (colIds) {
40018
- if(!colIds){
40019
- colIds = this.getColumnIds();
40038
+ Core.prototype.createColumnMap = function (colRefs) {
40039
+ if(!colRefs){
40040
+ colRefs = this.getColumnIds();
40020
40041
  }
40021
40042
  var mappingObj = {};
40022
- var count = colIds.length;
40043
+ var count = colRefs.length;
40023
40044
  for(var i = 0; i < count; i++){
40024
- var colId = colIds[i];
40045
+ var colId = colRefs[i];
40046
+ if(typeof colId === "number"){
40047
+ colId = this.getColumnId(colId);
40048
+ }
40025
40049
  if(colId){
40026
40050
  mappingObj[colId] = true;
40027
40051
  }
@@ -44775,6 +44799,14 @@ Grid.prototype.dispose = function() {
44775
44799
  this._grid.dispose();
44776
44800
  this._connector.reset();
44777
44801
 
44802
+ if(!this._sharedDataSource) { // make sure that it is the final grid, and that it will be dispose data
44803
+ if(this._dt) {
44804
+ this._dt.dispose();
44805
+ }
44806
+ if(this._dv) {
44807
+ this._dv.dispose();
44808
+ }
44809
+ }
44778
44810
  this._mainGrid = this._dt = this._dv = null;
44779
44811
 
44780
44812
  if(this._subs) {
@@ -45735,16 +45767,16 @@ Grid.prototype.replaceColumn = function (columnOption, colRef) {
45735
45767
  }
45736
45768
 
45737
45769
  var colDef = this.getColumnDefinition(colIndex);
45738
- if(colDef.getChildren()) { // Parent time series field doesn't provide hidden property
45770
+ if(colDef && colDef.getChildren().length > 0) { // Parent time series field doesn't provide hidden property
45739
45771
  colConfig["hidden"] = false;
45740
45772
  }
45741
45773
 
45742
- if(colConfig.id == null) {
45774
+ if(colDef && colConfig.id == null) {
45743
45775
  colConfig.id = colDef.getId(); // retain ID
45744
45776
  }
45745
45777
  this._grid.startBatch("reset");
45778
+ this.removeColumn(colIndex);
45746
45779
  this.insertColumn(colConfig, colIndex);
45747
- this.removeColumn(colIndex + 1); // remove existing column after insert
45748
45780
  this._grid.stopBatch("reset");
45749
45781
  };
45750
45782
 
@@ -46449,9 +46481,9 @@ Grid.prototype._initDuplicateRicData = function(rowDef) {
46449
46481
  }
46450
46482
  };
46451
46483
  /** @public
46452
- * @param {Object=} rowOption
46484
+ * @param {(RowDefinition~Options|string)=} rowOption
46453
46485
  * @param {Grid~RowReference=} rowRef Reference (i.e. row index, row id, or row definition) of the insert position
46454
- * @returns {Object}
46486
+ * @returns {RowDefinition}
46455
46487
  * @example
46456
46488
  * var grid = new rt.Grid(grid_div, options);
46457
46489
  * grid.insertRow({"ric": "RIC"}, 0); // A new row is added at the top
@@ -46482,7 +46514,7 @@ Grid.prototype.insertRow = function(rowOption, rowRef) {
46482
46514
  return rowDef;
46483
46515
  };
46484
46516
  /** @public
46485
- * @param {Array.<Object>} rowOptions Array of row option object
46517
+ * @param {Array.<RowDefinition~Options|string>} rowOptions Array of row option object
46486
46518
  * @param {Grid~RowReference=} rowRef Reference (i.e. row index, row id, or row definition) of the insert position
46487
46519
  * @param {Array.<string>=} opt_fields
46488
46520
  * @example
@@ -48132,8 +48164,8 @@ Grid.prototype._logData = function(rowDefs, options) {
48132
48164
  /** @public
48133
48165
  * @description Replace existing row with a new row. Row ID would be changed, after row is replaced.
48134
48166
  * @param {Grid~RowReference} rowRef Reference (i.e. row index, row id, or row definition) of the insert position
48135
- * @param {Object=} rowOption
48136
- * @returns {Object}
48167
+ * @param {(RowDefinition~Options|string)=} rowOption
48168
+ * @returns {RowDefinition}
48137
48169
  */
48138
48170
  Grid.prototype.replaceRow = function(rowRef, rowOption) {
48139
48171
  var rowId = this._getRowId(rowRef);