@refinitiv-ui/efx-grid 6.0.100 → 6.0.102
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 +289 -532
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataCache.d.ts +0 -12
- package/lib/core/es6/data/DataCache.js +11 -371
- package/lib/core/es6/data/WrappedView.d.ts +1 -0
- package/lib/core/es6/data/WrappedView.js +1 -0
- package/lib/core/es6/grid/Core.js +1 -1
- package/lib/core/es6/grid/LayoutGrid.d.ts +1 -0
- package/lib/core/es6/grid/LayoutGrid.js +25 -2
- package/lib/core/es6/grid/VirtualizedLayoutGrid.d.ts +1 -0
- package/lib/core/es6/grid/VirtualizedLayoutGrid.js +24 -104
- package/lib/core/es6/grid/util/CellBoundPainter.d.ts +16 -0
- package/lib/core/es6/grid/util/CellBoundPainter.js +171 -0
- package/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +10 -1
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/ColumnDefinition.d.ts +1 -1
- package/lib/rt-grid/es6/ColumnDefinition.js +1 -1
- package/lib/rt-grid/es6/RowDefinition.js +9 -0
- package/lib/tr-grid-cell-selection/es6/CellSelection.js +22 -8
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +6 -3
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +79 -18
- package/lib/types/es6/Core/grid/Core.d.ts +2 -0
- package/lib/types/es6/Core/grid/LayoutGrid.d.ts +1 -0
- package/lib/types/es6/Core/grid/VirtualizedLayoutGrid.d.ts +1 -0
- package/lib/types/es6/Core/grid/util/CellBoundPainter.d.ts +16 -0
- package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +4 -1
- package/lib/versions.json +3 -3
- package/package.json +1 -1
@@ -50,7 +50,7 @@ import Engine from "../../tr-grid-util/es6/formula/Engine.js";
|
|
50
50
|
* @property {boolean=} leftPinned=false If enabled, the column will not be part of the scrollable area and is pinned to the left side
|
51
51
|
* @property {boolean=} rightPinned=false If enabled, the column will not be part of the scrollable area and is pinned to the right side
|
52
52
|
* @property {Object=} info=null For storing any additional information to the column
|
53
|
-
* @property {boolean} focusable=false If enabled, the column will be used to find focusable element when pressing tab key
|
53
|
+
* @property {boolean=} focusable=false If enabled, the column will be used to find focusable element when pressing tab key
|
54
54
|
*/
|
55
55
|
|
56
56
|
/** mapping of field type to javascript type
|
@@ -1130,6 +1130,11 @@ RowDefinition.prototype._toRealTimeRow = function() {
|
|
1130
1130
|
this._parent = null;
|
1131
1131
|
this._depthLevel = 0;
|
1132
1132
|
|
1133
|
+
// Add static value to the new allocated row
|
1134
|
+
if(this._staticValues) {
|
1135
|
+
this.setRowData(this._staticValues);
|
1136
|
+
}
|
1137
|
+
|
1133
1138
|
this.subscribeForUpdates();
|
1134
1139
|
};
|
1135
1140
|
|
@@ -1148,8 +1153,12 @@ RowDefinition.prototype.unlinkChain = function() {
|
|
1148
1153
|
}
|
1149
1154
|
}
|
1150
1155
|
|
1156
|
+
let staticData = this._getStaticRowData();
|
1151
1157
|
this.unsubscribeForUpdates();
|
1152
1158
|
|
1159
|
+
// Restore static data
|
1160
|
+
this.setStaticRowData(staticData);
|
1161
|
+
|
1153
1162
|
let view = this._view;
|
1154
1163
|
if(view) {
|
1155
1164
|
let rid = this.getRowId();
|
@@ -474,8 +474,11 @@ CellSelectionPlugin.prototype._onMouseMove = function (e) {
|
|
474
474
|
}
|
475
475
|
var activeGrid = this._getActiveGrid();
|
476
476
|
var newMouse = activeGrid.getRelativePosition(e);
|
477
|
-
|
478
|
-
|
477
|
+
|
478
|
+
// Avoid cross section selection but scrolling is still working
|
479
|
+
if (this._anchor["sectionType"] === "title" && newMouse["sectionType"] !== "title") {
|
480
|
+
return;
|
481
|
+
} else if (this._anchor["sectionType"] === "content" && newMouse["sectionType"] === "title") {
|
479
482
|
return;
|
480
483
|
}
|
481
484
|
if (!newMouse['hit']) {
|
@@ -1158,17 +1161,24 @@ CellSelectionPlugin.prototype._updateSelection = function (tgtRect) {
|
|
1158
1161
|
var x = this._curRect.left;
|
1159
1162
|
var y = this._curRect.top;
|
1160
1163
|
var mapInfo = this._map[y];
|
1161
|
-
var contentType = mapInfo ? mapInfo.type === "content" : false;
|
1162
1164
|
var w = 0;
|
1163
1165
|
var h = 0;
|
1164
|
-
if (
|
1166
|
+
if (mapInfo) {
|
1165
1167
|
w = this._curRect.right - x;
|
1166
1168
|
h = this._curRect.bottom - y;
|
1167
1169
|
y -= mapInfo.rowOffset;
|
1168
|
-
|
1169
|
-
|
1170
|
-
|
1171
|
-
|
1170
|
+
var contentType = mapInfo.type;
|
1171
|
+
if (contentType === "content") {
|
1172
|
+
var contentSect = activeGrid.getSection("content");
|
1173
|
+
if (contentSect) {
|
1174
|
+
contentSect.setCellBounds(x, y, w, h);
|
1175
|
+
}
|
1176
|
+
} else {
|
1177
|
+
var titleSect = activeGrid.getSection("title");
|
1178
|
+
if (titleSect) {
|
1179
|
+
titleSect.setCellBounds(x, y, w, h);
|
1180
|
+
}
|
1181
|
+
}
|
1172
1182
|
}
|
1173
1183
|
}
|
1174
1184
|
};
|
@@ -1359,6 +1369,10 @@ CellSelectionPlugin.prototype.deselectAll = function () {
|
|
1359
1369
|
if (contentSect) {
|
1360
1370
|
contentSect.setCellBounds(0, 0, 0, 0);
|
1361
1371
|
}
|
1372
|
+
var titleSect = activeGrid.getSection("title");
|
1373
|
+
if (titleSect) {
|
1374
|
+
titleSect.setCellBounds(0, 0, 0, 0);
|
1375
|
+
}
|
1362
1376
|
}
|
1363
1377
|
this._lastSelection = this.getSelectionBounds();
|
1364
1378
|
this._anchor = null;
|
@@ -884,10 +884,13 @@ InCellEditingPlugin.prototype.unload = function (host) {
|
|
884
884
|
clearTimeout(this._editorTimerId);
|
885
885
|
}
|
886
886
|
window.removeEventListener("scroll", this._onScroll);
|
887
|
+
if(this._starterTextPopup) {
|
888
|
+
this._starterTextPopup.dispose();
|
889
|
+
}
|
887
890
|
}
|
888
|
-
|
889
|
-
|
890
|
-
this.
|
891
|
+
if(this.isEditing()) {
|
892
|
+
this.closeRowEditor(false);
|
893
|
+
this.closeCellEditor(false);
|
891
894
|
}
|
892
895
|
this._dispose();
|
893
896
|
};
|
@@ -136,6 +136,42 @@ let _arrayConcat = function(ary, val) {
|
|
136
136
|
}
|
137
137
|
return ary;
|
138
138
|
};
|
139
|
+
|
140
|
+
/** @type {Object}
|
141
|
+
* @private
|
142
|
+
* @const
|
143
|
+
*/
|
144
|
+
const BlankValues = {
|
145
|
+
"": true,
|
146
|
+
"null": true,
|
147
|
+
"undefined": true,
|
148
|
+
"NaN": true
|
149
|
+
};
|
150
|
+
/** @private
|
151
|
+
* @function
|
152
|
+
* @param {Array} ary
|
153
|
+
* @param {string} str
|
154
|
+
* @returns {boolean} Returns true if there is any change
|
155
|
+
*/
|
156
|
+
let _pushRawValue = function(ary, str) {
|
157
|
+
if(str) {
|
158
|
+
if(!BlankValues[str]) {
|
159
|
+
let dateObj = stringToDateObject(str);
|
160
|
+
if(dateObj !== str) {
|
161
|
+
ary.push(dateObj);
|
162
|
+
} else {
|
163
|
+
try {
|
164
|
+
ary.push(JSON.parse(str));
|
165
|
+
} catch (err) {
|
166
|
+
ary.push(str);
|
167
|
+
}
|
168
|
+
}
|
169
|
+
return true;
|
170
|
+
}
|
171
|
+
}
|
172
|
+
return false;
|
173
|
+
};
|
174
|
+
|
139
175
|
/** @private
|
140
176
|
* @function
|
141
177
|
* @param {Object} obj
|
@@ -670,8 +706,8 @@ RowFilteringPlugin.prototype._parseFilter = function(exp, colIndex, ctx) {
|
|
670
706
|
rawDataAccessor = ctx.rawDataAccessor || null;
|
671
707
|
formattedDataAccessor = ctx.formattedDataAccessor || null;
|
672
708
|
}
|
673
|
-
if(!Array.isArray(exp)) {
|
674
|
-
if(exp[BLANKS] || (ctx && ctx.blankValues)) {
|
709
|
+
if(!Array.isArray(exp)) { // If exp is an object
|
710
|
+
if(exp[BLANKS] || (ctx && ctx.blankValues)) { // it contains BLANKS key or context object has blank option
|
675
711
|
exp[""] = exp["null"] = exp["undefined"] = exp["NaN"] = true;
|
676
712
|
delete exp[BLANKS];
|
677
713
|
}
|
@@ -1485,7 +1521,7 @@ let _valueToString = function(formattedVal, rawVal) {
|
|
1485
1521
|
} else if(formattedVal instanceof Date) {
|
1486
1522
|
return formattedVal.toLocaleString("en-GB");
|
1487
1523
|
} else { // Object type cannot be converted to string
|
1488
|
-
return"";
|
1524
|
+
return "";
|
1489
1525
|
}
|
1490
1526
|
} else if(formattedVal === 0) {
|
1491
1527
|
return "0";
|
@@ -1650,23 +1686,34 @@ RowFilteringPlugin._formatArrayExpression = function(exp, field, formatter) {
|
|
1650
1686
|
ary.rawValue = val;
|
1651
1687
|
ary.formattedValue = formattedVal;
|
1652
1688
|
}
|
1653
|
-
if(
|
1654
|
-
if(
|
1689
|
+
if(typeof val !== "string" && val != null) {
|
1690
|
+
if(field && formatter) {
|
1655
1691
|
let dummyRow = {};
|
1656
1692
|
dummyRow[field] = val;
|
1657
1693
|
formattedVal = formatter(dummyRow);
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
|
1694
|
+
} else {
|
1695
|
+
formattedVal = _valueToString(val, val);
|
1696
|
+
}
|
1697
|
+
if(formattedVal) {
|
1698
|
+
ary.rawValue = val;
|
1699
|
+
ary.formattedValue = formattedVal;
|
1700
|
+
} else {
|
1701
|
+
formattedVal = val;
|
1663
1702
|
}
|
1664
1703
|
}
|
1665
|
-
ary[1] =
|
1704
|
+
ary[1] = formattedVal;
|
1666
1705
|
return ary;
|
1667
1706
|
}
|
1668
1707
|
return null;
|
1669
1708
|
};
|
1709
|
+
/** For mocking dialog instance
|
1710
|
+
* @public
|
1711
|
+
* @ignore
|
1712
|
+
* @param {*} dialog
|
1713
|
+
*/
|
1714
|
+
RowFilteringPlugin.prototype.setDialog = function(dialog) {
|
1715
|
+
this._filterDialog = dialog;
|
1716
|
+
};
|
1670
1717
|
/** @public
|
1671
1718
|
* @param {number} colIndex
|
1672
1719
|
* @param {RowFilteringPlugin~FilterDialogOptions=} runtimeDialogOptions
|
@@ -1802,22 +1849,36 @@ RowFilteringPlugin.prototype.openDialog = function(colIndex, runtimeDialogOption
|
|
1802
1849
|
let filterFuncs = null;
|
1803
1850
|
let exp = colSettings.expression;
|
1804
1851
|
if(exp) {
|
1852
|
+
let userInputs = [];
|
1853
|
+
if(cfo._filters && cfo._filters.length) {
|
1854
|
+
filterFuncs = cfo._filters;
|
1855
|
+
}
|
1805
1856
|
if(Array.isArray(exp)) {
|
1806
1857
|
if(exp.length) {
|
1807
1858
|
condition2D = Array.isArray(exp[0]) ? exp.slice() : [exp]; // Guaranteed condition2D to be a 2D array
|
1808
|
-
|
1809
|
-
|
1859
|
+
let conditionAry = null;
|
1860
|
+
conditionAry = RowFilteringPlugin._formatArrayExpression(condition2D[0], field, formatter);
|
1861
|
+
condition2D[0] = conditionAry;
|
1862
|
+
if(conditionAry) {
|
1863
|
+
_pushRawValue(userInputs, conditionAry.rawValue != null ? conditionAry.rawValue : conditionAry[1]);
|
1864
|
+
}
|
1865
|
+
|
1866
|
+
conditionAry = RowFilteringPlugin._formatArrayExpression(condition2D[1], field, formatter);
|
1867
|
+
condition2D[1] = conditionAry;
|
1868
|
+
if(conditionAry) {
|
1869
|
+
_pushRawValue(userInputs, conditionAry.rawValue != null ? conditionAry.rawValue : conditionAry[1]);
|
1870
|
+
}
|
1871
|
+
|
1810
1872
|
filterMode = "advanced";
|
1811
1873
|
}
|
1812
1874
|
} else if(typeof exp === "function" || typeof exp === "string" || typeof exp === "object") {
|
1813
|
-
if(cfo._filters && cfo._filters.length) {
|
1814
|
-
filterFuncs = cfo._filters;
|
1815
|
-
}
|
1816
1875
|
if(typeof exp === "object") {
|
1817
|
-
|
1818
|
-
|
1876
|
+
for(let expKey in exp) {
|
1877
|
+
_pushRawValue(userInputs, expKey);
|
1878
|
+
}
|
1819
1879
|
}
|
1820
1880
|
}
|
1881
|
+
dialogConfig.additionalItems = _arrayConcat(dialogConfig.additionalItems, userInputs);
|
1821
1882
|
}
|
1822
1883
|
|
1823
1884
|
let selectedItems = {};
|
@@ -327,6 +327,8 @@ declare class Core extends ElementWrapper {
|
|
327
327
|
|
328
328
|
public scrollToRow(sectionRef: Core.SectionReference|null, rowIndex: number, topOfView?: boolean|null): void;
|
329
329
|
|
330
|
+
public getVerticalViewInfo(): any;
|
331
|
+
|
330
332
|
public getVScrollView(): any;
|
331
333
|
|
332
334
|
public getScrollTop(): number;
|
@@ -11,6 +11,7 @@ import SelectionList from "./util/SelectionList.js";
|
|
11
11
|
import ILayoutGrid from "./ILayoutGrid.js";
|
12
12
|
import ElementWrapper from "./components/ElementWrapper.js";
|
13
13
|
import HScrollbar from "./components/HScrollbar.js";
|
14
|
+
import CellBoundPainter from "./util/CellBoundPainter.js";
|
14
15
|
|
15
16
|
declare class LayoutGrid extends ElementWrapper {
|
16
17
|
|
@@ -6,6 +6,7 @@ import ILayoutGrid from "./ILayoutGrid.js";
|
|
6
6
|
import LayoutGrid from "./LayoutGrid.js";
|
7
7
|
import ElementWrapper from "./components/ElementWrapper.js";
|
8
8
|
import HScrollbar from "./components/HScrollbar.js";
|
9
|
+
import CellBoundPainter from "./util/CellBoundPainter.js";
|
9
10
|
|
10
11
|
declare class VirtualizedLayoutGrid extends ElementWrapper {
|
11
12
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
declare class CellBoundPainter {
|
4
|
+
|
5
|
+
constructor(ctx: any);
|
6
|
+
|
7
|
+
public dispose(): void;
|
8
|
+
|
9
|
+
public setCellBounds(colIndex: number, rowIndex: number, width: number, height: number, colCount: number): void;
|
10
|
+
|
11
|
+
public updateCellBounds(): void;
|
12
|
+
|
13
|
+
}
|
14
|
+
|
15
|
+
export default CellBoundPainter;
|
16
|
+
export { CellBoundPainter };
|
@@ -45,7 +45,8 @@ declare namespace ColumnDefinition {
|
|
45
45
|
stationary?: boolean|null,
|
46
46
|
leftPinned?: boolean|null,
|
47
47
|
rightPinned?: boolean|null,
|
48
|
-
info?: any
|
48
|
+
info?: any,
|
49
|
+
focusable?: boolean|null
|
49
50
|
};
|
50
51
|
|
51
52
|
}
|
@@ -160,6 +161,8 @@ declare class ColumnDefinition {
|
|
160
161
|
|
161
162
|
public getColumnInfo(): any;
|
162
163
|
|
164
|
+
public isFocusable(): boolean;
|
165
|
+
|
163
166
|
}
|
164
167
|
|
165
168
|
declare const COL_DEF: string;
|
package/lib/versions.json
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
"@grid/statistics-row": "1.0.17",
|
7
7
|
"@grid/zoom": "1.0.11",
|
8
8
|
"tr-grid-auto-tooltip": "1.1.6",
|
9
|
-
"tr-grid-cell-selection": "1.0.
|
9
|
+
"tr-grid-cell-selection": "1.0.38",
|
10
10
|
"tr-grid-checkbox": "1.0.67",
|
11
11
|
"tr-grid-column-fitter": "1.0.40",
|
12
12
|
"tr-grid-column-formatting": "0.9.36",
|
@@ -19,12 +19,12 @@
|
|
19
19
|
"tr-grid-contextmenu": "1.0.41",
|
20
20
|
"tr-grid-filter-input": "0.9.39",
|
21
21
|
"tr-grid-heat-map": "1.0.29",
|
22
|
-
"tr-grid-in-cell-editing": "1.0.
|
22
|
+
"tr-grid-in-cell-editing": "1.0.86",
|
23
23
|
"tr-grid-pagination": "1.0.24",
|
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.
|
27
|
+
"tr-grid-row-filtering": "1.0.76",
|
28
28
|
"tr-grid-row-grouping": "1.0.87",
|
29
29
|
"tr-grid-row-selection": "1.0.30",
|
30
30
|
"tr-grid-rowcoloring": "1.0.25",
|
package/package.json
CHANGED