@deephaven/iris-grid 0.15.1-beta.4 → 0.15.2-beta.6
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/dist/GotoRow.css +17 -22
- package/dist/GotoRow.css.map +1 -1
- package/dist/GotoRow.d.ts +6 -3
- package/dist/GotoRow.d.ts.map +1 -1
- package/dist/GotoRow.js +38 -33
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.d.ts +8 -4
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +92 -12
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridRenderer.js +3 -2
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +16 -13
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +285 -227
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/package.json +16 -16
|
@@ -7,7 +7,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
7
7
|
/* eslint class-methods-use-this: "off" */
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
10
|
-
import { dhFilterFilled, vsRemove, vsCheck, vsFilter
|
|
10
|
+
import { dhFilterFilled, vsRemove, vsCheck, vsFilter } from '@deephaven/icons';
|
|
11
11
|
import debounce from 'lodash.debounce';
|
|
12
12
|
import { ContextActions, ContextActionUtils, GLOBAL_SHORTCUTS } from '@deephaven/components';
|
|
13
13
|
import { GridMouseHandler, isEditableGridModel } from '@deephaven/grid';
|
|
@@ -27,33 +27,41 @@ var CONTEXT_MENU_DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss.SSSSSSSSS';
|
|
|
27
27
|
|
|
28
28
|
class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
29
29
|
/**
|
|
30
|
-
* Get filter condition for quick filter with
|
|
31
|
-
* returns new filter if
|
|
32
|
-
* if filters are additive, returns filter conditions combined with 'and'.
|
|
30
|
+
* Get filter condition for quick filter and combines with a new filter using the operator specified,
|
|
31
|
+
* returns new filter if no operator supplied.
|
|
33
32
|
* @param columnFilter
|
|
34
33
|
* @param newColumnFilter
|
|
35
|
-
* @param
|
|
34
|
+
* @param operator
|
|
36
35
|
*/
|
|
37
|
-
static getQuickFilterCondition(columnFilter, newColumnFilter) {
|
|
38
|
-
|
|
36
|
+
static getQuickFilterCondition(columnFilter, newColumnFilter, operator) {
|
|
37
|
+
if (columnFilter && operator === '&&') {
|
|
38
|
+
return columnFilter.and(newColumnFilter);
|
|
39
|
+
}
|
|
39
40
|
|
|
40
|
-
if (
|
|
41
|
-
return newColumnFilter;
|
|
41
|
+
if (columnFilter && operator === '||') {
|
|
42
|
+
return columnFilter.or(newColumnFilter);
|
|
42
43
|
}
|
|
43
44
|
|
|
44
|
-
return
|
|
45
|
+
return newColumnFilter;
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
|
-
* combines filter text with
|
|
48
|
+
* combines filter text with operator if declared
|
|
48
49
|
* @param filterText
|
|
49
50
|
* @param newFilterText
|
|
50
|
-
* @param
|
|
51
|
+
* @param operator
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
static getQuickFilterText(filterText, newFilterText, operator) {
|
|
56
|
+
return operator && filterText ? "".concat(filterText, " ").concat(operator, " ").concat(newFilterText) : newFilterText;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Converts operator to text string,
|
|
51
60
|
*/
|
|
52
61
|
|
|
53
62
|
|
|
54
|
-
static
|
|
55
|
-
|
|
56
|
-
return additive && filterText ? "".concat(filterText, " && ").concat(newFilterText) : newFilterText;
|
|
63
|
+
static getOperatorAsText(operator) {
|
|
64
|
+
return operator === '&&' ? 'And' : 'Or';
|
|
57
65
|
}
|
|
58
66
|
/**
|
|
59
67
|
* Gets an equality filter for the provided numeric value
|
|
@@ -196,7 +204,7 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
196
204
|
action: () => {
|
|
197
205
|
this.irisGrid.clearAllFilters();
|
|
198
206
|
},
|
|
199
|
-
disabled: !(quickFilters.size > 0 || advancedFilters.size > 0 || searchFilter
|
|
207
|
+
disabled: !(quickFilters.size > 0 || advancedFilters.size > 0 || searchFilter != null)
|
|
200
208
|
});
|
|
201
209
|
actions.push({
|
|
202
210
|
title: 'Sort by',
|
|
@@ -319,133 +327,121 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
319
327
|
showTimeZone: settings === null || settings === void 0 ? void 0 : settings.showTimeZone,
|
|
320
328
|
showTSeparator: settings === null || settings === void 0 ? void 0 : settings.showTSeparator,
|
|
321
329
|
defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT
|
|
322
|
-
});
|
|
323
|
-
|
|
324
|
-
if (column != null && rowIndex != null) {
|
|
325
|
-
if (model.isFilterable(modelColumn)) {
|
|
326
|
-
// cell data area contextmenu options
|
|
327
|
-
var filterMenu = {
|
|
328
|
-
title: 'Filter By Value',
|
|
329
|
-
icon: vsRemove,
|
|
330
|
-
iconColor: filterIconColor,
|
|
331
|
-
group: IrisGridContextMenuHandler.GROUP_FILTER,
|
|
332
|
-
order: 10,
|
|
333
|
-
actions: []
|
|
334
|
-
};
|
|
335
|
-
var andFilterMenu = {
|
|
336
|
-
title: 'Add Filter By Value',
|
|
337
|
-
icon: vsRemove,
|
|
338
|
-
iconColor: filterIconColor,
|
|
339
|
-
group: IrisGridContextMenuHandler.GROUP_FILTER,
|
|
340
|
-
order: 20,
|
|
341
|
-
actions: [],
|
|
342
|
-
disabled: !quickFilters.get(modelColumn)
|
|
343
|
-
};
|
|
344
|
-
var gotoRow = {
|
|
345
|
-
title: 'Go to',
|
|
346
|
-
icon: vsReply,
|
|
347
|
-
iconColor: filterIconColor,
|
|
348
|
-
shortcut: SHORTCUTS.TABLE.GOTO_ROW,
|
|
349
|
-
group: IrisGridContextMenuHandler.GROUP_GOTO,
|
|
350
|
-
order: 10,
|
|
351
|
-
action: () => this.irisGrid.handleGotoRowOpened()
|
|
352
|
-
};
|
|
353
|
-
|
|
354
|
-
if (value != null) {
|
|
355
|
-
// Chars get treated like numbers in terms of which filters are available
|
|
356
|
-
if (TableUtils.isNumberType(column.type) || TableUtils.isCharType(column.type)) {
|
|
357
|
-
assertNotNull(modelColumn); // We want to show the full unformatted value if it's a number, so user knows which value they are matching
|
|
358
|
-
// If it's a Char we just show the char
|
|
359
|
-
|
|
360
|
-
var numberValueText = TableUtils.isCharType(column.type) ? String.fromCharCode(value) : "".concat(value);
|
|
361
|
-
filterMenu.actions = this.numberFilterActions(column, numberValueText, value, quickFilters.get(modelColumn));
|
|
362
|
-
andFilterMenu.actions = this.numberFilterActions(column, numberValueText, value, quickFilters.get(modelColumn), true);
|
|
363
|
-
} else if (TableUtils.isBooleanType(column.type)) {
|
|
364
|
-
filterMenu.actions = this.booleanFilterActions(column, valueText);
|
|
365
|
-
andFilterMenu.actions = this.booleanFilterActions(column, valueText, quickFilters.get(modelColumn), true);
|
|
366
|
-
} else if (TableUtils.isDateType(column.type)) {
|
|
367
|
-
var dateValueText = dateFilterFormatter.format(value);
|
|
368
|
-
var previewValue = previewFilterFormatter.format(value);
|
|
369
|
-
filterMenu.actions = this.dateFilterActions(column, dateValueText, previewValue, value);
|
|
370
|
-
andFilterMenu.actions = this.dateFilterActions(column, dateValueText, previewValue, value, quickFilters.get(modelColumn), true);
|
|
371
|
-
} else {
|
|
372
|
-
filterMenu.actions = this.stringFilterActions(column, valueText, value);
|
|
373
|
-
andFilterMenu.actions = this.stringFilterActions(column, valueText, value, quickFilters.get(modelColumn), true);
|
|
374
|
-
}
|
|
375
|
-
} else {
|
|
376
|
-
filterMenu.actions = this.nullFilterActions(column);
|
|
377
|
-
andFilterMenu.actions = this.nullFilterActions(column, quickFilters.get(modelColumn), true);
|
|
378
|
-
}
|
|
330
|
+
});
|
|
331
|
+
if (column == null || rowIndex == null) return actions; // grid data area context menu options
|
|
379
332
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
333
|
+
if (model.isFilterable(modelColumn)) {
|
|
334
|
+
// cell data area contextmenu options
|
|
335
|
+
var filterMenu = {
|
|
336
|
+
title: 'Filter By Value',
|
|
337
|
+
icon: vsRemove,
|
|
338
|
+
iconColor: filterIconColor,
|
|
339
|
+
group: IrisGridContextMenuHandler.GROUP_FILTER,
|
|
340
|
+
order: 10,
|
|
341
|
+
actions: []
|
|
342
|
+
};
|
|
383
343
|
|
|
384
|
-
|
|
385
|
-
|
|
344
|
+
if (value == null) {
|
|
345
|
+
if (quickFilters.get(modelColumn)) {
|
|
346
|
+
filterMenu.actions.push({
|
|
347
|
+
title: 'And',
|
|
348
|
+
actions: this.nullFilterActions(column, quickFilters.get(modelColumn), '&&'),
|
|
349
|
+
order: 2,
|
|
350
|
+
group: ContextActions.groups.high
|
|
351
|
+
});
|
|
386
352
|
}
|
|
387
353
|
|
|
388
|
-
actions.push(
|
|
389
|
-
}
|
|
354
|
+
filterMenu.actions.push(...this.nullFilterActions(column));
|
|
355
|
+
} else if (TableUtils.isBooleanType(column.type)) {
|
|
356
|
+
// boolean should have OR condition, and handles it's own null menu options
|
|
357
|
+
if (quickFilters.get(modelColumn)) {
|
|
358
|
+
filterMenu.actions.push({
|
|
359
|
+
title: 'Or',
|
|
360
|
+
actions: this.booleanFilterActions(column, valueText, quickFilters.get(modelColumn), '||'),
|
|
361
|
+
order: 2,
|
|
362
|
+
group: ContextActions.groups.high
|
|
363
|
+
});
|
|
364
|
+
}
|
|
390
365
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
});
|
|
408
|
-
}
|
|
409
|
-
} // data area, including blank space context menu options
|
|
366
|
+
filterMenu.actions.push(...this.booleanFilterActions(column, valueText));
|
|
367
|
+
} else if (TableUtils.isNumberType(column.type) || TableUtils.isCharType(column.type)) {
|
|
368
|
+
// Chars get treated like numbers in terms of which filters are available
|
|
369
|
+
assertNotNull(modelColumn); // We want to show the full unformatted value if it's a number, so user knows which value they are matching
|
|
370
|
+
// If it's a Char we just show the char
|
|
371
|
+
|
|
372
|
+
var numberValueText = TableUtils.isCharType(column.type) ? String.fromCharCode(value) : "".concat(value);
|
|
373
|
+
|
|
374
|
+
if (quickFilters.get(modelColumn)) {
|
|
375
|
+
filterMenu.actions.push({
|
|
376
|
+
title: 'And',
|
|
377
|
+
actions: this.numberFilterActions(column, numberValueText, value, quickFilters.get(modelColumn), '&&'),
|
|
378
|
+
order: 2,
|
|
379
|
+
group: ContextActions.groups.high
|
|
380
|
+
});
|
|
381
|
+
}
|
|
410
382
|
|
|
383
|
+
filterMenu.actions.push(...this.numberFilterActions(column, numberValueText, value, quickFilters.get(modelColumn)));
|
|
384
|
+
} else if (TableUtils.isDateType(column.type)) {
|
|
385
|
+
var dateValueText = dateFilterFormatter.format(value);
|
|
386
|
+
var previewValue = previewFilterFormatter.format(value);
|
|
387
|
+
|
|
388
|
+
if (quickFilters.get(modelColumn)) {
|
|
389
|
+
filterMenu.actions.push({
|
|
390
|
+
title: 'And',
|
|
391
|
+
actions: this.dateFilterActions(column, dateValueText, previewValue, value, quickFilters.get(modelColumn), '&&'),
|
|
392
|
+
order: 2,
|
|
393
|
+
group: ContextActions.groups.high
|
|
394
|
+
});
|
|
395
|
+
}
|
|
411
396
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
397
|
+
filterMenu.actions.push(...this.dateFilterActions(column, dateValueText, previewValue, value, quickFilters.get(modelColumn)));
|
|
398
|
+
} else {
|
|
399
|
+
if (quickFilters.get(modelColumn)) {
|
|
400
|
+
filterMenu.actions.push({
|
|
401
|
+
title: 'And',
|
|
402
|
+
actions: this.stringFilterActions(column, valueText, value, quickFilters.get(modelColumn), '&&'),
|
|
403
|
+
order: 2,
|
|
404
|
+
group: ContextActions.groups.high
|
|
405
|
+
});
|
|
406
|
+
}
|
|
415
407
|
|
|
416
|
-
|
|
417
|
-
if (canCopy) {
|
|
418
|
-
actions.push({
|
|
419
|
-
title: 'Copy Selection',
|
|
420
|
-
shortcut: GLOBAL_SHORTCUTS.COPY,
|
|
421
|
-
group: IrisGridContextMenuHandler.GROUP_COPY,
|
|
422
|
-
order: 30,
|
|
423
|
-
action: () => {
|
|
424
|
-
irisGrid.copyRanges(selectedRanges);
|
|
425
|
-
}
|
|
426
|
-
});
|
|
427
|
-
actions.push({
|
|
428
|
-
title: 'Copy Selection w/ Headers',
|
|
429
|
-
group: IrisGridContextMenuHandler.GROUP_COPY,
|
|
430
|
-
order: 40,
|
|
431
|
-
action: () => {
|
|
432
|
-
irisGrid.copyRanges(selectedRanges, true);
|
|
433
|
-
}
|
|
434
|
-
});
|
|
408
|
+
filterMenu.actions.push(...this.stringFilterActions(column, valueText, value));
|
|
435
409
|
}
|
|
436
410
|
|
|
437
|
-
if (
|
|
438
|
-
actions.push(
|
|
439
|
-
title: 'Delete Selected Rows',
|
|
440
|
-
group: IrisGridContextMenuHandler.GROUP_EDIT,
|
|
441
|
-
order: 50,
|
|
442
|
-
action: () => {
|
|
443
|
-
this.irisGrid.deleteRanges(selectedRanges);
|
|
444
|
-
}
|
|
445
|
-
});
|
|
411
|
+
if (filterMenu.actions != null && filterMenu.actions.length > 0) {
|
|
412
|
+
actions.push(filterMenu);
|
|
446
413
|
}
|
|
447
414
|
}
|
|
448
415
|
|
|
416
|
+
var gotoRow = {
|
|
417
|
+
title: 'Go to',
|
|
418
|
+
iconColor: filterIconColor,
|
|
419
|
+
shortcut: SHORTCUTS.TABLE.GOTO_ROW,
|
|
420
|
+
group: IrisGridContextMenuHandler.GROUP_GOTO,
|
|
421
|
+
order: 10,
|
|
422
|
+
action: () => this.irisGrid.toggleGotoRow("".concat(rowIndex + 1))
|
|
423
|
+
};
|
|
424
|
+
actions.push(gotoRow);
|
|
425
|
+
|
|
426
|
+
if (canCopy) {
|
|
427
|
+
actions.push({
|
|
428
|
+
title: 'Copy Cell',
|
|
429
|
+
group: IrisGridContextMenuHandler.GROUP_COPY,
|
|
430
|
+
order: 10,
|
|
431
|
+
action: () => {
|
|
432
|
+
irisGrid.copyCell(columnIndex, rowIndex);
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
actions.push({
|
|
436
|
+
title: 'Copy Cell Unformatted',
|
|
437
|
+
group: IrisGridContextMenuHandler.GROUP_COPY,
|
|
438
|
+
order: 20,
|
|
439
|
+
action: () => {
|
|
440
|
+
irisGrid.copyCell(columnIndex, rowIndex, true);
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
|
|
449
445
|
return actions;
|
|
450
446
|
}
|
|
451
447
|
|
|
@@ -461,7 +457,8 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
461
457
|
var modelColumn = irisGrid.getModelColumn(columnIndex);
|
|
462
458
|
var modelRow = irisGrid.getModelRow(rowIndex);
|
|
463
459
|
var {
|
|
464
|
-
model
|
|
460
|
+
model,
|
|
461
|
+
canCopy
|
|
465
462
|
} = irisGrid.props;
|
|
466
463
|
var {
|
|
467
464
|
columns
|
|
@@ -470,7 +467,8 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
470
467
|
metrics,
|
|
471
468
|
isFilterBarShown,
|
|
472
469
|
quickFilters,
|
|
473
|
-
advancedFilters
|
|
470
|
+
advancedFilters,
|
|
471
|
+
selectedRanges
|
|
474
472
|
} = irisGrid.state;
|
|
475
473
|
assertNotNull(metrics);
|
|
476
474
|
var {
|
|
@@ -499,30 +497,63 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
499
497
|
modelColumn
|
|
500
498
|
}));
|
|
501
499
|
}
|
|
500
|
+
}
|
|
502
501
|
|
|
503
|
-
|
|
502
|
+
if (modelColumn != null && model.isFilterable(modelColumn)) {
|
|
503
|
+
// Clear column filter should still be available after last row
|
|
504
|
+
// And should be available in both header and body context menus
|
|
505
|
+
actions.push({
|
|
506
|
+
title: 'Clear Column Filter',
|
|
507
|
+
group: IrisGridContextMenuHandler.GROUP_FILTER,
|
|
508
|
+
order: 30,
|
|
509
|
+
action: () => {
|
|
510
|
+
this.irisGrid.removeColumnFilter(modelColumn);
|
|
511
|
+
},
|
|
512
|
+
disabled: !(quickFilters.has(modelColumn) || advancedFilters.has(modelColumn))
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
if (isFilterBarShown ? y <= gridY : y <= columnHeaderHeight) {
|
|
517
|
+
// grid header context menu options
|
|
518
|
+
if (modelColumn != null) {
|
|
519
|
+
actions.push(...this.getHeaderActions(modelColumn, gridPoint));
|
|
520
|
+
}
|
|
521
|
+
} else {
|
|
522
|
+
// grid body context menu options
|
|
523
|
+
if (modelColumn != null && modelRow != null) {
|
|
524
|
+
actions.push(...this.getCellActions(modelColumn, grid, gridPoint));
|
|
525
|
+
} // blank space context menu options
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
if (canCopy && selectedRanges.length > 0) {
|
|
504
529
|
actions.push({
|
|
505
|
-
title: '
|
|
506
|
-
|
|
530
|
+
title: 'Copy Selection',
|
|
531
|
+
shortcut: GLOBAL_SHORTCUTS.COPY,
|
|
532
|
+
group: IrisGridContextMenuHandler.GROUP_COPY,
|
|
507
533
|
order: 30,
|
|
508
534
|
action: () => {
|
|
509
|
-
|
|
510
|
-
}
|
|
511
|
-
|
|
535
|
+
irisGrid.copyRanges(selectedRanges);
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
actions.push({
|
|
539
|
+
title: 'Copy Selection w/ Headers',
|
|
540
|
+
group: IrisGridContextMenuHandler.GROUP_COPY,
|
|
541
|
+
order: 40,
|
|
542
|
+
action: () => {
|
|
543
|
+
irisGrid.copyRanges(selectedRanges, true);
|
|
544
|
+
}
|
|
512
545
|
});
|
|
513
546
|
}
|
|
514
|
-
}
|
|
515
547
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
actions.push(...this.getCellActions(modelColumn, grid, gridPoint));
|
|
548
|
+
if (isEditableGridModel(model) && model.isEditable && selectedRanges.length > 0) {
|
|
549
|
+
actions.push({
|
|
550
|
+
title: 'Delete Selected Rows',
|
|
551
|
+
group: IrisGridContextMenuHandler.GROUP_EDIT,
|
|
552
|
+
order: 50,
|
|
553
|
+
action: () => {
|
|
554
|
+
this.irisGrid.deleteRanges(selectedRanges);
|
|
555
|
+
}
|
|
556
|
+
});
|
|
526
557
|
}
|
|
527
558
|
}
|
|
528
559
|
|
|
@@ -636,8 +667,7 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
636
667
|
return actions;
|
|
637
668
|
}
|
|
638
669
|
|
|
639
|
-
stringFilterActions(column, valueText, value, quickFilter) {
|
|
640
|
-
var additive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
670
|
+
stringFilterActions(column, valueText, value, quickFilter, operator) {
|
|
641
671
|
var filterValue = dh.FilterValue.ofString(value);
|
|
642
672
|
var newQuickFilter = quickFilter;
|
|
643
673
|
|
|
@@ -661,62 +691,68 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
661
691
|
actions.push({
|
|
662
692
|
menuElement: /*#__PURE__*/React.createElement("div", {
|
|
663
693
|
className: "iris-grid-filter-menu-item-value"
|
|
664
|
-
}, "\"", valueText, "\""),
|
|
665
|
-
order: 1
|
|
694
|
+
}, operator ? IrisGridContextMenuHandler.getOperatorAsText(operator) : '', ' ', "\"", valueText, "\""),
|
|
695
|
+
order: 1,
|
|
696
|
+
group: ContextActions.groups.high
|
|
666
697
|
});
|
|
667
698
|
actions.push({
|
|
668
699
|
title: 'text is exactly',
|
|
669
700
|
description: "Show only rows where ".concat(column.name, " is ").concat(value, " (case sensitive)"),
|
|
670
701
|
action: () => {
|
|
671
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().eq(filterValue),
|
|
702
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().eq(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "=".concat(valueText), operator));
|
|
672
703
|
},
|
|
673
|
-
order: 10
|
|
704
|
+
order: 10,
|
|
705
|
+
group: ContextActions.groups.low
|
|
674
706
|
});
|
|
675
707
|
actions.push({
|
|
676
708
|
title: 'text is not exactly',
|
|
677
709
|
description: "Show only rows where ".concat(column.name, " is not ").concat(valueText, " (case sensitive)"),
|
|
678
710
|
action: () => {
|
|
679
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().notEq(filterValue),
|
|
711
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().notEq(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "!=".concat(valueText), operator));
|
|
680
712
|
},
|
|
681
|
-
order: 20
|
|
713
|
+
order: 20,
|
|
714
|
+
group: ContextActions.groups.low
|
|
682
715
|
});
|
|
683
716
|
actions.push({
|
|
684
717
|
title: "text contains",
|
|
685
718
|
description: "Show only rows where ".concat(column.name, " contains ").concat(valueText),
|
|
686
719
|
action: () => {
|
|
687
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().contains(filterValue),
|
|
720
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().contains(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "~".concat(valueText), operator));
|
|
688
721
|
},
|
|
689
|
-
order: 30
|
|
722
|
+
order: 30,
|
|
723
|
+
group: ContextActions.groups.low
|
|
690
724
|
});
|
|
691
725
|
actions.push({
|
|
692
726
|
title: 'text does not contain',
|
|
693
727
|
description: "Show only rows where ".concat(column.name, " does not contain ").concat(value),
|
|
694
728
|
action: () => {
|
|
695
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().contains(filterValue).not(),
|
|
729
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().contains(filterValue).not(), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "!~".concat(valueText), operator));
|
|
696
730
|
},
|
|
697
|
-
order: 40
|
|
731
|
+
order: 40,
|
|
732
|
+
group: ContextActions.groups.low
|
|
698
733
|
});
|
|
699
734
|
actions.push({
|
|
700
735
|
title: 'text starts with',
|
|
701
736
|
description: "Show only rows where ".concat(column.name, " starts with ").concat(valueText),
|
|
702
737
|
action: () => {
|
|
703
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().invoke('startsWith', filterValue),
|
|
738
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().invoke('startsWith', filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "".concat(valueText, "*"), operator));
|
|
704
739
|
},
|
|
705
|
-
order: 50
|
|
740
|
+
order: 50,
|
|
741
|
+
group: ContextActions.groups.low
|
|
706
742
|
});
|
|
707
743
|
actions.push({
|
|
708
744
|
title: 'text ends with',
|
|
709
745
|
description: "Show only rows where ".concat(column.name, " ends with ").concat(valueText),
|
|
710
746
|
action: () => {
|
|
711
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().invoke('endsWith', filterValue),
|
|
747
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().invoke('endsWith', filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "*".concat(valueText), operator));
|
|
712
748
|
},
|
|
713
|
-
order: 60
|
|
749
|
+
order: 60,
|
|
750
|
+
group: ContextActions.groups.low
|
|
714
751
|
});
|
|
715
752
|
return actions;
|
|
716
753
|
}
|
|
717
754
|
|
|
718
|
-
numberFilterActions(column, valueText, value, quickFilter) {
|
|
719
|
-
var additive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
755
|
+
numberFilterActions(column, valueText, value, quickFilter, operator) {
|
|
720
756
|
var filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(column.type, value);
|
|
721
757
|
var filter = null;
|
|
722
758
|
var filterText = null;
|
|
@@ -736,26 +772,29 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
736
772
|
actions.push({
|
|
737
773
|
menuElement: /*#__PURE__*/React.createElement("div", {
|
|
738
774
|
className: "iris-grid-filter-menu-item-value"
|
|
739
|
-
},
|
|
740
|
-
order: 1
|
|
775
|
+
}, operator ? IrisGridContextMenuHandler.getOperatorAsText(operator) : '', ' ', "\"", valueText, "\""),
|
|
776
|
+
order: 1,
|
|
777
|
+
group: ContextActions.groups.high
|
|
741
778
|
});
|
|
742
779
|
actions.push({
|
|
743
780
|
title: 'is equal to',
|
|
744
781
|
description: "Show only rows where ".concat(column.name, " is ").concat(valueText),
|
|
745
782
|
action: () => {
|
|
746
783
|
var valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(column, value);
|
|
747
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, valueFilter,
|
|
784
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, valueFilter, operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "=".concat(valueText), operator));
|
|
748
785
|
},
|
|
749
|
-
order: 10
|
|
786
|
+
order: 10,
|
|
787
|
+
group: ContextActions.groups.low
|
|
750
788
|
});
|
|
751
789
|
actions.push({
|
|
752
790
|
title: 'is not equal to',
|
|
753
791
|
description: "Show only rows where ".concat(column.name, " is not ").concat(valueText),
|
|
754
792
|
action: () => {
|
|
755
793
|
var valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(column, value).not();
|
|
756
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, valueFilter,
|
|
794
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, valueFilter, operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "!=".concat(valueText), operator));
|
|
757
795
|
},
|
|
758
|
-
order: 20
|
|
796
|
+
order: 20,
|
|
797
|
+
group: ContextActions.groups.low
|
|
759
798
|
}); // IDS-6092 Less/greater than filters don't make sense for Infinite/NaN
|
|
760
799
|
// TODO (DH-11799): These char filters should work in Bard, with the merge for DH-11040: https://gitlab.eng.illumon.com/illumon/iris/merge_requests/5801
|
|
761
800
|
// They do not work in Powell though, so disable them.
|
|
@@ -765,91 +804,101 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
765
804
|
title: 'greater than',
|
|
766
805
|
description: "Show only rows where ".concat(column.name, " is greater than ").concat(valueText),
|
|
767
806
|
action: () => {
|
|
768
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().greaterThan(filterValue),
|
|
807
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().greaterThan(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, ">".concat(valueText), operator));
|
|
769
808
|
},
|
|
770
|
-
order: 30
|
|
809
|
+
order: 30,
|
|
810
|
+
group: ContextActions.groups.low
|
|
771
811
|
});
|
|
772
812
|
actions.push({
|
|
773
813
|
title: 'greater than or equal to',
|
|
774
814
|
description: "Show only rows where ".concat(column.name, " is greater than or equal to ").concat(valueText),
|
|
775
815
|
action: () => {
|
|
776
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().greaterThanOrEqualTo(filterValue),
|
|
816
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().greaterThanOrEqualTo(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, ">=".concat(valueText), operator));
|
|
777
817
|
},
|
|
778
|
-
order: 40
|
|
818
|
+
order: 40,
|
|
819
|
+
group: ContextActions.groups.low
|
|
779
820
|
});
|
|
780
821
|
actions.push({
|
|
781
822
|
title: 'less than',
|
|
782
823
|
description: "Show only rows where ".concat(column.name, " is less than ").concat(valueText),
|
|
783
824
|
action: () => {
|
|
784
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().lessThan(filterValue),
|
|
825
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().lessThan(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "<".concat(valueText), operator));
|
|
785
826
|
},
|
|
786
|
-
order: 50
|
|
827
|
+
order: 50,
|
|
828
|
+
group: ContextActions.groups.low
|
|
787
829
|
});
|
|
788
830
|
actions.push({
|
|
789
831
|
title: 'less than or equal to',
|
|
790
832
|
description: "Show only rows where ".concat(column.name, " is less than or equal to ").concat(valueText),
|
|
791
833
|
action: () => {
|
|
792
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().lessThanOrEqualTo(filterValue),
|
|
834
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().lessThanOrEqualTo(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "<=".concat(valueText), operator));
|
|
793
835
|
},
|
|
794
|
-
order: 60
|
|
836
|
+
order: 60,
|
|
837
|
+
group: ContextActions.groups.low
|
|
795
838
|
});
|
|
796
839
|
}
|
|
797
840
|
|
|
798
841
|
return actions;
|
|
799
842
|
}
|
|
800
843
|
|
|
801
|
-
booleanFilterActions(column, valueText, quickFilter) {
|
|
802
|
-
var additive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
844
|
+
booleanFilterActions(column, valueText, quickFilter, operator) {
|
|
803
845
|
var actions = [];
|
|
804
|
-
|
|
805
|
-
if (quickFilter == null) {
|
|
806
|
-
return actions;
|
|
807
|
-
}
|
|
808
|
-
|
|
809
|
-
var {
|
|
810
|
-
filter,
|
|
811
|
-
text: filterText
|
|
812
|
-
} = quickFilter;
|
|
813
846
|
var {
|
|
814
847
|
model
|
|
815
848
|
} = this.irisGrid.props;
|
|
849
|
+
var {
|
|
850
|
+
filter,
|
|
851
|
+
text: filterText
|
|
852
|
+
} = quickFilter || {};
|
|
816
853
|
var columnIndex = model.getColumnIndexByName(column.name);
|
|
817
854
|
assertNotNull(columnIndex);
|
|
818
855
|
actions.push({
|
|
819
856
|
menuElement: /*#__PURE__*/React.createElement("div", {
|
|
820
857
|
className: "iris-grid-filter-menu-item-value"
|
|
821
|
-
},
|
|
822
|
-
order: 1
|
|
858
|
+
}, operator ? IrisGridContextMenuHandler.getOperatorAsText(operator) : '', ' ', "\"", valueText || 'null', "\""),
|
|
859
|
+
order: 1,
|
|
860
|
+
group: ContextActions.groups.high
|
|
823
861
|
});
|
|
824
862
|
actions.push({
|
|
825
863
|
title: 'true',
|
|
826
864
|
description: "Show only rows where ".concat(column.name, " is true"),
|
|
827
865
|
action: () => {
|
|
828
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isTrue(),
|
|
866
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isTrue(), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, 'true', operator));
|
|
829
867
|
},
|
|
830
|
-
order: 10
|
|
868
|
+
order: 10,
|
|
869
|
+
group: ContextActions.groups.low
|
|
831
870
|
});
|
|
832
871
|
actions.push({
|
|
833
872
|
title: 'false',
|
|
834
873
|
description: "Show only rows where ".concat(column.name, " is false"),
|
|
835
874
|
action: () => {
|
|
836
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isFalse(),
|
|
875
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isFalse(), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, 'false', operator));
|
|
837
876
|
},
|
|
838
|
-
order: 20
|
|
877
|
+
order: 20,
|
|
878
|
+
group: ContextActions.groups.low
|
|
839
879
|
});
|
|
840
880
|
actions.push({
|
|
841
|
-
title: 'null',
|
|
881
|
+
title: 'is null',
|
|
842
882
|
description: "Show only rows where ".concat(column.name, " is null"),
|
|
843
883
|
action: () => {
|
|
844
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isNull(),
|
|
884
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isNull(), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, 'null', operator));
|
|
845
885
|
},
|
|
846
|
-
order: 30
|
|
886
|
+
order: 30,
|
|
887
|
+
group: ContextActions.groups.low
|
|
888
|
+
});
|
|
889
|
+
actions.push({
|
|
890
|
+
title: 'is not null',
|
|
891
|
+
description: "Show only rows where ".concat(column.name, " is not null"),
|
|
892
|
+
action: () => {
|
|
893
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isNull().not(), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, '!null', operator));
|
|
894
|
+
},
|
|
895
|
+
order: 40,
|
|
896
|
+
group: ContextActions.groups.low
|
|
847
897
|
});
|
|
848
898
|
return actions;
|
|
849
899
|
}
|
|
850
900
|
|
|
851
|
-
dateFilterActions(column, valueText, previewValue, value, quickFilter) {
|
|
852
|
-
var additive = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
901
|
+
dateFilterActions(column, valueText, previewValue, value, quickFilter, operator) {
|
|
853
902
|
var filterValue = dh.FilterValue.ofNumber(value);
|
|
854
903
|
var filter = null;
|
|
855
904
|
var filterText = null;
|
|
@@ -868,62 +917,68 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
868
917
|
actions.push({
|
|
869
918
|
menuElement: /*#__PURE__*/React.createElement("div", {
|
|
870
919
|
className: "iris-grid-filter-menu-item-value"
|
|
871
|
-
},
|
|
872
|
-
order: 1
|
|
920
|
+
}, operator ? IrisGridContextMenuHandler.getOperatorAsText(operator) : '', ' ', "\"", previewValue, "\""),
|
|
921
|
+
order: 1,
|
|
922
|
+
group: ContextActions.groups.high
|
|
873
923
|
});
|
|
874
924
|
actions.push({
|
|
875
925
|
title: 'date is',
|
|
876
926
|
description: "Show only rows where ".concat(column.name, " is ").concat(previewValue),
|
|
877
927
|
action: () => {
|
|
878
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().eq(filterValue),
|
|
928
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().eq(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "=".concat(valueText), operator));
|
|
879
929
|
},
|
|
880
|
-
order: 10
|
|
930
|
+
order: 10,
|
|
931
|
+
group: ContextActions.groups.low
|
|
881
932
|
});
|
|
882
933
|
actions.push({
|
|
883
934
|
title: 'date is not',
|
|
884
935
|
description: "Show only rows where ".concat(column.name, " is not ").concat(previewValue),
|
|
885
936
|
action: () => {
|
|
886
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().notEq(filterValue),
|
|
937
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().notEq(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "!=".concat(valueText), operator));
|
|
887
938
|
},
|
|
888
|
-
order: 20
|
|
939
|
+
order: 20,
|
|
940
|
+
group: ContextActions.groups.low
|
|
889
941
|
});
|
|
890
942
|
actions.push({
|
|
891
943
|
title: 'date is before',
|
|
892
944
|
description: "Show only rows where ".concat(column.name, " is before ").concat(previewValue),
|
|
893
945
|
action: () => {
|
|
894
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().lessThan(filterValue),
|
|
946
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().lessThan(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "<".concat(valueText), operator));
|
|
895
947
|
},
|
|
896
|
-
order: 30
|
|
948
|
+
order: 30,
|
|
949
|
+
group: ContextActions.groups.low
|
|
897
950
|
});
|
|
898
951
|
actions.push({
|
|
899
952
|
title: 'date is before or equal',
|
|
900
953
|
description: "Show only rows where ".concat(column.name, " is before or equal to ").concat(previewValue),
|
|
901
954
|
action: () => {
|
|
902
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().lessThanOrEqualTo(filterValue),
|
|
955
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().lessThanOrEqualTo(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, "<=".concat(valueText), operator));
|
|
903
956
|
},
|
|
904
|
-
order: 40
|
|
957
|
+
order: 40,
|
|
958
|
+
group: ContextActions.groups.low
|
|
905
959
|
});
|
|
906
960
|
actions.push({
|
|
907
961
|
title: 'date is after',
|
|
908
962
|
description: "Show only rows where ".concat(column.name, " is greater than ").concat(previewValue),
|
|
909
963
|
action: () => {
|
|
910
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().greaterThan(filterValue),
|
|
964
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().greaterThan(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, ">".concat(valueText), operator));
|
|
911
965
|
},
|
|
912
|
-
order: 50
|
|
966
|
+
order: 50,
|
|
967
|
+
group: ContextActions.groups.low
|
|
913
968
|
});
|
|
914
969
|
actions.push({
|
|
915
970
|
title: 'date is after or equal',
|
|
916
971
|
description: "Show only rows where ".concat(column.name, " is after or equal to ").concat(previewValue),
|
|
917
972
|
action: () => {
|
|
918
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().greaterThanOrEqualTo(filterValue),
|
|
973
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().greaterThanOrEqualTo(filterValue), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, ">=".concat(valueText), operator));
|
|
919
974
|
},
|
|
920
|
-
order: 60
|
|
975
|
+
order: 60,
|
|
976
|
+
group: ContextActions.groups.low
|
|
921
977
|
});
|
|
922
978
|
return actions;
|
|
923
979
|
}
|
|
924
980
|
|
|
925
|
-
nullFilterActions(column, quickFilter) {
|
|
926
|
-
var additive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
981
|
+
nullFilterActions(column, quickFilter, operator) {
|
|
927
982
|
var filter = null;
|
|
928
983
|
var filterText = null;
|
|
929
984
|
|
|
@@ -941,24 +996,27 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
941
996
|
actions.push({
|
|
942
997
|
menuElement: /*#__PURE__*/React.createElement("div", {
|
|
943
998
|
className: "iris-grid-filter-menu-item-value"
|
|
944
|
-
},
|
|
945
|
-
order: 1
|
|
999
|
+
}, operator ? IrisGridContextMenuHandler.getOperatorAsText(operator) : '', ' ', "\"null\""),
|
|
1000
|
+
order: 1,
|
|
1001
|
+
group: ContextActions.groups.high
|
|
946
1002
|
});
|
|
947
1003
|
actions.push({
|
|
948
|
-
title: '
|
|
1004
|
+
title: 'is null',
|
|
949
1005
|
description: "Show only rows where ".concat(column.name, " is null"),
|
|
950
1006
|
action: () => {
|
|
951
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isNull(),
|
|
1007
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isNull(), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, 'null', operator));
|
|
952
1008
|
},
|
|
953
|
-
order: 10
|
|
1009
|
+
order: 10,
|
|
1010
|
+
group: ContextActions.groups.low
|
|
954
1011
|
});
|
|
955
1012
|
actions.push({
|
|
956
|
-
title: 'not
|
|
1013
|
+
title: 'is not null',
|
|
957
1014
|
description: "Show only rows where ".concat(column.name, " is not null"),
|
|
958
1015
|
action: () => {
|
|
959
|
-
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isNull().not(),
|
|
1016
|
+
this.irisGrid.setQuickFilter(columnIndex, IrisGridContextMenuHandler.getQuickFilterCondition(filter, column.filter().isNull().not(), operator), IrisGridContextMenuHandler.getQuickFilterText(filterText, '!null', operator));
|
|
960
1017
|
},
|
|
961
|
-
order: 20
|
|
1018
|
+
order: 20,
|
|
1019
|
+
group: ContextActions.groups.low
|
|
962
1020
|
});
|
|
963
1021
|
return actions;
|
|
964
1022
|
}
|