@refinitiv-ui/efx-grid 6.0.21 → 6.0.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.js +46 -24
  2. package/lib/core/dist/core.js +61 -14
  3. package/lib/core/dist/core.min.js +1 -1
  4. package/lib/core/es6/grid/Core.js +11 -1
  5. package/lib/core/es6/grid/LayoutGrid.js +1 -0
  6. package/lib/core/es6/grid/components/CellSpans.d.ts +2 -0
  7. package/lib/core/es6/grid/components/CellSpans.js +35 -10
  8. package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +2 -0
  9. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +14 -3
  10. package/lib/grid/index.js +1 -1
  11. package/lib/rt-grid/dist/rt-grid.js +369 -90
  12. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  13. package/lib/rt-grid/es6/ColumnDefinition.d.ts +1 -1
  14. package/lib/rt-grid/es6/ColumnDefinition.js +21 -36
  15. package/lib/rt-grid/es6/FieldDefinition.d.ts +7 -1
  16. package/lib/rt-grid/es6/FieldDefinition.js +93 -4
  17. package/lib/rt-grid/es6/Grid.d.ts +4 -1
  18. package/lib/rt-grid/es6/Grid.js +88 -25
  19. package/lib/rt-grid/es6/ReferenceCounter.js +13 -2
  20. package/lib/rt-grid/es6/RowDefinition.d.ts +2 -0
  21. package/lib/rt-grid/es6/RowDefinition.js +74 -8
  22. package/lib/rt-grid/es6/SnapshotFiller.js +1 -1
  23. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +5 -1
  24. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +228 -55
  25. package/lib/types/es6/ColumnGrouping.d.ts +5 -1
  26. package/lib/types/es6/Core/grid/components/CellSpans.d.ts +2 -0
  27. package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +2 -0
  28. package/lib/types/es6/RealtimeGrid/Grid.d.ts +4 -1
  29. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +2 -0
  30. package/lib/versions.json +2 -2
  31. package/package.json +3 -2
@@ -528,7 +528,7 @@ Core.prototype._rowHeightTimerId = 0;
528
528
  * @return {string}
529
529
  */
530
530
  Core.getVersion = function () {
531
- return "5.1.31";
531
+ return "5.1.32";
532
532
  };
533
533
  /** {@link ElementWrapper#dispose}
534
534
  * @override
@@ -2880,6 +2880,13 @@ Core.prototype.freezeLayout = function (opt_bool) {
2880
2880
  if (prevState !== opt_bool) {
2881
2881
  this._frozenLayout = opt_bool;
2882
2882
 
2883
+ var stp = this.getPlugin("SortableTitlePlugin");
2884
+ if(this._frozenLayout) {
2885
+ if(stp) {
2886
+ stp.freezeIndicator(true);
2887
+ }
2888
+ }
2889
+
2883
2890
  if (!this._frozenLayout) {
2884
2891
  // Width has not yet changed so we need to disable it first
2885
2892
  this._disableEvent("widthChanged");
@@ -2908,6 +2915,9 @@ Core.prototype.freezeLayout = function (opt_bool) {
2908
2915
  if(!viewChanged) { // Always update virtualizer
2909
2916
  this._rowVirtualizer.update(true); // Force section activation
2910
2917
  }
2918
+ if(stp) {
2919
+ stp.freezeIndicator(false);
2920
+ }
2911
2921
  }
2912
2922
  this._rowHeightSync = true;
2913
2923
  }
@@ -1612,6 +1612,7 @@ LayoutGrid.prototype.setFrozenLayout = function (bool) {
1612
1612
  if (this._frozenLayout !== bool) {
1613
1613
  this._frozenLayout = bool;
1614
1614
 
1615
+ this._cellSpans.freezeMapping(this._frozenLayout);
1615
1616
  if (!this._frozenLayout) {
1616
1617
  this._syncLayoutToColumns(0);
1617
1618
  this._syncLayoutToRows(0, this._rowCount);
@@ -6,6 +6,8 @@ declare class CellSpans {
6
6
 
7
7
  public removeColumn(at: number): boolean;
8
8
 
9
+ public freezeMapping(bool?: boolean|null): void;
10
+
9
11
  public shiftColumn(from: number, amount: number): boolean;
10
12
 
11
13
  public removeSpan(indexX: number, indexY: number): CellSpan|null;
@@ -20,6 +20,33 @@ CellSpans.prototype.removeColumn = function (at) { // Use when a column is remov
20
20
  }
21
21
  return dirty;
22
22
  };
23
+ /** @public
24
+ * @param {boolean=} bool
25
+ */
26
+ CellSpans.prototype.freezeMapping = function (bool) {
27
+ this._frozenMapping = bool !== false;
28
+ if(!this._frozenMapping) {
29
+ this._mapCellSpans();
30
+ }
31
+ };
32
+
33
+
34
+ /** @private
35
+ */
36
+ CellSpans.prototype._mapCellSpans = function () {
37
+ var cellSpans = this._spans;
38
+ this._spans = [];
39
+ this._occupiedMap = {};
40
+ var i, cellSpan;
41
+ for(i = cellSpans.length; --i >= 0;) {
42
+ cellSpan = cellSpans[i];
43
+ if(cellSpan.indexX >= 0) {
44
+ cellSpan.register(this._spans, this._occupiedMap);
45
+ }
46
+ }
47
+ };
48
+
49
+
23
50
  /** @public
24
51
  * @param {number} from
25
52
  * @param {number} amount This can be negative number
@@ -36,18 +63,10 @@ CellSpans.prototype.shiftColumn = function (from, amount) { // Use when a column
36
63
  cellSpan.indexX += amount;
37
64
  }
38
65
  }
39
- if(!dirty) { return false; }
66
+ if(!dirty || this._frozenMapping) { return false; }
40
67
 
41
68
  // Re-registers all cellspans. Some of the cellspans may be lost due to shifting
42
- var cellSpans = this._spans;
43
- this._spans = [];
44
- this._occupiedMap = {};
45
- for(i = cellSpans.length; --i >= 0;) {
46
- cellSpan = cellSpans[i];
47
- if(cellSpan.indexX >= 0) {
48
- cellSpan.register(this._spans, this._occupiedMap);
49
- }
50
- }
69
+ this._mapCellSpans();
51
70
  return true;
52
71
  };
53
72
  /** @public
@@ -336,6 +355,12 @@ CellSpans.prototype._spans;
336
355
  */
