@refinitiv-ui/efx-grid 6.0.120 → 6.0.122

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 (34) hide show
  1. package/README.md +1 -1
  2. package/lib/column-dragging/es6/ColumnDragging.js +7 -4
  3. package/lib/core/dist/core.js +8 -5
  4. package/lib/core/dist/core.min.js +1 -1
  5. package/lib/core/es6/grid/Core.js +3 -3
  6. package/lib/core/es6/grid/components/HScrollbar.d.ts +1 -1
  7. package/lib/core/es6/grid/components/HScrollbar.js +5 -2
  8. package/lib/filter-dialog/themes/base.less +8 -3
  9. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +1 -1
  10. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +1 -1
  11. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +1 -1
  12. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +1 -1
  13. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +1 -1
  14. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +1 -1
  15. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +1 -1
  16. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +1 -1
  17. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +1 -1
  18. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +1 -1
  19. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +1 -1
  20. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +1 -1
  21. package/lib/grid/index.js +1 -1
  22. package/lib/rt-grid/dist/rt-grid.js +34 -18
  23. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  24. package/lib/rt-grid/es6/Grid.js +2 -0
  25. package/lib/rt-grid/es6/RowDefinition.d.ts +1 -1
  26. package/lib/rt-grid/es6/RowDefinition.js +32 -18
  27. package/lib/tr-grid-checkbox/es6/Checkbox.js +4 -0
  28. package/lib/tr-grid-filter-input/es6/FilterInput.js +1 -0
  29. package/lib/types/es6/Core/grid/components/HScrollbar.d.ts +1 -1
  30. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +1 -1
  31. package/lib/utils/index.d.ts +1 -1
  32. package/lib/utils/index.js +1 -1
  33. package/lib/versions.json +4 -4
  34. package/package.json +1 -1
