@refinitiv-ui/efx-grid 6.0.119 → 6.0.121

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 (52) 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 +104 -10
  4. package/lib/core/dist/core.min.js +1 -1
  5. package/lib/core/es6/data/DataView.js +7 -5
  6. package/lib/core/es6/grid/Core.js +3 -3
  7. package/lib/core/es6/grid/components/Cell.d.ts +2 -0
  8. package/lib/core/es6/grid/components/Cell.js +89 -0
  9. package/lib/core/es6/grid/components/HScrollbar.d.ts +1 -1
  10. package/lib/core/es6/grid/components/HScrollbar.js +5 -2
  11. package/lib/filter-dialog/themes/base-checkbox.less +1 -1
  12. package/lib/filter-dialog/themes/base.less +8 -3
  13. package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +1 -1
  14. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +2 -2
  15. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +1 -1
  16. package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +1 -1
  17. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +2 -2
  18. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +1 -1
  19. package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +1 -1
  20. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +2 -2
  21. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +1 -1
  22. package/lib/filter-dialog/themes/halo/light/checkbox-list.js +1 -1
  23. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +2 -2
  24. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +1 -1
  25. package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +1 -1
  26. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +2 -2
  27. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +1 -1
  28. package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +1 -1
  29. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +2 -2
  30. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +1 -1
  31. package/lib/grid/index.js +1 -1
  32. package/lib/rt-grid/dist/rt-grid.js +240 -104
  33. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  34. package/lib/rt-grid/es6/ColumnDefinition.js +7 -0
  35. package/lib/rt-grid/es6/Grid.js +108 -81
  36. package/lib/rt-grid/es6/RowDefinition.d.ts +1 -1
  37. package/lib/rt-grid/es6/RowDefinition.js +28 -17
  38. package/lib/tr-grid-auto-tooltip/es6/AutoTooltip.js +18 -15
  39. package/lib/tr-grid-checkbox/es6/Checkbox.js +4 -0
  40. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +6 -1
  41. package/lib/tr-grid-filter-input/es6/FilterInput.js +1 -0
  42. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +0 -2
  43. package/lib/tr-grid-row-dragging/es6/RowDragging.js +82 -77
  44. package/lib/tr-grid-row-selection/es6/RowSelection.js +155 -35
  45. package/lib/types/es6/Core/grid/components/Cell.d.ts +2 -0
  46. package/lib/types/es6/Core/grid/components/HScrollbar.d.ts +1 -1
  47. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +1 -1
  48. package/lib/types/es6/RowDragging.d.ts +0 -2
  49. package/lib/utils/index.d.ts +1 -1
  50. package/lib/utils/index.js +1 -1
  51. package/lib/versions.json +8 -8
  52. package/package.json +1 -1
