@deephaven/iris-grid 0.91.1-beta.2 → 0.92.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 +2 -0
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +10 -4
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +6 -3
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +36 -24
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridTreeTableModel.d.ts +6 -0
- package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
- package/dist/IrisGridTreeTableModel.js +55 -33
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/LazyIrisGrid.d.ts +1 -0
- package/dist/LazyIrisGrid.d.ts.map +1 -1
- package/package.json +15 -15
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import type { dh } from '@deephaven/jsapi-types';
|
|
3
3
|
import { ModelIndex, MoveOperation } from '@deephaven/grid';
|
|
4
4
|
import { Formatter, ReverseType } from '@deephaven/jsapi-utils';
|
|
@@ -8,7 +8,6 @@ import type ColumnHeaderGroup from './ColumnHeaderGroup';
|
|
|
8
8
|
import { PartitionConfig } from './PartitionedGridModel';
|
|
9
9
|
interface IrisGridModelUpdaterProps {
|
|
10
10
|
model: IrisGridModel;
|
|
11
|
-
modelColumns: readonly dh.Column[];
|
|
12
11
|
top: number;
|
|
13
12
|
bottom: number;
|
|
14
13
|
left: number | null;
|
|
@@ -30,10 +29,14 @@ interface IrisGridModelUpdaterProps {
|
|
|
30
29
|
pendingRowCount?: number;
|
|
31
30
|
pendingDataMap?: PendingDataMap;
|
|
32
31
|
partitionConfig?: PartitionConfig;
|
|
32
|
+
showExtraGroupColumn?: boolean;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* React component to keep IrisGridModel in sync
|
|
36
36
|
*/
|
|
37
|
-
declare
|
|
37
|
+
declare function IrisGridModelUpdater({ model, top, bottom, left, right, filter, formatter, reverseType, sorts, customColumns, movedColumns, hiddenColumns, alwaysFetchColumns, rollupConfig, totalsConfig, selectDistinctColumns, pendingRowCount, pendingDataMap, frozenColumns, formatColumns, columnHeaderGroups, partitionConfig, showExtraGroupColumn, }: IrisGridModelUpdaterProps): JSX.Element | null;
|
|
38
|
+
declare namespace IrisGridModelUpdater {
|
|
39
|
+
var displayName: string;
|
|
40
|
+
}
|
|
38
41
|
export default IrisGridModelUpdater;
|
|
39
42
|
//# sourceMappingURL=IrisGridModelUpdater.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridModelUpdater.d.ts","sourceRoot":"","sources":["../src/IrisGridModelUpdater.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IrisGridModelUpdater.d.ts","sourceRoot":"","sources":["../src/IrisGridModelUpdater.tsx"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,wBAAwB,CAAC;AAI5E,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAKhC,UAAU,yBAAyB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,CAAC;IACtC,KAAK,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,YAAY,EAAE,SAAS,aAAa,EAAE,CAAC;IACvC,aAAa,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,kBAAkB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,aAAa,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC;IAC1C,kBAAkB,EAAE,SAAS,UAAU,EAAE,CAAC;IAC1C,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,qBAAqB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,iBAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,GAAG,EACH,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,WAA0C,EAC1C,KAAK,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,YAAmB,EACnB,YAAmB,EACnB,qBAAmC,EACnC,eAAmB,EACnB,cAA0B,EAC1B,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACrB,EAAE,yBAAyB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAqIhD;kBA7JQ,oBAAoB;;;AAiK7B,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
/* eslint-disable react/require-default-props */
|
|
2
2
|
/* eslint-disable no-param-reassign */
|
|
3
|
-
import
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
4
|
import { TableUtils } from '@deephaven/jsapi-utils';
|
|
5
5
|
import { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';
|
|
6
|
+
import { useOnChange } from '@deephaven/react-hooks';
|
|
6
7
|
import IrisGridUtils from "./IrisGridUtils.js";
|
|
7
8
|
import { isPartitionedGridModel } from "./PartitionedGridModel.js";
|
|
9
|
+
import { isIrisGridTreeTableModel } from "./IrisGridTreeTableModel.js";
|
|
8
10
|
var COLUMN_BUFFER_PAGES = 1;
|
|
9
11
|
/**
|
|
10
12
|
* React component to keep IrisGridModel in sync
|
|
11
13
|
*/
|
|
12
|
-
|
|
14
|
+
function IrisGridModelUpdater(_ref) {
|
|
13
15
|
var {
|
|
14
16
|
model,
|
|
15
|
-
modelColumns,
|
|
16
17
|
top,
|
|
17
18
|
bottom,
|
|
18
19
|
left,
|
|
@@ -33,71 +34,82 @@ var IrisGridModelUpdater = /*#__PURE__*/React.memo(_ref => {
|
|
|
33
34
|
frozenColumns,
|
|
34
35
|
formatColumns,
|
|
35
36
|
columnHeaderGroups,
|
|
36
|
-
partitionConfig
|
|
37
|
+
partitionConfig,
|
|
38
|
+
showExtraGroupColumn
|
|
37
39
|
} = _ref;
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
+
var {
|
|
41
|
+
isTotalsAvailable,
|
|
42
|
+
isRollupAvailable
|
|
43
|
+
} = model;
|
|
44
|
+
// Check for showExtraGroupColumn before memoizing columns, since updating it will change the columns
|
|
45
|
+
useOnChange(() => {
|
|
46
|
+
if (isIrisGridTreeTableModel(model) && showExtraGroupColumn != null) {
|
|
47
|
+
model.showExtraGroupColumn = showExtraGroupColumn;
|
|
48
|
+
}
|
|
49
|
+
}, [model, showExtraGroupColumn]);
|
|
50
|
+
var columns = useMemo(() => IrisGridUtils.getModelViewportColumns(model.columns, left, right, movedColumns, hiddenColumns, alwaysFetchColumns, COLUMN_BUFFER_PAGES), [model.columns, left, right, movedColumns, hiddenColumns, alwaysFetchColumns]);
|
|
51
|
+
useOnChange(function updateFilter() {
|
|
40
52
|
model.filter = filter;
|
|
41
53
|
}, [model, filter]);
|
|
42
|
-
|
|
54
|
+
useOnChange(function updateSorts() {
|
|
43
55
|
var sortsForModel = [...sorts];
|
|
44
56
|
if (reverseType !== TableUtils.REVERSE_TYPE.NONE) {
|
|
45
57
|
sortsForModel.push(model.dh.Table.reverse());
|
|
46
58
|
}
|
|
47
59
|
model.sort = sortsForModel;
|
|
48
60
|
}, [model, sorts, reverseType]);
|
|
49
|
-
|
|
61
|
+
useOnChange(function updateFormatter() {
|
|
50
62
|
model.formatter = formatter;
|
|
51
63
|
}, [model, formatter]);
|
|
52
|
-
|
|
64
|
+
useOnChange(function updateCustomColumns() {
|
|
53
65
|
if (model.isCustomColumnsAvailable) {
|
|
54
66
|
model.customColumns = customColumns;
|
|
55
67
|
}
|
|
56
68
|
}, [model, customColumns]);
|
|
57
|
-
|
|
69
|
+
useOnChange(function updateFormatColumns() {
|
|
58
70
|
if (model.isFormatColumnsAvailable) {
|
|
59
71
|
model.formatColumns = formatColumns;
|
|
60
72
|
}
|
|
61
73
|
}, [model, formatColumns]);
|
|
62
|
-
|
|
74
|
+
useOnChange(function updateViewport() {
|
|
63
75
|
model.setViewport(top, bottom, columns);
|
|
64
76
|
}, [model, top, bottom, columns]);
|
|
65
|
-
|
|
66
|
-
if (
|
|
77
|
+
useOnChange(function updateRollupCOnfig() {
|
|
78
|
+
if (isRollupAvailable) {
|
|
67
79
|
model.rollupConfig = rollupConfig;
|
|
68
80
|
}
|
|
69
|
-
}, [model,
|
|
70
|
-
|
|
81
|
+
}, [model, isRollupAvailable, rollupConfig]);
|
|
82
|
+
useOnChange(function updateSelectDistinctColumns() {
|
|
71
83
|
if (model.isSelectDistinctAvailable) {
|
|
72
84
|
model.selectDistinctColumns = selectDistinctColumns;
|
|
73
85
|
}
|
|
74
86
|
}, [model, selectDistinctColumns]);
|
|
75
|
-
|
|
76
|
-
if (
|
|
87
|
+
useOnChange(function updateTotalsConfig() {
|
|
88
|
+
if (isTotalsAvailable) {
|
|
77
89
|
model.totalsConfig = totalsConfig;
|
|
78
90
|
}
|
|
79
|
-
}, [model,
|
|
80
|
-
|
|
91
|
+
}, [model, isTotalsAvailable, totalsConfig]);
|
|
92
|
+
useOnChange(function updatePendingRowCount() {
|
|
81
93
|
model.pendingRowCount = pendingRowCount;
|
|
82
94
|
}, [model, pendingRowCount]);
|
|
83
|
-
|
|
95
|
+
useOnChange(function updatePendingDataMap() {
|
|
84
96
|
model.pendingDataMap = pendingDataMap;
|
|
85
97
|
}, [model, pendingDataMap]);
|
|
86
|
-
|
|
98
|
+
useOnChange(function updateFrozenColumns() {
|
|
87
99
|
if (frozenColumns) {
|
|
88
100
|
model.updateFrozenColumns(frozenColumns);
|
|
89
101
|
}
|
|
90
102
|
}, [model, frozenColumns]);
|
|
91
|
-
|
|
103
|
+
useOnChange(function updateColumnHeaderGroups() {
|
|
92
104
|
model.columnHeaderGroups = columnHeaderGroups;
|
|
93
105
|
}, [model, columnHeaderGroups]);
|
|
94
|
-
|
|
106
|
+
useOnChange(function updatePartitionConfig() {
|
|
95
107
|
if (partitionConfig && isPartitionedGridModel(model)) {
|
|
96
108
|
model.partitionConfig = partitionConfig;
|
|
97
109
|
}
|
|
98
110
|
}, [model, partitionConfig]);
|
|
99
111
|
return null;
|
|
100
|
-
}
|
|
112
|
+
}
|
|
101
113
|
IrisGridModelUpdater.displayName = 'IrisGridModelUpdater';
|
|
102
114
|
export default IrisGridModelUpdater;
|
|
103
115
|
//# sourceMappingURL=IrisGridModelUpdater.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridModelUpdater.js","names":["React","useEffect","useMemo","TableUtils","EMPTY_ARRAY","EMPTY_MAP","IrisGridUtils","isPartitionedGridModel","COLUMN_BUFFER_PAGES","IrisGridModelUpdater","memo","_ref","model","modelColumns","top","bottom","left","right","filter","formatter","reverseType","REVERSE_TYPE","NONE","sorts","customColumns","movedColumns","hiddenColumns","alwaysFetchColumns","rollupConfig","totalsConfig","selectDistinctColumns","pendingRowCount","pendingDataMap","frozenColumns","formatColumns","columnHeaderGroups","partitionConfig","columns","getModelViewportColumns","updateFilter","updateSorts","sortsForModel","push","dh","Table","reverse","sort","updateFormatter","updateCustomColumns","isCustomColumnsAvailable","updateFormatColumns","isFormatColumnsAvailable","updateViewport","setViewport","updateRollupCOnfig","isRollupAvailable","updateSelectDistinctColumns","isSelectDistinctAvailable","updateTotalsConfig","isTotalsAvailable","updatePendingRowCount","updatePendingDataMap","updateFrozenColumns","updateColumnHeaderGroups","updatePartitionConfig","displayName"],"sources":["../src/IrisGridModelUpdater.tsx"],"sourcesContent":["/* eslint-disable react/require-default-props */\n/* eslint-disable no-param-reassign */\nimport React, { useEffect, useMemo } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ModelIndex, MoveOperation } from '@deephaven/grid';\nimport { Formatter, ReverseType, TableUtils } from '@deephaven/jsapi-utils';\nimport { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';\nimport IrisGridUtils from './IrisGridUtils';\nimport { ColumnName, UITotalsTableConfig, PendingDataMap } from './CommonTypes';\nimport IrisGridModel from './IrisGridModel';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\nimport {\n PartitionConfig,\n isPartitionedGridModel,\n} from './PartitionedGridModel';\n\nconst COLUMN_BUFFER_PAGES = 1;\n\ninterface IrisGridModelUpdaterProps {\n model: IrisGridModel;\n modelColumns: readonly dh.Column[];\n top: number;\n bottom: number;\n left: number | null;\n right: number | null;\n filter: readonly dh.FilterCondition[];\n sorts: readonly dh.Sort[];\n reverseType?: ReverseType;\n customColumns: readonly ColumnName[];\n movedColumns: readonly MoveOperation[];\n hiddenColumns: readonly ModelIndex[];\n frozenColumns?: readonly ColumnName[];\n columnHeaderGroups: readonly ColumnHeaderGroup[];\n formatColumns: readonly dh.CustomColumn[];\n alwaysFetchColumns: readonly ColumnName[];\n formatter: Formatter;\n rollupConfig?: dh.RollupConfig | null;\n totalsConfig?: UITotalsTableConfig | null;\n selectDistinctColumns?: readonly ColumnName[];\n pendingRowCount?: number;\n pendingDataMap?: PendingDataMap;\n partitionConfig?: PartitionConfig;\n}\n\n/**\n * React component to keep IrisGridModel in sync\n */\nconst IrisGridModelUpdater = React.memo(\n ({\n model,\n modelColumns,\n top,\n bottom,\n left,\n right,\n filter,\n formatter,\n reverseType = TableUtils.REVERSE_TYPE.NONE,\n sorts,\n customColumns,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n rollupConfig = null,\n totalsConfig = null,\n selectDistinctColumns = EMPTY_ARRAY,\n pendingRowCount = 0,\n pendingDataMap = EMPTY_MAP,\n frozenColumns,\n formatColumns,\n columnHeaderGroups,\n partitionConfig,\n }: IrisGridModelUpdaterProps) => {\n const columns = useMemo(\n () =>\n IrisGridUtils.getModelViewportColumns(\n modelColumns,\n left,\n right,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n COLUMN_BUFFER_PAGES\n ),\n [\n modelColumns,\n left,\n right,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n ]\n );\n\n useEffect(\n function updateFilter() {\n model.filter = filter;\n },\n [model, filter]\n );\n useEffect(\n function updateSorts() {\n const sortsForModel = [...sorts];\n if (reverseType !== TableUtils.REVERSE_TYPE.NONE) {\n sortsForModel.push(model.dh.Table.reverse());\n }\n model.sort = sortsForModel;\n },\n [model, sorts, reverseType]\n );\n useEffect(\n function updateFormatter() {\n model.formatter = formatter;\n },\n [model, formatter]\n );\n useEffect(\n function updateCustomColumns() {\n if (model.isCustomColumnsAvailable) {\n model.customColumns = customColumns;\n }\n },\n [model, customColumns]\n );\n useEffect(\n function updateFormatColumns() {\n if (model.isFormatColumnsAvailable) {\n model.formatColumns = formatColumns;\n }\n },\n [model, formatColumns]\n );\n useEffect(\n function updateViewport() {\n model.setViewport(top, bottom, columns);\n },\n [model, top, bottom, columns]\n );\n useEffect(\n function updateRollupCOnfig() {\n if (model.isRollupAvailable) {\n model.rollupConfig = rollupConfig;\n }\n },\n [model, model.isRollupAvailable, rollupConfig]\n );\n useEffect(\n function updateSelectDistinctColumns() {\n if (model.isSelectDistinctAvailable) {\n model.selectDistinctColumns = selectDistinctColumns;\n }\n },\n [model, selectDistinctColumns]\n );\n useEffect(\n function updateTotalsConfig() {\n if (model.isTotalsAvailable) {\n model.totalsConfig = totalsConfig;\n }\n },\n [model, model.isTotalsAvailable, totalsConfig]\n );\n useEffect(\n function updatePendingRowCount() {\n model.pendingRowCount = pendingRowCount;\n },\n [model, pendingRowCount]\n );\n useEffect(\n function updatePendingDataMap() {\n model.pendingDataMap = pendingDataMap;\n },\n [model, pendingDataMap]\n );\n useEffect(\n function updateFrozenColumns() {\n if (frozenColumns) {\n model.updateFrozenColumns(frozenColumns);\n }\n },\n [model, frozenColumns]\n );\n useEffect(\n function updateColumnHeaderGroups() {\n model.columnHeaderGroups = columnHeaderGroups;\n },\n [model, columnHeaderGroups]\n );\n useEffect(\n function updatePartitionConfig() {\n if (partitionConfig && isPartitionedGridModel(model)) {\n model.partitionConfig = partitionConfig;\n }\n },\n [model, partitionConfig]\n );\n\n return null;\n }\n);\n\nIrisGridModelUpdater.displayName = 'IrisGridModelUpdater';\n\nexport default IrisGridModelUpdater;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridModelUpdater.js","names":["useMemo","TableUtils","EMPTY_ARRAY","EMPTY_MAP","useOnChange","IrisGridUtils","isPartitionedGridModel","isIrisGridTreeTableModel","COLUMN_BUFFER_PAGES","IrisGridModelUpdater","_ref","model","top","bottom","left","right","filter","formatter","reverseType","REVERSE_TYPE","NONE","sorts","customColumns","movedColumns","hiddenColumns","alwaysFetchColumns","rollupConfig","totalsConfig","selectDistinctColumns","pendingRowCount","pendingDataMap","frozenColumns","formatColumns","columnHeaderGroups","partitionConfig","showExtraGroupColumn","isTotalsAvailable","isRollupAvailable","columns","getModelViewportColumns","updateFilter","updateSorts","sortsForModel","push","dh","Table","reverse","sort","updateFormatter","updateCustomColumns","isCustomColumnsAvailable","updateFormatColumns","isFormatColumnsAvailable","updateViewport","setViewport","updateRollupCOnfig","updateSelectDistinctColumns","isSelectDistinctAvailable","updateTotalsConfig","updatePendingRowCount","updatePendingDataMap","updateFrozenColumns","updateColumnHeaderGroups","updatePartitionConfig","displayName"],"sources":["../src/IrisGridModelUpdater.tsx"],"sourcesContent":["/* eslint-disable react/require-default-props */\n/* eslint-disable no-param-reassign */\nimport { useMemo } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ModelIndex, MoveOperation } from '@deephaven/grid';\nimport { Formatter, ReverseType, TableUtils } from '@deephaven/jsapi-utils';\nimport { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';\nimport { useOnChange } from '@deephaven/react-hooks';\nimport IrisGridUtils from './IrisGridUtils';\nimport { ColumnName, UITotalsTableConfig, PendingDataMap } from './CommonTypes';\nimport IrisGridModel from './IrisGridModel';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\nimport {\n PartitionConfig,\n isPartitionedGridModel,\n} from './PartitionedGridModel';\nimport { isIrisGridTreeTableModel } from './IrisGridTreeTableModel';\n\nconst COLUMN_BUFFER_PAGES = 1;\n\ninterface IrisGridModelUpdaterProps {\n model: IrisGridModel;\n top: number;\n bottom: number;\n left: number | null;\n right: number | null;\n filter: readonly dh.FilterCondition[];\n sorts: readonly dh.Sort[];\n reverseType?: ReverseType;\n customColumns: readonly ColumnName[];\n movedColumns: readonly MoveOperation[];\n hiddenColumns: readonly ModelIndex[];\n frozenColumns?: readonly ColumnName[];\n columnHeaderGroups: readonly ColumnHeaderGroup[];\n formatColumns: readonly dh.CustomColumn[];\n alwaysFetchColumns: readonly ColumnName[];\n formatter: Formatter;\n rollupConfig?: dh.RollupConfig | null;\n totalsConfig?: UITotalsTableConfig | null;\n selectDistinctColumns?: readonly ColumnName[];\n pendingRowCount?: number;\n pendingDataMap?: PendingDataMap;\n partitionConfig?: PartitionConfig;\n showExtraGroupColumn?: boolean;\n}\n\n/**\n * React component to keep IrisGridModel in sync\n */\nfunction IrisGridModelUpdater({\n model,\n top,\n bottom,\n left,\n right,\n filter,\n formatter,\n reverseType = TableUtils.REVERSE_TYPE.NONE,\n sorts,\n customColumns,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n rollupConfig = null,\n totalsConfig = null,\n selectDistinctColumns = EMPTY_ARRAY,\n pendingRowCount = 0,\n pendingDataMap = EMPTY_MAP,\n frozenColumns,\n formatColumns,\n columnHeaderGroups,\n partitionConfig,\n showExtraGroupColumn,\n}: IrisGridModelUpdaterProps): JSX.Element | null {\n const { isTotalsAvailable, isRollupAvailable } = model;\n // Check for showExtraGroupColumn before memoizing columns, since updating it will change the columns\n useOnChange(() => {\n if (isIrisGridTreeTableModel(model) && showExtraGroupColumn != null) {\n model.showExtraGroupColumn = showExtraGroupColumn;\n }\n }, [model, showExtraGroupColumn]);\n\n const columns = useMemo(\n () =>\n IrisGridUtils.getModelViewportColumns(\n model.columns,\n left,\n right,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n COLUMN_BUFFER_PAGES\n ),\n [\n model.columns,\n left,\n right,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n ]\n );\n useOnChange(\n function updateFilter() {\n model.filter = filter;\n },\n [model, filter]\n );\n useOnChange(\n function updateSorts() {\n const sortsForModel = [...sorts];\n if (reverseType !== TableUtils.REVERSE_TYPE.NONE) {\n sortsForModel.push(model.dh.Table.reverse());\n }\n model.sort = sortsForModel;\n },\n [model, sorts, reverseType]\n );\n useOnChange(\n function updateFormatter() {\n model.formatter = formatter;\n },\n [model, formatter]\n );\n useOnChange(\n function updateCustomColumns() {\n if (model.isCustomColumnsAvailable) {\n model.customColumns = customColumns;\n }\n },\n [model, customColumns]\n );\n useOnChange(\n function updateFormatColumns() {\n if (model.isFormatColumnsAvailable) {\n model.formatColumns = formatColumns;\n }\n },\n [model, formatColumns]\n );\n useOnChange(\n function updateViewport() {\n model.setViewport(top, bottom, columns);\n },\n [model, top, bottom, columns]\n );\n useOnChange(\n function updateRollupCOnfig() {\n if (isRollupAvailable) {\n model.rollupConfig = rollupConfig;\n }\n },\n [model, isRollupAvailable, rollupConfig]\n );\n useOnChange(\n function updateSelectDistinctColumns() {\n if (model.isSelectDistinctAvailable) {\n model.selectDistinctColumns = selectDistinctColumns;\n }\n },\n [model, selectDistinctColumns]\n );\n useOnChange(\n function updateTotalsConfig() {\n if (isTotalsAvailable) {\n model.totalsConfig = totalsConfig;\n }\n },\n [model, isTotalsAvailable, totalsConfig]\n );\n useOnChange(\n function updatePendingRowCount() {\n model.pendingRowCount = pendingRowCount;\n },\n [model, pendingRowCount]\n );\n useOnChange(\n function updatePendingDataMap() {\n model.pendingDataMap = pendingDataMap;\n },\n [model, pendingDataMap]\n );\n useOnChange(\n function updateFrozenColumns() {\n if (frozenColumns) {\n model.updateFrozenColumns(frozenColumns);\n }\n },\n [model, frozenColumns]\n );\n useOnChange(\n function updateColumnHeaderGroups() {\n model.columnHeaderGroups = columnHeaderGroups;\n },\n [model, columnHeaderGroups]\n );\n useOnChange(\n function updatePartitionConfig() {\n if (partitionConfig && isPartitionedGridModel(model)) {\n model.partitionConfig = partitionConfig;\n }\n },\n [model, partitionConfig]\n );\n\n return null;\n}\n\nIrisGridModelUpdater.displayName = 'IrisGridModelUpdater';\n\nexport default IrisGridModelUpdater;\n"],"mappings":"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"}
|
|
@@ -3,15 +3,21 @@ import type { dh as DhType } from '@deephaven/jsapi-types';
|
|
|
3
3
|
import { Formatter } from '@deephaven/jsapi-utils';
|
|
4
4
|
import { UIRow, ColumnName } from './CommonTypes';
|
|
5
5
|
import IrisGridTableModelTemplate from './IrisGridTableModelTemplate';
|
|
6
|
+
import IrisGridModel from './IrisGridModel';
|
|
6
7
|
export interface UITreeRow extends UIRow {
|
|
7
8
|
isExpanded: boolean;
|
|
8
9
|
hasChildren: boolean;
|
|
9
10
|
depth: number;
|
|
10
11
|
}
|
|
12
|
+
export declare function isIrisGridTreeTableModel(tableModel: IrisGridModel): tableModel is IrisGridTreeTableModel;
|
|
11
13
|
declare class IrisGridTreeTableModel extends IrisGridTableModelTemplate<DhType.TreeTable, UITreeRow> {
|
|
12
14
|
/** We keep a virtual column at the front that tracks the "group" that is expanded */
|
|
13
15
|
private virtualColumns;
|
|
16
|
+
private showExtraGroupCol;
|
|
14
17
|
constructor(dh: typeof DhType, table: DhType.TreeTable, formatter?: Formatter, inputTable?: DhType.InputTable | null);
|
|
18
|
+
get showExtraGroupColumn(): boolean;
|
|
19
|
+
set showExtraGroupColumn(showExtraGroupCol: boolean);
|
|
20
|
+
updateVirtualColumns(): void;
|
|
15
21
|
applyBufferedViewport(viewportTop: number, viewportBottom: number, columns: DhType.Column[]): void;
|
|
16
22
|
textForCell(x: ModelIndex, y: ModelIndex): string;
|
|
17
23
|
extractViewportRow(row: DhType.TreeRow, columns: DhType.Column[]): UITreeRow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTreeTableModel.d.ts","sourceRoot":"","sources":["../src/IrisGridTreeTableModel.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAc,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridTreeTableModel.d.ts","sourceRoot":"","sources":["../src/IrisGridTreeTableModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,48 @@ import memoize from 'memoize-one';
|
|
|
10
10
|
import { GridRange } from '@deephaven/grid';
|
|
11
11
|
import Log from '@deephaven/log';
|
|
12
12
|
import { Formatter, TableUtils } from '@deephaven/jsapi-utils';
|
|
13
|
-
import { assertNotNull } from '@deephaven/utils';
|
|
13
|
+
import { assertNotNull, EventShimCustomEvent } from '@deephaven/utils';
|
|
14
14
|
import IrisGridTableModelTemplate from "./IrisGridTableModelTemplate.js";
|
|
15
|
+
import IrisGridModel from "./IrisGridModel.js";
|
|
15
16
|
var log = Log.module('IrisGridTreeTableModel');
|
|
17
|
+
var VirtualGroupColumn = Object.freeze({
|
|
18
|
+
name: '__DH_UI_GROUP__',
|
|
19
|
+
displayName: 'Group',
|
|
20
|
+
type: TableUtils.dataType.STRING,
|
|
21
|
+
constituentType: TableUtils.dataType.STRING,
|
|
22
|
+
isPartitionColumn: false,
|
|
23
|
+
isSortable: false,
|
|
24
|
+
isProxy: true,
|
|
25
|
+
description: 'Key column',
|
|
26
|
+
index: -1,
|
|
27
|
+
filter: () => {
|
|
28
|
+
throw new Error('Filter not implemented for virtual column');
|
|
29
|
+
},
|
|
30
|
+
sort: () => {
|
|
31
|
+
throw new Error('Sort not implemented virtual column');
|
|
32
|
+
},
|
|
33
|
+
formatColor: () => {
|
|
34
|
+
throw new Error('Color not implemented for virtual column');
|
|
35
|
+
},
|
|
36
|
+
get: () => {
|
|
37
|
+
throw new Error('get not implemented for virtual column');
|
|
38
|
+
},
|
|
39
|
+
getFormat: () => {
|
|
40
|
+
throw new Error('getFormat not implemented for virtual column');
|
|
41
|
+
},
|
|
42
|
+
formatNumber: () => {
|
|
43
|
+
throw new Error('formatNumber not implemented for virtual column');
|
|
44
|
+
},
|
|
45
|
+
formatDate: () => {
|
|
46
|
+
throw new Error('formatDate not implemented for virtual column');
|
|
47
|
+
}
|
|
48
|
+
});
|
|
16
49
|
function isLayoutTreeTable(table) {
|
|
17
50
|
return table.layoutHints !== undefined;
|
|
18
51
|
}
|
|
52
|
+
export function isIrisGridTreeTableModel(tableModel) {
|
|
53
|
+
return tableModel.showExtraGroupColumn != null;
|
|
54
|
+
}
|
|
19
55
|
class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
|
|
20
56
|
/** We keep a virtual column at the front that tracks the "group" that is expanded */
|
|
21
57
|
|
|
@@ -24,42 +60,28 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
|
|
|
24
60
|
var inputTable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
25
61
|
super(dh, table, formatter, inputTable);
|
|
26
62
|
_defineProperty(this, "virtualColumns", void 0);
|
|
63
|
+
_defineProperty(this, "showExtraGroupCol", true);
|
|
27
64
|
_defineProperty(this, "getCachedColumns", memoize((virtualColumns, tableColumns) => [...virtualColumns, ...tableColumns]));
|
|
28
65
|
_defineProperty(this, "getCachedGroupColumns", memoize((virtualColumns, tableGroupedColumns) => [...virtualColumns, ...tableGroupedColumns]));
|
|
29
66
|
_defineProperty(this, "getCachedFilterableColumnSet", memoize((columns, groupedColumns, virtualColumns) => new Set(((groupedColumns === null || groupedColumns === void 0 ? void 0 : groupedColumns.length) > 0 ? groupedColumns : columns).filter(c => !virtualColumns.includes(c)).map(c1 => columns.findIndex(c2 => c1.name === c2.name)))));
|
|
30
67
|
_defineProperty(this, "getCachedGroupedColumnSet", memoize(groupedColumns => new Set(groupedColumns.map(c1 => this.columns.findIndex(c2 => c1.name === c2.name)))));
|
|
31
|
-
this.virtualColumns = table.groupedColumns.length > 1 ? [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
throw new Error('Color not implemented for virtual column');
|
|
49
|
-
},
|
|
50
|
-
get: () => {
|
|
51
|
-
throw new Error('get not implemented for virtual column');
|
|
52
|
-
},
|
|
53
|
-
getFormat: () => {
|
|
54
|
-
throw new Error('getFormat not implemented for virtual column');
|
|
55
|
-
},
|
|
56
|
-
formatNumber: () => {
|
|
57
|
-
throw new Error('formatNumber not implemented for virtual column');
|
|
58
|
-
},
|
|
59
|
-
formatDate: () => {
|
|
60
|
-
throw new Error('formatDate not implemented for virtual column');
|
|
61
|
-
}
|
|
62
|
-
}] : [];
|
|
68
|
+
this.virtualColumns = this.showExtraGroupColumn && table.groupedColumns.length > 1 ? [VirtualGroupColumn] : [];
|
|
69
|
+
}
|
|
70
|
+
get showExtraGroupColumn() {
|
|
71
|
+
return this.showExtraGroupCol;
|
|
72
|
+
}
|
|
73
|
+
set showExtraGroupColumn(showExtraGroupCol) {
|
|
74
|
+
if (this.showExtraGroupCol === showExtraGroupCol) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.showExtraGroupCol = showExtraGroupCol;
|
|
78
|
+
this.updateVirtualColumns();
|
|
79
|
+
}
|
|
80
|
+
updateVirtualColumns() {
|
|
81
|
+
this.virtualColumns = this.showExtraGroupColumn && this.table.groupedColumns.length > 1 ? [VirtualGroupColumn] : [];
|
|
82
|
+
this.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {
|
|
83
|
+
detail: this.columns
|
|
84
|
+
}));
|
|
63
85
|
}
|
|
64
86
|
applyBufferedViewport(viewportTop, viewportBottom, columns) {
|
|
65
87
|
var viewportColumns = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","Log","Formatter","TableUtils","assertNotNull","IrisGridTableModelTemplate","log","module","isLayoutTreeTable","table","layoutHints","undefined","IrisGridTreeTableModel","constructor","dh","formatter","arguments","length","inputTable","_defineProperty","virtualColumns","tableColumns","tableGroupedColumns","columns","groupedColumns","Set","filter","c","includes","map","c1","findIndex","c2","name","displayName","type","dataType","STRING","constituentType","isPartitionColumn","isSortable","isProxy","description","index","Error","sort","formatColor","get","getFormat","formatNumber","formatDate","applyBufferedViewport","viewportTop","viewportBottom","viewportColumns","setViewport","textForCell","x","y","column","sourceColumn","row","hasChildren","value","valueForCell","displayString","depth","getCachedGroupedColumnSet","has","extractViewportRow","isExpanded","extractedRow","modifiedData","Map","data","i","key","cellData","warn","set","_objectSpread","snapshot","ranges","includeHeaders","_arguments","_this","_asyncToGenerator","_this$viewport$column","_this$viewportData","formatValue","viewport","viewportData","result","push","viewportRange","offset","rows","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","_viewportRow$data$get","getCachedColumns","getCachedGroupColumns","sourceForCell","depthForRow","getClearFilterRange","hasExpandableRows","isExpandAllAvailable","expandAll","isChartBuilderAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","isColumnMovable","isRowExpandable","_row$hasChildren","isRowExpanded","_row$isExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","_row$depth","updateFrozenColumns"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport {\n BoundedAxisRange,\n GridCell,\n GridRange,\n ModelIndex,\n} from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport { assertNotNull } from '@deephaven/utils';\nimport { UIRow, ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport { DisplayColumn } from './IrisGridModel';\n\nconst log = Log.module('IrisGridTreeTableModel');\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\n\ntype LayoutTreeTable = DhType.TreeTable & {\n layoutHints?: null | DhType.LayoutHints;\n};\n\nfunction isLayoutTreeTable(table: DhType.TreeTable): table is LayoutTreeTable {\n return (table as LayoutTreeTable).layoutHints !== undefined;\n}\n\nclass IrisGridTreeTableModel extends IrisGridTableModelTemplate<\n DhType.TreeTable,\n UITreeRow\n> {\n /** We keep a virtual column at the front that tracks the \"group\" that is expanded */\n private virtualColumns: DisplayColumn[];\n\n constructor(\n dh: typeof DhType,\n table: DhType.TreeTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh, table, formatter, inputTable);\n this.virtualColumns =\n table.groupedColumns.length > 1\n ? [\n {\n name: '__DH_UI_GROUP__',\n displayName: 'Group',\n type: TableUtils.dataType.STRING,\n constituentType: TableUtils.dataType.STRING,\n isPartitionColumn: false,\n isSortable: false,\n isProxy: true,\n description: 'Key column',\n index: -1,\n filter: () => {\n throw new Error('Filter not implemented for virtual column');\n },\n sort: () => {\n throw new Error('Sort not implemented virtual column');\n },\n formatColor: () => {\n throw new Error('Color not implemented for virtual column');\n },\n get: () => {\n throw new Error('get not implemented for virtual column');\n },\n getFormat: () => {\n throw new Error('getFormat not implemented for virtual column');\n },\n formatNumber: () => {\n throw new Error(\n 'formatNumber not implemented for virtual column'\n );\n },\n formatDate: () => {\n throw new Error(\n 'formatDate not implemented for virtual column'\n );\n },\n },\n ]\n : [];\n }\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: DhType.Column[]\n ): void {\n const viewportColumns = [\n // Need to always fetch the grouped columns so we always have key data for the rows\n // Used to display our virtual key column\n ...this.table.groupedColumns,\n ...columns.filter(\n c =>\n !this.virtualColumns.includes(c) && !this.groupedColumns.includes(c)\n ),\n ];\n this.table.setViewport(viewportTop, viewportBottom, viewportColumns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n if (row != null && column != null) {\n if (!row.hasChildren && column.constituentType != null) {\n const value = this.valueForCell(x, y);\n return this.displayString(value, column.constituentType, column.name);\n }\n // Show empty string instead of null in rollup grouping columns (issue #1483)\n if (\n row.hasChildren &&\n row.depth <= x + 1 &&\n this.valueForCell(x, y) === null &&\n this.getCachedGroupedColumnSet(this.groupedColumns).has(x)\n ) {\n return '';\n }\n }\n\n return super.textForCell(x, y);\n }\n\n extractViewportRow(row: DhType.TreeRow, columns: DhType.Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n const extractedRow = super.extractViewportRow(row, columns);\n const modifiedData = new Map(extractedRow.data);\n if (hasChildren) {\n for (let i = 0; i < this.virtualColumns.length; i += 1) {\n const key = i + (depth - 1) + (this.virtualColumns.length - 1);\n const cellData = modifiedData.get(key);\n if (cellData == null) {\n log.warn('Missing key data for virtual column', i, depth, key, row);\n } else {\n modifiedData.set(i, cellData);\n }\n }\n }\n\n return {\n ...extractedRow,\n data: modifiedData,\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue: (value: unknown, column: DhType.Column) => unknown = value =>\n value\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const columns = this.viewport.columns ?? this.columns;\n const result = [];\n\n if (includeHeaders != null && includeHeaders) {\n result.push(columns.map(c => c.name));\n }\n\n const viewportRange = new GridRange(\n 0,\n this.viewportData?.offset,\n columns.length,\n this.viewportData.offset + this.viewportData.rows.length\n );\n\n for (let i = 0; i < ranges.length; i += 1) {\n const intersection = GridRange.intersection(viewportRange, ranges[i]);\n\n assertNotNull(intersection);\n assertNotNull(intersection.startRow);\n assertNotNull(intersection.endRow);\n\n for (let r = intersection.startRow; r <= intersection.endRow; r += 1) {\n const resultRow = [];\n const viewportRow =\n this.viewportData.rows[r - this.viewportData.offset];\n assertNotNull(intersection.startColumn);\n assertNotNull(intersection.endColumn);\n for (\n let c = intersection.startColumn;\n c <= intersection.endColumn;\n c += 1\n ) {\n resultRow.push(\n formatValue(viewportRow.data.get(c)?.value, this.columns[c])\n );\n }\n result.push(resultRow);\n }\n }\n\n return result;\n }\n\n get columns(): DhType.Column[] {\n return this.getCachedColumns(this.virtualColumns, super.columns);\n }\n\n get groupedColumns(): readonly DhType.Column[] {\n return this.getCachedGroupColumns(\n this.virtualColumns,\n this.table.groupedColumns\n );\n }\n\n sourceForCell(column: ModelIndex, row: ModelIndex): GridCell {\n if (column >= this.virtualColumns.length) {\n return { column, row };\n }\n const depth = this.depthForRow(row);\n return { column: column + depth, row };\n }\n\n sourceColumn(column: ModelIndex, row: ModelIndex): DhType.Column {\n if (column >= this.virtualColumns.length) {\n return super.sourceColumn(column, row);\n }\n\n const depth = this.depthForRow(row);\n return this.columns[column + depth];\n }\n\n getClearFilterRange(column: ModelIndex): BoundedAxisRange | null {\n if (column >= this.virtualColumns.length) {\n return super.getClearFilterRange(column);\n }\n // Source for the proxied column could be any of the grouped columns.\n // Return the range of columns matching the grouped columns.\n return [this.virtualColumns.length, this.groupedColumns.length];\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n if (isLayoutTreeTable(this.table)) {\n return this.table.layoutHints;\n }\n return undefined;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isExpandAllAvailable(): boolean {\n return this.table.expandAll !== undefined;\n }\n\n get isChartBuilderAvailable(): boolean {\n return false;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(\n this.columns,\n this.groupedColumns,\n this.virtualColumns\n ).has(columnIndex);\n }\n\n isColumnMovable(column: ModelIndex): boolean {\n return column >= this.groupedColumns.length;\n }\n\n isRowExpandable(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.hasChildren ?? false;\n }\n\n isRowExpanded(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.isExpanded ?? false;\n }\n\n setRowExpanded(\n y: ModelIndex,\n isExpanded: boolean,\n expandDescendants = false\n ): void {\n if (this.isExpandAllAvailable) {\n this.table.setExpanded(y, isExpanded, expandDescendants);\n } else {\n this.table.setExpanded(y, isExpanded);\n }\n }\n\n expandAll(): void {\n if (this.table.expandAll != null) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll != null) {\n this.table.collapseAll();\n }\n }\n\n depthForRow(y: ModelIndex): ModelIndex {\n const row = this.row(y);\n return (row?.depth ?? 1) - 1;\n }\n\n getCachedColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableColumns]\n );\n\n getCachedGroupColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableGroupedColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableGroupedColumns]\n );\n\n getCachedFilterableColumnSet = memoize(\n (\n columns: readonly DhType.Column[],\n groupedColumns: readonly DhType.Column[],\n virtualColumns: readonly DhType.Column[]\n ) =>\n new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns)\n .filter(c => !virtualColumns.includes(c))\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n )\n );\n\n getCachedGroupedColumnSet = memoize(\n (groupedColumns: readonly DhType.Column[]) =>\n new Set(\n groupedColumns.map(c1 =>\n this.columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n\n updateFrozenColumns(columns: ColumnName[]): void {\n if (columns.length > 0) {\n throw new Error('Cannot freeze columns on a tree table');\n }\n }\n}\n\nexport default IrisGridTreeTableModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","Log","Formatter","TableUtils","assertNotNull","EventShimCustomEvent","IrisGridTableModelTemplate","IrisGridModel","log","module","VirtualGroupColumn","Object","freeze","name","displayName","type","dataType","STRING","constituentType","isPartitionColumn","isSortable","isProxy","description","index","filter","Error","sort","formatColor","get","getFormat","formatNumber","formatDate","isLayoutTreeTable","table","layoutHints","undefined","isIrisGridTreeTableModel","tableModel","showExtraGroupColumn","IrisGridTreeTableModel","constructor","dh","formatter","arguments","length","inputTable","_defineProperty","virtualColumns","tableColumns","tableGroupedColumns","columns","groupedColumns","Set","c","includes","map","c1","findIndex","c2","showExtraGroupCol","updateVirtualColumns","dispatchEvent","EVENT","COLUMNS_CHANGED","detail","applyBufferedViewport","viewportTop","viewportBottom","viewportColumns","setViewport","textForCell","x","y","column","sourceColumn","row","hasChildren","value","valueForCell","displayString","depth","getCachedGroupedColumnSet","has","extractViewportRow","isExpanded","extractedRow","modifiedData","Map","data","i","key","cellData","warn","set","_objectSpread","snapshot","ranges","includeHeaders","_arguments","_this","_asyncToGenerator","_this$viewport$column","_this$viewportData","formatValue","viewport","viewportData","result","push","viewportRange","offset","rows","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","_viewportRow$data$get","getCachedColumns","getCachedGroupColumns","sourceForCell","depthForRow","getClearFilterRange","hasExpandableRows","isExpandAllAvailable","expandAll","isChartBuilderAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","isColumnMovable","isRowExpandable","_row$hasChildren","isRowExpanded","_row$isExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","_row$depth","updateFrozenColumns"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport {\n BoundedAxisRange,\n GridCell,\n GridRange,\n ModelIndex,\n} from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport { assertNotNull, EventShimCustomEvent } from '@deephaven/utils';\nimport { UIRow, ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport IrisGridModel, { DisplayColumn } from './IrisGridModel';\n\nconst log = Log.module('IrisGridTreeTableModel');\n\nconst VirtualGroupColumn = Object.freeze({\n name: '__DH_UI_GROUP__',\n displayName: 'Group',\n type: TableUtils.dataType.STRING,\n constituentType: TableUtils.dataType.STRING,\n isPartitionColumn: false,\n isSortable: false,\n isProxy: true,\n description: 'Key column',\n index: -1,\n filter: () => {\n throw new Error('Filter not implemented for virtual column');\n },\n sort: () => {\n throw new Error('Sort not implemented virtual column');\n },\n formatColor: () => {\n throw new Error('Color not implemented for virtual column');\n },\n get: () => {\n throw new Error('get not implemented for virtual column');\n },\n getFormat: () => {\n throw new Error('getFormat not implemented for virtual column');\n },\n formatNumber: () => {\n throw new Error('formatNumber not implemented for virtual column');\n },\n formatDate: () => {\n throw new Error('formatDate not implemented for virtual column');\n },\n});\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\n\ntype LayoutTreeTable = DhType.TreeTable & {\n layoutHints?: null | DhType.LayoutHints;\n};\n\nfunction isLayoutTreeTable(table: DhType.TreeTable): table is LayoutTreeTable {\n return (table as LayoutTreeTable).layoutHints !== undefined;\n}\n\nexport function isIrisGridTreeTableModel(\n tableModel: IrisGridModel\n): tableModel is IrisGridTreeTableModel {\n return (tableModel as IrisGridTreeTableModel).showExtraGroupColumn != null;\n}\n\nclass IrisGridTreeTableModel extends IrisGridTableModelTemplate<\n DhType.TreeTable,\n UITreeRow\n> {\n /** We keep a virtual column at the front that tracks the \"group\" that is expanded */\n private virtualColumns: DisplayColumn[];\n\n private showExtraGroupCol = true;\n\n constructor(\n dh: typeof DhType,\n table: DhType.TreeTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh, table, formatter, inputTable);\n\n this.virtualColumns =\n this.showExtraGroupColumn && table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n }\n\n get showExtraGroupColumn(): boolean {\n return this.showExtraGroupCol;\n }\n\n set showExtraGroupColumn(showExtraGroupCol: boolean) {\n if (this.showExtraGroupCol === showExtraGroupCol) {\n return;\n }\n this.showExtraGroupCol = showExtraGroupCol;\n this.updateVirtualColumns();\n }\n\n updateVirtualColumns(): void {\n this.virtualColumns =\n this.showExtraGroupColumn && this.table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: this.columns,\n })\n );\n }\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: DhType.Column[]\n ): void {\n const viewportColumns = [\n // Need to always fetch the grouped columns so we always have key data for the rows\n // Used to display our virtual key column\n ...this.table.groupedColumns,\n ...columns.filter(\n c =>\n !this.virtualColumns.includes(c) && !this.groupedColumns.includes(c)\n ),\n ];\n this.table.setViewport(viewportTop, viewportBottom, viewportColumns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n if (row != null && column != null) {\n if (!row.hasChildren && column.constituentType != null) {\n const value = this.valueForCell(x, y);\n return this.displayString(value, column.constituentType, column.name);\n }\n // Show empty string instead of null in rollup grouping columns (issue #1483)\n if (\n row.hasChildren &&\n row.depth <= x + 1 &&\n this.valueForCell(x, y) === null &&\n this.getCachedGroupedColumnSet(this.groupedColumns).has(x)\n ) {\n return '';\n }\n }\n\n return super.textForCell(x, y);\n }\n\n extractViewportRow(row: DhType.TreeRow, columns: DhType.Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n const extractedRow = super.extractViewportRow(row, columns);\n const modifiedData = new Map(extractedRow.data);\n if (hasChildren) {\n for (let i = 0; i < this.virtualColumns.length; i += 1) {\n const key = i + (depth - 1) + (this.virtualColumns.length - 1);\n const cellData = modifiedData.get(key);\n if (cellData == null) {\n log.warn('Missing key data for virtual column', i, depth, key, row);\n } else {\n modifiedData.set(i, cellData);\n }\n }\n }\n\n return {\n ...extractedRow,\n data: modifiedData,\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue: (value: unknown, column: DhType.Column) => unknown = value =>\n value\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const columns = this.viewport.columns ?? this.columns;\n const result = [];\n\n if (includeHeaders != null && includeHeaders) {\n result.push(columns.map(c => c.name));\n }\n\n const viewportRange = new GridRange(\n 0,\n this.viewportData?.offset,\n columns.length,\n this.viewportData.offset + this.viewportData.rows.length\n );\n\n for (let i = 0; i < ranges.length; i += 1) {\n const intersection = GridRange.intersection(viewportRange, ranges[i]);\n\n assertNotNull(intersection);\n assertNotNull(intersection.startRow);\n assertNotNull(intersection.endRow);\n\n for (let r = intersection.startRow; r <= intersection.endRow; r += 1) {\n const resultRow = [];\n const viewportRow =\n this.viewportData.rows[r - this.viewportData.offset];\n assertNotNull(intersection.startColumn);\n assertNotNull(intersection.endColumn);\n for (\n let c = intersection.startColumn;\n c <= intersection.endColumn;\n c += 1\n ) {\n resultRow.push(\n formatValue(viewportRow.data.get(c)?.value, this.columns[c])\n );\n }\n result.push(resultRow);\n }\n }\n\n return result;\n }\n\n get columns(): DhType.Column[] {\n return this.getCachedColumns(this.virtualColumns, super.columns);\n }\n\n get groupedColumns(): readonly DhType.Column[] {\n return this.getCachedGroupColumns(\n this.virtualColumns,\n this.table.groupedColumns\n );\n }\n\n sourceForCell(column: ModelIndex, row: ModelIndex): GridCell {\n if (column >= this.virtualColumns.length) {\n return { column, row };\n }\n const depth = this.depthForRow(row);\n return { column: column + depth, row };\n }\n\n sourceColumn(column: ModelIndex, row: ModelIndex): DhType.Column {\n if (column >= this.virtualColumns.length) {\n return super.sourceColumn(column, row);\n }\n\n const depth = this.depthForRow(row);\n return this.columns[column + depth];\n }\n\n getClearFilterRange(column: ModelIndex): BoundedAxisRange | null {\n if (column >= this.virtualColumns.length) {\n return super.getClearFilterRange(column);\n }\n // Source for the proxied column could be any of the grouped columns.\n // Return the range of columns matching the grouped columns.\n return [this.virtualColumns.length, this.groupedColumns.length];\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n if (isLayoutTreeTable(this.table)) {\n return this.table.layoutHints;\n }\n return undefined;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isExpandAllAvailable(): boolean {\n return this.table.expandAll !== undefined;\n }\n\n get isChartBuilderAvailable(): boolean {\n return false;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(\n this.columns,\n this.groupedColumns,\n this.virtualColumns\n ).has(columnIndex);\n }\n\n isColumnMovable(column: ModelIndex): boolean {\n return column >= this.groupedColumns.length;\n }\n\n isRowExpandable(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.hasChildren ?? false;\n }\n\n isRowExpanded(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.isExpanded ?? false;\n }\n\n setRowExpanded(\n y: ModelIndex,\n isExpanded: boolean,\n expandDescendants = false\n ): void {\n if (this.isExpandAllAvailable) {\n this.table.setExpanded(y, isExpanded, expandDescendants);\n } else {\n this.table.setExpanded(y, isExpanded);\n }\n }\n\n expandAll(): void {\n if (this.table.expandAll != null) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll != null) {\n this.table.collapseAll();\n }\n }\n\n depthForRow(y: ModelIndex): ModelIndex {\n const row = this.row(y);\n return (row?.depth ?? 1) - 1;\n }\n\n getCachedColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableColumns]\n );\n\n getCachedGroupColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableGroupedColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableGroupedColumns]\n );\n\n getCachedFilterableColumnSet = memoize(\n (\n columns: readonly DhType.Column[],\n groupedColumns: readonly DhType.Column[],\n virtualColumns: readonly DhType.Column[]\n ) =>\n new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns)\n .filter(c => !virtualColumns.includes(c))\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n )\n );\n\n getCachedGroupedColumnSet = memoize(\n (groupedColumns: readonly DhType.Column[]) =>\n new Set(\n groupedColumns.map(c1 =>\n this.columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n\n updateFrozenColumns(columns: ColumnName[]): void {\n if (columns.length > 0) {\n throw new Error('Cannot freeze columns on a tree table');\n }\n }\n}\n\nexport default IrisGridTreeTableModel;\n"],"mappings":"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"}
|
package/dist/LazyIrisGrid.d.ts
CHANGED
|
@@ -60,6 +60,7 @@ declare const LazyIrisGrid: import("react").ForwardRefExoticComponent<Pick<IrisG
|
|
|
60
60
|
truncateNumbersWithPound: boolean;
|
|
61
61
|
showEmptyStrings: boolean;
|
|
62
62
|
showNullStrings: boolean;
|
|
63
|
+
showExtraGroupColumn: boolean;
|
|
63
64
|
formatter: readonly never[];
|
|
64
65
|
decimalFormatOptions: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
65
66
|
defaultFormatString: import("prop-types").Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyIrisGrid.d.ts","sourceRoot":"","sources":["../src/LazyIrisGrid.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,YAAY,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"LazyIrisGrid.d.ts","sourceRoot":"","sources":["../src/LazyIrisGrid.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,YAAY,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAcjB,CAAC;AAIF,eAAe,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.92.0",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@deephaven/components": "^0.
|
|
35
|
-
"@deephaven/console": "^0.
|
|
36
|
-
"@deephaven/filters": "^0.
|
|
37
|
-
"@deephaven/grid": "^0.
|
|
38
|
-
"@deephaven/icons": "^0.
|
|
39
|
-
"@deephaven/jsapi-components": "^0.
|
|
34
|
+
"@deephaven/components": "^0.92.0",
|
|
35
|
+
"@deephaven/console": "^0.92.0",
|
|
36
|
+
"@deephaven/filters": "^0.92.0",
|
|
37
|
+
"@deephaven/grid": "^0.92.0",
|
|
38
|
+
"@deephaven/icons": "^0.92.0",
|
|
39
|
+
"@deephaven/jsapi-components": "^0.92.0",
|
|
40
40
|
"@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
|
|
41
|
-
"@deephaven/jsapi-utils": "^0.
|
|
42
|
-
"@deephaven/log": "^0.
|
|
43
|
-
"@deephaven/react-hooks": "^0.
|
|
44
|
-
"@deephaven/storage": "^0.
|
|
45
|
-
"@deephaven/utils": "^0.
|
|
41
|
+
"@deephaven/jsapi-utils": "^0.92.0",
|
|
42
|
+
"@deephaven/log": "^0.92.0",
|
|
43
|
+
"@deephaven/react-hooks": "^0.92.0",
|
|
44
|
+
"@deephaven/storage": "^0.92.0",
|
|
45
|
+
"@deephaven/utils": "^0.92.0",
|
|
46
46
|
"@dnd-kit/core": "^6.1.0",
|
|
47
47
|
"@dnd-kit/sortable": "^7.0.2",
|
|
48
48
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"react-dom": ">=16.8.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@deephaven/jsapi-shim": "^0.
|
|
69
|
-
"@deephaven/mocks": "^0.
|
|
68
|
+
"@deephaven/jsapi-shim": "^0.92.0",
|
|
69
|
+
"@deephaven/mocks": "^0.92.0",
|
|
70
70
|
"deep-equal": "2.2.3"
|
|
71
71
|
},
|
|
72
72
|
"files": [
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"publishConfig": {
|
|
80
80
|
"access": "public"
|
|
81
81
|
},
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "0994c522bcda37eb79e3a6bf2f3ac63f680a49c5"
|
|
83
83
|
}
|