@@ -4112,6 +4112,8 @@ Grid.prototype._logData = function(rowDefs, options) {
4112
4112
 
4113
4113
  /** @public
4114
4114
  * @description Replace existing row by a new row. Row Id is always changed, after the row is replaced.
4115
+ * If the rowId of the new row is identical to that of the replacing row. Grid will do nothing because
4116
+ * similar rowIds indicate that they are the same row.
4115
4117
  * @param {Grid~RowReference} rowRef Reference (i.e. row index, row id, or row definition) of the insert position
4116
4118
  * @param {(RowDefinition~Options|string)=} rowOption
4117
4119
  * @returns {RowDefinition} Returns null, if the row is not replaced. Otherwise, a newly created row is returned
@@ -108,7 +108,7 @@ declare class RowDefinition {
108
108
 
109
109
  public resetUpdates(): void;
110
110
 
111
- public registerToView(view: DataView|null, rowId?: string|null): void;
111
+ public registerToView(view: DataView|null, destRowId?: string|null): void;
112
112
 
113
113
  public static deregisterFromView(rowIds: (string)[]|null, rowDef: RowDefinition|null): (string)[]|null;
114
114
 
@@ -17,7 +17,7 @@ import { DataTable } from "../../core/es6/data/DataTable.js";
17
17
  * @property {boolean=} hidden=true When this row is hidden
18
18
  * @property {boolean=} realTime=true Realtime row, able to request for JET/RTK
19
19
  * @property {Object=} info=null For storing any additional information to the row
20
- * @property {string=} rowId Row identifier used for referencing the row
20
+ * @property {string=} rowId Row identifier used for referencing the row. The value cannot be in "_x_" format.
21
21
  */
22
22
 
23
23
  /** @typedef {Object} RowDefinition~RowTypes
@@ -48,6 +48,12 @@ const ROW_TYPES = {
48
48
  GROUP_MEMBER: "GROUP_MEMBER"
49
49
  };
50
50
 
51
+ /** @type {RegExp}
52
+ * @private
53
+ * @const
54
+ */
55
+ const ROW_ID_PATTERN = /^_[^_]+_$/;
56
+
51
57
  /** @constructor
52
58
  * @param {RowDefinition~Options=} rowOptions
53
59
  */
@@ -236,8 +242,12 @@ RowDefinition.prototype.initialize = function(rowOptions) {
236
242
  if(!this._autoGenerated) {
237
243
  let userRowId = rowOptions["rowId"];
238
244
  if(userRowId && typeof userRowId === "string") {
239
- this._rowId = this._dataId = userRowId;
240
- this._userId = true;
245
+ if(userRowId.match(ROW_ID_PATTERN)) {
246
+ console.warn("Please change the rowId format to avoid duplicated rows' id causing unexpected behavior.");
247
+ } else {
248
+ this._rowId = this._dataId = userRowId;
249
+ this._userId = true;
250
+ }
241
251
  }
242
252
  }
243
253
 
@@ -276,7 +286,7 @@ RowDefinition.prototype.initialize = function(rowOptions) {
276
286
  this._asSegment = val ? true : false;
277
287
  }
278
288
 
279
- if(this._isChain) {
289
+ if(this._isChain || this._asSegment) {
280
290
  this._collapsed = extractedOptions["collapsed"]; // Temporary state
281
291
  }
282
292
 
@@ -991,14 +1001,20 @@ RowDefinition.prototype.resetUpdates = function() {
991
1001
 
992
1002
  /** @public
993
1003
  * @param {DataView} view
994
- * @param {string=} rowId
1004
+ * @param {string=} destRowId Destination position where the row will be placed BEFORE the specified position.
995
1005
  */
996
- RowDefinition.prototype.registerToView = function(view, rowId) {
1006
+ RowDefinition.prototype.registerToView = function(view, destRowId) {
997
1007
  if(!view || this._view === view) {
998
1008
  return; // Already in the view
999
1009
  }
1000
1010
  this._view = view;
1001
1011
 
1012
+ let rowId = this.getRowId();
1013
+ if(view.getRowData(rowId)) {
1014
+ console.warn("Duplicated rows' id.");
1015
+ return;
1016
+ }
1017
+
1002
1018
  let rowData = null;
1003
1019
  if(this._subSegment) {
1004
1020
  rowData = this._view.getRowData(this.getRowId());
@@ -1013,32 +1029,27 @@ RowDefinition.prototype.registerToView = function(view, rowId) {
1013
1029
 
1014
1030
  let parentRowId = "";
1015
1031
  let isSegment = this._isChain || this._asSegment;
1016
- if(rowId) {
1017
- parentRowId = view.getSegmentParentRowId(rowId);
1032
+ if(destRowId) {
1033
+ parentRowId = view.getSegmentParentRowId(destRowId);
1018
1034
  if(parentRowId) {
1019
1035
  if(isSegment) { // A chain or a segment cannot be put inside another segment
1020
- rowId = _getEndOfSegmentRowId(view, rowId);
1036
+ destRowId = _getEndOfSegmentRowId(view, destRowId);
1021
1037
  } // else { // Normal row is inserted into a segment
1022
1038
  }
1023
1039
  }
1024
1040
 
1025
1041
  let stalledSorting = _stallSorting(view, isSegment, false);
1026
-
1027
- let newRowId = view.insertRow(rowId, rowData, this.getRowId());
1028
- if(newRowId !== this._rowId) {
1029
- this._rowId = newRowId; // In case there is some duplicate row id
1030
- this._userId = false;
1031
- }
1042
+ view.insertRow(destRowId, rowData, rowId);
1032
1043
 
1033
1044
  if(isSegment) {
1034
- view.setSegmentSeparator(newRowId);
1045
+ view.setSegmentSeparator(rowId);
1035
1046
  _stallSorting(view, false, stalledSorting);
1036
1047
  if(this._collapsed != null) {
1037
- view.collapseSegment(newRowId, this._collapsed);
1048
+ view.collapseSegment(rowId, this._collapsed);
1038
1049
  this._collapsed = null;
1039
1050
  }
1040
1051
  } else if(!this._parent && parentRowId) { // Constituent cannot be added to another segment
1041
- view.addSegmentChild(parentRowId, newRowId, this._dataId);
1052
+ view.addSegmentChild(parentRowId, rowId, this._dataId);
1042
1053
  }
1043
1054
  };
1044
1055
  /** @private
@@ -1413,6 +1424,7 @@ RowDefinition.extractRowOptions = function(rowOptions) {
1413
1424
  let permId = rowOptions["permId"];
1414
1425
  let chainRic = rowOptions["chainRic"];
1415
1426
  let collapsed = rowOptions["collapsed"];
1427
+ let asSegment = rowOptions["asSegment"];
1416
1428
  let asChain = rowOptions["asChain"];
1417
1429
  if(asChain == null && chainRic){
1418
1430
  asChain = true;
@@ -1425,6 +1437,8 @@ RowDefinition.extractRowOptions = function(rowOptions) {
1425
1437
  expanded = true;
1426
1438
  } else if(asChain) {
1427
1439
  expanded = false;
1440
+ } else if(asSegment) {
1441
+ expanded = true;
1428
1442
  }
1429
1443
 
1430
1444
  let extractedOptions = {};
@@ -710,6 +710,9 @@ CheckboxPlugin.prototype._createCheckbox = function (sectionSettings, colIndex,
710
710
 
711
711
  cell.setContent(chkbox);
712
712
  let sectionType = sectionSettings.getType();
713
+ if(sectionType === "title") {
714
+ chkbox.setAttribute("aria-label", "all rows");
715
+ }
713
716
 
714
717
  if(!this._coralCheckboxVer) { // Workaround for UIFR theme styling
715
718
  let lbl = document.createElement("label");
@@ -1658,6 +1661,7 @@ CheckboxPlugin.prototype._onPostSectionDataBinding = function (e) {
1658
1661
  if(!chkbox) {
1659
1662
  chkbox = checkboxes[i] = this._createCheckbox(sectionSettings, this._displayColumn, rowIndex);
1660
1663
  }
1664
+ chkbox.setAttribute("aria-label", "row " + rowIndex);
1661
1665
  let rowId = dv.getRowId(rowIndex); // Slow
1662
1666
  rowData = this._getRowFromId(dv, rowId);
1663
1667
  if(hasBinding && chkbox) {
@@ -532,6 +532,7 @@ FilterInputPlugin.prototype._createFilterUI = function (colOpt) {
532
532
  elem.className = "filter-input";
533
533
  elem.style.width = "100%";
534
534
  elem.style.margin = "0";
535
+ elem.setAttribute("aria-label", "column filtering");
535
536
  var placeholder = colOpt["placeholder"];
536
537
 
537
538
  if (placeholder) {
@@ -20,7 +20,7 @@ declare class HScrollbar extends Scrollbar {
20
20
 
21
21
  }
22
22
 
23
- declare function columns(): void;
23
+ declare function scrollHost(): void;
24
24
 
25
25
  declare function elem(): number;
26
26
 
@@ -108,7 +108,7 @@ declare class RowDefinition {
108
108
 
109
109
  public resetUpdates(): void;
110
110
 
111
- public registerToView(view: DataView|null, rowId?: string|null): void;
111
+ public registerToView(view: DataView|null, destRowId?: string|null): void;
112
112
 
113
113
  public static deregisterFromView(rowIds: (string)[]|null, rowDef: RowDefinition|null): (string)[]|null;
114
114
 
@@ -4,4 +4,4 @@ import { MultiTableManager } from "../tr-grid-util/es6/MultiTableManager.js";
4
4
  import { FilterOperators, OperatorFunctions } from "../tr-grid-util/es6/FilterOperators.js";
5
5
  import { DataGenerator } from "../tr-grid-util/es6/jet/DataGenerator.js";
6
6
  import { MockRTK } from "../tr-grid-util/es6/jet/MockRTK.js";
7
- export { GridPrinter, Table, MultiTableManager, DataGenerator, MockRTK, FilterOperators, OperatorFunctions };
7
+ export { GridPrinter, Table, MultiTableManager, FilterOperators, OperatorFunctions, DataGenerator, MockRTK };
@@ -4,4 +4,4 @@ import { MultiTableManager } from "../tr-grid-util/es6/MultiTableManager.js";
4
4
  import { FilterOperators, OperatorFunctions } from "../tr-grid-util/es6/FilterOperators.js";
5
5
  import { DataGenerator } from "../tr-grid-util/es6/jet/DataGenerator.js";
6
6
  import { MockRTK } from "../tr-grid-util/es6/jet/MockRTK.js";
7
- export { GridPrinter, Table, MultiTableManager, DataGenerator, MockRTK, FilterOperators, OperatorFunctions };
7
+ export { GridPrinter, Table, MultiTableManager, FilterOperators, OperatorFunctions, DataGenerator, MockRTK };
package/lib/versions.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "tr-grid-util": "1.3.157",
3
3
  "tr-grid-printer": "1.0.18",
4
- "@grid/column-dragging": "1.0.20",
4
+ "@grid/column-dragging": "1.0.21",
5
5
  "@grid/row-segmenting": "1.0.33",
6
6
  "@grid/statistics-row": "1.0.17",
7
7
  "@grid/zoom": "1.0.11",
8
8
  "tr-grid-auto-tooltip": "1.1.8",
9
9
  "tr-grid-cell-selection": "1.0.38",
10
- "tr-grid-checkbox": "1.0.67",
10
+ "tr-grid-checkbox": "1.0.69",
11
11
  "tr-grid-column-fitter": "1.0.41",
12
12
  "tr-grid-column-formatting": "0.9.36",
13
13
  "tr-grid-column-grouping": "1.0.63",
@@ -17,7 +17,7 @@
17
17
  "tr-grid-conditional-coloring": "1.0.70",
18
18
  "tr-grid-content-wrap": "1.0.20",
19
19
  "tr-grid-contextmenu": "1.0.44",
20
- "tr-grid-filter-input": "0.9.41",
20
+ "tr-grid-filter-input": "0.9.42",
21
21
  "tr-grid-heat-map": "1.0.29",
22
22
  "tr-grid-in-cell-editing": "1.0.90",
23
23
  "tr-grid-pagination": "1.0.24",
@@ -32,6 +32,6 @@
32
32
  "tr-grid-titlewrap": "1.0.22",
33
33
  "@grid/formatters": "1.0.55",
34
34
  "@grid/column-selection-dialog": "4.0.57",
35
- "@grid/filter-dialog": "4.0.68",
35
+ "@grid/filter-dialog": "4.0.70",
36
36
  "@grid/column-format-dialog": "4.0.45"
37
37
  }
package/package.json CHANGED
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "version": "6.0.120"
72
+ "version": "6.0.122"
73
73
  }