package/README.md CHANGED
@@ -56,6 +56,6 @@ See list of APIs, demo and more usage guide by visiting [EFX Grid document](http
56
56
 
57
57
  # License
58
58
 
59
- You can check out the full license [here](https://refinitiv.github.io/efx-grid/book/en/license.html)
59
+ You can check out the full license [here](https://refinitiv.github.io/efx-grid/#/license)
60
60
 
61
61
  However, Halo theme shall only be used within Refinitiv products or services due to license of the font "Proxima Nova Fin".
@@ -531,21 +531,24 @@ ColumnDraggingPlugin.prototype._onMouseUp = function (e) {
531
531
  };
532
532
 
533
533
  /** @private
534
- * @return {number} 0 does not allow dragging, 1 allows single dragging, and 2 allows multiple dragging.
534
+ * @return {number} 0 does not allow dragging, 1 allows single dragging, and 2 allows multiple dragging with row selection =.
535
535
  */
536
536
  ColumnDraggingPlugin.prototype._getDraggingStyle = function() {
537
537
  let colSelExt = this._getPlugin("ColumnSelectionPlugin");
538
- let cgp = this._getPlugin("ColumnGroupingPlugin");
539
- if(!cgp) {
538
+ if(!colSelExt) {
540
539
  return 1;
541
540
  }
541
+ let cgp = this._getPlugin("ColumnGroupingPlugin");
542
542
  let selectedCols = colSelExt.getSelectedColumns();
543
543
  let dragOutSel = selectedCols.indexOf(this._startColumn) === -1;
544
- if(dragOutSel) { // no column grouping, allow to drag
544
+ if(dragOutSel) { // drag outside selected col, drag only 1 row
545
545
  return 1;
546
546
  }
547
547
  let selectedColCount = selectedCols.length;
548
548
  if(selectedColCount > 1) { // Multiple column drag
549
+ if(!cgp) {
550
+ return 2;
551
+ }
549
552
  let currentGroup, prevGroup;
550
553
  for (let i = 0; i < selectedColCount; i++) {
551
554
  let colIndex = selectedCols[i];
@@ -1686,6 +1686,10 @@ Cell.prototype._floatingPanel = null;
1686
1686
  * @type {CellFloatingPanel}
1687
1687
  */
1688
1688
  Cell.prototype._frontIcon = null;
1689
+ /** @type {Object}
1690
+ * @private
1691
+ */
1692
+ Cell.prototype._tooltipInfo = null;
1689
1693
 
1690
1694
  //#region ElementWrapper
1691
1695
  /** {@link ElementWrapper#getContent}
@@ -2278,6 +2282,91 @@ Cell.prototype.getClientWidth = function () {
2278
2282
  Cell.prototype.getClientHeight = function () {
2279
2283
  return (this._element) ? this._element.clientHeight : this.getHeight();
2280
2284
  };
2285
+
2286
+ /** To remove the tooltip, pass str as an empty string. To allow cell calculation for the correct tooltip, set str to null.
2287
+ * @public
2288
+ * @param {string|null} str
2289
+ */
2290
+ Cell.prototype.setTooltip = function(str) {
2291
+ this.setTooltipInfo("userTooltip", str);
2292
+ this.updateTooltip();
2293
+ };
2294
+ /** @public
2295
+ * @ignore
2296
+ * @param {string} type
2297
+ * @param {*=} tooltip
2298
+ */
2299
+ Cell.prototype.setTooltipInfo = function(type, tooltip) {
2300
+ let tooltipInfo = this._tooltipInfo;
2301
+ if(!tooltipInfo) {
2302
+ tooltipInfo = this._tooltipInfo = {};
2303
+ }
2304
+
2305
+ tooltipInfo[type] = tooltip;
2306
+ };
2307
+ /** @public
2308
+ * @ignore
2309
+ */
2310
+ Cell.prototype.updateTooltip = function() {
2311
+ let tooltipInfo = this._tooltipInfo;
2312
+ if(!tooltipInfo) {
2313
+ return;
2314
+ }
2315
+
2316
+ let defaultTooltip = "";
2317
+ let customizedTooltip = null;
2318
+
2319
+ // Clipped text tooltip takes precedence over default group header and column tooltip
2320
+ if(tooltipInfo["clippedText"]) { // boolean
2321
+ defaultTooltip = customizedTooltip = tooltipInfo["clippedTextTooltip"];
2322
+ }
2323
+
2324
+ if(tooltipInfo["groupHeaderTooltip"] == null) {
2325
+ if(tooltipInfo["columnDefault"] !== false) {
2326
+ if(tooltipInfo["columnDefault"] != null) { // true, "", string
2327
+ customizedTooltip = tooltipInfo["columnTooltip"];
2328
+ } else { // null
2329
+ defaultTooltip = tooltipInfo["columnTooltip"];
2330
+ }
2331
+ }
2332
+ } else { // Group header tooltip takes precedence over column tooltip
2333
+ if(tooltipInfo["groupHeaderDefault"] !== false) {
2334
+ if(tooltipInfo["groupHeaderDefault"] != null) {
2335
+ customizedTooltip = tooltipInfo["groupHeaderTooltip"];
2336
+ } else {
2337
+ defaultTooltip = tooltipInfo["groupHeaderTooltip"];
2338
+ }
2339
+ }
2340
+ }
2341
+
2342
+ // User tooltip take the highest precedence
2343
+ if(tooltipInfo["userTooltip"] != null) { // "", string
2344
+ customizedTooltip = tooltipInfo["userTooltip"];
2345
+ }
2346
+
2347
+ if(customizedTooltip == null) {
2348
+ customizedTooltip = defaultTooltip;
2349
+ }
2350
+
2351
+ if(customizedTooltip) {
2352
+ if(this.getAttribute("title") !== customizedTooltip) {
2353
+ this.setAttribute("title", customizedTooltip);
2354
+ }
2355
+ } else if(this.getAttribute("title") != null) {
2356
+ this.removeAttribute("title");
2357
+ }
2358
+ };
2359
+ /** @public
2360
+ * @ignore
2361
+ * @param {string} type
2362
+ * @return {*}
2363
+ */
2364
+ Cell.prototype.getTooltipInfo = function(type) {
2365
+ if(this._tooltipInfo) {
2366
+ return this._tooltipInfo[type];
2367
+ }
2368
+ return null;
2369
+ };
2281
2370
  //#region Internal Public Methods
2282
2371
 
2283
2372
  //#region Private Methods
@@ -7505,7 +7594,8 @@ HScrollbar.prototype.setScrollContent = function (grid, sections, startColIndex,
7505
7594
  column = /** @type{Column} */(section.getColumn(c));
7506
7595
  column.setScrollState(paneElem, null, false);
7507
7596
  }
7508
- pane.setParent(section.getColumnHost());
7597
+ let scrollHost = section.getColumnHost();
7598
+ pane.setParent(scrollHost);
7509
7599
  let columns = [];
7510
7600
  let content = [];
7511
7601
  for (c = startColIndex; c < endColIndex; ++c) {
@@ -7522,9 +7612,11 @@ HScrollbar.prototype.setScrollContent = function (grid, sections, startColIndex,
7522
7612
 
7523
7613
  let rs = section.getReservedSpace();
7524
7614
  if(rs) {
7525
- if(!this._pinnedRightColumnCount) {
7615
+ if(this.isActive() && !this._pinnedRightColumnCount) {
7526
7616
  paneSlider.addContent(rs);
7527
7617
  content.push(rs);
7618
+ } else {
7619
+ scrollHost.appendChild(rs);
7528
7620
  }
7529
7621
  section._updateRightSpaceStyle();
7530
7622
  }
@@ -21427,7 +21519,7 @@ DataView.prototype._updateRowIds = function(opt_rowIds) {
21427
21519
 
21428
21520
  this._excludedRids = {};
21429
21521
  let exclusionCount = 0;
21430
- exclusionCount += DataView._copyObjectKeys(this._excludedRids, this._hiddenRids);
21522
+ exclusionCount += DataView._copyValidObjectKeys(this._excludedRids, this._hiddenRids);
21431
21523
 
21432
21524
  // Segment separators should not be filtered out (hidden)
21433
21525
  let segments = this._dt._getSegmentSeparators();
@@ -21447,7 +21539,7 @@ DataView.prototype._updateRowIds = function(opt_rowIds) {
21447
21539
  }
21448
21540
  this._collapsedRids = segments.getCollapsedRows();
21449
21541
  // Children of collapsed segments must be filtered out (hidden)
21450
- exclusionCount += DataView._copyObjectKeys(this._excludedRids, this._collapsedRids);
21542
+ exclusionCount += DataView._copyValidObjectKeys(this._excludedRids, this._collapsedRids);
21451
21543
  }
21452
21544
 
21453
21545
  if(this._groupLevel > 0 && !opt_rowIds) { // WARNING: The line below is quite slow
@@ -21977,13 +22069,15 @@ DataView._removeArrayItems = function(ary, items) {
21977
22069
  * @param {Object} masterObj
21978
22070
  * @returns {number}
21979
22071
  */
21980
- DataView._copyObjectKeys = function(baseObj, masterObj) {
22072
+ DataView._copyValidObjectKeys = function(baseObj, masterObj) {
21981
22073
  if(masterObj) {
21982
22074
  let count = 0;
21983
22075
 
21984
22076
  for(let key in masterObj) {
21985
- baseObj[key] = 1;
21986
- ++count; // WARNING: duplicated key can be counted more than once
22077
+ if(masterObj[key]) {
22078
+ baseObj[key] = 1;
22079
+ ++count; // WARNING: duplicated key can be counted more than once
22080
+ }
21987
22081
  }
21988
22082
  return count;
21989
22083
  }
@@ -25877,7 +25971,7 @@ Core_Core.prototype._hasPendingRowChange = false;
25877
25971
  * @return {string}
25878
25972
  */
25879
25973
  Core_Core.getVersion = function () {
25880
- return "5.1.118";
25974
+ return "5.1.123";
25881
25975
  };
25882
25976
  /** {@link ElementWrapper#dispose}
25883
25977
  * @override
@@ -28955,7 +29049,7 @@ Core_Core.prototype.getYScrollVal = function (sectionRef, rowIndex, topOfView) {
28955
29049
  scrollIndex = rowIndex;
28956
29050
  } else {
28957
29051
  if(rowIndex < firstFullRow) { // Scroll up
28958
- scrollIndex = rowIndex - 3; // Have some spaces at the top for more appealing visual
29052
+ scrollIndex = rowIndex - 2; // Have some spaces at the top for more appealing visual
28959
29053
  if(scrollIndex < 0) {
28960
29054
  scrollIndex = 0;
28961
29055
  }
@@ -28963,7 +29057,7 @@ Core_Core.prototype.getYScrollVal = function (sectionRef, rowIndex, topOfView) {
28963
29057
  let lastFullRow = viewInfo.lastFullRow;
28964
29058
  if (rowIndex > lastFullRow) {
28965
29059
  let viewIndexSize = lastFullRow - firstFullRow;
28966
- scrollIndex = rowIndex - viewIndexSize + 3;
29060
+ scrollIndex = rowIndex - viewIndexSize + 2;
28967
29061
  if(scrollIndex < 0) {
28968
29062
  scrollIndex = 0;
28969
29063
  }