@deephaven/iris-grid 0.6.3-alpha.5 → 0.7.0
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/IrisGrid.d.ts +1 -0
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +67 -17
- package/dist/IrisGrid.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +4 -12
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -11
package/dist/IrisGrid.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export class IrisGrid extends React.Component<any, any, any> {
|
|
|
2
2
|
static minDebounce: number;
|
|
3
3
|
static maxDebounce: number;
|
|
4
4
|
static loadingSpinnerDelay: number;
|
|
5
|
+
static makeQuickFilter(column: any, text: any, timeZone: any): any;
|
|
5
6
|
constructor(props: any);
|
|
6
7
|
handleAdvancedFilterChange(column: any, filter: any, options: any): void;
|
|
7
8
|
handleAdvancedFilterSortChange(column: any, direction: any, addToExisting?: boolean): void;
|
package/dist/IrisGrid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.jsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.jsx"],"names":[],"mappings":"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"}
|
package/dist/IrisGrid.js
CHANGED
|
@@ -23,6 +23,7 @@ import dh, { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
|
|
|
23
23
|
import { Pending, PromiseUtils, ValidationError } from '@deephaven/utils';
|
|
24
24
|
import throttle from 'lodash.throttle';
|
|
25
25
|
import debounce from 'lodash.debounce';
|
|
26
|
+
import clamp from 'lodash.clamp';
|
|
26
27
|
import PendingDataBottomBar from "./PendingDataBottomBar.js";
|
|
27
28
|
import IrisGridCopyHandler from "./IrisGridCopyHandler.js";
|
|
28
29
|
import FilterInputField from "./FilterInputField.js";
|
|
@@ -66,6 +67,16 @@ function isEmptyConfig(_ref) {
|
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
export class IrisGrid extends Component {
|
|
70
|
+
static makeQuickFilter(column, text, timeZone) {
|
|
71
|
+
try {
|
|
72
|
+
return TableUtils.makeQuickFilter(column, text, timeZone);
|
|
73
|
+
} catch (err) {
|
|
74
|
+
log.error('Error creating quick filter', err);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
|
|
69
80
|
constructor(props) {
|
|
70
81
|
super(props);
|
|
71
82
|
|
|
@@ -717,17 +728,9 @@ export class IrisGrid extends Component {
|
|
|
717
728
|
}
|
|
718
729
|
}
|
|
719
730
|
|
|
720
|
-
var filter = null;
|
|
721
|
-
|
|
722
|
-
try {
|
|
723
|
-
filter = TableUtils.makeQuickFilter(column, value, formatter.timeZone);
|
|
724
|
-
} catch (err) {
|
|
725
|
-
log.error('Error creating quick filter', err);
|
|
726
|
-
}
|
|
727
|
-
|
|
728
731
|
quickFilters.set(modelIndex, {
|
|
729
|
-
|
|
730
|
-
|
|
732
|
+
text: value,
|
|
733
|
+
filter: IrisGrid.makeQuickFilter(column, value, formatter.timeZone)
|
|
731
734
|
});
|
|
732
735
|
return true;
|
|
733
736
|
}
|
|
@@ -923,10 +926,9 @@ export class IrisGrid extends Component {
|
|
|
923
926
|
text
|
|
924
927
|
} = value;
|
|
925
928
|
var column = columns[key];
|
|
926
|
-
var filter = TableUtils.makeQuickFilter(column, text, formatter.timeZone);
|
|
927
929
|
newQuickFilters.set(key, {
|
|
928
930
|
text,
|
|
929
|
-
filter
|
|
931
|
+
filter: IrisGrid.makeQuickFilter(column, text, formatter.timeZone)
|
|
930
932
|
});
|
|
931
933
|
});
|
|
932
934
|
this.startLoading('Rebuilding filters...', true);
|
|
@@ -2450,25 +2452,72 @@ export class IrisGrid extends Component {
|
|
|
2450
2452
|
|
|
2451
2453
|
var columnTooltip = null;
|
|
2452
2454
|
|
|
2453
|
-
if (shownColumnTooltip != null && metrics) {
|
|
2455
|
+
if (shownColumnTooltip != null && metrics && this.gridWrapper) {
|
|
2454
2456
|
var {
|
|
2455
2457
|
columnHeaderHeight,
|
|
2456
2458
|
visibleColumnXs: _visibleColumnXs,
|
|
2457
|
-
visibleColumnWidths: _visibleColumnWidths
|
|
2459
|
+
visibleColumnWidths: _visibleColumnWidths,
|
|
2460
|
+
width
|
|
2458
2461
|
} = metrics;
|
|
2459
2462
|
|
|
2460
2463
|
var _columnX = _visibleColumnXs.get(shownColumnTooltip);
|
|
2461
2464
|
|
|
2462
2465
|
var _columnWidth = _visibleColumnWidths.get(shownColumnTooltip);
|
|
2466
|
+
/**
|
|
2467
|
+
* Create a wrapper dom element, the size of the column header.
|
|
2468
|
+
* The wrapper acts as tooltip parent, the tooltip component
|
|
2469
|
+
* will trigger hide on mouseleave of wrapper or tooltip.
|
|
2470
|
+
* The wrapper should be bound to within the grid dimensions,
|
|
2471
|
+
* so popper only remains triggered while mouse is inside the panel.
|
|
2472
|
+
*/
|
|
2473
|
+
|
|
2474
|
+
|
|
2475
|
+
var boundedLeft = Math.max(0, _columnX);
|
|
2476
|
+
var boundedWidth = _columnWidth;
|
|
2477
|
+
|
|
2478
|
+
if (_columnX + _columnWidth > width) {
|
|
2479
|
+
// column is extending past right edge
|
|
2480
|
+
boundedWidth = width - _columnX;
|
|
2481
|
+
} else if (_columnX < 0) {
|
|
2482
|
+
// column is extending past left edge
|
|
2483
|
+
boundedWidth = _columnWidth - Math.abs(_columnX);
|
|
2484
|
+
}
|
|
2463
2485
|
|
|
2464
2486
|
var wrapperStyle = {
|
|
2465
2487
|
position: 'absolute',
|
|
2466
2488
|
top: 0,
|
|
2467
|
-
left:
|
|
2468
|
-
width:
|
|
2489
|
+
left: boundedLeft,
|
|
2490
|
+
width: boundedWidth,
|
|
2469
2491
|
height: columnHeaderHeight,
|
|
2470
2492
|
pointerEvents: 'none'
|
|
2471
2493
|
};
|
|
2494
|
+
/**
|
|
2495
|
+
* Because the popper parent wrapper center is no longer the same as
|
|
2496
|
+
* the column label center, we create a popper virtual ref, to handle
|
|
2497
|
+
* positioning and keep the popper centered on the label. Creates a
|
|
2498
|
+
* 1px x headerHeight virtual object, placed centered on the column
|
|
2499
|
+
* label, clamped to 0 + margin to width - margin. We add a margin,
|
|
2500
|
+
* otherwise the arrow wants to escape the boundary.
|
|
2501
|
+
*/
|
|
2502
|
+
|
|
2503
|
+
var gridRect = this.gridWrapper.getBoundingClientRect();
|
|
2504
|
+
var popperMargin = 20;
|
|
2505
|
+
var virtualReference = {
|
|
2506
|
+
clientWidth: 1,
|
|
2507
|
+
clientHeight: columnHeaderHeight,
|
|
2508
|
+
|
|
2509
|
+
getBoundingClientRect() {
|
|
2510
|
+
return {
|
|
2511
|
+
top: gridRect.top,
|
|
2512
|
+
left: gridRect.left + clamp(_columnX + _columnWidth / 2, popperMargin, width - popperMargin),
|
|
2513
|
+
bottom: gridRect.top + columnHeaderHeight,
|
|
2514
|
+
right: gridRect.left + clamp(_columnX + _columnWidth / 2, popperMargin, width - popperMargin) + 1,
|
|
2515
|
+
width: 1,
|
|
2516
|
+
height: columnHeaderHeight
|
|
2517
|
+
};
|
|
2518
|
+
}
|
|
2519
|
+
|
|
2520
|
+
};
|
|
2472
2521
|
var popperOptions = {
|
|
2473
2522
|
placement: 'bottom',
|
|
2474
2523
|
modifiers: {
|
|
@@ -2490,7 +2539,8 @@ export class IrisGrid extends Component {
|
|
|
2490
2539
|
timeout: 400,
|
|
2491
2540
|
interactive: true,
|
|
2492
2541
|
options: popperOptions,
|
|
2493
|
-
ref: this.handleTooltipRef
|
|
2542
|
+
ref: this.handleTooltipRef,
|
|
2543
|
+
referenceObject: virtualReference
|
|
2494
2544
|
}, /*#__PURE__*/React.createElement(ColumnStatistics, {
|
|
2495
2545
|
model: model,
|
|
2496
2546
|
column: column,
|