@deephaven/iris-grid 0.13.3-treemap.2 → 0.14.1-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/AdvancedFilterCreator.d.ts +69 -63
- package/dist/AdvancedFilterCreator.d.ts.map +1 -1
- package/dist/AdvancedFilterCreator.js +79 -73
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.d.ts +45 -45
- package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js +32 -36
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.d.ts +47 -52
- package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +24 -39
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnStatistics.d.ts +34 -22
- package/dist/ColumnStatistics.d.ts.map +1 -1
- package/dist/ColumnStatistics.js +8 -12
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CommonTypes.d.ts +58 -0
- package/dist/CommonTypes.d.ts.map +1 -0
- package/dist/CommonTypes.js +2 -0
- package/dist/CommonTypes.js.map +1 -0
- package/dist/CrossColumnSearch.d.ts +26 -24
- package/dist/CrossColumnSearch.d.ts.map +1 -1
- package/dist/CrossColumnSearch.js +9 -13
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/FilterInputField.d.ts +48 -51
- package/dist/FilterInputField.d.ts.map +1 -1
- package/dist/FilterInputField.js +30 -27
- package/dist/FilterInputField.js.map +1 -1
- package/dist/IrisGrid.d.ts +410 -453
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +590 -526
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.d.ts +1 -1
- package/dist/IrisGridCellOverflowModal.d.ts.map +1 -1
- package/dist/IrisGridCellOverflowModal.js +1 -4
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCopyHandler.d.ts +52 -46
- package/dist/IrisGridCopyHandler.d.ts.map +1 -1
- package/dist/IrisGridCopyHandler.js +22 -38
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridMetricCalculator.d.ts +5 -4
- package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
- package/dist/IrisGridMetricCalculator.js +5 -1
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.d.ts +37 -35
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +19 -3
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelFactory.d.ts +7 -5
- package/dist/IrisGridModelFactory.d.ts.map +1 -1
- package/dist/IrisGridModelFactory.js +5 -5
- package/dist/IrisGridModelFactory.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +13 -11
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridPartitionSelector.d.ts +38 -39
- package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
- package/dist/IrisGridPartitionSelector.js +18 -24
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts +111 -32
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +212 -170
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.d.ts +59 -31
- package/dist/IrisGridRenderer.d.ts.map +1 -1
- package/dist/IrisGridRenderer.js +92 -46
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts +48 -149
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js +58 -1385
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.d.ts +218 -0
- package/dist/IrisGridTableModelTemplate.d.ts.map +1 -0
- package/dist/IrisGridTableModelTemplate.js +1624 -0
- package/dist/IrisGridTableModelTemplate.js.map +1 -0
- package/dist/IrisGridTestUtils.d.ts +18 -14
- package/dist/IrisGridTestUtils.d.ts.map +1 -1
- package/dist/IrisGridTestUtils.js +29 -1
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTheme.d.ts +35 -3
- package/dist/IrisGridTheme.d.ts.map +1 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridTreeTableModel.d.ts +26 -7
- package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
- package/dist/IrisGridTreeTableModel.js +24 -14
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +257 -162
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +132 -95
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/MissingKeyError.d.ts +5 -3
- package/dist/MissingKeyError.d.ts.map +1 -1
- package/dist/MissingKeyError.js.map +1 -1
- package/dist/PartitionSelectorSearch.d.ts +61 -40
- package/dist/PartitionSelectorSearch.d.ts.map +1 -1
- package/dist/PartitionSelectorSearch.js +25 -15
- package/dist/PartitionSelectorSearch.js.map +1 -1
- package/dist/PendingDataBottomBar.d.ts +3 -6
- package/dist/PendingDataBottomBar.d.ts.map +1 -1
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/TableViewportUpdater.d.ts +39 -55
- package/dist/TableViewportUpdater.d.ts.map +1 -1
- package/dist/TableViewportUpdater.js +42 -64
- package/dist/TableViewportUpdater.js.map +1 -1
- package/dist/TreeTableViewportUpdater.d.ts +29 -37
- package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
- package/dist/TreeTableViewportUpdater.js +39 -50
- package/dist/TreeTableViewportUpdater.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.d.ts +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +2 -0
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts +2 -2
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +32 -14
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +41 -130
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +426 -317
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js +2 -2
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.d.ts +8 -4
- package/dist/mousehandlers/PendingMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js +4 -5
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/sidebar/ChartBuilder.d.ts +48 -33
- package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
- package/dist/sidebar/ChartBuilder.js +28 -27
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.d.ts +51 -41
- package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js +22 -18
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.d.ts +26 -36
- package/dist/sidebar/CustomColumnInput.d.ts.map +1 -1
- package/dist/sidebar/CustomColumnInput.js +11 -20
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/InputEditor.d.ts +34 -35
- package/dist/sidebar/InputEditor.d.ts.map +1 -1
- package/dist/sidebar/InputEditor.js +43 -24
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/RollupRows.d.ts +67 -52
- package/dist/sidebar/RollupRows.d.ts.map +1 -1
- package/dist/sidebar/RollupRows.js +51 -53
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.d.ts +27 -21
- package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js +6 -10
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.d.ts +42 -39
- package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +12 -20
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.d.ts +59 -60
- package/dist/sidebar/TableSaver.d.ts.map +1 -1
- package/dist/sidebar/TableSaver.js +154 -68
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts +56 -45
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
- package/dist/sidebar/VisibilityOrderingBuilder.js +34 -29
- package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +2 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +6 -5
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +5 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/icons/index.d.ts +7 -7
- package/dist/sidebar/icons/index.d.ts.map +1 -1
- package/dist/sidebar/icons/index.js.map +1 -1
- package/dist/sidebar/index.d.ts +12 -12
- package/dist/sidebar/index.d.ts.map +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/package.json +18 -17
|
@@ -1,41 +1,69 @@
|
|
|
1
|
-
|
|
1
|
+
import { IconDefinition } from '@deephaven/icons';
|
|
2
|
+
import { BoxCoordinates, Coordinate, GridMetrics, GridRangeIndex, GridRenderer, GridRenderState, GridThemeType, VisibleIndex } from '@deephaven/grid';
|
|
3
|
+
import { Sort } from '@deephaven/jsapi-shim';
|
|
4
|
+
import { ReverseType } from '@deephaven/jsapi-utils';
|
|
5
|
+
import { AdvancedFilterMap, QuickFilterMap, AdvancedFilter, QuickFilter } from './CommonTypes';
|
|
6
|
+
import { IrisGridThemeType } from './IrisGridTheme';
|
|
7
|
+
import IrisGridModel from './IrisGridModel';
|
|
8
|
+
export declare type IrisGridRenderState = GridRenderState & {
|
|
9
|
+
model: IrisGridModel;
|
|
10
|
+
theme: IrisGridThemeType;
|
|
11
|
+
hoverSelectColumn: GridRangeIndex;
|
|
12
|
+
isSelectingColumn: boolean;
|
|
13
|
+
loadingScrimProgress: number;
|
|
14
|
+
reverseType: ReverseType;
|
|
15
|
+
isFilterBarShown: boolean;
|
|
16
|
+
advancedFilters: AdvancedFilterMap;
|
|
17
|
+
quickFilters: QuickFilterMap;
|
|
18
|
+
};
|
|
2
19
|
/**
|
|
3
20
|
* Handles rendering some of the Iris specific features, such as sorting icons, sort bar display
|
|
4
21
|
* */
|
|
5
22
|
declare class IrisGridRenderer extends GridRenderer {
|
|
6
|
-
static isFilterValid(advancedFilter:
|
|
23
|
+
static isFilterValid(advancedFilter: AdvancedFilter | undefined | null, quickFilter: QuickFilter | undefined | null): boolean;
|
|
24
|
+
constructor();
|
|
25
|
+
icons: Record<string, Path2D>;
|
|
7
26
|
initIcons(): void;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
height: null;
|
|
32
|
-
} | {
|
|
33
|
-
left: number;
|
|
34
|
-
top: any;
|
|
27
|
+
setIcon(name: string, faIcon: IconDefinition): void;
|
|
28
|
+
getIcon(name: string): Path2D;
|
|
29
|
+
getSortIcon(sort: Sort | null): Path2D | null;
|
|
30
|
+
drawCanvas(state: IrisGridRenderState): void;
|
|
31
|
+
drawGrid(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
32
|
+
drawGridLines(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
33
|
+
drawCellContent(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, row: VisibleIndex): void;
|
|
34
|
+
drawGroupedColumnLine(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
35
|
+
drawPendingRowLine(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
36
|
+
drawMouseColumnHover(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
37
|
+
drawMouseRowHover(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
38
|
+
drawScrim(state: IrisGridRenderState): void;
|
|
39
|
+
drawColumnHeaders(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
40
|
+
drawHeaderBar(context: CanvasRenderingContext2D, state: IrisGridRenderState, color: string | CanvasGradient | CanvasPattern, barHeight: number, interior?: boolean): void;
|
|
41
|
+
drawColumnHeader(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, columnX: Coordinate, columnWidth: number): void;
|
|
42
|
+
drawFilterHeaders(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
43
|
+
drawExpandedFilterHeaders(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
44
|
+
drawExpandedFilterHeader(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, columnX: Coordinate, columnWidth: number): void;
|
|
45
|
+
drawCollapsedFilterHeaders(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
46
|
+
drawCollapsedFilterHeader(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, columnX: Coordinate, columnWidth: number): void;
|
|
47
|
+
drawTreeMarker(context: CanvasRenderingContext2D, state: IrisGridRenderState, columnX: Coordinate, rowY: Coordinate, treeBox: BoxCoordinates, color: string, isExpanded: boolean): void;
|
|
48
|
+
drawRowFooters(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
|
|
49
|
+
getTextRenderMetrics(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, row: VisibleIndex): {
|
|
35
50
|
width: number;
|
|
51
|
+
x: Coordinate;
|
|
52
|
+
y: Coordinate;
|
|
53
|
+
};
|
|
54
|
+
shouldRenderOverflowButton(state: IrisGridRenderState): boolean;
|
|
55
|
+
getCellOverflowButtonPosition({ mouseX, mouseY, metrics, theme, }: {
|
|
56
|
+
mouseX: Coordinate | null;
|
|
57
|
+
mouseY: Coordinate | null;
|
|
58
|
+
metrics: GridMetrics | undefined;
|
|
59
|
+
theme: GridThemeType;
|
|
60
|
+
}): {
|
|
61
|
+
left: Coordinate | null;
|
|
62
|
+
top: Coordinate | null;
|
|
63
|
+
width: number | null;
|
|
36
64
|
height: number | null;
|
|
37
65
|
};
|
|
38
|
-
drawCellOverflowButton(state:
|
|
66
|
+
drawCellOverflowButton(state: IrisGridRenderState): void;
|
|
39
67
|
}
|
|
40
|
-
|
|
68
|
+
export default IrisGridRenderer;
|
|
41
69
|
//# sourceMappingURL=IrisGridRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridRenderer.d.ts","sourceRoot":"","sources":["../src/IrisGridRenderer.
|
|
1
|
+
{"version":3,"file":"IrisGridRenderer.d.ts","sourceRoot":"","sources":["../src/IrisGridRenderer.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,UAAU,EAEV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EAEb,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAc,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAY5C,oBAAY,mBAAmB,GAAG,eAAe,GAAG;IAClD,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,iBAAiB,EAAE,cAAc,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,iBAAiB,CAAC;IACnC,YAAY,EAAE,cAAc,CAAC;CAC9B,CAAC;AACF;;KAEK;AACL,cAAM,gBAAiB,SAAQ,YAAY;IACzC,MAAM,CAAC,aAAa,CAClB,cAAc,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,EACjD,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,GAC1C,OAAO;;IAeV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,SAAS,IAAI,IAAI;IASjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAcnD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI7B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IAa7C,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAM5C,QAAQ,CACN,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAKP,aAAa,CACX,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAQP,eAAe,CACb,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB,IAAI;IAmBP,qBAAqB,CACnB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IA4BP,kBAAkB,CAChB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IA4BP,oBAAoB,CAClB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAiBP,iBAAiB,CACf,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAOP,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAkC3C,iBAAiB,CACf,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAqDP,aAAa,CACX,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,aAAa,EAC9C,SAAS,EAAE,MAAM,EACjB,QAAQ,UAAO,GACd,IAAI;IA2BP,gBAAgB,CACd,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI;IAoDP,iBAAiB,CACf,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAaP,yBAAyB,CACvB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAwEP,wBAAwB,CACtB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI;IA0FP,0BAA0B,CACxB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAsCP,yBAAyB,CACvB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI;IAgDP,cAAc,CACZ,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,IAAI;IAgBP,cAAc,CACZ,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAqGP,oBAAoB,CAClB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB;QACD,KAAK,EAAE,MAAM,CAAC;QACd,CAAC,EAAE,UAAU,CAAC;QACd,CAAC,EAAE,UAAU,CAAC;KACf;IAwBD,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IA+C/D,6BAA6B,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE;QACD,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;QACjC,KAAK,EAAE,aAAa,CAAC;KACtB,GAAG;QACF,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;QACxB,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;IA8BD,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;CA6CzD;AAED,eAAe,gBAAgB,CAAC"}
|
package/dist/IrisGridRenderer.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
1
3
|
/* eslint react/destructuring-assignment: "off" */
|
|
2
4
|
|
|
3
5
|
/* eslint class-methods-use-this: "off" */
|
|
4
6
|
|
|
5
7
|
/* eslint no-param-reassign: "off" */
|
|
6
8
|
import { dhSortDown, dhSortUp, vsTriangleDown, vsTriangleRight, vsLinkExternal } from '@deephaven/icons';
|
|
9
|
+
import { getOrThrow, GridRenderer, GridUtils } from '@deephaven/grid';
|
|
7
10
|
import { TableUtils } from '@deephaven/jsapi-utils';
|
|
8
|
-
import {
|
|
11
|
+
import { assertNotNull } from '@deephaven/utils';
|
|
9
12
|
var ICON_NAMES = Object.freeze({
|
|
10
13
|
SORT_UP: 'sortUp',
|
|
11
14
|
SORT_DOWN: 'sortDown',
|
|
@@ -14,10 +17,10 @@ var ICON_NAMES = Object.freeze({
|
|
|
14
17
|
CELL_OVERFLOW: 'cellOverflow'
|
|
15
18
|
});
|
|
16
19
|
var ICON_SIZE = 16;
|
|
20
|
+
|
|
17
21
|
/**
|
|
18
22
|
* Handles rendering some of the Iris specific features, such as sorting icons, sort bar display
|
|
19
23
|
* */
|
|
20
|
-
|
|
21
24
|
class IrisGridRenderer extends GridRenderer {
|
|
22
25
|
static isFilterValid(advancedFilter, quickFilter) {
|
|
23
26
|
var isAdvancedFilterValid = advancedFilter == null || advancedFilter.filter != null;
|
|
@@ -27,11 +30,14 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
27
30
|
|
|
28
31
|
constructor() {
|
|
29
32
|
super();
|
|
33
|
+
|
|
34
|
+
_defineProperty(this, "icons", void 0);
|
|
35
|
+
|
|
36
|
+
this.icons = {};
|
|
30
37
|
this.initIcons();
|
|
31
38
|
}
|
|
32
39
|
|
|
33
40
|
initIcons() {
|
|
34
|
-
this.icons = {};
|
|
35
41
|
this.setIcon(ICON_NAMES.SORT_UP, dhSortUp);
|
|
36
42
|
this.setIcon(ICON_NAMES.SORT_DOWN, dhSortDown);
|
|
37
43
|
this.setIcon(ICON_NAMES.CARET_DOWN, vsTriangleDown);
|
|
@@ -41,7 +47,8 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
41
47
|
|
|
42
48
|
|
|
43
49
|
setIcon(name, faIcon) {
|
|
44
|
-
var
|
|
50
|
+
var path = Array.isArray(faIcon.icon[4]) ? faIcon.icon[4][0] : faIcon.icon[4];
|
|
51
|
+
var icon = new Path2D(path);
|
|
45
52
|
var scaledIcon = new Path2D();
|
|
46
53
|
var scaleMatrix = {
|
|
47
54
|
a: ICON_SIZE / faIcon.icon[0],
|
|
@@ -96,8 +103,8 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
96
103
|
modelColumns,
|
|
97
104
|
modelRows
|
|
98
105
|
} = metrics;
|
|
99
|
-
var modelRow = modelRows
|
|
100
|
-
var modelColumn = modelColumns
|
|
106
|
+
var modelRow = getOrThrow(modelRows, row);
|
|
107
|
+
var modelColumn = getOrThrow(modelColumns, column);
|
|
101
108
|
var value = model.valueForCell(modelColumn, modelRow);
|
|
102
109
|
|
|
103
110
|
if (TableUtils.isTextType(model.columns[modelColumn].type)) {
|
|
@@ -207,6 +214,8 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
207
214
|
} = metrics;
|
|
208
215
|
var x = visibleColumnXs.get(hoverSelectColumn);
|
|
209
216
|
var columnWidth = visibleColumnWidths.get(hoverSelectColumn);
|
|
217
|
+
assertNotNull(x);
|
|
218
|
+
assertNotNull(columnWidth);
|
|
210
219
|
context.fillStyle = theme.linkerColumnHoverBackgroundColor;
|
|
211
220
|
context.fillRect(x, 0, columnWidth, maxY);
|
|
212
221
|
}
|
|
@@ -246,7 +255,11 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
246
255
|
|
|
247
256
|
context.globalCompositeOperation = 'color';
|
|
248
257
|
context.filter = "blur(".concat(scrimBlurSize, "px)");
|
|
249
|
-
|
|
258
|
+
|
|
259
|
+
if (scrimColor) {
|
|
260
|
+
context.fillStyle = scrimColor;
|
|
261
|
+
} // Clip the path so the top edge is hard edge, bottom edge is soft/blurry
|
|
262
|
+
|
|
250
263
|
|
|
251
264
|
context.beginPath();
|
|
252
265
|
context.rect(0, gridY, width, height - gridY);
|
|
@@ -279,7 +292,15 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
279
292
|
|
|
280
293
|
if (sort.length === 1) {
|
|
281
294
|
var hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;
|
|
282
|
-
|
|
295
|
+
var color;
|
|
296
|
+
|
|
297
|
+
if (hasReverse) {
|
|
298
|
+
color = theme.headerReverseBarColor;
|
|
299
|
+
} else {
|
|
300
|
+
color = theme.headerSortBarColor;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
this.drawHeaderBar(context, state, color, hasReverse ? theme.reverseHeaderBarHeight : theme.sortHeaderBarHeight);
|
|
283
304
|
} else if (sort.length > 1) {
|
|
284
305
|
// if there's multiple bars, the sort is interior to header
|
|
285
306
|
// and the reverse claims space in the table
|
|
@@ -327,8 +348,13 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
327
348
|
var {
|
|
328
349
|
modelColumns
|
|
329
350
|
} = metrics;
|
|
330
|
-
var modelColumn = modelColumns
|
|
351
|
+
var modelColumn = getOrThrow(modelColumns, column);
|
|
331
352
|
var sort = TableUtils.getSortForColumn(model.sort, modelColumn);
|
|
353
|
+
|
|
354
|
+
if (!sort) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
|
|
332
358
|
var icon = this.getSortIcon(sort);
|
|
333
359
|
|
|
334
360
|
if (!icon) {
|
|
@@ -417,32 +443,32 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
417
443
|
context.fillStyle = theme.headerBarCasingColor;
|
|
418
444
|
context.fillRect(gridX, columnHeaderHeight + filterBarHeight - 1, maxX, 1); // Draw the filter input boxes
|
|
419
445
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
context.beginPath();
|
|
446
|
+
var y1 = columnHeaderHeight;
|
|
447
|
+
context.strokeStyle = theme.filterBarSeparatorColor;
|
|
448
|
+
context.beginPath();
|
|
424
449
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
450
|
+
for (var i = 0; i < visibleColumns.length; i += 1) {
|
|
451
|
+
var column = visibleColumns[i];
|
|
452
|
+
var modelColumn = getOrThrow(modelColumns, column);
|
|
453
|
+
var columnX = getOrThrow(visibleColumnXs, column);
|
|
454
|
+
var columnWidth = getOrThrow(visibleColumnWidths, column);
|
|
430
455
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
}
|
|
456
|
+
if (model.isFilterable(modelColumn) && columnWidth > 0) {
|
|
457
|
+
var x1 = gridX + (columnX !== null && columnX !== void 0 ? columnX : 0);
|
|
458
|
+
context.rect(x1 + 0.5, y1 + 0.5, columnWidth, filterBarHeight - 2); // 1 for the border, 1 for the casing
|
|
435
459
|
}
|
|
436
|
-
|
|
437
|
-
context.stroke();
|
|
438
460
|
}
|
|
439
461
|
|
|
462
|
+
context.stroke();
|
|
463
|
+
|
|
440
464
|
for (var _i = 0; _i < visibleColumns.length; _i += 1) {
|
|
441
465
|
var _column = visibleColumns[_i];
|
|
442
466
|
|
|
443
|
-
var _columnWidth = visibleColumnWidths
|
|
467
|
+
var _columnWidth = getOrThrow(visibleColumnWidths, _column);
|
|
468
|
+
|
|
469
|
+
var _columnX = getOrThrow(visibleColumnXs, _column);
|
|
444
470
|
|
|
445
|
-
var x =
|
|
471
|
+
var x = _columnX + gridX;
|
|
446
472
|
this.drawExpandedFilterHeader(context, state, _column, x, _columnWidth);
|
|
447
473
|
}
|
|
448
474
|
|
|
@@ -473,6 +499,7 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
473
499
|
} = theme;
|
|
474
500
|
var columnHeaderHeight = gridY - filterBarHeight;
|
|
475
501
|
var modelColumn = modelColumns.get(column);
|
|
502
|
+
if (!modelColumn) return;
|
|
476
503
|
var quickFilter = quickFilters.get(modelColumn);
|
|
477
504
|
var advancedFilter = advancedFilters.get(modelColumn);
|
|
478
505
|
|
|
@@ -499,7 +526,7 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
499
526
|
var fontWidth = fontWidths.get(context.font);
|
|
500
527
|
|
|
501
528
|
if (!fontWidth) {
|
|
502
|
-
fontWidth = context.measureText('8');
|
|
529
|
+
fontWidth = context.measureText('8').width;
|
|
503
530
|
|
|
504
531
|
if (!fontWidth) {
|
|
505
532
|
fontWidth = 10;
|
|
@@ -519,7 +546,7 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
519
546
|
context.save();
|
|
520
547
|
var isFilterValid = IrisGridRenderer.isFilterValid(advancedFilter, quickFilter);
|
|
521
548
|
|
|
522
|
-
if (isFilterValid) {
|
|
549
|
+
if (isFilterValid && filterBarExpandedActiveCellBackgroundColor) {
|
|
523
550
|
// draw active filter background inside cell
|
|
524
551
|
context.fillStyle = filterBarExpandedActiveCellBackgroundColor;
|
|
525
552
|
context.fillRect(columnX + 1, // +1 left border
|
|
@@ -527,7 +554,7 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
527
554
|
columnWidth - 1, // -1 right border
|
|
528
555
|
filterBarHeight - 3 // -3 top, bottom border and bottom casing
|
|
529
556
|
);
|
|
530
|
-
} else {
|
|
557
|
+
} else if (filterBarErrorColor) {
|
|
531
558
|
// draw error box inside cell
|
|
532
559
|
context.fillStyle = filterBarErrorColor;
|
|
533
560
|
context.lineWidth = 2;
|
|
@@ -587,9 +614,13 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
587
614
|
for (var i = 0; i < visibleColumns.length; i += 1) {
|
|
588
615
|
var column = visibleColumns[i];
|
|
589
616
|
var columnWidth = visibleColumnWidths.get(column);
|
|
590
|
-
var
|
|
617
|
+
var columnX = visibleColumnXs.get(column);
|
|
591
618
|
|
|
592
|
-
|
|
619
|
+
if (columnX != null && columnWidth != null) {
|
|
620
|
+
var x = columnX + gridX; // draw the collapsed cells
|
|
621
|
+
|
|
622
|
+
this.drawCollapsedFilterHeader(context, state, column, x, columnWidth);
|
|
623
|
+
}
|
|
593
624
|
}
|
|
594
625
|
|
|
595
626
|
context.restore();
|
|
@@ -611,8 +642,8 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
611
642
|
gridY
|
|
612
643
|
} = metrics;
|
|
613
644
|
var modelColumn = modelColumns.get(column);
|
|
614
|
-
var quickFilter = quickFilters.get(modelColumn);
|
|
615
|
-
var advancedFilter = advancedFilters.get(modelColumn);
|
|
645
|
+
var quickFilter = modelColumn ? quickFilters.get(modelColumn) : null;
|
|
646
|
+
var advancedFilter = modelColumn ? advancedFilters.get(modelColumn) : null;
|
|
616
647
|
var {
|
|
617
648
|
filterBarCollapsedHeight,
|
|
618
649
|
filterBarActiveColor,
|
|
@@ -622,11 +653,11 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
622
653
|
context.save();
|
|
623
654
|
var isFilterValid = IrisGridRenderer.isFilterValid(advancedFilter, quickFilter);
|
|
624
655
|
|
|
625
|
-
if (quickFilter == null && advancedFilter == null) {
|
|
656
|
+
if (filterBarActiveBackgroundColor && quickFilter == null && advancedFilter == null) {
|
|
626
657
|
context.fillStyle = filterBarActiveBackgroundColor;
|
|
627
|
-
} else if (isFilterValid) {
|
|
658
|
+
} else if (filterBarActiveColor && isFilterValid) {
|
|
628
659
|
context.fillStyle = filterBarActiveColor;
|
|
629
|
-
} else {
|
|
660
|
+
} else if (filterBarErrorColor) {
|
|
630
661
|
context.fillStyle = filterBarErrorColor;
|
|
631
662
|
}
|
|
632
663
|
|
|
@@ -707,17 +738,22 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
707
738
|
}
|
|
708
739
|
|
|
709
740
|
context.fill();
|
|
710
|
-
var mouseRow = mouseX >= gridX && mouseX <= maxX + rowFooterWidth ? GridUtils.getRowAtY(mouseY, metrics) : null;
|
|
741
|
+
var mouseRow = mouseX && mouseY && mouseX >= gridX && mouseX <= maxX + rowFooterWidth ? GridUtils.getRowAtY(mouseY, metrics) : null;
|
|
711
742
|
|
|
712
|
-
if (mouseRow !== null && floatingRows.includes(mouseRow)) {
|
|
743
|
+
if (rowHoverBackgroundColor && mouseRow !== null && floatingRows.includes(mouseRow)) {
|
|
713
744
|
context.fillStyle = rowHoverBackgroundColor;
|
|
714
745
|
var y = visibleRowYs.get(mouseRow);
|
|
715
746
|
var rowHeight = visibleRowHeights.get(mouseRow);
|
|
747
|
+
assertNotNull(y);
|
|
748
|
+
assertNotNull(rowHeight);
|
|
716
749
|
context.fillRect(x, y, rowFooterWidth, rowHeight);
|
|
717
750
|
}
|
|
718
751
|
|
|
719
752
|
context.beginPath();
|
|
720
|
-
|
|
753
|
+
|
|
754
|
+
if (floatingGridRowColor) {
|
|
755
|
+
context.strokeStyle = floatingGridRowColor;
|
|
756
|
+
}
|
|
721
757
|
|
|
722
758
|
if (floatingTopHeight > 0) {
|
|
723
759
|
context.moveTo(x + 0.5, 0.5);
|
|
@@ -743,8 +779,11 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
743
779
|
|
|
744
780
|
var rowY = visibleRowYs.get(row);
|
|
745
781
|
var modelRow = modelRows.get(row);
|
|
746
|
-
|
|
747
|
-
|
|
782
|
+
|
|
783
|
+
if (rowY != null && _rowHeight != null && modelRow != null) {
|
|
784
|
+
var textY = rowY + _rowHeight * 0.5;
|
|
785
|
+
context.fillText(model.textForRowFooter(modelRow), textX, textY);
|
|
786
|
+
}
|
|
748
787
|
}
|
|
749
788
|
|
|
750
789
|
context.translate(-gridX, -gridY);
|
|
@@ -774,7 +813,7 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
774
813
|
left
|
|
775
814
|
} = this.getCellOverflowButtonPosition(state);
|
|
776
815
|
|
|
777
|
-
if (this.shouldRenderOverflowButton(state)) {
|
|
816
|
+
if (this.shouldRenderOverflowButton(state) && left) {
|
|
778
817
|
textMetrics.width = left - metrics.gridX - textMetrics.x;
|
|
779
818
|
}
|
|
780
819
|
}
|
|
@@ -835,7 +874,7 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
835
874
|
height: null
|
|
836
875
|
};
|
|
837
876
|
|
|
838
|
-
if (mouseX == null || mouseY == null) {
|
|
877
|
+
if (mouseX == null || mouseY == null || !metrics) {
|
|
839
878
|
return NULL_POSITION;
|
|
840
879
|
}
|
|
841
880
|
|
|
@@ -845,6 +884,9 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
845
884
|
left,
|
|
846
885
|
top
|
|
847
886
|
} = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics);
|
|
887
|
+
assertNotNull(left);
|
|
888
|
+
assertNotNull(columnWidth);
|
|
889
|
+
assertNotNull(top);
|
|
848
890
|
var {
|
|
849
891
|
width: gridWidth,
|
|
850
892
|
verticalBarWidth
|
|
@@ -892,14 +934,18 @@ class IrisGridRenderer extends GridRenderer {
|
|
|
892
934
|
} = theme;
|
|
893
935
|
context.save();
|
|
894
936
|
|
|
895
|
-
if (mouseX >= buttonLeft && mouseX <= buttonLeft + buttonWidth && mouseY >= buttonTop && mouseY <= buttonTop + buttonHeight) {
|
|
937
|
+
if (overflowButtonHoverColor && buttonLeft != null && buttonWidth != null && buttonTop != null && buttonHeight != null && mouseX >= buttonLeft && mouseX <= buttonLeft + buttonWidth && mouseY >= buttonTop && mouseY <= buttonTop + buttonHeight) {
|
|
896
938
|
context.fillStyle = overflowButtonHoverColor;
|
|
897
|
-
} else {
|
|
939
|
+
} else if (overflowButtonColor) {
|
|
898
940
|
context.fillStyle = overflowButtonColor;
|
|
899
941
|
}
|
|
900
942
|
|
|
901
943
|
var icon = this.getIcon(ICON_NAMES.CELL_OVERFLOW);
|
|
902
|
-
|
|
944
|
+
|
|
945
|
+
if (buttonLeft != null && buttonTop != null) {
|
|
946
|
+
context.translate(buttonLeft + cellHorizontalPadding, buttonTop + 2);
|
|
947
|
+
}
|
|
948
|
+
|
|
903
949
|
context.fill(icon);
|
|
904
950
|
context.restore();
|
|
905
951
|
}
|