@refinitiv-ui/efx-grid 6.0.40 → 6.0.42
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/column-selection-dialog/lib/column-selection-dialog.d.ts +2 -1
- package/lib/column-selection-dialog/lib/column-selection-dialog.js +23 -7
- package/lib/core/dist/core.js +846 -881
- 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 +91 -27
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +3 -2
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +26 -26
- package/lib/core/es6/grid/util/util.js +25 -9
- package/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +2253 -1755
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/Grid.d.ts +22 -0
- package/lib/rt-grid/es6/Grid.js +146 -11
- package/lib/rt-grid/es6/RowDefinition.d.ts +2 -2
- package/lib/rt-grid/es6/RowDefinition.js +37 -18
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +4 -0
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +60 -59
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +9 -3
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +290 -364
- package/lib/tr-grid-util/es6/CellPainter.d.ts +2 -1
- package/lib/tr-grid-util/es6/CellPainter.js +6 -4
- package/lib/tr-grid-util/es6/DateTime.js +3 -3
- package/lib/tr-grid-util/es6/ExpressionParser.d.ts +10 -0
- package/lib/tr-grid-util/es6/ExpressionParser.js +366 -0
- package/lib/tr-grid-util/es6/FilterBuilder.d.ts +10 -6
- package/lib/tr-grid-util/es6/FilterBuilder.js +264 -234
- package/lib/tr-grid-util/es6/FilterOperators.d.ts +3 -1
- package/lib/tr-grid-util/es6/FilterOperators.js +51 -2
- package/lib/tr-grid-util/es6/GridPlugin.js +1 -1
- package/lib/tr-grid-util/es6/Util.d.ts +0 -3
- package/lib/tr-grid-util/es6/Util.js +0 -53
- package/lib/tr-grid-util/es6/formula/Formula.js +3 -3
- package/lib/types/es6/ColumnDragging.d.ts +51 -0
- package/lib/types/es6/ColumnGrouping.d.ts +4 -0
- package/lib/types/es6/ColumnStack.d.ts +9 -3
- package/lib/types/es6/Core/grid/Core.d.ts +4 -0
- package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +3 -2
- package/lib/types/es6/ExtensionOptions.d.ts +2 -0
- package/lib/types/es6/Extensions.d.ts +3 -1
- package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +2 -2
- package/lib/types/es6/index.d.ts +1 -0
- package/lib/versions.json +4 -4
- package/package.json +1 -1
@@ -405,6 +405,10 @@ declare class Core extends ElementWrapper {
|
|
405
405
|
|
406
406
|
public getColumnGroupChildIds(groupId: string): (string)[]|null;
|
407
407
|
|
408
|
+
public getValidColumnList(colIds: (string)[]|null, columnMap?: any): (string)[];
|
409
|
+
|
410
|
+
public createColumnMap(colIds?: (string)[]|null): any;
|
411
|
+
|
408
412
|
public startBatch(batchType: string): boolean;
|
409
413
|
|
410
414
|
public stopBatch(batchType: string): boolean;
|
@@ -82,6 +82,7 @@ var Core = function (opt_initializer) {
|
|
82
82
|
|
83
83
|
_t._onMouseMove = _t._onMouseMove.bind(_t);
|
84
84
|
_t._onRowHightlighted = _t._onRowHightlighted.bind(_t);
|
85
|
+
_t._onGridClicked = _t._onGridClicked.bind(_t);
|
85
86
|
|
86
87
|
_t._onWindowResize = _t._onWindowResize.bind(_t);
|
87
88
|
_t._onSectionDataChanged = _t._onSectionDataChanged.bind(_t);
|
@@ -167,11 +168,16 @@ var Core = function (opt_initializer) {
|
|
167
168
|
_t._hscrollbar.setOtherScrollbar(_t._vscrollbar);
|
168
169
|
_t._vscrollbar.setOtherScrollbar(_t._hscrollbar);
|
169
170
|
|
170
|
-
if (Util.isMobile) {
|
171
|
+
if (Util.isMobile || Util.isTouchDevice) {
|
171
172
|
_t._element.addEventListener("touchmove", this._onMouseMove, false);
|
172
173
|
} else {
|
173
174
|
_t._element.addEventListener("mousemove", this._onMouseMove, false);
|
174
175
|
}
|
176
|
+
|
177
|
+
if(Util.isSafari){
|
178
|
+
_t._element.addEventListener("click", this._onGridClicked);
|
179
|
+
}
|
180
|
+
|
175
181
|
window.addEventListener("resize", _t._onWindowResize, false); // Should be unlistened after destroyed
|
176
182
|
_t._rowVirtualizer.listen("indexChanged", _t._onRowInViewChanged);
|
177
183
|
_t._colVirtualizer.listen("indexChanged", _t._onColInViewChanged);
|
@@ -556,7 +562,7 @@ Core.prototype._batches = null;
|
|
556
562
|
* @return {string}
|
557
563
|
*/
|
558
564
|
Core.getVersion = function () {
|
559
|
-
return "5.1.
|
565
|
+
return "5.1.63";
|
560
566
|
};
|
561
567
|
/** {@link ElementWrapper#dispose}
|
562
568
|
* @override
|
@@ -1503,16 +1509,12 @@ Core.prototype.removeColumnAt = function (index) {
|
|
1503
1509
|
|
1504
1510
|
if (this._hasListener("columnRemoved")) {
|
1505
1511
|
var e = {};
|
1506
|
-
var batches = this._batches;
|
1507
|
-
if(batches){
|
1508
|
-
e["batches"] = batches;
|
1509
|
-
}
|
1510
1512
|
e["atTheMiddle"] = true;
|
1511
1513
|
e["colIndex"] = index;
|
1512
1514
|
e["columns"] = "deprecated";
|
1513
1515
|
e["columnData"] = colDef["columnData"];
|
1514
1516
|
e["colId"] = colDef["id"] || "";
|
1515
|
-
this.
|
1517
|
+
this._dispatchColumnEvent("columnRemoved", e);
|
1516
1518
|
}
|
1517
1519
|
|
1518
1520
|
// Last index in view here might be different from before moving column if columns have different width.
|
@@ -1765,7 +1767,7 @@ Core.prototype._moveColumn = function (fromCol, destCol) {
|
|
1765
1767
|
e["fromColIndex"] = fromCol;
|
1766
1768
|
e["toColIndex"] = destCol;
|
1767
1769
|
e["colId"] = colId; // TODO: Id may not needed
|
1768
|
-
this.
|
1770
|
+
this._dispatchColumnEvent("columnMoved", e); // add remove move
|
1769
1771
|
}
|
1770
1772
|
|
1771
1773
|
// Last index in view here might be different from before moving column if columns have different width.
|
@@ -1835,6 +1837,9 @@ Core.prototype.reorderColumns = function (colRefs, destCol) {
|
|
1835
1837
|
destId = destCol;
|
1836
1838
|
}
|
1837
1839
|
|
1840
|
+
this.startBatch("move");
|
1841
|
+
|
1842
|
+
var dirty = 0;
|
1838
1843
|
if(Array.isArray(colRefs)) {
|
1839
1844
|
var srcLen = colRefs.length;
|
1840
1845
|
if(srcLen > 1) {
|
@@ -1877,7 +1882,6 @@ Core.prototype.reorderColumns = function (colRefs, destCol) {
|
|
1877
1882
|
}
|
1878
1883
|
}
|
1879
1884
|
|
1880
|
-
var dirty = 0;
|
1881
1885
|
for(i = srcLen; --i >= 0;) {
|
1882
1886
|
srcId = srcIds[i]; // Only valid source columns are left at this point
|
1883
1887
|
srcIdx = this.getColumnIndex(srcId);
|
@@ -1888,17 +1892,15 @@ Core.prototype.reorderColumns = function (colRefs, destCol) {
|
|
1888
1892
|
dirty |= this._moveColumnByIndex(srcIdx, destIdx);
|
1889
1893
|
destId = srcId;
|
1890
1894
|
}
|
1891
|
-
return dirty ? true : false;
|
1892
1895
|
} else {
|
1893
|
-
|
1896
|
+
dirty = this.moveColumnById(colRefs[0], destId);
|
1894
1897
|
}
|
1895
|
-
}
|
1896
|
-
|
1897
|
-
if(colRefs != null) {
|
1898
|
+
} else if(colRefs != null) {
|
1898
1899
|
// colRefs will be a number or string
|
1899
|
-
|
1900
|
+
dirty = this.moveColumnById(colRefs, destId);
|
1900
1901
|
}
|
1901
|
-
|
1902
|
+
this.stopBatch("move");
|
1903
|
+
return dirty ? true : false;
|
1902
1904
|
};
|
1903
1905
|
|
1904
1906
|
/** @public
|
@@ -4415,6 +4417,53 @@ Core.prototype.getColumnGroupChildIds = function (groupId) {
|
|
4415
4417
|
return null;
|
4416
4418
|
};
|
4417
4419
|
|
4420
|
+
/** @public
|
4421
|
+
* @description Get a list of objects with column id and column index in sorted order
|
4422
|
+
* @param {Array.<string>} colIds
|
4423
|
+
* @param {Object=} columnMap
|
4424
|
+
* @return {!Array.<string>} Return column array with corresponding order to UI
|
4425
|
+
* @example
|
4426
|
+
* core.getValidColumnList(["c1","c2","c5"]); // Get list of valid columns
|
4427
|
+
* core.getValidColumnList(["c1","c2","c5"],{ "c2":true, "c5":true }); // Get list of valid columns from specific mapping
|
4428
|
+
*/
|
4429
|
+
Core.prototype.getValidColumnList = function (colIds, columnMap) {
|
4430
|
+
var colList = [];
|
4431
|
+
if(!colIds){
|
4432
|
+
return colList;
|
4433
|
+
}
|
4434
|
+
if(!columnMap){
|
4435
|
+
columnMap = this.createColumnMap(colIds);
|
4436
|
+
}
|
4437
|
+
var colCount = this.getColumnCount();
|
4438
|
+
for(var c = 0; c < colCount; ++c) {
|
4439
|
+
var id = this._getColumnDef(c)["id"];
|
4440
|
+
if(columnMap[id] != null){
|
4441
|
+
colList.push({"index": c, "id": id});
|
4442
|
+
}
|
4443
|
+
}
|
4444
|
+
return colList;
|
4445
|
+
};
|
4446
|
+
|
4447
|
+
/** @public
|
4448
|
+
* @description Create mapping object from an array of strings
|
4449
|
+
* @param {Array.<string>=} colIds
|
4450
|
+
* @return {!Object} Column mapping object
|
4451
|
+
*/
|
4452
|
+
Core.prototype.createColumnMap = function (colIds) {
|
4453
|
+
if(!colIds){
|
4454
|
+
colIds = this.getColumnIds();
|
4455
|
+
}
|
4456
|
+
var mappingObj = {};
|
4457
|
+
var count = colIds.length;
|
4458
|
+
for(var i = 0; i < count; i++){
|
4459
|
+
var colId = colIds[i];
|
4460
|
+
if(colId){
|
4461
|
+
mappingObj[colId] = true;
|
4462
|
+
}
|
4463
|
+
}
|
4464
|
+
return mappingObj;
|
4465
|
+
};
|
4466
|
+
|
4418
4467
|
/** @public
|
4419
4468
|
* @param {string} batchType
|
4420
4469
|
* @return {boolean}
|
@@ -4452,6 +4501,17 @@ Core.prototype.stopBatch = function (batchType) {
|
|
4452
4501
|
|
4453
4502
|
//#region Private Methods
|
4454
4503
|
/** @private
|
4504
|
+
* @param {string} type
|
4505
|
+
* @param {!Object} eventArg
|
4506
|
+
*/
|
4507
|
+
Core.prototype._dispatchColumnEvent = function (type, eventArg) {
|
4508
|
+
var batches = this._batches;
|
4509
|
+
if(batches){
|
4510
|
+
eventArg["batches"] = batches;
|
4511
|
+
}
|
4512
|
+
this._dispatch(type, eventArg);
|
4513
|
+
};
|
4514
|
+
/** @private
|
4455
4515
|
*/
|
4456
4516
|
Core.prototype._dispatchColumnPositionChanged = function () {
|
4457
4517
|
if(this._columnPositionConflator.conflate()) {
|
@@ -4691,20 +4751,16 @@ Core.prototype._dispatchColumnAddedEvent = function (at, count, atTheMiddle, ctx
|
|
4691
4751
|
if (this._hasListener("columnAdded")) {
|
4692
4752
|
var e = {};
|
4693
4753
|
e["atTheMiddle"] = atTheMiddle;
|
4694
|
-
var batches = this._batches;
|
4695
|
-
if(batches){
|
4696
|
-
e["batches"] = batches;
|
4697
|
-
}
|
4698
4754
|
if(count === 1) {
|
4699
4755
|
e["colIndex"] = at;
|
4700
4756
|
e["context"] = ctx;
|
4701
|
-
this.
|
4757
|
+
this._dispatchColumnEvent("columnAdded", e);
|
4702
4758
|
} else {
|
4703
4759
|
var ary = Array.isArray(ctx) ? ctx : [];
|
4704
4760
|
for (var i = 0; i < count; ++i) {
|
4705
4761
|
e["colIndex"] = at + i;
|
4706
4762
|
e["context"] = ary[i];
|
4707
|
-
this.
|
4763
|
+
this._dispatchColumnEvent("columnAdded", e);
|
4708
4764
|
}
|
4709
4765
|
}
|
4710
4766
|
}
|
@@ -4846,15 +4902,11 @@ Core.prototype._removeColumn = function (num) { // TODO: change the logic to us
|
|
4846
4902
|
|
4847
4903
|
if (this._hasListener("columnRemoved")) {
|
4848
4904
|
var e = {};
|
4849
|
-
var batches = this._batches;
|
4850
|
-
if(batches){
|
4851
|
-
e["batches"] = batches;
|
4852
|
-
}
|
4853
4905
|
for (var c = colCount; --c >= newCount; ) {
|
4854
4906
|
var colDef = removedCols[c - newCount];
|
4855
4907
|
e["colIndex"] = c;
|
4856
4908
|
e["columnData"] = colDef ? colDef["columnData"] : null;
|
4857
|
-
this.
|
4909
|
+
this._dispatchColumnEvent("columnRemoved", e);
|
4858
4910
|
}
|
4859
4911
|
}
|
4860
4912
|
};
|
@@ -5251,6 +5303,18 @@ Core.prototype._onMouseMove = function () {
|
|
5251
5303
|
this._vscrollbar.flash();
|
5252
5304
|
this._hscrollbar.flash();
|
5253
5305
|
};
|
5306
|
+
/** @private */
|
5307
|
+
Core.prototype._onGridClicked = function () {
|
5308
|
+
// research for dragging
|
5309
|
+
var selection = window.getSelection();
|
5310
|
+
if(selection.toString()){
|
5311
|
+
return;
|
5312
|
+
}
|
5313
|
+
var activeElem = document.activeElement;
|
5314
|
+
if(!this._element.contains(activeElem)){
|
5315
|
+
this.focus();
|
5316
|
+
}
|
5317
|
+
};
|
5254
5318
|
|
5255
5319
|
/** @private
|
5256
5320
|
* @param {Object} e
|
@@ -11,8 +11,9 @@ declare namespace SortableTitlePlugin {
|
|
11
11
|
type SortOrder = "a" | "ascending" | "d" | "descending" | "n" | null|null;
|
12
12
|
|
13
13
|
type InitialSort = {
|
14
|
-
colIndex
|
15
|
-
|
14
|
+
colIndex?: number|null,
|
15
|
+
colId?: string|null,
|
16
|
+
field?: string|null,
|
16
17
|
sortOrder?: SortableTitlePlugin.SortOrder|null,
|
17
18
|
order?: SortableTitlePlugin.SortOrder|null
|
18
19
|
};
|
@@ -81,8 +81,9 @@ Ext.inherits(SortableTitlePlugin, EventDispatcher);
|
|
81
81
|
|
82
82
|
/** The sorting object which will be used for initialSort config.
|
83
83
|
* @typedef {Object} SortableTitlePlugin~InitialSort
|
84
|
-
* @property {number} colIndex Index of the column
|
85
|
-
* @property {string}
|
84
|
+
* @property {number=} colIndex Index of the column
|
85
|
+
* @property {string=} colId column id of the column
|
86
|
+
* @property {string=} field field of the column
|
86
87
|
* @property {SortableTitlePlugin~SortOrder=} sortOrder=null Set to "d" for descending order and "a" for ascending order
|
87
88
|
* @property {SortableTitlePlugin~SortOrder=} order Alias of sortOrder
|
88
89
|
*/
|
@@ -740,6 +741,7 @@ SortableTitlePlugin.prototype.getSortedColumns = function () {
|
|
740
741
|
var state = this._sortStates[i];
|
741
742
|
arr[i] = {
|
742
743
|
"colIndex": colIndex,
|
744
|
+
"colId": this._getColumnId(colIndex),
|
743
745
|
"field": state["field"] || "",
|
744
746
|
"sortOrder": state["sortOrder"] || "n"
|
745
747
|
};
|
@@ -781,7 +783,7 @@ SortableTitlePlugin.prototype.sortColumns = function (sortOptions, opt_arg) {
|
|
781
783
|
var opt = sortOptions[i];
|
782
784
|
var colRef = opt["colIndex"];
|
783
785
|
if(colRef < 0 || colRef == null) {
|
784
|
-
colRef = opt["field"];
|
786
|
+
colRef = opt["colId"] || opt["field"];
|
785
787
|
}
|
786
788
|
var state = this._prepareSorting(
|
787
789
|
colRef,
|
@@ -1368,19 +1370,9 @@ SortableTitlePlugin.prototype._prepareSorting = function (colRef, sortOrder) {
|
|
1368
1370
|
return null;
|
1369
1371
|
}
|
1370
1372
|
|
1371
|
-
var colIndex =
|
1372
|
-
var
|
1373
|
-
var
|
1374
|
-
if(typeof colRef === "number") {
|
1375
|
-
colIndex = colRef;
|
1376
|
-
field = this.getColumnSortingField(colIndex);
|
1377
|
-
priority = this.getSortPriority(colIndex);
|
1378
|
-
} else if(typeof colRef === "string") {
|
1379
|
-
field = colRef;
|
1380
|
-
colIndex = this._getColumnIndexByField(field);
|
1381
|
-
var fields = this.getColumnSortingFields();
|
1382
|
-
priority = fields.indexOf(field);
|
1383
|
-
}
|
1373
|
+
var colIndex = this._getColumnIndex(colRef);
|
1374
|
+
var priority = this.getSortPriority(colIndex);
|
1375
|
+
var field = this.getColumnSortingField(colIndex);
|
1384
1376
|
|
1385
1377
|
var curState = (priority >= 0) ? this._sortStates[priority] : null;
|
1386
1378
|
var curOrder = curState ? curState["sortOrder"] : "n";
|
@@ -1764,21 +1756,29 @@ SortableTitlePlugin.prototype._getColumnIndexByOptions = function (sortOptions)
|
|
1764
1756
|
return -1;
|
1765
1757
|
};
|
1766
1758
|
/** @private
|
1767
|
-
* @param {string}
|
1759
|
+
* @param {string|number} colRef
|
1768
1760
|
* @return {number}
|
1769
1761
|
*/
|
1770
|
-
SortableTitlePlugin.prototype.
|
1771
|
-
|
1772
|
-
|
1773
|
-
|
1774
|
-
for (var c = 0; c < colCount; ++c) {
|
1775
|
-
if(field === this.getColumnSortingField(c)) {
|
1776
|
-
return c;
|
1777
|
-
}
|
1778
|
-
}
|
1762
|
+
SortableTitlePlugin.prototype._getColumnIndex = function (colRef) {
|
1763
|
+
var host = this._hosts[0];
|
1764
|
+
if(host && colRef != null) {
|
1765
|
+
return host.getColumnIndex(colRef);
|
1779
1766
|
}
|
1780
1767
|
return -1;
|
1781
1768
|
};
|
1769
|
+
|
1770
|
+
/** @private
|
1771
|
+
* @param {string|number} colRef
|
1772
|
+
* @return {string} column id or empty string for not found
|
1773
|
+
*/
|
1774
|
+
SortableTitlePlugin.prototype._getColumnId = function (colRef) {
|
1775
|
+
var host = this._hosts[0];
|
1776
|
+
if(host && colRef != null) {
|
1777
|
+
return host.getColumnId(colRef);
|
1778
|
+
}
|
1779
|
+
return "";
|
1780
|
+
};
|
1781
|
+
|
1782
1782
|
/** @private
|
1783
1783
|
* @param {number} colIndex
|
1784
1784
|
* @return {Object}
|
@@ -2,23 +2,46 @@
|
|
2
2
|
* @namespace
|
3
3
|
*/
|
4
4
|
var Util = {};
|
5
|
+
|
6
|
+
// TODO: move to tr-grid-util
|
7
|
+
|
5
8
|
/** @const
|
6
9
|
* @type {boolean}
|
7
10
|
*/
|
8
|
-
Util.isIE =
|
11
|
+
Util.isIE = (function () {
|
9
12
|
var ua = window.navigator.userAgent;
|
10
13
|
return (ua.indexOf('MSIE ') > 0) || (ua.indexOf('Trident/') > 0) || (ua.indexOf('Edge/') > 0);
|
11
14
|
}());
|
12
15
|
/** @const
|
13
16
|
* @type {boolean}
|
14
17
|
*/
|
15
|
-
Util.isTouchDevice =
|
18
|
+
Util.isTouchDevice = (function () {
|
16
19
|
if ((navigator["maxTouchPoints"] && navigator["maxTouchPoints"] < 256) ||
|
17
20
|
(navigator["msMaxTouchPoints"] && navigator["msMaxTouchPoints"] < 256)) {
|
18
21
|
return true;
|
19
22
|
}
|
20
23
|
return false;
|
21
24
|
}());
|
25
|
+
/** @const
|
26
|
+
* @type {boolean}
|
27
|
+
*/
|
28
|
+
Util.isSafari = (function () {
|
29
|
+
var rejectedExpression = /Chrome|Android|CriOS|FxiOS|EdgiOS/i;
|
30
|
+
var safariExpression = /Safari/i;
|
31
|
+
var agent = navigator.userAgent;
|
32
|
+
if (rejectedExpression.test(agent)) {
|
33
|
+
return false;
|
34
|
+
}
|
35
|
+
return safariExpression.test(agent);
|
36
|
+
}());
|
37
|
+
|
38
|
+
/** @public
|
39
|
+
* @type {boolean}
|
40
|
+
*/
|
41
|
+
Util.isMobile = (function () {
|
42
|
+
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
43
|
+
}());
|
44
|
+
|
22
45
|
/** Retrieve an element from Novakit control or any object that has "getElement" method.
|
23
46
|
* @public
|
24
47
|
* @ignore
|
@@ -364,12 +387,5 @@ Util._preventDefault = function (e) {
|
|
364
387
|
e.stopPropagation();
|
365
388
|
};
|
366
389
|
|
367
|
-
/** @public
|
368
|
-
* @type {boolean}
|
369
|
-
*/
|
370
|
-
Util.isMobile = Util.isMobile || (function () {
|
371
|
-
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
372
|
-
}());
|
373
|
-
|
374
390
|
export default Util;
|
375
391
|
export { Util };
|
package/lib/grid/index.js
CHANGED