@deephaven/iris-grid 0.96.0 → 0.96.1-beta.1
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.
|
@@ -1 +1 @@
|
|
|
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,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAEjB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,KAAK,eAAe,EAErB,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,
|
|
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,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAEjB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,KAAK,eAAe,EAErB,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,CAuIhD;kBA/JQ,oBAAoB;;;AAmK7B,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable react/require-default-props */
|
|
2
2
|
/* eslint-disable no-param-reassign */
|
|
3
|
-
import { useMemo } from 'react';
|
|
3
|
+
import { useEffect, useMemo } from 'react';
|
|
4
4
|
import { TableUtils } from '@deephaven/jsapi-utils';
|
|
5
5
|
import { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';
|
|
6
6
|
import { useOnChange } from '@deephaven/react-hooks';
|
|
@@ -89,12 +89,6 @@ function IrisGridModelUpdater(_ref) {
|
|
|
89
89
|
model.totalsConfig = totalsConfig;
|
|
90
90
|
}
|
|
91
91
|
}, [model, isTotalsAvailable, totalsConfig]);
|
|
92
|
-
useOnChange(function updatePendingRowCount() {
|
|
93
|
-
model.pendingRowCount = pendingRowCount;
|
|
94
|
-
}, [model, pendingRowCount]);
|
|
95
|
-
useOnChange(function updatePendingDataMap() {
|
|
96
|
-
model.pendingDataMap = pendingDataMap;
|
|
97
|
-
}, [model, pendingDataMap]);
|
|
98
92
|
useOnChange(function updateFrozenColumns() {
|
|
99
93
|
if (frozenColumns) {
|
|
100
94
|
model.updateFrozenColumns(frozenColumns);
|
|
@@ -108,6 +102,14 @@ function IrisGridModelUpdater(_ref) {
|
|
|
108
102
|
model.partitionConfig = partitionConfig;
|
|
109
103
|
}
|
|
110
104
|
}, [model, partitionConfig]);
|
|
105
|
+
// These setters are wrapped in useEffect instead of useOnChange because they emit an event
|
|
106
|
+
// that potentially causes side effects, violating the rule that render should be a pure function.
|
|
107
|
+
useEffect(function updatePendingRowCount() {
|
|
108
|
+
model.pendingRowCount = pendingRowCount;
|
|
109
|
+
}, [model, pendingRowCount]);
|
|
110
|
+
useEffect(function updatePendingDataMap() {
|
|
111
|
+
model.pendingDataMap = pendingDataMap;
|
|
112
|
+
}, [model, pendingDataMap]);
|
|
111
113
|
return null;
|
|
112
114
|
}
|
|
113
115
|
IrisGridModelUpdater.displayName = 'IrisGridModelUpdater';
|
|
@@ -1 +1 @@
|
|
|
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 { type ModelIndex, type MoveOperation } from '@deephaven/grid';\nimport {\n type Formatter,\n type ReverseType,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';\nimport { useOnChange } from '@deephaven/react-hooks';\nimport IrisGridUtils from './IrisGridUtils';\nimport {\n type ColumnName,\n type UITotalsTableConfig,\n type PendingDataMap,\n} from './CommonTypes';\nimport type IrisGridModel from './IrisGridModel';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\nimport {\n type 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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"}
|
|
1
|
+
{"version":3,"file":"IrisGridModelUpdater.js","names":["useEffect","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","updateFrozenColumns","updateColumnHeaderGroups","updatePartitionConfig","updatePendingRowCount","updatePendingDataMap","displayName"],"sources":["../src/IrisGridModelUpdater.tsx"],"sourcesContent":["/* eslint-disable react/require-default-props */\n/* eslint-disable no-param-reassign */\nimport { useEffect, useMemo } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { type ModelIndex, type MoveOperation } from '@deephaven/grid';\nimport {\n type Formatter,\n type ReverseType,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';\nimport { useOnChange } from '@deephaven/react-hooks';\nimport IrisGridUtils from './IrisGridUtils';\nimport {\n type ColumnName,\n type UITotalsTableConfig,\n type PendingDataMap,\n} from './CommonTypes';\nimport type IrisGridModel from './IrisGridModel';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\nimport {\n type 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 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 // These setters are wrapped in useEffect instead of useOnChange because they emit an event\n // that potentially causes side effects, violating the rule that render should be a pure function.\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\n return null;\n}\n\nIrisGridModelUpdater.displayName = 'IrisGridModelUpdater';\n\nexport default IrisGridModelUpdater;\n"],"mappings":"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"}
|
|
@@ -135,7 +135,7 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
|
|
|
135
135
|
var _arguments = arguments,
|
|
136
136
|
_this = this;
|
|
137
137
|
return _asyncToGenerator(function* () {
|
|
138
|
-
var _this$viewport$column
|
|
138
|
+
var _this$viewport$column;
|
|
139
139
|
var formatValue = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : value => value;
|
|
140
140
|
assertNotNull(_this.viewport);
|
|
141
141
|
assertNotNull(_this.viewportData);
|
|
@@ -144,7 +144,7 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
|
|
|
144
144
|
if (includeHeaders != null && includeHeaders) {
|
|
145
145
|
result.push(columns.map(c => c.name));
|
|
146
146
|
}
|
|
147
|
-
var viewportRange = new GridRange(0,
|
|
147
|
+
var viewportRange = new GridRange(0, _this.viewportData.offset, columns.length, _this.viewportData.offset + _this.viewportData.rows.length - 1);
|
|
148
148
|
for (var i = 0; i < ranges.length; i += 1) {
|
|
149
149
|
var intersection = GridRange.intersection(viewportRange, ranges[i]);
|
|
150
150
|
assertNotNull(intersection);
|
|
@@ -1 +1 @@
|
|
|
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 type BoundedAxisRange,\n type GridCell,\n GridRange,\n type 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 { type UIRow, type ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport IrisGridModel, { type 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 for 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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"}
|
|
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","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 type BoundedAxisRange,\n type GridCell,\n GridRange,\n type 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 { type UIRow, type ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport IrisGridModel, { type 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 for 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 - 1\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":";;;;;;;AAAA;AACA,OAAOA,OAAO,MAAM,aAAa;AACjC,SAGEC,SAAS,QAEJ,iBAAiB;AAExB,OAAOC,GAAG,MAAM,gBAAgB;AAChC,SAASC,SAAS,EAAEC,UAAU,QAAQ,wBAAwB;AAC9D,SAASC,aAAa,EAAEC,oBAAoB,QAAQ,kBAAkB;AAAC,OAEhEC,0BAA0B;AAAA,OAC1BC,aAAa;AAEpB,IAAMC,GAAG,GAAGP,GAAG,CAACQ,MAAM,CAAC,wBAAwB,CAAC;AAEhD,IAAMC,kBAAkB,GAAGC,MAAM,CAACC,MAAM,CAAC;EACvCC,IAAI,EAAE,iBAAiB;EACvBC,WAAW,EAAE,OAAO;EACpBC,IAAI,EAAEZ,UAAU,CAACa,QAAQ,CAACC,MAAM;EAChCC,eAAe,EAAEf,UAAU,CAACa,QAAQ,CAACC,MAAM;EAC3CE,iBAAiB,EAAE,KAAK;EACxBC,UAAU,EAAE,KAAK;EACjBC,OAAO,EAAE,IAAI;EACbC,WAAW,EAAE,YAAY;EACzBC,KAAK,EAAE,CAAC,CAAC;EACTC,MAAM,EAAEA,CAAA,KAAM;IACZ,MAAM,IAAIC,KAAK,CAAC,2CAA2C,CAAC;EAC9D,CAAC;EACDC,IAAI,EAAEA,CAAA,KAAM;IACV,MAAM,IAAID,KAAK,CAAC,yCAAyC,CAAC;EAC5D,CAAC;EACDE,WAAW,EAAEA,CAAA,KAAM;IACjB,MAAM,IAAIF,KAAK,CAAC,0CAA0C,CAAC;EAC7D,CAAC;EACDG,GAAG,EAAEA,CAAA,KAAM;IACT,MAAM,IAAIH,KAAK,CAAC,wCAAwC,CAAC;EAC3D,CAAC;EACDI,SAAS,EAAEA,CAAA,KAAM;IACf,MAAM,IAAIJ,KAAK,CAAC,8CAA8C,CAAC;EACjE,CAAC;EACDK,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAIL,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDM,UAAU,EAAEA,CAAA,KAAM;IAChB,MAAM,IAAIN,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC;AAYF,SAASO,iBAAiBA,CAACC,KAAuB,EAA4B;EAC5E,OAAQA,KAAK,CAAqBC,WAAW,KAAKC,SAAS;AAC7D;AAEA,OAAO,SAASC,wBAAwBA,CACtCC,UAAyB,EACa;EACtC,OAAQA,UAAU,CAA4BC,oBAAoB,IAAI,IAAI;AAC5E;AAEA,MAAMC,sBAAsB,SAASjC,0BAA0B,CAG7D;EACA;;EAKAkC,WAAWA,CACTC,EAAiB,EACjBR,KAAuB,EAGvB;IAAA,IAFAS,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,IAAIzC,SAAS,CAACuC,EAAE,CAAC;IAAA,IAC7BI,UAAoC,GAAAF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,IAAI;IAE3C,KAAK,CAACF,EAAE,EAAER,KAAK,EAAES,SAAS,EAAEG,UAAU,CAAC;IAACC,eAAA;IAAAA,eAAA,4BARd,IAAI;IAAAA,eAAA,2BA8Qb/C,OAAO,CACxB,CACEgD,cAAwC,EACxCC,YAAsC,KACnC,CAAC,GAAGD,cAAc,EAAE,GAAGC,YAAY,CAC1C,CAAC;IAAAF,eAAA,gCAEuB/C,OAAO,CAC7B,CACEgD,cAAwC,EACxCE,mBAA6C,KAC1C,CAAC,GAAGF,cAAc,EAAE,GAAGE,mBAAmB,CACjD,CAAC;IAAAH,eAAA,uCAE8B/C,OAAO,CACpC,CACEmD,OAAiC,EACjCC,cAAwC,EACxCJ,cAAwC,KAExC,IAAIK,GAAG,CACL,CAAC,CAAAD,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEP,MAAM,IAAG,CAAC,GAAGO,cAAc,GAAGD,OAAO,EACnD1B,MAAM,CAAC6B,CAAC,IAAI,CAACN,cAAc,CAACO,QAAQ,CAACD,CAAC,CAAC,CAAC,CACxCE,GAAG,CAACC,EAAE,IAAIN,OAAO,CAACO,SAAS,CAACC,EAAE,IAAIF,EAAE,CAAC3C,IAAI,KAAK6C,EAAE,CAAC7C,IAAI,CAAC,CAC3D,CACJ,CAAC;IAAAiC,eAAA,oCAE2B/C,OAAO,CAChCoD,cAAwC,IACvC,IAAIC,GAAG,CACLD,cAAc,CAACI,GAAG,CAACC,EAAE,IACnB,IAAI,CAACN,OAAO,CAACO,SAAS,CAACC,EAAE,IAAIF,EAAE,CAAC3C,IAAI,KAAK6C,EAAE,CAAC7C,IAAI,CAClD,CACF,CACJ,CAAC;IAtSC,IAAI,CAACkC,cAAc,GACjB,IAAI,CAACT,oBAAoB,IAAIL,KAAK,CAACkB,cAAc,CAACP,MAAM,GAAG,CAAC,GACxD,CAAClC,kBAAkB,CAAC,GACpB,EAAE;EACV;EAEA,IAAI4B,oBAAoBA,CAAA,EAAY;IAClC,OAAO,IAAI,CAACqB,iBAAiB;EAC/B;EAEA,IAAIrB,oBAAoBA,CAACqB,iBAA0B,EAAE;IACnD,IAAI,IAAI,CAACA,iBAAiB,KAAKA,iBAAiB,EAAE;MAChD;IACF;IACA,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,oBAAoB,CAAC,CAAC;EAC7B;EAEAA,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACb,cAAc,GACjB,IAAI,CAACT,oBAAoB,IAAI,IAAI,CAACL,KAAK,CAACkB,cAAc,CAACP,MAAM,GAAG,CAAC,GAC7D,CAAClC,kBAAkB,CAAC,GACpB,EAAE;IACR,IAAI,CAACmD,aAAa,CAChB,IAAIxD,oBAAoB,CAACE,aAAa,CAACuD,KAAK,CAACC,eAAe,EAAE;MAC5DC,MAAM,EAAE,IAAI,CAACd;IACf,CAAC,CACH,CAAC;EACH;EAEAe,qBAAqBA,CACnBC,WAAmB,EACnBC,cAAsB,EACtBjB,OAAwB,EAClB;IACN,IAAMkB,eAAe,GAAG;IACtB;IACA;IACA,GAAG,IAAI,CAACnC,KAAK,CAACkB,cAAc,EAC5B,GAAGD,OAAO,CAAC1B,MAAM,CACf6B,CAAC,IACC,CAAC,IAAI,CAACN,cAAc,CAACO,QAAQ,CAACD,CAAC,CAAC,IAAI,CAAC,IAAI,CAACF,cAAc,CAACG,QAAQ,CAACD,CAAC,CACvE,CAAC,CACF;IACD,IAAI,CAACpB,KAAK,CAACoC,WAAW,CAACH,WAAW,EAAEC,cAAc,EAAEC,eAAe,CAAC;EACtE;EAEAE,WAAWA,CAACC,CAAa,EAAEC,CAAa,EAAU;IAChD,IAAMC,MAAM,GAAG,IAAI,CAACC,YAAY,CAACH,CAAC,EAAEC,CAAC,CAAC;IACtC,IAAMG,GAAG,GAAG,IAAI,CAACA,GAAG,CAACH,CAAC,CAAC;IACvB,IAAIG,GAAG,IAAI,IAAI,IAAIF,MAAM,IAAI,IAAI,EAAE;MACjC,IAAI,CAACE,GAAG,CAACC,WAAW,IAAIH,MAAM,CAACvD,eAAe,IAAI,IAAI,EAAE;QACtD,IAAM2D,MAAK,GAAG,IAAI,CAACC,YAAY,CAACP,CAAC,EAAEC,CAAC,CAAC;QACrC,OAAO,IAAI,CAACO,aAAa,CAACF,MAAK,EAAEJ,MAAM,CAACvD,eAAe,EAAEuD,MAAM,CAAC5D,IAAI,CAAC;MACvE;MACA;MACA,IACE8D,GAAG,CAACC,WAAW,IACfD,GAAG,CAACK,KAAK,IAAIT,CAAC,GAAG,CAAC,IAClB,IAAI,CAACO,YAAY,CAACP,CAAC,EAAEC,CAAC,CAAC,KAAK,IAAI,IAChC,IAAI,CAACS,yBAAyB,CAAC,IAAI,CAAC9B,cAAc,CAAC,CAAC+B,GAAG,CAACX,CAAC,CAAC,EAC1D;QACA,OAAO,EAAE;MACX;IACF;IAEA,OAAO,KAAK,CAACD,WAAW,CAACC,CAAC,EAAEC,CAAC,CAAC;EAChC;EAEAW,kBAAkBA,CAACR,GAAmB,EAAEzB,OAAwB,EAAa;IAC3E,IAAM;MAAEkC,UAAU;MAAER,WAAW;MAAEI;IAAM,CAAC,GAAGL,GAAG;IAC9C,IAAMU,YAAY,GAAG,KAAK,CAACF,kBAAkB,CAACR,GAAG,EAAEzB,OAAO,CAAC;IAC3D,IAAMoC,YAAY,GAAG,IAAIC,GAAG,CAACF,YAAY,CAACG,IAAI,CAAC;IAC/C,IAAIZ,WAAW,EAAE;MACf,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAC1C,cAAc,CAACH,MAAM,EAAE6C,CAAC,IAAI,CAAC,EAAE;QACtD,IAAMC,GAAG,GAAGD,CAAC,IAAIT,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAACjC,cAAc,CAACH,MAAM,GAAG,CAAC,CAAC;QAC9D,IAAM+C,QAAQ,GAAGL,YAAY,CAAC1D,GAAG,CAAC8D,GAAG,CAAC;QACtC,IAAIC,QAAQ,IAAI,IAAI,EAAE;UACpBnF,GAAG,CAACoF,IAAI,CAAC,qCAAqC,EAAEH,CAAC,EAAET,KAAK,EAAEU,GAAG,EAAEf,GAAG,CAAC;QACrE,CAAC,MAAM;UACLW,YAAY,CAACO,GAAG,CAACJ,CAAC,EAAEE,QAAQ,CAAC;QAC/B;MACF;IACF;IAEA,OAAAG,aAAA,CAAAA,aAAA,KACKT,YAAY;MACfG,IAAI,EAAEF,YAAY;MAClBF,UAAU;MACVR,WAAW;MACXI;IAAK;EAET;EAEMe,QAAQA,CACZC,MAAmB,EACnBC,cAAwB,EAGF;IAAA,IAAAC,UAAA,GAAAvD,SAAA;MAAAwD,KAAA;IAAA,OAAAC,iBAAA;MAAA,IAAAC,qBAAA;MAAA,IAFtBC,WAA+D,GAAAJ,UAAA,CAAAtD,MAAA,QAAAsD,UAAA,QAAA/D,SAAA,GAAA+D,UAAA,MAAGrB,KAAK,IACrEA,KAAK;MAEPzE,aAAa,CAAC+F,KAAI,CAACI,QAAQ,CAAC;MAC5BnG,aAAa,CAAC+F,KAAI,CAACK,YAAY,CAAC;MAChC,IAAMtD,OAAO,IAAAmD,qBAAA,GAAGF,KAAI,CAACI,QAAQ,CAACrD,OAAO,cAAAmD,qBAAA,cAAAA,qBAAA,GAAIF,KAAI,CAACjD,OAAO;MACrD,IAAMuD,MAAM,GAAG,EAAE;MAEjB,IAAIR,cAAc,IAAI,IAAI,IAAIA,cAAc,EAAE;QAC5CQ,MAAM,CAACC,IAAI,CAACxD,OAAO,CAACK,GAAG,CAACF,CAAC,IAAIA,CAAC,CAACxC,IAAI,CAAC,CAAC;MACvC;MAEA,IAAM8F,aAAa,GAAG,IAAI3G,SAAS,CACjC,CAAC,EACDmG,KAAI,CAACK,YAAY,CAACI,MAAM,EACxB1D,OAAO,CAACN,MAAM,EACduD,KAAI,CAACK,YAAY,CAACI,MAAM,GAAGT,KAAI,CAACK,YAAY,CAACK,IAAI,CAACjE,MAAM,GAAG,CAC7D,CAAC;MAED,KAAK,IAAI6C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGO,MAAM,CAACpD,MAAM,EAAE6C,CAAC,IAAI,CAAC,EAAE;QACzC,IAAMqB,YAAY,GAAG9G,SAAS,CAAC8G,YAAY,CAACH,aAAa,EAAEX,MAAM,CAACP,CAAC,CAAC,CAAC;QAErErF,aAAa,CAAC0G,YAAY,CAAC;QAC3B1G,aAAa,CAAC0G,YAAY,CAACC,QAAQ,CAAC;QACpC3G,aAAa,CAAC0G,YAAY,CAACE,MAAM,CAAC;QAElC,KAAK,IAAIC,CAAC,GAAGH,YAAY,CAACC,QAAQ,EAAEE,CAAC,IAAIH,YAAY,CAACE,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;UACpE,IAAMC,SAAS,GAAG,EAAE;UACpB,IAAMC,WAAW,GACfhB,KAAI,CAACK,YAAY,CAACK,IAAI,CAACI,CAAC,GAAGd,KAAI,CAACK,YAAY,CAACI,MAAM,CAAC;UACtDxG,aAAa,CAAC0G,YAAY,CAACM,WAAW,CAAC;UACvChH,aAAa,CAAC0G,YAAY,CAACO,SAAS,CAAC;UACrC,KACE,IAAIhE,CAAC,GAAGyD,YAAY,CAACM,WAAW,EAChC/D,CAAC,IAAIyD,YAAY,CAACO,SAAS,EAC3BhE,CAAC,IAAI,CAAC,EACN;YAAA,IAAAiE,qBAAA;YACAJ,SAAS,CAACR,IAAI,CACZJ,WAAW,EAAAgB,qBAAA,GAACH,WAAW,CAAC3B,IAAI,CAAC5D,GAAG,CAACyB,CAAC,CAAC,cAAAiE,qBAAA,uBAAvBA,qBAAA,CAAyBzC,KAAK,EAAEsB,KAAI,CAACjD,OAAO,CAACG,CAAC,CAAC,CAC7D,CAAC;UACH;UACAoD,MAAM,CAACC,IAAI,CAACQ,SAAS,CAAC;QACxB;MACF;MAEA,OAAOT,MAAM;IAAC;EAChB;EAEA,IAAIvD,OAAOA,CAAA,EAAoB;IAC7B,OAAO,IAAI,CAACqE,gBAAgB,CAAC,IAAI,CAACxE,cAAc,EAAE,KAAK,CAACG,OAAO,CAAC;EAClE;EAEA,IAAIC,cAAcA,CAAA,EAA6B;IAC7C,OAAO,IAAI,CAACqE,qBAAqB,CAC/B,IAAI,CAACzE,cAAc,EACnB,IAAI,CAACd,KAAK,CAACkB,cACb,CAAC;EACH;EAEAsE,aAAaA,CAAChD,MAAkB,EAAEE,GAAe,EAAY;IAC3D,IAAIF,MAAM,IAAI,IAAI,CAAC1B,cAAc,CAACH,MAAM,EAAE;MACxC,OAAO;QAAE6B,MAAM;QAAEE;MAAI,CAAC;IACxB;IACA,IAAMK,KAAK,GAAG,IAAI,CAAC0C,WAAW,CAAC/C,GAAG,CAAC;IACnC,OAAO;MAAEF,MAAM,EAAEA,MAAM,GAAGO,KAAK;MAAEL;IAAI,CAAC;EACxC;EAEAD,YAAYA,CAACD,MAAkB,EAAEE,GAAe,EAAiB;IAC/D,IAAIF,MAAM,IAAI,IAAI,CAAC1B,cAAc,CAACH,MAAM,EAAE;MACxC,OAAO,KAAK,CAAC8B,YAAY,CAACD,MAAM,EAAEE,GAAG,CAAC;IACxC;IAEA,IAAMK,KAAK,GAAG,IAAI,CAAC0C,WAAW,CAAC/C,GAAG,CAAC;IACnC,OAAO,IAAI,CAACzB,OAAO,CAACuB,MAAM,GAAGO,KAAK,CAAC;EACrC;EAEA2C,mBAAmBA,CAAClD,MAAkB,EAA2B;IAC/D,IAAIA,MAAM,IAAI,IAAI,CAAC1B,cAAc,CAACH,MAAM,EAAE;MACxC,OAAO,KAAK,CAAC+E,mBAAmB,CAAClD,MAAM,CAAC;IAC1C;IACA;IACA;IACA,OAAO,CAAC,IAAI,CAAC1B,cAAc,CAACH,MAAM,EAAE,IAAI,CAACO,cAAc,CAACP,MAAM,CAAC;EACjE;EAEA,IAAIV,WAAWA,CAAA,EAA0C;IACvD,IAAIF,iBAAiB,CAAC,IAAI,CAACC,KAAK,CAAC,EAAE;MACjC,OAAO,IAAI,CAACA,KAAK,CAACC,WAAW;IAC/B;IACA,OAAOC,SAAS;EAClB;EAEA,IAAIyF,iBAAiBA,CAAA,EAAY;IAC/B,OAAO,IAAI;EACb;EAEA,IAAIC,oBAAoBA,CAAA,EAAY;IAClC,OAAO,IAAI,CAAC5F,KAAK,CAAC6F,SAAS,KAAK3F,SAAS;EAC3C;EAEA,IAAI4F,uBAAuBA,CAAA,EAAY;IACrC,OAAO,KAAK;EACd;EAEA,IAAIC,yBAAyBA,CAAA,EAAY;IACvC,OAAO,KAAK;EACd;EAEA,IAAIC,YAAYA,CAAA,EAAY;IAC1B,OAAO,KAAK;EACd;EAEAC,YAAYA,CAACC,WAAuB,EAAW;IAC7C,OAAO,IAAI,CAACC,4BAA4B,CACtC,IAAI,CAAClF,OAAO,EACZ,IAAI,CAACC,cAAc,EACnB,IAAI,CAACJ,cACP,CAAC,CAACmC,GAAG,CAACiD,WAAW,CAAC;EACpB;EAEAE,eAAeA,CAAC5D,MAAkB,EAAW;IAC3C,OAAOA,MAAM,IAAI,IAAI,CAACtB,cAAc,CAACP,MAAM;EAC7C;EAEA0F,eAAeA,CAAC9D,CAAa,EAAW;IAAA,IAAA+D,gBAAA;IACtC,IAAM5D,GAAG,GAAG,IAAI,CAACA,GAAG,CAACH,CAAC,CAAC;IACvB,QAAA+D,gBAAA,GAAO5D,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEC,WAAW,cAAA2D,gBAAA,cAAAA,gBAAA,GAAI,KAAK;EAClC;EAEAC,aAAaA,CAAChE,CAAa,EAAW;IAAA,IAAAiE,eAAA;IACpC,IAAM9D,GAAG,GAAG,IAAI,CAACA,GAAG,CAACH,CAAC,CAAC;IACvB,QAAAiE,eAAA,GAAO9D,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAES,UAAU,cAAAqD,eAAA,cAAAA,eAAA,GAAI,KAAK;EACjC;EAEAC,cAAcA,CACZlE,CAAa,EACbY,UAAmB,EAEb;IAAA,IADNuD,iBAAiB,GAAAhG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,KAAK;IAEzB,IAAI,IAAI,CAACkF,oBAAoB,EAAE;MAC7B,IAAI,CAAC5F,KAAK,CAAC2G,WAAW,CAACpE,CAAC,EAAEY,UAAU,EAAEuD,iBAAiB,CAAC;IAC1D,CAAC,MAAM;MACL,IAAI,CAAC1G,KAAK,CAAC2G,WAAW,CAACpE,CAAC,EAAEY,UAAU,CAAC;IACvC;EACF;EAEA0C,SAASA,CAAA,EAAS;IAChB,IAAI,IAAI,CAAC7F,KAAK,CAAC6F,SAAS,IAAI,IAAI,EAAE;MAChC,IAAI,CAAC7F,KAAK,CAAC6F,SAAS,CAAC,CAAC;IACxB;EACF;EAEAe,WAAWA,CAAA,EAAS;IAClB,IAAI,IAAI,CAAC5G,KAAK,CAAC4G,WAAW,IAAI,IAAI,EAAE;MAClC,IAAI,CAAC5G,KAAK,CAAC4G,WAAW,CAAC,CAAC;IAC1B;EACF;EAEAnB,WAAWA,CAAClD,CAAa,EAAc;IAAA,IAAAsE,UAAA;IACrC,IAAMnE,GAAG,GAAG,IAAI,CAACA,GAAG,CAACH,CAAC,CAAC;IACvB,OAAO,EAAAsE,UAAA,GAACnE,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEK,KAAK,cAAA8D,UAAA,cAAAA,UAAA,GAAI,CAAC,IAAI,CAAC;EAC9B;EAsCAC,mBAAmBA,CAAC7F,OAAqB,EAAQ;IAC/C,IAAIA,OAAO,CAACN,MAAM,GAAG,CAAC,EAAE;MACtB,MAAM,IAAInB,KAAK,CAAC,uCAAuC,CAAC;IAC1D;EACF;AACF;AAEA,eAAec,sBAAsB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.96.
|
|
3
|
+
"version": "0.96.1-beta.1+cac799f2",
|
|
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.96.
|
|
35
|
-
"@deephaven/console": "^0.96.
|
|
36
|
-
"@deephaven/filters": "^0.96.
|
|
37
|
-
"@deephaven/grid": "^0.96.
|
|
38
|
-
"@deephaven/icons": "^0.96.
|
|
39
|
-
"@deephaven/jsapi-components": "^0.96.
|
|
34
|
+
"@deephaven/components": "^0.96.1-beta.1+cac799f2",
|
|
35
|
+
"@deephaven/console": "^0.96.1-beta.1+cac799f2",
|
|
36
|
+
"@deephaven/filters": "^0.96.1-beta.1+cac799f2",
|
|
37
|
+
"@deephaven/grid": "^0.96.1-beta.1+cac799f2",
|
|
38
|
+
"@deephaven/icons": "^0.96.1-beta.1+cac799f2",
|
|
39
|
+
"@deephaven/jsapi-components": "^0.96.1-beta.1+cac799f2",
|
|
40
40
|
"@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
|
|
41
|
-
"@deephaven/jsapi-utils": "^0.96.
|
|
42
|
-
"@deephaven/log": "^0.96.
|
|
43
|
-
"@deephaven/react-hooks": "^0.96.
|
|
44
|
-
"@deephaven/storage": "^0.96.
|
|
45
|
-
"@deephaven/utils": "^0.96.
|
|
41
|
+
"@deephaven/jsapi-utils": "^0.96.1-beta.1+cac799f2",
|
|
42
|
+
"@deephaven/log": "^0.96.1-beta.1+cac799f2",
|
|
43
|
+
"@deephaven/react-hooks": "^0.96.1-beta.1+cac799f2",
|
|
44
|
+
"@deephaven/storage": "^0.96.1-beta.1+cac799f2",
|
|
45
|
+
"@deephaven/utils": "^0.96.1-beta.1+cac799f2",
|
|
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,9 +65,9 @@
|
|
|
65
65
|
"react-dom": ">=16.8.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@deephaven/jsapi-shim": "^0.96.
|
|
69
|
-
"@deephaven/mocks": "^0.96.
|
|
70
|
-
"@deephaven/test-utils": "^0.96.
|
|
68
|
+
"@deephaven/jsapi-shim": "^0.96.1-beta.1+cac799f2",
|
|
69
|
+
"@deephaven/mocks": "^0.96.1-beta.1+cac799f2",
|
|
70
|
+
"@deephaven/test-utils": "^0.96.1-beta.1+cac799f2",
|
|
71
71
|
"deep-equal": "2.2.3"
|
|
72
72
|
},
|
|
73
73
|
"files": [
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"publishConfig": {
|
|
81
81
|
"access": "public"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "cac799f25d62485015a72ebdaaba506df85e5ce0"
|
|
84
84
|
}
|