@refinitiv-ui/efx-grid 6.0.112 → 6.0.113

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.
@@ -4237,12 +4237,12 @@ Grid.prototype._focusNextCellContent = function(args) {
4237
4237
  let grid = this._grid;
4238
4238
  let section = grid.getSection("content");
4239
4239
  let viewInfo = grid.getVerticalViewInfo();
4240
- let bottomRowIndex = viewInfo.bottomRowIndex;
4240
+ let lastFullRow = viewInfo.lastFullRow;
4241
4241
  let rowCount = this.getRowCount();
4242
4242
  for(let r = rowIndex; r < rowCount; r++) {
4243
4243
  for(i = startIdx; i < len; i++) {
4244
4244
  let c = focusableColIndices[i];
4245
- if(r > bottomRowIndex) {
4245
+ if(r > lastFullRow) {
4246
4246
  this._requestScroll(args, c, r);
4247
4247
  return;
4248
4248
  } else {
@@ -4292,11 +4292,11 @@ Grid.prototype._focusPrevCellContent = function(args) {
4292
4292
  let grid = this._grid;
4293
4293
  let section = grid.getSection("content");
4294
4294
  let viewInfo = grid.getVerticalViewInfo();
4295
- let topRowIndex = viewInfo.topRowIndex;
4295
+ let firstFullRow = viewInfo.firstFullRow;
4296
4296
  for(let r = rowIndex; r >= 0; r--) {
4297
4297
  for(i = startIdx; i >= 0; i--) {
4298
4298
  let c = focusableColIndices[i];
4299
- if(r < topRowIndex) {
4299
+ if(r < firstFullRow) {
4300
4300
  this._requestScroll(args, c, r);
4301
4301
  return;
4302
4302
  } else {
@@ -4350,7 +4350,7 @@ Grid.prototype._onTabNavigation = function(e) {
4350
4350
  }
4351
4351
  let startingRowIndex = pos["rowIndex"];
4352
4352
  if(e.onTheEdge) {
4353
- let viewInfo = this._grid.getVScrollView();
4353
+ let viewInfo = this._grid.getVerticalViewInfo();
4354
4354
  startingRowIndex = keyEvt.shiftKey ? viewInfo.lastFullRow : viewInfo.firstFullRow;
4355
4355
  }
4356
4356
  let args = {
@@ -3,7 +3,7 @@ import Ext from "../../tr-grid-util/es6/Ext.js";
3
3
  import MenuEventAPI from "./MenuEventAPI.js";
4
4
  import PopupMenu from "./PopupMenu.js";
5
5
  import { prettifyCss } from "../../tr-grid-util/es6/Util.js";
6
- import CellPainter from "../../tr-grid-util/es6/CellPainter.js";
6
+ import { rgb2Hex, num2Hex, hex2Num, blendColor, getContrastColor } from "../../tr-grid-util/es6/Color.js";
7
7
 
8
8
  declare namespace ContextMenuPlugin {
9
9
 
@@ -3,7 +3,7 @@ import Ext from "../../tr-grid-util/es6/Ext.js";
3
3
  import MenuEventAPI from "./MenuEventAPI.js";
4
4
  import PopupMenu from "./PopupMenu.js";
5
5
  import { prettifyCss } from "../../tr-grid-util/es6/Util.js";
6
- import CellPainter from "../../tr-grid-util/es6/CellPainter.js";
6
+ import { rgb2Hex, num2Hex, hex2Num, blendColor, getContrastColor } from "../../tr-grid-util/es6/Color.js";
7
7
 
8
8
  /** @typedef {"header" | "content" | "footer" | "filterRow"} ContextMenuPlugin~Context
9
9
  * @description All available context types for the extension
@@ -71,8 +71,8 @@ import CellPainter from "../../tr-grid-util/es6/CellPainter.js";
71
71
  * @extends {GridPlugin}
72
72
  * @param {(ContextMenuPlugin~Options|ContextMenuPlugin~OnMenuEvent)=} options
73
73
  */
74
- var ContextMenuPlugin = function (options) {
75
- var t = this;
74
+ let ContextMenuPlugin = function (options) {
75
+ let t = this;
76
76
  t._hosts = [];
77
77
 
78
78
  t._onItemClicked = t._onItemClicked.bind(t);
@@ -126,7 +126,7 @@ ContextMenuPlugin.prototype._contextMenu = null;
126
126
  * @return {string}
127
127
  */
128
128
  ContextMenuPlugin._styleCalculator = function (colors) {
129
- var css = prettifyCss([
129
+ let css = prettifyCss([
130
130
  ".tr-contextmenu", [
131
131
  "outline: none;",
132
132
  "box-sizing: border-box;",
@@ -197,10 +197,10 @@ ContextMenuPlugin._styleCalculator = function (colors) {
197
197
  ]
198
198
  ]);
199
199
 
200
- var hex = CellPainter.rgb2Hex(colors.tableBg);
201
- var triplet = CellPainter.hex2Num(hex);
202
- var bw = CellPainter.blackAndWhite(triplet);
203
- var blendRatio;
200
+ let hex = rgb2Hex(colors.tableBg);
201
+ let triplet = hex2Num(hex);
202
+ let bw = getContrastColor(triplet);
203
+ let blendRatio;
204
204
  if (bw === "#000000") { // Light theme
205
205
  blendRatio = 0.1;
206
206
  css = css.replace(/disabledColor/g, "lightgrey");
@@ -208,7 +208,7 @@ ContextMenuPlugin._styleCalculator = function (colors) {
208
208
  blendRatio = 0.2;
209
209
  css = css.replace(/disabledColor/g, "gray");
210
210
  }
211
- var hoverd = CellPainter.num2Hex(CellPainter.blendColor(hex, bw, blendRatio));
211
+ let hoverd = num2Hex(blendColor(hex, bw, blendRatio));
212
212
  css = css.replace(/hoveredColor/g, hoverd);
213
213
  css = css.replace(/backgroundColor/g, colors.tableBg);
214
214
  css = css.replace(/fontColor/g, colors.tableText);
@@ -229,7 +229,7 @@ ContextMenuPlugin.prototype.getName = function () {
229
229
  * @param {Object=} options
230
230
  */
231
231
  ContextMenuPlugin.prototype.initialize = function (host, options) {
232
- var t = this;
232
+ let t = this;
233
233
  if (t._hosts.indexOf(host) >= 0) { return; }
234
234
  t._hosts.push(host);
235
235
 
@@ -245,7 +245,7 @@ ContextMenuPlugin.prototype.initialize = function (host, options) {
245
245
  * @param {Object} host core grid object
246
246
  */
247
247
  ContextMenuPlugin.prototype.unload = function (host) {
248
- var at = this._hosts.indexOf(host);
248
+ let at = this._hosts.indexOf(host);
249
249
  if (at < 0) { return; }
250
250
 
251
251
  host.unlisten("postSectionRender", this._onPostSectionRender);
@@ -266,9 +266,9 @@ ContextMenuPlugin.prototype.unload = function (host) {
266
266
  ContextMenuPlugin.prototype.config = function (options) {
267
267
  if (!options) { return; }
268
268
 
269
- var t = this;
269
+ let t = this;
270
270
 
271
- var contextMenu = options["contextMenu"];
271
+ let contextMenu = options["contextMenu"];
272
272
 
273
273
  if (contextMenu == null) { return; }
274
274
  else if (typeof contextMenu === "object") {
@@ -294,7 +294,7 @@ ContextMenuPlugin.prototype.config = function (options) {
294
294
  * @return {!Object}
295
295
  */
296
296
  ContextMenuPlugin.prototype.getConfigObject = function (gridOptions) {
297
- var obj = gridOptions || {};
297
+ let obj = gridOptions || {};
298
298
 
299
299
  obj.contextMenu = this._contextMenu;
300
300
 
@@ -313,13 +313,13 @@ ContextMenuPlugin.prototype.getMenuModel = function () {
313
313
  * @return {!Object} Mouse related information
314
314
  */
315
315
  ContextMenuPlugin.prototype._configureMouseInfo = function (e) {
316
- var host = this._hosts[0];
317
- var mouseInfo = host.getRelativePosition(e);
316
+ let host = this._hosts[0];
317
+ let mouseInfo = host.getRelativePosition(e);
318
318
 
319
319
  // Supply possibly needed arguments for the event handler
320
320
  mouseInfo.context = this._contextMap[mouseInfo.sectionType] || "";
321
- var colIndex = mouseInfo.colIndex;
322
- var columnDef = mouseInfo.columnDef = {};
321
+ let colIndex = mouseInfo.colIndex;
322
+ let columnDef = mouseInfo.columnDef = {};
323
323
  mouseInfo.field = columnDef.field = this.getColumnField(colIndex);
324
324
  mouseInfo.colId = columnDef.id = this.getColumnId(colIndex);
325
325
 
@@ -331,13 +331,13 @@ ContextMenuPlugin.prototype._configureMouseInfo = function (e) {
331
331
  }
332
332
 
333
333
  if (this._csp) {
334
- var selCols = this._csp.getSelectedColumns();
334
+ let selCols = this._csp.getSelectedColumns();
335
335
  mouseInfo.selectedColumns = selCols && selCols.length ? selCols : null;
336
336
  } else {
337
337
  mouseInfo.selectedColumns = null;
338
338
  }
339
339
  if (this._rsp) {
340
- var selRows = this._rsp.getSelectedRows();
340
+ let selRows = this._rsp.getSelectedRows();
341
341
  mouseInfo.selectedRows = selRows && selRows.length ? selRows : null;
342
342
  } else {
343
343
  mouseInfo.selectedRows = null;
@@ -351,21 +351,21 @@ ContextMenuPlugin.prototype._configureMouseInfo = function (e) {
351
351
  * @param {Object} e
352
352
  */
353
353
  ContextMenuPlugin.prototype._rightClickedHandler = function (e) {
354
- var t = this;
354
+ let t = this;
355
355
 
356
- var host = t._hosts[0];
356
+ let host = t._hosts[0];
357
357
 
358
358
  if (!host) { return; }
359
359
 
360
- var pos = host.getRelativePosition(e);
360
+ let pos = host.getRelativePosition(e);
361
361
  if(pos.rowIndex == null) {
362
362
  return;
363
363
  }
364
364
 
365
365
  e.preventDefault(); // Prevent default system menu
366
366
 
367
- var mouseInfo = t._mouseInfo = t._configureMouseInfo(e);
368
- var contextMenu = t._contextMenu;
367
+ let mouseInfo = t._mouseInfo = t._configureMouseInfo(e);
368
+ let contextMenu = t._contextMenu;
369
369
 
370
370
  if (!contextMenu || t._disabled) { return; }
371
371
 
@@ -375,7 +375,7 @@ ContextMenuPlugin.prototype._rightClickedHandler = function (e) {
375
375
  t._menuAPI.clear(); // Clear cache everytime
376
376
  mouseInfo.menu = t._menuAPI; // Augment the event argument with Context Menu API
377
377
 
378
- var menuItems;
378
+ let menuItems;
379
379
  if (contextMenu.onMenu) {
380
380
  contextMenu.onMenu(mouseInfo); // Let user populates menu items based on the context
381
381
  menuItems = mouseInfo.menu.getMenuItems();
@@ -390,7 +390,7 @@ ContextMenuPlugin.prototype._rightClickedHandler = function (e) {
390
390
  t._popup.dispose();
391
391
  }
392
392
 
393
- var hostElem = host.getElement();
393
+ let hostElem = host.getElement();
394
394
 
395
395
  // TODO: Cannot initiate PopupMenu once because of blur timer trigger in Popup.
396
396
  // Blur timer (10ms) will try to hide popup after mousedown event.
@@ -410,24 +410,24 @@ ContextMenuPlugin.prototype._rightClickedHandler = function (e) {
410
410
  * @param {Event} e
411
411
  */
412
412
  ContextMenuPlugin.prototype._onItemClicked = function (e) {
413
- var menuItem = e.item;
414
- var subMenu = menuItem.items;
413
+ let menuItem = e.item;
414
+ let subMenu = menuItem.items;
415
415
  if (subMenu && subMenu.length) {
416
416
  return; // The selected item is not a leaf node
417
417
  }
418
418
 
419
- var pathArray = this._menuAPI.findItem(menuItem.id);
419
+ let pathArray = this._menuAPI.findItem(menuItem.id);
420
420
  if (!pathArray) {
421
421
  return; // Invalid item id
422
422
  }
423
423
 
424
424
  // User don't need to specify callback for each individual item.
425
425
  // User can specify call back at the parent item as a fallback method
426
- var len = pathArray.length;
427
- for (var i = 0; i < len; ++i) {
428
- var itemModel = pathArray[i];
426
+ let len = pathArray.length;
427
+ for (let i = 0; i < len; ++i) {
428
+ let itemModel = pathArray[i];
429
429
  if (itemModel.callback) {
430
- for (var propName in this._mouseInfo) {
430
+ for (let propName in this._mouseInfo) {
431
431
  e[propName] = this._mouseInfo[propName];
432
432
  }
433
433
  itemModel.callback(e);
@@ -6,7 +6,7 @@
6
6
  * @param {Array} columnGroups
7
7
  * @param {Array} legacyColumnGroups
8
8
  */
9
- var MenuEventAPI = function (menuModel) {
9
+ let MenuEventAPI = function (menuModel) {
10
10
  this._model = menuModel;
11
11
  this._items = [];
12
12
  this._runningId = 0;
@@ -52,8 +52,8 @@ MenuEventAPI.prototype._addItem = function (item, level) {
52
52
  this._addItem(this._model.items[item], level + 1);
53
53
  }
54
54
  } else if (Array.isArray(item)) { // The item is an item list
55
- var len = item.length;
56
- for (var i = 0; i < len; ++i) {
55
+ let len = item.length;
56
+ for (let i = 0; i < len; ++i) {
57
57
  this._addItem(item[i], level + 1);
58
58
  }
59
59
  } else { // Assume the item has an object type
@@ -88,12 +88,12 @@ MenuEventAPI.prototype.findItem = function (id) { // For internal use
88
88
  * @returns {string}
89
89
  */
90
90
  MenuEventAPI.prototype._findItem = function (id, item) {
91
- var foundItemPath;
91
+ let foundItemPath;
92
92
  if (!item) {
93
93
  return null;
94
94
  } else if (Array.isArray(item)) {
95
- var len = item.length;
96
- for (var i = 0; i < len; ++i) {
95
+ let len = item.length;
96
+ for (let i = 0; i < len; ++i) {
97
97
  foundItemPath = this._findItem(id, item[i]);
98
98
  if (foundItemPath) {
99
99
  return foundItemPath;
@@ -116,7 +116,7 @@ MenuEventAPI.prototype._findItem = function (id, item) {
116
116
  */
117
117
  MenuEventAPI.prototype._assignId = function (items) {
118
118
  if (Array.isArray(items)) {
119
- for (var i = 0; i < items.length; i++) {
119
+ for (let i = 0; i < items.length; i++) {
120
120
  this._assignId(items[i]);
121
121
  }
122
122
  } else {
@@ -5,8 +5,8 @@ import Ext from "../../tr-grid-util/es6/Ext.js";
5
5
  * @extends {EventDispatcher}
6
6
  * @param {Object} options
7
7
  */
8
- var MenuItem = function (options) {
9
- var t = this;
8
+ let MenuItem = function (options) {
9
+ let t = this;
10
10
 
11
11
  t._onItemHovered = t._onItemHovered.bind(t);
12
12
  t._onItemClicked = t._onItemClicked.bind(t);
@@ -33,9 +33,9 @@ MenuItem.prototype._isSelectable = true;
33
33
  * @param {Object} options
34
34
  */
35
35
  MenuItem.prototype._init = function(options) {
36
- var t = this;
36
+ let t = this;
37
37
 
38
- var li = document.createElement("li");
38
+ let li = document.createElement("li");
39
39
  li.className = "tr-contextmenu-item";
40
40
  li.addEventListener("mouseover", t._onItemHovered);
41
41
  li.addEventListener("click", t._onItemClicked);
@@ -45,7 +45,7 @@ MenuItem.prototype._init = function(options) {
45
45
 
46
46
  /** @public */
47
47
  MenuItem.prototype.dispose = function() {
48
- var t = this;
48
+ let t = this;
49
49
  t.removeAllEventListeners();
50
50
  t._elem.removeEventListener("mouseover", t._onItemHovered);
51
51
  t._elem.removeEventListener("click", t._onItemClicked);
@@ -58,9 +58,9 @@ MenuItem.prototype.dispose = function() {
58
58
  MenuItem.prototype._config = function(opt_model) {
59
59
  if (!opt_model) opt_model = {};
60
60
 
61
- var pref;
61
+ let pref;
62
62
 
63
- var t = this;
63
+ let t = this;
64
64
 
65
65
  pref = opt_model["id"];
66
66
  if (pref) {
@@ -111,7 +111,7 @@ MenuItem.prototype._config = function(opt_model) {
111
111
  * @param {Object} e
112
112
  */
113
113
  MenuItem.prototype._onItemHovered = function(e) {
114
- var t = this;
114
+ let t = this;
115
115
 
116
116
  // Cannot be hover if disabled or has no children
117
117
  if (!t.isSelectable()) { return; }
@@ -124,7 +124,7 @@ MenuItem.prototype._onItemHovered = function(e) {
124
124
  * @param {Object} e
125
125
  */
126
126
  MenuItem.prototype._onItemClicked = function(e) {
127
- var t = this;
127
+ let t = this;
128
128
 
129
129
  // Cannot be clicked if disabled or has children
130
130
  if (!t.isSelectable() || Array.isArray(t.getItems())) { return; }
@@ -137,7 +137,7 @@ MenuItem.prototype._onItemClicked = function(e) {
137
137
  * @param {*} id
138
138
  */
139
139
  MenuItem.prototype.setId = function(id) {
140
- var t = this;
140
+ let t = this;
141
141
  t._elem.setAttribute("id", id);
142
142
  this._id = id;
143
143
  };
@@ -153,7 +153,7 @@ MenuItem.prototype.getId = function() {
153
153
  * @param {*} text
154
154
  */
155
155
  MenuItem.prototype.setText = function(text) {
156
- var t = this;
156
+ let t = this;
157
157
  t._elem.textContent = text + "";
158
158
  this._text = text;
159
159
  };
@@ -183,7 +183,7 @@ MenuItem.prototype.getValue = function() {
183
183
  * @param {boolean=} selectable
184
184
  */
185
185
  MenuItem.prototype.setSelectable = function(selectable) {
186
- var t = this;
186
+ let t = this;
187
187
  if (selectable) {
188
188
  t._elem.removeAttribute("data-unselectable");
189
189
  t._elem.removeAttribute("disabled");
@@ -205,7 +205,7 @@ MenuItem.prototype.isSelectable = function() {
205
205
  * @param {Array} items
206
206
  */
207
207
  MenuItem.prototype.setItems = function(items) {
208
- var t = this;
208
+ let t = this;
209
209
  t._items = items;
210
210
  t._elem.classList.add("has-child");
211
211
  };
@@ -7,8 +7,8 @@ import Ext from "../../tr-grid-util/es6/Ext.js";
7
7
  * @extends {EventDispatcher}
8
8
  * @param {Element} parentElement
9
9
  */
10
- var PopupMenu = function (parentElement) {
11
- var t = this;
10
+ let PopupMenu = function (parentElement) {
11
+ let t = this;
12
12
 
13
13
  t.show = t.show.bind(t);
14
14
  t.attachTo = t.attachTo.bind(t);
@@ -64,11 +64,11 @@ PopupMenu.prototype._isMounted;
64
64
  * @param {Element} parentElement
65
65
  */
66
66
  PopupMenu.prototype._init = function(parentElement) {
67
- var t = this;
67
+ let t = this;
68
68
 
69
- var topNode = document.createElement("div");
69
+ let topNode = document.createElement("div");
70
70
  topNode.className = "tr-contextmenu-popup";
71
- var ul = document.createElement("ul");
71
+ let ul = document.createElement("ul");
72
72
  ul.className = "tr-contextmenu";
73
73
  topNode.appendChild(ul);
74
74
 
@@ -98,7 +98,7 @@ PopupMenu.prototype.isDisposed = function () {
98
98
 
99
99
  /** @public */
100
100
  PopupMenu.prototype.dispose = function () {
101
- var t = this;
101
+ let t = this;
102
102
  if (t._isMounted) {
103
103
  t.removeAllEventListeners();
104
104
  t._popup.dispose();
@@ -109,7 +109,7 @@ PopupMenu.prototype.dispose = function () {
109
109
 
110
110
  /** @private */
111
111
  PopupMenu.prototype._disposeChildren = function () {
112
- var t = this;
112
+ let t = this;
113
113
  t._children.forEach(function (child) {
114
114
  if (child) {
115
115
  child.dispose();
@@ -126,7 +126,7 @@ PopupMenu.prototype._disposeChildren = function () {
126
126
 
127
127
  /** @public */
128
128
  PopupMenu.prototype.show = function () {
129
- var t = this;
129
+ let t = this;
130
130
  t._popup.show(true, t._parentElement);
131
131
  t.setPosition(t._popup._positioning, t._x, t._y);
132
132
  };
@@ -152,19 +152,19 @@ PopupMenu.prototype.attachTo = function (elem, positioning) {
152
152
  * @param {number} y
153
153
  */
154
154
  PopupMenu.prototype.setPosition = function(positioning, x, y) {
155
- var t = this;
155
+ let t = this;
156
156
 
157
157
  if (positioning === "custom") {
158
158
  t._x = x;
159
159
  t._y = y;
160
- var ww = window.innerWidth;
161
- var wh = window.innerHeight;
162
- var sx = (window.scrollX != null) ? window.scrollX : window.pageXOffset;
163
- var sy = (window.scrollY != null) ? window.scrollY : window.pageYOffset;
164
- var rb = ww + sx; // view port right bound
165
- var bb = wh + sy; // view port bottom boundnd
166
- var aw = t._popup._elem.offsetWidth;
167
- var ah = t._popup._elem.offsetHeight;
160
+ let ww = window.innerWidth;
161
+ let wh = window.innerHeight;
162
+ let sx = (window.scrollX != null) ? window.scrollX : window.pageXOffset;
163
+ let sy = (window.scrollY != null) ? window.scrollY : window.pageYOffset;
164
+ let rb = ww + sx; // view port right bound
165
+ let bb = wh + sy; // view port bottom boundnd
166
+ let aw = t._popup._elem.offsetWidth;
167
+ let ah = t._popup._elem.offsetHeight;
168
168
 
169
169
  if (x + aw > rb) { // Do not overflow right bound
170
170
  x = rb - aw;
@@ -196,7 +196,7 @@ PopupMenu.prototype.addPopupChild = function(element, popupMenu) {
196
196
  PopupMenu.prototype.setMenu = function (menuItems) {
197
197
  if (!menuItems || !Array.isArray(menuItems)) { return; }
198
198
 
199
- var t = this;
199
+ let t = this;
200
200
 
201
201
  // Clear existing before set a new items.
202
202
  if (Array.isArray(t._menuItems)) {
@@ -205,16 +205,16 @@ PopupMenu.prototype.setMenu = function (menuItems) {
205
205
 
206
206
  t._menuItems = menuItems;
207
207
 
208
- for (var i = 0; i < menuItems.length; i++) {
209
- var item = menuItems[i];
208
+ for (let i = 0; i < menuItems.length; i++) {
209
+ let item = menuItems[i];
210
210
 
211
- var menuItem = new MenuItem(item);
211
+ let menuItem = new MenuItem(item);
212
212
  menuItem.addEventListener("itemHovered", t._hoveredItem);
213
213
  menuItem.addEventListener("itemClicked", t._clickedItem);
214
214
  t._childrenItem.push(menuItem);
215
215
 
216
216
  if (Array.isArray(menuItem.getItems())) {
217
- var pm = new PopupMenu(t._parentElement);
217
+ let pm = new PopupMenu(t._parentElement);
218
218
  pm._id = menuItem.getId();
219
219
  pm.setMenu(menuItem.getItems());
220
220
  pm.addEventListener("itemHovered", t._hoveredChildItem);
@@ -230,7 +230,7 @@ PopupMenu.prototype.setMenu = function (menuItems) {
230
230
  * @param {Event} e
231
231
  */
232
232
  PopupMenu.prototype._hoveredChildItem = function (e) {
233
- var t = this;
233
+ let t = this;
234
234
  t._dispatch("itemHovered", e);
235
235
  };
236
236
 
@@ -238,7 +238,7 @@ PopupMenu.prototype._hoveredChildItem = function (e) {
238
238
  * @param {Event} e
239
239
  */
240
240
  PopupMenu.prototype._clickedChildItem = function (e) {
241
- var t = this;
241
+ let t = this;
242
242
  t._dispatch("itemClicked", e);
243
243
  t.hide();
244
244
  };
@@ -247,14 +247,14 @@ PopupMenu.prototype._clickedChildItem = function (e) {
247
247
  * @param {Event} e
248
248
  */
249
249
  PopupMenu.prototype._hoveredItem = function (e) {
250
- var t = this;
251
- var evt = t._evtArg;
252
- var element = e.srcElement;
253
- var children = t._children;
250
+ let t = this;
251
+ let evt = t._evtArg;
252
+ let element = e.srcElement;
253
+ let children = t._children;
254
254
 
255
255
  if (element && !!children.length) {
256
- for (var i = 0; i < children.length; i++) {
257
- var child = children[i];
256
+ for (let i = 0; i < children.length; i++) {
257
+ let child = children[i];
258
258
  if (child._id === element.getAttribute("id")) {
259
259
  child.show();
260
260
  } else {
@@ -272,10 +272,10 @@ PopupMenu.prototype._hoveredItem = function (e) {
272
272
  * @param {Event} e
273
273
  */
274
274
  PopupMenu.prototype._clickedItem = function(e) {
275
- var t = this;
275
+ let t = this;
276
276
  if (e.item && e.item.id) {
277
- for (var i = 0; i < t._menuItems.length; i++) {
278
- var menuItem = t._menuItems[i];
277
+ for (let i = 0; i < t._menuItems.length; i++) {
278
+ let menuItem = t._menuItems[i];
279
279
  if (menuItem.id === e.item.id) {
280
280
  t._evtArg["item"] = menuItem;
281
281
  break;
@@ -162,13 +162,20 @@ const BlankValues = {
162
162
  * @function
163
163
  * @param {Array} ary
164
164
  * @param {string} str
165
+ * @param {*=} orignalValue
165
166
  * @returns {boolean} Returns true if there is any change
166
167
  */
167
- let _pushRawValue = function(ary, str) {
168
+ let _pushRawValue = function(ary, str, orignalValue) {
168
169
  if(str) {
169
170
  if(!BlankValues[str]) {
170
171
  let dateObj = stringToDateObject(str);
171
172
  if(dateObj !== str) {
173
+ if(orignalValue && typeof orignalValue === "number") {
174
+ let originalDate = new Date(orignalValue);
175
+ if(originalDate.getTime()) {
176
+ dateObj = originalDate;
177
+ }
178
+ }
172
179
  ary.push(dateObj);
173
180
  } else {
174
181
  try {
@@ -1890,7 +1897,7 @@ RowFilteringPlugin.prototype.openDialog = function(colIndex, runtimeDialogOption
1890
1897
  } else if(typeof exp === "function" || typeof exp === "string" || typeof exp === "object") {
1891
1898
  if(typeof exp === "object") {
1892
1899
  for(let expKey in exp) {
1893
- _pushRawValue(userInputs, expKey);
1900
+ _pushRawValue(userInputs, expKey, exp[expKey]);
1894
1901
  }
1895
1902
  }
1896
1903
  }
@@ -2244,7 +2251,8 @@ RowFilteringPlugin.prototype._onDialogFilterChanged = function(e) {
2244
2251
 
2245
2252
  let jLen = rawVals.length;
2246
2253
  for(let j = 0; j < jLen; ++j) {
2247
- itemMap[rawVals[j]] = true;
2254
+ let rawVal = rawVals[j];
2255
+ itemMap[rawVal] = (rawVal instanceof Date) ? rawVal.getTime() : rawVal;
2248
2256
  }
2249
2257
  }
2250
2258
  if(atLeastOne) {
@@ -758,6 +758,12 @@ CellPainter.prototype._getStyles = function(rowData, min, max) {
758
758
  * @return {Array.<number>} resultColor
759
759
  */
760
760
  CellPainter.blendColor = blendColor; // For backward compatability
761
+ /** @private
762
+ * @function
763
+ * @param {Array.<number>} triplet
764
+ * @return {string} resultColor
765
+ */
766
+ CellPainter.blackAndWhite = getContrastColor; // For backward compatability
761
767
  /** @public
762
768
  * @function
763
769
  * @param {string} rgbCode
@@ -3,7 +3,7 @@ import Ext from "../../tr-grid-util/es6/Ext.js";
3
3
  import MenuEventAPI from "./MenuEventAPI.js";
4
4
  import PopupMenu from "./PopupMenu.js";
5
5
  import { prettifyCss } from "../../tr-grid-util/es6/Util.js";
6
- import CellPainter from "../../tr-grid-util/es6/CellPainter.js";
6
+ import { rgb2Hex, num2Hex, hex2Num, blendColor, getContrastColor } from "../../tr-grid-util/es6/Color.js";
7
7
 
8
8
  declare namespace ContextMenuPlugin {
9
9
 
@@ -32,12 +32,20 @@ declare namespace RowFilteringPlugin {
32
32
  rawDataAccessor?: ((...params: any[]) => any)|null,
33
33
  formattedDataAccessor?: ((...params: any[]) => any)|null,
34
34
  sortLogic?: ((...params: any[]) => any)|null,
35
+ groupCriteria?: ((...params: any[]) => any)|null,
36
+ groupSortLogic?: ((...params: any[]) => any)|null,
35
37
  itemList?: any[]|null,
36
38
  additionalItems?: any[]|null,
37
39
  compactMode?: boolean|null,
38
40
  blankValues?: (boolean|string)|null
39
41
  };
40
42
 
43
+ type FilterEntry = {
44
+ type?: string|null,
45
+ label: string,
46
+ checked: boolean
47
+ };
48
+
41
49
  type Options = {
42
50
  emptySegmentFiltering?: boolean|null,
43
51
  separatorFiltering?: boolean|null,
package/lib/versions.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "tr-grid-util": "1.3.154",
2
+ "tr-grid-util": "1.3.155",
3
3
  "tr-grid-printer": "1.0.18",
4
4
  "@grid/column-dragging": "1.0.20",
5
5
  "@grid/row-segmenting": "1.0.31",
@@ -16,7 +16,7 @@
16
16
  "tr-grid-column-stack": "1.0.75",
17
17
  "tr-grid-conditional-coloring": "1.0.70",
18
18
  "tr-grid-content-wrap": "1.0.20",
19
- "tr-grid-contextmenu": "1.0.41",
19
+ "tr-grid-contextmenu": "1.0.42",
20
20
  "tr-grid-filter-input": "0.9.41",
21
21
  "tr-grid-heat-map": "1.0.29",
22
22
  "tr-grid-in-cell-editing": "1.0.87",
@@ -24,7 +24,7 @@
24
24
  "tr-grid-percent-bar": "1.0.24",
25
25
  "tr-grid-range-bar": "2.0.8",
26
26
  "tr-grid-row-dragging": "1.0.35",
27
- "tr-grid-row-filtering": "1.0.79",
27
+ "tr-grid-row-filtering": "1.0.80",
28
28
  "tr-grid-row-grouping": "1.0.88",
29
29
  "tr-grid-row-selection": "1.0.30",
30
30
  "tr-grid-rowcoloring": "1.0.25",
package/package.json CHANGED
@@ -3,6 +3,7 @@
3
3
  "description": "Grid Components Library",
4
4
  "author": "Refinitiv",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
+ "type": "module",
6
7
  "main": "./lib/grid/index.js",
7
8
  "module": "./lib/grid/index.js",
8
9
  "types": "./lib/types/index.d.ts",
@@ -68,5 +69,5 @@
68
69
  "publishConfig": {
69
70
  "access": "public"
70
71
  },
71
- "version": "6.0.112"
72
+ "version": "6.0.113"
72
73
  }