@refinitiv-ui/efx-grid 6.0.108 → 6.0.110
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.
- package/lib/core/dist/core.js +63 -27
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/grid/Core.d.ts +4 -0
- package/lib/core/es6/grid/Core.js +63 -27
- package/lib/grid/index.js +1 -1
- package/lib/grid/lib/efx-grid.js +32 -10
- package/lib/rt-grid/dist/rt-grid.js +359 -149
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/ColumnDefinition.d.ts +6 -1
- package/lib/rt-grid/es6/ColumnDefinition.js +19 -0
- package/lib/rt-grid/es6/Grid.d.ts +4 -0
- package/lib/rt-grid/es6/Grid.js +147 -90
- package/lib/tr-grid-filter-input/es6/FilterInput.d.ts +2 -0
- package/lib/tr-grid-filter-input/es6/FilterInput.js +19 -0
- package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +4 -0
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +36 -1
- package/lib/tr-grid-util/es6/CellPainter.d.ts +1 -1
- package/lib/tr-grid-util/es6/CellPainter.js +15 -65
- package/lib/tr-grid-util/es6/Color.d.ts +40 -0
- package/lib/tr-grid-util/es6/Color.js +210 -0
- package/lib/tr-grid-util/es6/Util.d.ts +1 -3
- package/lib/tr-grid-util/es6/Util.js +2 -37
- package/lib/types/es6/Core/grid/Core.d.ts +4 -0
- package/lib/types/es6/FilterInput.d.ts +2 -0
- package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +6 -1
- package/lib/types/es6/RealtimeGrid/Grid.d.ts +4 -0
- package/lib/types/es6/RowFiltering.d.ts +4 -0
- package/lib/versions.json +3 -3
- package/package.json +1 -1
@@ -175,6 +175,10 @@ declare class Core extends ElementWrapper {
|
|
175
175
|
|
176
176
|
public setColumnStyle(colIndex: number, style: string, value: string, opt_type?: string|null): void;
|
177
177
|
|
178
|
+
public getColumnBackgroundColor(colIndex: number): string;
|
179
|
+
|
180
|
+
public setColumnBackgroundColor(colIndex: number, color?: string|null): void;
|
181
|
+
|
178
182
|
public enableColumnClass(colIndex: number, clsName: string, enabled?: boolean|null, opt_type?: string|null): boolean;
|
179
183
|
|
180
184
|
public hasColumnClass(colIndex: number, clsName: string, opt_type?: string|null): boolean;
|
@@ -127,7 +127,6 @@ let Core = function (opt_initializer) {
|
|
127
127
|
_t._onRowHightlighted = _t._onRowHightlighted.bind(_t);
|
128
128
|
_t._onGridClicked = _t._onGridClicked.bind(_t);
|
129
129
|
_t._onKeyDown = _t._onKeyDown.bind(_t);
|
130
|
-
_t._onKeyUp = _t._onKeyUp.bind(_t);
|
131
130
|
|
132
131
|
_t._onWindowResize = _t._onWindowResize.bind(_t);
|
133
132
|
_t._onSectionDataChanged = _t._onSectionDataChanged.bind(_t);
|
@@ -215,7 +214,6 @@ let Core = function (opt_initializer) {
|
|
215
214
|
|
216
215
|
|
217
216
|
_t._element.addEventListener("keydown", _t._onKeyDown);
|
218
|
-
_t._element.addEventListener("keyup", _t._onKeyUp);
|
219
217
|
if (Util.isMobile || Util.isTouchDevice) {
|
220
218
|
_t._element.addEventListener("touchmove", _t._onMouseMove, false);
|
221
219
|
} else {
|
@@ -622,7 +620,7 @@ Core.prototype._hasPendingRowChange = false;
|
|
622
620
|
* @return {string}
|
623
621
|
*/
|
624
622
|
Core.getVersion = function () {
|
625
|
-
return "5.1.
|
623
|
+
return "5.1.113";
|
626
624
|
};
|
627
625
|
/** {@link ElementWrapper#dispose}
|
628
626
|
* @override
|
@@ -765,6 +763,9 @@ Core.prototype.getConfigObject = function (gridOptions) {
|
|
765
763
|
if (columnDef["rightPinned"]) {
|
766
764
|
column["rightPinned"] = columnDef["rightPinned"];
|
767
765
|
}
|
766
|
+
if (columnDef["backgroundColor"]) {
|
767
|
+
column["backgroundColor"] = columnDef["backgroundColor"];
|
768
|
+
}
|
768
769
|
}
|
769
770
|
|
770
771
|
// It will be overwrite in rt-grid or atlas-blotter
|
@@ -2053,6 +2054,10 @@ Core.prototype._deserializeColumn = function (index, jsonObj) {
|
|
2053
2054
|
if (value != null) {
|
2054
2055
|
colDef["rightPinned"] = value ? true : false;
|
2055
2056
|
}
|
2057
|
+
value = jsonObj["backgroundColor"];
|
2058
|
+
if (value != null) {
|
2059
|
+
this.setColumnBackgroundColor(index, value);
|
2060
|
+
}
|
2056
2061
|
|
2057
2062
|
this.setColumnRenderingHandler(index, jsonObj["renderingHandler"]);
|
2058
2063
|
this.setColumnDataBindingHandler(index, jsonObj["dataBindingHandler"]);
|
@@ -2312,6 +2317,56 @@ Core.prototype.setColumnStyle = function (colIndex, style, value, opt_type) {
|
|
2312
2317
|
}
|
2313
2318
|
};
|
2314
2319
|
|
2320
|
+
/** @public
|
2321
|
+
* @param {number} colIndex
|
2322
|
+
* @return {string}
|
2323
|
+
*/
|
2324
|
+
Core.prototype.getColumnBackgroundColor = function(colIndex) {
|
2325
|
+
let colDef = this._getColumnDef(colIndex);
|
2326
|
+
return colDef["backgroundColor"] || "";
|
2327
|
+
};
|
2328
|
+
/** @public
|
2329
|
+
* @param {number} colIndex
|
2330
|
+
* @param {string=} color
|
2331
|
+
*/
|
2332
|
+
Core.prototype.setColumnBackgroundColor = function(colIndex, color) {
|
2333
|
+
if(colIndex == null || typeof colIndex !== "number") {
|
2334
|
+
return;
|
2335
|
+
}
|
2336
|
+
|
2337
|
+
let colDef = this._getColumnDef(colIndex);
|
2338
|
+
if(colDef["backgroundColor"] === color) {
|
2339
|
+
return;
|
2340
|
+
}
|
2341
|
+
|
2342
|
+
colDef["backgroundColor"] = color;
|
2343
|
+
color = color != null ? color : "";
|
2344
|
+
|
2345
|
+
let sectionCount = this._settings.length;
|
2346
|
+
for(let i = 0; i < sectionCount; ++i) {
|
2347
|
+
let settings = this._settings[i];
|
2348
|
+
let section = settings.getSection();
|
2349
|
+
if(!section) {
|
2350
|
+
continue;
|
2351
|
+
}
|
2352
|
+
|
2353
|
+
if(settings.getType() !== "content") {
|
2354
|
+
let rowCount = section.getRowCount();
|
2355
|
+
for(let r = 0; r < rowCount; r++) {
|
2356
|
+
let cellSpan = section.getCellColSpan(colIndex, r);
|
2357
|
+
if(cellSpan > 1) { continue; }
|
2358
|
+
let cell = section.getCell(colIndex, r);
|
2359
|
+
if(cell) {
|
2360
|
+
cell.setStyle("backgroundColor", color);
|
2361
|
+
}
|
2362
|
+
}
|
2363
|
+
} else {
|
2364
|
+
let column = section.getColumn(colIndex);
|
2365
|
+
column.setStyle("backgroundColor", color);
|
2366
|
+
}
|
2367
|
+
}
|
2368
|
+
};
|
2369
|
+
|
2315
2370
|
/** @public
|
2316
2371
|
* @param {number} colIndex
|
2317
2372
|
* @param {string} clsName
|
@@ -4971,6 +5026,9 @@ Core.prototype._dispatchRowExpansionBinding = function (e) {
|
|
4971
5026
|
}
|
4972
5027
|
|
4973
5028
|
let ctxRow = section.getContextRow(r);
|
5029
|
+
if(!ctxRow) {
|
5030
|
+
continue; // The row may have been pushed out of view due to row count or height changed during the binding
|
5031
|
+
}
|
4974
5032
|
let parentId = dataView.getExpansionParentByRowId(rowId);
|
4975
5033
|
if(parentId) { // dispatch to render row expansion
|
4976
5034
|
e["originalRowData"] = dataView.getRowData(parentId);
|
@@ -5463,31 +5521,9 @@ Core.prototype._onKeyDown = function (e) {
|
|
5463
5521
|
|
5464
5522
|
if(onTheEdge && !e.defaultPrevented) {
|
5465
5523
|
if(onTheEdge > 0 && e.shiftKey) {
|
5466
|
-
this._firstHiddenInput.focus(); // jump to the top
|
5467
|
-
e.preventDefault();
|
5524
|
+
this._firstHiddenInput.focus(); // jump to the top and move out of grid
|
5468
5525
|
} else if(onTheEdge < 0 && !e.shiftKey) {
|
5469
|
-
this._lastHiddenInput.focus(); // skip to the end
|
5470
|
-
e.preventDefault();
|
5471
|
-
}
|
5472
|
-
}
|
5473
|
-
};
|
5474
|
-
/** @private
|
5475
|
-
* @param {Object} e
|
5476
|
-
*/
|
5477
|
-
Core.prototype._onKeyUp = function (e) {
|
5478
|
-
if(!_isTabCommand(e)) {
|
5479
|
-
return;
|
5480
|
-
}
|
5481
|
-
var activeElem = _getActiveElement(this._element);
|
5482
|
-
if(e.shiftKey) {
|
5483
|
-
if(activeElem === this._lastHiddenInput) {
|
5484
|
-
this._firstHiddenInput.focus();
|
5485
|
-
e.preventDefault();
|
5486
|
-
}
|
5487
|
-
} else {
|
5488
|
-
if(activeElem === this._firstHiddenInput) {
|
5489
|
-
this._lastHiddenInput.focus();
|
5490
|
-
e.preventDefault();
|
5526
|
+
this._lastHiddenInput.focus(); // skip to the end and move out of grid
|
5491
5527
|
}
|
5492
5528
|
}
|
5493
5529
|
};
|
package/lib/grid/index.js
CHANGED
package/lib/grid/lib/efx-grid.js
CHANGED
@@ -17,6 +17,7 @@ import ColumnDraggingPlugin from "../../column-dragging/es6/ColumnDragging.js";
|
|
17
17
|
import cssStr from "../../core/es6/tr-grid-theme.js";
|
18
18
|
|
19
19
|
const coreGridStyle = css`${unsafeCSS(cssStr)}`;
|
20
|
+
let preloadPromise = null;
|
20
21
|
|
21
22
|
/**
|
22
23
|
* @typedef {Object} Grid~Config
|
@@ -89,7 +90,18 @@ class Grid extends ResponsiveElement {
|
|
89
90
|
|
90
91
|
this._onResizeHandler = this._onResizeHandler.bind(this);
|
91
92
|
this.resizedCallback = this.resizedCallback.bind(this);
|
93
|
+
this._preloadElfIcon = this._preloadElfIcon.bind(this);
|
92
94
|
}
|
95
|
+
|
96
|
+
/**
|
97
|
+
* @protected
|
98
|
+
* @ignore
|
99
|
+
*/
|
100
|
+
firstUpdated() {
|
101
|
+
// pre load elf svg icon
|
102
|
+
this._preloadElfIcon();
|
103
|
+
}
|
104
|
+
|
93
105
|
/**
|
94
106
|
* @protected
|
95
107
|
* @ignore
|
@@ -221,7 +233,7 @@ class Grid extends ResponsiveElement {
|
|
221
233
|
/**
|
222
234
|
* @private
|
223
235
|
*/
|
224
|
-
|
236
|
+
_configChange() {
|
225
237
|
let gridElem;
|
226
238
|
if (this.api) {
|
227
239
|
// Remove old grid element and Realtime Grid's API
|
@@ -308,15 +320,6 @@ class Grid extends ResponsiveElement {
|
|
308
320
|
// Inject icons and theme name
|
309
321
|
ElfUtil.injectIcons(options, this);
|
310
322
|
|
311
|
-
// pre load elf svg icon
|
312
|
-
const { preloadd } = await import("@refinitiv-ui/elements/icon");
|
313
|
-
if (preloadd) {
|
314
|
-
const iconList = ElfUtil.prepareIconPreloading();
|
315
|
-
if (iconList) {
|
316
|
-
preload(...iconList);
|
317
|
-
}
|
318
|
-
}
|
319
|
-
|
320
323
|
if (ElfUtil.isHaloTheme()) {
|
321
324
|
if (options.borders == null) {
|
322
325
|
options.borders = false;
|
@@ -369,6 +372,25 @@ class Grid extends ResponsiveElement {
|
|
369
372
|
}
|
370
373
|
}
|
371
374
|
|
375
|
+
/**
|
376
|
+
* @private
|
377
|
+
* Load preload icon for element framework v7
|
378
|
+
*/
|
379
|
+
_preloadElfIcon() {
|
380
|
+
// pre load elf svg icon
|
381
|
+
if(!preloadPromise) { // import only one time
|
382
|
+
preloadPromise = import("@refinitiv-ui/elements/icon").then(function(e) {
|
383
|
+
let preload = e.preload;
|
384
|
+
if (preloadd) {
|
385
|
+
const iconList = ElfUtil.prepareIconPreloading();
|
386
|
+
if (iconList) {
|
387
|
+
preload(...iconList);
|
388
|
+
}
|
389
|
+
}
|
390
|
+
}).catch(function(){});
|
391
|
+
}
|
392
|
+
}
|
393
|
+
|
372
394
|
/** Called when the element's size has changed
|
373
395
|
* @public
|
374
396
|
* @return {void}
|