337
356
  CellSpans.prototype._occupiedMap;
338
357
 
358
+ /**
359
+ * @private
360
+ * @type {boolean}
361
+ */
362
+ CellSpans.prototype._frozenMapping = false;
363
+
339
364
  export default CellSpans;
340
365
  export { CellSpans };
341
366
 
@@ -110,6 +110,8 @@ declare class SortableTitlePlugin extends EventDispatcher {
110
110
 
111
111
  public disableTwoStateSorting(disabled?: boolean|null): void;
112
112
 
113
+ public freezeIndicator(bool?: boolean|null): void;
114
+
113
115
  public disableSortSymbols(disabled?: boolean|null): void;
114
116
 
115
117
  public disableDataSorting(disabled?: boolean|null): void;
@@ -192,6 +192,10 @@ SortableTitlePlugin.prototype._userManagedLogic = false;
192
192
  * @type {boolean}
193
193
  */
194
194
  SortableTitlePlugin.prototype._disabled = false;
195
+ /** @private
196
+ * @type {boolean}
197
+ */
198
+ SortableTitlePlugin.prototype._frozenIndicator = false;
195
199
  /** Since DataView in real-time grid has only one ROW_DEF column, we need to re-map sorting field to sort correctly.
196
200
  * @private
197
201
  * @type {boolean}
@@ -750,8 +754,9 @@ SortableTitlePlugin.prototype.sortColumns = function (sortOptions, opt_arg) {
750
754
  * @param {Object=} opt_arg Event argument to be sent with preDataSorting event
751
755
  */
752
756
  SortableTitlePlugin.prototype.clearSortState = function (opt_arg) {
753
- this._popSortState(0, opt_arg);
754
- this.updateSortSymbols();
757
+ if(this._popSortState(0, opt_arg)) {
758
+ this.updateSortSymbols();
759
+ }
755
760
  };
756
761
  /** @description Perform sorting with the same parameter.
757
762
  * @public
@@ -956,6 +961,12 @@ SortableTitlePlugin.prototype.disableTwoStateSorting = function (disabled) {
956
961
 
957
962
  };
958
963
  /** @public
964
+ * @param {boolean=} bool=true, if set to false it will be unfreeze indicator
965
+ */
966
+ SortableTitlePlugin.prototype.freezeIndicator = function (bool) {
967
+ this._frozenIndicator = bool !== false;
968
+ };
969
+ /** @public
959
970
  * @param {boolean=} disabled
960
971
  */
961
972
  SortableTitlePlugin.prototype.disableSortSymbols = function (disabled) {
@@ -1568,7 +1579,7 @@ SortableTitlePlugin.prototype._clearSortSymbols = function (state) {
1568
1579
  SortableTitlePlugin.prototype._updateSortableIndicator = function (hostIndex) {
1569
1580
  var t = this;
1570
1581
  var host = t._hosts[hostIndex];
1571
- if (!host) { return; }
1582
+ if (!host || this._frozenIndicator) { return; }
1572
1583
 
1573
1584
  var section = host.getSection("title");
1574
1585
  if (section == null) { return; }
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.21" };
3
+ window.EFX_GRID = { version: "6.0.23" };