@refinitiv-ui/efx-grid 6.0.151 → 6.0.153
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/grid/index.js
CHANGED
@@ -61,7 +61,8 @@ declare namespace RowFilteringPlugin {
|
|
61
61
|
filterChanged?: ((...params: any[]) => any)|null,
|
62
62
|
beforeDialogOpened?: ((...params: any[]) => any)|null,
|
63
63
|
dialogCommitted?: ((...params: any[]) => any)|null,
|
64
|
-
refreshed?: ((...params: any[]) => any)|null
|
64
|
+
refreshed?: ((...params: any[]) => any)|null,
|
65
|
+
activeIconState?: boolean|null
|
65
66
|
};
|
66
67
|
|
67
68
|
}
|
@@ -120,6 +121,10 @@ declare class RowFilteringPlugin extends GridPlugin {
|
|
120
121
|
|
121
122
|
public getColumnFilterIcons(colIndex: number): (Element)[]|null;
|
122
123
|
|
124
|
+
public setColumnFilterIconState(colIndex: number, active: boolean): void;
|
125
|
+
|
126
|
+
public getColumnFilterIconState(colIndex: number): boolean;
|
127
|
+
|
123
128
|
public updateAllColumnIcons(): void;
|
124
129
|
|
125
130
|
public addDataView(dv: any): void;
|
@@ -118,6 +118,7 @@ The expression can take various forms:<br>
|
|
118
118
|
* @property {Function=} beforeDialogOpened=null Event handler dispatched before dialog opening.
|
119
119
|
* @property {Function=} dialogCommitted=null Event handler dispatched whenever the new settings from dialog are applied.
|
120
120
|
* @property {Function=} refreshed=null Event handler dispatched after new filter is applied to grid's data view.
|
121
|
+
* @property {boolean=} activeIconState=true If disabled, filter icon won't be automatically changed its state when filter in a column is changed.
|
121
122
|
*/
|
122
123
|
|
123
124
|
/** @private
|
@@ -336,12 +337,15 @@ RowFilteringPlugin._filterBuilder = null;
|
|
336
337
|
* @private
|
337
338
|
*/
|
338
339
|
RowFilteringPlugin._dialogTagName; // intentionally left undefined
|
339
|
-
|
340
340
|
/** Array of DataView objects
|
341
341
|
* @type {!Array.<Object>}
|
342
342
|
* @private
|
343
343
|
*/
|
344
344
|
RowFilteringPlugin.prototype._dvs;
|
345
|
+
/** @type {boolean}
|
346
|
+
* @private
|
347
|
+
*/
|
348
|
+
RowFilteringPlugin.prototype._activeIconState = true;
|
345
349
|
|
346
350
|
|
347
351
|
/** @public
|
@@ -552,6 +556,9 @@ RowFilteringPlugin.prototype.config = function (options) {
|
|
552
556
|
if(rowFiltering["dialogOptions"]){
|
553
557
|
this._dialogOptions = rowFiltering["dialogOptions"];
|
554
558
|
}
|
559
|
+
if(rowFiltering["activeIconState"] != null){
|
560
|
+
this._activeIconState = !!rowFiltering["activeIconState"];
|
561
|
+
}
|
555
562
|
if(rowFiltering["clicked"]) {
|
556
563
|
rowFiltering["click"] = rowFiltering["clicked"];
|
557
564
|
}
|
@@ -635,6 +642,10 @@ RowFilteringPlugin.prototype.getConfigObject = function (gridOptions) {
|
|
635
642
|
extOptions.dialogOptions = this._dialogOptions; // TODO: dialogOptions should not contain any function
|
636
643
|
dirty = true;
|
637
644
|
}
|
645
|
+
if(!this._activeIconState) {
|
646
|
+
extOptions.activeIconState = false;
|
647
|
+
dirty = true;
|
648
|
+
}
|
638
649
|
// TODO: get emptySegmentFiltering setting from DataView
|
639
650
|
// TODO: get separatorFiltering setting from DataView
|
640
651
|
if(dirty) {
|
@@ -1211,26 +1222,74 @@ RowFilteringPlugin.prototype.setFilterExpressions = function(filterExps) {
|
|
1211
1222
|
RowFilteringPlugin.prototype.hasColumnFilter = function() {
|
1212
1223
|
return (this._columnFilters.length > 0);
|
1213
1224
|
};
|
1214
|
-
|
1225
|
+
|
1226
|
+
/** @private
|
1215
1227
|
* @param {number} colIndex
|
1216
|
-
* @return {Array.<Element>}
|
1228
|
+
* @return {Array.<Element>} Bottom cells from title section of all grids
|
1217
1229
|
*/
|
1218
|
-
RowFilteringPlugin.prototype.
|
1219
|
-
|
1230
|
+
RowFilteringPlugin.prototype._getBottomTitleCells = function(colIndex) {
|
1231
|
+
var cells = [];
|
1220
1232
|
for(let i = this._hosts.length; --i >= 0;) {
|
1221
1233
|
let host = this._hosts[i];
|
1222
1234
|
let tsect = host.getSection("title");
|
1223
|
-
if(
|
1224
|
-
|
1235
|
+
if(tsect) {
|
1236
|
+
let rowCount = tsect.getRowCount();
|
1237
|
+
let cell = tsect.getCell(colIndex, rowCount - 1, true); // Get bottom cell
|
1238
|
+
if(cell) {
|
1239
|
+
cells.push(cell);
|
1240
|
+
}
|
1225
1241
|
}
|
1226
|
-
|
1227
|
-
|
1228
|
-
|
1242
|
+
}
|
1243
|
+
return cells;
|
1244
|
+
};
|
1245
|
+
/** @public
|
1246
|
+
* @param {number} colIndex
|
1247
|
+
* @return {Array.<Element>} icons
|
1248
|
+
*/
|
1249
|
+
RowFilteringPlugin.prototype.getColumnFilterIcons = function(colIndex) {
|
1250
|
+
let icons = [];
|
1251
|
+
let cells = this._getBottomTitleCells(colIndex);
|
1252
|
+
let len = cells.length;
|
1253
|
+
for(let i = 0; i < len; ++i) {
|
1254
|
+
let cell = cells[i];
|
1255
|
+
if(cell._filterIcon) {
|
1229
1256
|
icons.push(cell._filterIcon);
|
1230
1257
|
}
|
1231
1258
|
}
|
1232
1259
|
return icons;
|
1233
1260
|
};
|
1261
|
+
/** Change specified filter icon state regardless of existing filter in the column. This method does NOT change the visibility of the icon.
|
1262
|
+
* @public
|
1263
|
+
* @param {number} colIndex
|
1264
|
+
* @param {boolean} active
|
1265
|
+
*/
|
1266
|
+
RowFilteringPlugin.prototype.setColumnFilterIconState = function(colIndex, active) {
|
1267
|
+
let cells = this._getBottomTitleCells(colIndex);
|
1268
|
+
let len = cells.length;
|
1269
|
+
for(let i = 0; i < len; ++i) {
|
1270
|
+
let cell = cells[i];
|
1271
|
+
if(cell._filterIcon) {
|
1272
|
+
cell.enableClass("active-filter", active);
|
1273
|
+
}
|
1274
|
+
}
|
1275
|
+
};
|
1276
|
+
/** @public
|
1277
|
+
* @param {number} colIndex
|
1278
|
+
* @returns {boolean} active
|
1279
|
+
*/
|
1280
|
+
RowFilteringPlugin.prototype.getColumnFilterIconState = function(colIndex) {
|
1281
|
+
let cells = this._getBottomTitleCells(colIndex);
|
1282
|
+
let len = cells.length;
|
1283
|
+
for(let i = 0; i < len; ++i) {
|
1284
|
+
let cell = cells[i];
|
1285
|
+
if(cell._filterIcon) {
|
1286
|
+
if(cell.hasClass("active-filter")) {
|
1287
|
+
return true;
|
1288
|
+
}
|
1289
|
+
}
|
1290
|
+
}
|
1291
|
+
return false;
|
1292
|
+
};
|
1234
1293
|
/** @public */
|
1235
1294
|
RowFilteringPlugin.prototype.updateAllColumnIcons = function() {
|
1236
1295
|
if(this._uiTimerId) {
|
@@ -1451,16 +1510,20 @@ RowFilteringPlugin.prototype._updateColumnIcon = function(colIndex) {
|
|
1451
1510
|
cell.insertFloatingIcon(filterIcon, 10);
|
1452
1511
|
cell._filterIcon = filterIcon;
|
1453
1512
|
}
|
1454
|
-
if(
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1513
|
+
if(this._activeIconState) {
|
1514
|
+
if(hasFilter){
|
1515
|
+
cell.enableClass("active-filter", true);
|
1516
|
+
}else{
|
1517
|
+
cell.enableClass("active-filter", false);
|
1518
|
+
}
|
1458
1519
|
}
|
1459
1520
|
} else {
|
1460
1521
|
if(cell._filterIcon) {
|
1461
1522
|
cell.removeFloatingIcon(cell._filterIcon);
|
1462
1523
|
cell._filterIcon = null;
|
1463
|
-
|
1524
|
+
if(this._activeIconState) {
|
1525
|
+
cell.enableClass("active-filter", false);
|
1526
|
+
}
|
1464
1527
|
}
|
1465
1528
|
}
|
1466
1529
|
}
|
@@ -61,7 +61,8 @@ declare namespace RowFilteringPlugin {
|
|
61
61
|
filterChanged?: ((...params: any[]) => any)|null,
|
62
62
|
beforeDialogOpened?: ((...params: any[]) => any)|null,
|
63
63
|
dialogCommitted?: ((...params: any[]) => any)|null,
|
64
|
-
refreshed?: ((...params: any[]) => any)|null
|
64
|
+
refreshed?: ((...params: any[]) => any)|null,
|
65
|
+
activeIconState?: boolean|null
|
65
66
|
};
|
66
67
|
|
67
68
|
}
|
@@ -120,6 +121,10 @@ declare class RowFilteringPlugin extends GridPlugin {
|
|
120
121
|
|
121
122
|
public getColumnFilterIcons(colIndex: number): (Element)[]|null;
|
122
123
|
|
124
|
+
public setColumnFilterIconState(colIndex: number, active: boolean): void;
|
125
|
+
|
126
|
+
public getColumnFilterIconState(colIndex: number): boolean;
|
127
|
+
|
123
128
|
public updateAllColumnIcons(): void;
|
124
129
|
|
125
130
|
public addDataView(dv: any): void;
|
package/lib/versions.json
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
"tr-grid-percent-bar": "1.0.24",
|
25
25
|
"tr-grid-range-bar": "2.0.9",
|
26
26
|
"tr-grid-row-dragging": "1.0.39",
|
27
|
-
"tr-grid-row-filtering": "1.0.
|
27
|
+
"tr-grid-row-filtering": "1.0.90",
|
28
28
|
"tr-grid-row-grouping": "1.0.88",
|
29
29
|
"tr-grid-row-selection": "1.0.33",
|
30
30
|
"tr-grid-rowcoloring": "1.0.26",
|
package/package.json
CHANGED