@deephaven/iris-grid 0.74.0 → 0.74.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.
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +6 -1
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
- package/dist/IrisGridPartitionSelector.js +13 -4
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js +2 -2
- package/dist/IrisGridTableModel.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridPartitionSelector.d.ts","sourceRoot":"","sources":["../src/IrisGridPartitionSelector.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAMhC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAiB,OAAO,EAAgB,MAAM,kBAAkB,CAAC;AACxE,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI/E,UAAU,8BAA8B;IACtC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC;CACtD;AACD,UAAU,8BAA8B;IACtC,SAAS,EAAE,OAAO,CAAC;IAEnB,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IAE3B,eAAe,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;IAEnC,mDAAmD;IACnD,gBAAgB,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC;CACjD;AACD,cAAM,yBAA0B,SAAQ,SAAS,CAC/C,8BAA8B,EAC9B,8BAA8B,CAC/B;gBACa,KAAK,EAAE,8BAA8B;IAqB3C,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCxC,kBAAkB,CAAC,SAAS,EAAE,8BAA8B,GAAG,IAAI;IAUnE,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,EAAE,OAAO,CAAC;IAEjB,UAAU,EAAE,UAAU,CAAC;IAEvB,mBAAmB,IAAI,IAAI;IAW3B,gBAAgB,IAAI,IAAI;IAWxB;;;;OAIG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridPartitionSelector.d.ts","sourceRoot":"","sources":["../src/IrisGridPartitionSelector.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAMhC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAiB,OAAO,EAAgB,MAAM,kBAAkB,CAAC;AACxE,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI/E,UAAU,8BAA8B;IACtC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC;CACtD;AACD,UAAU,8BAA8B;IACtC,SAAS,EAAE,OAAO,CAAC;IAEnB,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IAE3B,eAAe,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;IAEnC,mDAAmD;IACnD,gBAAgB,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC;CACjD;AACD,cAAM,yBAA0B,SAAQ,SAAS,CAC/C,8BAA8B,EAC9B,8BAA8B,CAC/B;gBACa,KAAK,EAAE,8BAA8B;IAqB3C,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCxC,kBAAkB,CAAC,SAAS,EAAE,8BAA8B,GAAG,IAAI;IAUnE,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,EAAE,OAAO,CAAC;IAEjB,UAAU,EAAE,UAAU,CAAC;IAEvB,mBAAmB,IAAI,IAAI;IAW3B,gBAAgB,IAAI,IAAI;IAWxB;;;;OAIG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC;IAsDhB,UAAU,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAOlD;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM;IAiBtD;;OAEG;IACH,sBAAsB,IAAI,IAAI;IAiB9B,mBAAmB,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE;IAkCxE,uBAAuB,WACb,MAAM,aAAa,OAAO,gDAA1B,MAAM,aAAa,OAAO,oBAElC;IAEF,4BAA4B,WAClB,MAAM,aAAa,OAAO,yCAA1B,MAAM,aAAa,OAAO,aAClC;IAEF,MAAM,IAAI,GAAG,CAAC,OAAO;CAyDtB;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -155,13 +155,19 @@ class IrisGridPartitionSelector extends Component {
|
|
|
155
155
|
// Apply our partition filters, and just get the first value
|
|
156
156
|
var partitionFilters = newPartitions.slice(0, index + 1).map((partition, i) => {
|
|
157
157
|
var partitionColumn = t.columns[i];
|
|
158
|
-
return
|
|
158
|
+
return _this2.tableUtils.makeNullableEqFilter(partitionColumn, partition);
|
|
159
159
|
});
|
|
160
160
|
t.applyFilter(partitionFilters);
|
|
161
161
|
t.setViewport(0, 0, t.columns);
|
|
162
162
|
var data = yield _this2.pending.add(t.getViewportData());
|
|
163
163
|
var newConfig = {
|
|
164
|
-
|
|
164
|
+
// Core JSAPI returns undefined for null table values,
|
|
165
|
+
// coalesce with null to differentiate null from no selection in the dropdown
|
|
166
|
+
// https://github.com/deephaven/deephaven-core/issues/5400
|
|
167
|
+
partitions: t.columns.map(column => {
|
|
168
|
+
var _data$rows$0$get;
|
|
169
|
+
return (_data$rows$0$get = data.rows[0].get(column)) !== null && _data$rows$0$get !== void 0 ? _data$rows$0$get : null;
|
|
170
|
+
}),
|
|
165
171
|
mode: 'partition'
|
|
166
172
|
};
|
|
167
173
|
t.close();
|
|
@@ -194,7 +200,10 @@ class IrisGridPartitionSelector extends Component {
|
|
|
194
200
|
var {
|
|
195
201
|
model
|
|
196
202
|
} = this.props;
|
|
197
|
-
if (value
|
|
203
|
+
if (value === null) {
|
|
204
|
+
return '(null)';
|
|
205
|
+
}
|
|
206
|
+
if (value === undefined || value === '') {
|
|
198
207
|
return '';
|
|
199
208
|
}
|
|
200
209
|
var column = model.partitionColumns[index];
|
|
@@ -252,7 +261,7 @@ class IrisGridPartitionSelector extends Component {
|
|
|
252
261
|
var previousFilter = partitionFilters[i - 1];
|
|
253
262
|
var previousPartition = partitions[i - 1];
|
|
254
263
|
var previousColumn = model.partitionColumns[i - 1];
|
|
255
|
-
var partitionFilter = [...previousFilter,
|
|
264
|
+
var partitionFilter = [...previousFilter, this.tableUtils.makeNullableEqFilter(previousColumn, previousPartition)];
|
|
256
265
|
partitionFilters.push(partitionFilter);
|
|
257
266
|
}
|
|
258
267
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridPartitionSelector.js","names":["React","Component","memoizee","FontAwesomeIcon","Button","vsChevronRight","vsMerge","vsKey","Log","TableDropdown","TableUtils","assertNotNull","Pending","PromiseUtils","jsx","_jsx","jsxs","_jsxs","log","module","IrisGridPartitionSelector","constructor","props","_defineProperty","index","value","handlePartitionSelect","getDisplayValue","handleKeyTableClick","bind","handleMergeClick","model","tableUtils","dh","pending","state","isLoading","keysTable","partitionFilters","partitionTables","componentDidMount","_this","_asyncToGenerator","add","partitionKeysTable","then","keyTable","sorts","partitionColumns","map","column","sort","desc","applySort","t","close","Promise","all","_ref","_","i","selectDistinct","slice","_x","_x2","apply","arguments","getPartitionFilters","setState","e","isCanceled","componentDidUpdate","prevProps","partitionConfig","prevConfig","updatePartitionFilters","componentWillUnmount","cancel","forEach","table","debug2","newPartitionConfig","_objectSpread","mode","sendUpdate","selectedValue","_this2","debug","newPartitions","partitions","length","copy","tCopy","partition","partitionColumn","columns","filter","eq","makeFilterRawValue","type","applyFilter","setViewport","data","getViewportData","newConfig","rows","get","error","onChange","isCharType","toString","String","fromCharCode","parseInt","displayString","name","Error","concat","push","previousFilter","previousPartition","previousColumn","partitionFilter","render","partitionSelectors","_partitionTables$inde","className","children","getCachedChangeCallback","undefined","disabled","formatValue","getCachedFormatValueCallback","icon","onClick","kind","tooltip","active","rotation"],"sources":["../src/IrisGridPartitionSelector.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport memoizee from 'memoizee';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button } from '@deephaven/components';\nimport { vsChevronRight, vsMerge, vsKey } from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport { TableDropdown } from '@deephaven/jsapi-components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';\nimport './IrisGridPartitionSelector.scss';\nimport { PartitionConfig, PartitionedGridModel } from './PartitionedGridModel';\n\nconst log = Log.module('IrisGridPartitionSelector');\n\ninterface IrisGridPartitionSelectorProps {\n model: PartitionedGridModel;\n partitionConfig: PartitionConfig;\n onChange: (partitionConfig: PartitionConfig) => void;\n}\ninterface IrisGridPartitionSelectorState {\n isLoading: boolean;\n\n keysTable: dh.Table | null;\n\n partitionTables: dh.Table[] | null;\n\n /** The filters to apply to each partition table */\n partitionFilters: dh.FilterCondition[][] | null;\n}\nclass IrisGridPartitionSelector extends Component<\n IrisGridPartitionSelectorProps,\n IrisGridPartitionSelectorState\n> {\n constructor(props: IrisGridPartitionSelectorProps) {\n super(props);\n\n this.handleKeyTableClick = this.handleKeyTableClick.bind(this);\n this.handleMergeClick = this.handleMergeClick.bind(this);\n this.handlePartitionSelect = this.handlePartitionSelect.bind(this);\n\n const { model } = props;\n this.tableUtils = new TableUtils(model.dh);\n this.pending = new Pending();\n\n this.state = {\n // We start be loading the partition tables, so we should be in a loading state\n isLoading: true,\n\n keysTable: null,\n partitionFilters: null,\n partitionTables: null,\n };\n }\n\n async componentDidMount(): Promise<void> {\n const { model } = this.props;\n\n try {\n const keysTable = await this.pending.add(\n model.partitionKeysTable().then(keyTable => {\n const sorts = model.partitionColumns.map(column =>\n column.sort().desc()\n );\n keyTable.applySort(sorts);\n return keyTable;\n }),\n t => t.close()\n );\n\n const partitionTables = await Promise.all(\n model.partitionColumns.map(async (_, i) =>\n this.pending.add(\n keysTable.selectDistinct(model.partitionColumns.slice(0, i + 1)),\n t => t.close()\n )\n )\n );\n\n const partitionFilters = this.getPartitionFilters(partitionTables);\n this.setState({\n isLoading: false,\n keysTable,\n partitionFilters,\n partitionTables,\n });\n } catch (e) {\n if (!PromiseUtils.isCanceled(e)) {\n // Just re-throw the error if it's not a cancel\n throw e;\n }\n }\n }\n\n componentDidUpdate(prevProps: IrisGridPartitionSelectorProps): void {\n const { partitionConfig: prevConfig } = prevProps;\n\n const { partitionConfig } = this.props;\n\n if (prevConfig !== partitionConfig) {\n this.updatePartitionFilters();\n }\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n\n const { keysTable, partitionTables } = this.state;\n keysTable?.close();\n partitionTables?.forEach(table => table.close());\n }\n\n pending: Pending;\n\n tableUtils: TableUtils;\n\n handleKeyTableClick(): void {\n log.debug2('handleKeyTableClick');\n\n const { partitionConfig } = this.props;\n const newPartitionConfig = { ...partitionConfig };\n // Toggle between Keys and Partition mode\n newPartitionConfig.mode =\n partitionConfig.mode === 'keys' ? 'partition' : 'keys';\n this.sendUpdate(newPartitionConfig);\n }\n\n handleMergeClick(): void {\n log.debug2('handleMergeClick');\n\n const { partitionConfig } = this.props;\n const newPartitionConfig = { ...partitionConfig };\n // Toggle between Merged and Partition mode\n newPartitionConfig.mode =\n partitionConfig.mode === 'merged' ? 'partition' : 'merged';\n this.sendUpdate(newPartitionConfig);\n }\n\n /**\n * Handles when a partition dropdown selection is changed. Will send an update with the new partition config\n * @param index Index of the partition column that was changed\n * @param selectedValue Selected value of the partition column\n */\n async handlePartitionSelect(\n index: number,\n selectedValue: unknown\n ): Promise<void> {\n const { model, partitionConfig: prevConfig } = this.props;\n\n log.debug('handlePartitionSelect', index, selectedValue, prevConfig);\n\n const newPartitions = [...prevConfig.partitions];\n newPartitions[index] = selectedValue;\n\n // If it's the last partition changed, we know it's already a valid value, just emit it\n if (index === model.partitionColumns.length - 1) {\n this.sendUpdate({ partitions: newPartitions, mode: 'partition' });\n return;\n }\n\n const { keysTable } = this.state;\n // Otherwise, we need to get the value from a filtered key table\n assertNotNull(keysTable);\n try {\n this.setState({ isLoading: true });\n const t = await this.pending.add(keysTable.copy(), tCopy =>\n tCopy.close()\n );\n\n // Apply our partition filters, and just get the first value\n const partitionFilters = newPartitions\n .slice(0, index + 1)\n .map((partition, i) => {\n const partitionColumn = t.columns[i];\n return partitionColumn\n .filter()\n .eq(\n this.tableUtils.makeFilterRawValue(\n partitionColumn.type,\n partition\n )\n );\n });\n t.applyFilter(partitionFilters);\n t.setViewport(0, 0, t.columns);\n const data = await this.pending.add(t.getViewportData());\n const newConfig: PartitionConfig = {\n partitions: t.columns.map(column => data.rows[0].get(column)),\n mode: 'partition',\n };\n t.close();\n this.sendUpdate(newConfig);\n } catch (e) {\n if (!PromiseUtils.isCanceled(e)) {\n log.error('Unable to get partition tables', e);\n }\n } finally {\n this.setState({ isLoading: false });\n }\n }\n\n sendUpdate(partitionConfig: PartitionConfig): void {\n log.debug2('sendUpdate', partitionConfig);\n\n const { onChange } = this.props;\n onChange(partitionConfig);\n }\n\n /**\n * Calls model.displayString with a special character case\n * @param index The index of the partition column to get the display value for\n * @param value The partition value to get the display value for\n */\n getDisplayValue(index: number, value: unknown): string {\n const { model } = this.props;\n\n if (value == null || value === '') {\n return '';\n }\n const column = model.partitionColumns[index];\n if (TableUtils.isCharType(column.type) && value.toString().length > 0) {\n return String.fromCharCode(parseInt(value.toString(), 10));\n }\n return model.displayString(value, column.type, column.name);\n }\n\n /**\n * Update the filters on the partition dropdown tables\n */\n updatePartitionFilters(): void {\n const { partitionTables } = this.state;\n assertNotNull(partitionTables);\n\n const { partitionConfig } = this.props;\n const { mode } = partitionConfig;\n log.debug('updatePartitionFilters', partitionConfig);\n if (mode !== 'partition') {\n // We only need to update the filters if the mode is `partitions`\n // In the other modes, we disable the dropdowns anyway\n return;\n }\n\n const partitionFilters = this.getPartitionFilters(partitionTables);\n this.setState({ partitionFilters });\n }\n\n getPartitionFilters(partitionTables: dh.Table[]): dh.FilterCondition[][] {\n const { model, partitionConfig } = this.props;\n const { partitions } = partitionConfig;\n log.debug('getPartitionFilters', partitionConfig);\n\n if (partitions.length !== partitionTables.length) {\n throw new Error(\n `Invalid partition config set. Expected ${partitionTables.length} partitions, but got ${partitions.length}`\n );\n }\n\n // The filters are applied in order, so we need to build up the filters for each partition\n const partitionFilters: dh.FilterCondition[][] = [];\n for (let i = 0; i < partitions.length; i += 1) {\n if (i === 0) {\n // There's no reason to ever filter the first table\n partitionFilters.push([]);\n } else {\n const previousFilter = partitionFilters[i - 1];\n const previousPartition = partitions[i - 1];\n const previousColumn = model.partitionColumns[i - 1];\n const partitionFilter = [\n ...previousFilter,\n previousColumn\n .filter()\n .eq(\n this.tableUtils.makeFilterRawValue(\n previousColumn.type,\n previousPartition\n )\n ),\n ];\n partitionFilters.push(partitionFilter);\n }\n }\n return partitionFilters;\n }\n\n getCachedChangeCallback = memoizee(\n (index: number) => (value: unknown) =>\n this.handlePartitionSelect(index, value)\n );\n\n getCachedFormatValueCallback = memoizee(\n (index: number) => (value: unknown) => this.getDisplayValue(index, value)\n );\n\n render(): JSX.Element {\n const { model, partitionConfig } = this.props;\n const { isLoading, partitionFilters, partitionTables } = this.state;\n\n const { mode, partitions } = partitionConfig;\n\n const partitionSelectors = model.partitionColumns.map((column, index) => (\n <div key={`selector-${column.name}`} className=\"column-selector\">\n <div className=\"column-name\">{column.name}</div>\n <TableDropdown\n className=\"custom-select-sm\"\n table={partitionTables?.[index]}\n column={partitionTables?.[index]?.columns[index]}\n filter={partitionFilters?.[index]}\n onChange={this.getCachedChangeCallback(index)}\n selectedValue={mode === 'partition' ? partitions[index] : undefined}\n disabled={\n (index > 0 && partitionConfig.mode !== 'partition') || isLoading\n }\n formatValue={this.getCachedFormatValueCallback(index)}\n />\n {model.partitionColumns.length - 1 === index || (\n <FontAwesomeIcon icon={vsChevronRight} />\n )}\n </div>\n ));\n return (\n <div className=\"iris-grid-partition-selector\">\n <div className=\"table-name\">Partitioned Table</div>\n <div className=\"partition-button-group\">\n <Button\n className=\"btn-sm\"\n onClick={this.handleKeyTableClick}\n kind=\"inline\"\n tooltip=\"View keys as table\"\n icon={vsKey}\n active={partitionConfig.mode === 'keys'}\n disabled={isLoading}\n >\n Keys\n </Button>\n <Button\n className=\"btn-sm\"\n onClick={this.handleMergeClick}\n kind=\"inline\"\n tooltip=\"View all partitions as one merged table\"\n icon={<FontAwesomeIcon icon={vsMerge} rotation={90} />}\n active={partitionConfig.mode === 'merged'}\n disabled={isLoading}\n >\n Merge\n </Button>\n </div>\n {partitionSelectors}\n </div>\n );\n }\n}\n\nexport default IrisGridPartitionSelector;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridPartitionSelector.js","names":["React","Component","memoizee","FontAwesomeIcon","Button","vsChevronRight","vsMerge","vsKey","Log","TableDropdown","TableUtils","assertNotNull","Pending","PromiseUtils","jsx","_jsx","jsxs","_jsxs","log","module","IrisGridPartitionSelector","constructor","props","_defineProperty","index","value","handlePartitionSelect","getDisplayValue","handleKeyTableClick","bind","handleMergeClick","model","tableUtils","dh","pending","state","isLoading","keysTable","partitionFilters","partitionTables","componentDidMount","_this","_asyncToGenerator","add","partitionKeysTable","then","keyTable","sorts","partitionColumns","map","column","sort","desc","applySort","t","close","Promise","all","_ref","_","i","selectDistinct","slice","_x","_x2","apply","arguments","getPartitionFilters","setState","e","isCanceled","componentDidUpdate","prevProps","partitionConfig","prevConfig","updatePartitionFilters","componentWillUnmount","cancel","forEach","table","debug2","newPartitionConfig","_objectSpread","mode","sendUpdate","selectedValue","_this2","debug","newPartitions","partitions","length","copy","tCopy","partition","partitionColumn","columns","makeNullableEqFilter","applyFilter","setViewport","data","getViewportData","newConfig","_data$rows$0$get","rows","get","error","onChange","undefined","isCharType","type","toString","String","fromCharCode","parseInt","displayString","name","Error","concat","push","previousFilter","previousPartition","previousColumn","partitionFilter","render","partitionSelectors","_partitionTables$inde","className","children","filter","getCachedChangeCallback","disabled","formatValue","getCachedFormatValueCallback","icon","onClick","kind","tooltip","active","rotation"],"sources":["../src/IrisGridPartitionSelector.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport memoizee from 'memoizee';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button } from '@deephaven/components';\nimport { vsChevronRight, vsMerge, vsKey } from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport { TableDropdown } from '@deephaven/jsapi-components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';\nimport './IrisGridPartitionSelector.scss';\nimport { PartitionConfig, PartitionedGridModel } from './PartitionedGridModel';\n\nconst log = Log.module('IrisGridPartitionSelector');\n\ninterface IrisGridPartitionSelectorProps {\n model: PartitionedGridModel;\n partitionConfig: PartitionConfig;\n onChange: (partitionConfig: PartitionConfig) => void;\n}\ninterface IrisGridPartitionSelectorState {\n isLoading: boolean;\n\n keysTable: dh.Table | null;\n\n partitionTables: dh.Table[] | null;\n\n /** The filters to apply to each partition table */\n partitionFilters: dh.FilterCondition[][] | null;\n}\nclass IrisGridPartitionSelector extends Component<\n IrisGridPartitionSelectorProps,\n IrisGridPartitionSelectorState\n> {\n constructor(props: IrisGridPartitionSelectorProps) {\n super(props);\n\n this.handleKeyTableClick = this.handleKeyTableClick.bind(this);\n this.handleMergeClick = this.handleMergeClick.bind(this);\n this.handlePartitionSelect = this.handlePartitionSelect.bind(this);\n\n const { model } = props;\n this.tableUtils = new TableUtils(model.dh);\n this.pending = new Pending();\n\n this.state = {\n // We start be loading the partition tables, so we should be in a loading state\n isLoading: true,\n\n keysTable: null,\n partitionFilters: null,\n partitionTables: null,\n };\n }\n\n async componentDidMount(): Promise<void> {\n const { model } = this.props;\n\n try {\n const keysTable = await this.pending.add(\n model.partitionKeysTable().then(keyTable => {\n const sorts = model.partitionColumns.map(column =>\n column.sort().desc()\n );\n keyTable.applySort(sorts);\n return keyTable;\n }),\n t => t.close()\n );\n\n const partitionTables = await Promise.all(\n model.partitionColumns.map(async (_, i) =>\n this.pending.add(\n keysTable.selectDistinct(model.partitionColumns.slice(0, i + 1)),\n t => t.close()\n )\n )\n );\n\n const partitionFilters = this.getPartitionFilters(partitionTables);\n this.setState({\n isLoading: false,\n keysTable,\n partitionFilters,\n partitionTables,\n });\n } catch (e) {\n if (!PromiseUtils.isCanceled(e)) {\n // Just re-throw the error if it's not a cancel\n throw e;\n }\n }\n }\n\n componentDidUpdate(prevProps: IrisGridPartitionSelectorProps): void {\n const { partitionConfig: prevConfig } = prevProps;\n\n const { partitionConfig } = this.props;\n\n if (prevConfig !== partitionConfig) {\n this.updatePartitionFilters();\n }\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n\n const { keysTable, partitionTables } = this.state;\n keysTable?.close();\n partitionTables?.forEach(table => table.close());\n }\n\n pending: Pending;\n\n tableUtils: TableUtils;\n\n handleKeyTableClick(): void {\n log.debug2('handleKeyTableClick');\n\n const { partitionConfig } = this.props;\n const newPartitionConfig = { ...partitionConfig };\n // Toggle between Keys and Partition mode\n newPartitionConfig.mode =\n partitionConfig.mode === 'keys' ? 'partition' : 'keys';\n this.sendUpdate(newPartitionConfig);\n }\n\n handleMergeClick(): void {\n log.debug2('handleMergeClick');\n\n const { partitionConfig } = this.props;\n const newPartitionConfig = { ...partitionConfig };\n // Toggle between Merged and Partition mode\n newPartitionConfig.mode =\n partitionConfig.mode === 'merged' ? 'partition' : 'merged';\n this.sendUpdate(newPartitionConfig);\n }\n\n /**\n * Handles when a partition dropdown selection is changed. Will send an update with the new partition config\n * @param index Index of the partition column that was changed\n * @param selectedValue Selected value of the partition column\n */\n async handlePartitionSelect(\n index: number,\n selectedValue: unknown\n ): Promise<void> {\n const { model, partitionConfig: prevConfig } = this.props;\n\n log.debug('handlePartitionSelect', index, selectedValue, prevConfig);\n\n const newPartitions = [...prevConfig.partitions];\n newPartitions[index] = selectedValue;\n\n // If it's the last partition changed, we know it's already a valid value, just emit it\n if (index === model.partitionColumns.length - 1) {\n this.sendUpdate({ partitions: newPartitions, mode: 'partition' });\n return;\n }\n\n const { keysTable } = this.state;\n // Otherwise, we need to get the value from a filtered key table\n assertNotNull(keysTable);\n try {\n this.setState({ isLoading: true });\n const t = await this.pending.add(keysTable.copy(), tCopy =>\n tCopy.close()\n );\n\n // Apply our partition filters, and just get the first value\n const partitionFilters = newPartitions\n .slice(0, index + 1)\n .map((partition, i) => {\n const partitionColumn = t.columns[i];\n return this.tableUtils.makeNullableEqFilter(\n partitionColumn,\n partition\n );\n });\n t.applyFilter(partitionFilters);\n t.setViewport(0, 0, t.columns);\n const data = await this.pending.add(t.getViewportData());\n const newConfig: PartitionConfig = {\n // Core JSAPI returns undefined for null table values,\n // coalesce with null to differentiate null from no selection in the dropdown\n // https://github.com/deephaven/deephaven-core/issues/5400\n partitions: t.columns.map(column => data.rows[0].get(column) ?? null),\n mode: 'partition',\n };\n t.close();\n this.sendUpdate(newConfig);\n } catch (e) {\n if (!PromiseUtils.isCanceled(e)) {\n log.error('Unable to get partition tables', e);\n }\n } finally {\n this.setState({ isLoading: false });\n }\n }\n\n sendUpdate(partitionConfig: PartitionConfig): void {\n log.debug2('sendUpdate', partitionConfig);\n\n const { onChange } = this.props;\n onChange(partitionConfig);\n }\n\n /**\n * Calls model.displayString with a special character case\n * @param index The index of the partition column to get the display value for\n * @param value The partition value to get the display value for\n */\n getDisplayValue(index: number, value: unknown): string {\n const { model } = this.props;\n\n if (value === null) {\n return '(null)';\n }\n\n if (value === undefined || value === '') {\n return '';\n }\n const column = model.partitionColumns[index];\n if (TableUtils.isCharType(column.type) && value.toString().length > 0) {\n return String.fromCharCode(parseInt(value.toString(), 10));\n }\n return model.displayString(value, column.type, column.name);\n }\n\n /**\n * Update the filters on the partition dropdown tables\n */\n updatePartitionFilters(): void {\n const { partitionTables } = this.state;\n assertNotNull(partitionTables);\n\n const { partitionConfig } = this.props;\n const { mode } = partitionConfig;\n log.debug('updatePartitionFilters', partitionConfig);\n if (mode !== 'partition') {\n // We only need to update the filters if the mode is `partitions`\n // In the other modes, we disable the dropdowns anyway\n return;\n }\n\n const partitionFilters = this.getPartitionFilters(partitionTables);\n this.setState({ partitionFilters });\n }\n\n getPartitionFilters(partitionTables: dh.Table[]): dh.FilterCondition[][] {\n const { model, partitionConfig } = this.props;\n const { partitions } = partitionConfig;\n log.debug('getPartitionFilters', partitionConfig);\n\n if (partitions.length !== partitionTables.length) {\n throw new Error(\n `Invalid partition config set. Expected ${partitionTables.length} partitions, but got ${partitions.length}`\n );\n }\n\n // The filters are applied in order, so we need to build up the filters for each partition\n const partitionFilters: dh.FilterCondition[][] = [];\n for (let i = 0; i < partitions.length; i += 1) {\n if (i === 0) {\n // There's no reason to ever filter the first table\n partitionFilters.push([]);\n } else {\n const previousFilter = partitionFilters[i - 1];\n const previousPartition = partitions[i - 1];\n const previousColumn = model.partitionColumns[i - 1];\n const partitionFilter = [\n ...previousFilter,\n this.tableUtils.makeNullableEqFilter(\n previousColumn,\n previousPartition\n ),\n ];\n partitionFilters.push(partitionFilter);\n }\n }\n return partitionFilters;\n }\n\n getCachedChangeCallback = memoizee(\n (index: number) => (value: unknown) =>\n this.handlePartitionSelect(index, value)\n );\n\n getCachedFormatValueCallback = memoizee(\n (index: number) => (value: unknown) => this.getDisplayValue(index, value)\n );\n\n render(): JSX.Element {\n const { model, partitionConfig } = this.props;\n const { isLoading, partitionFilters, partitionTables } = this.state;\n\n const { mode, partitions } = partitionConfig;\n\n const partitionSelectors = model.partitionColumns.map((column, index) => (\n <div key={`selector-${column.name}`} className=\"column-selector\">\n <div className=\"column-name\">{column.name}</div>\n <TableDropdown\n className=\"custom-select-sm\"\n table={partitionTables?.[index]}\n column={partitionTables?.[index]?.columns[index]}\n filter={partitionFilters?.[index]}\n onChange={this.getCachedChangeCallback(index)}\n selectedValue={mode === 'partition' ? partitions[index] : undefined}\n disabled={\n (index > 0 && partitionConfig.mode !== 'partition') || isLoading\n }\n formatValue={this.getCachedFormatValueCallback(index)}\n />\n {model.partitionColumns.length - 1 === index || (\n <FontAwesomeIcon icon={vsChevronRight} />\n )}\n </div>\n ));\n return (\n <div className=\"iris-grid-partition-selector\">\n <div className=\"table-name\">Partitioned Table</div>\n <div className=\"partition-button-group\">\n <Button\n className=\"btn-sm\"\n onClick={this.handleKeyTableClick}\n kind=\"inline\"\n tooltip=\"View keys as table\"\n icon={vsKey}\n active={partitionConfig.mode === 'keys'}\n disabled={isLoading}\n >\n Keys\n </Button>\n <Button\n className=\"btn-sm\"\n onClick={this.handleMergeClick}\n kind=\"inline\"\n tooltip=\"View all partitions as one merged table\"\n icon={<FontAwesomeIcon icon={vsMerge} rotation={90} />}\n active={partitionConfig.mode === 'merged'}\n disabled={isLoading}\n >\n Merge\n </Button>\n </div>\n {partitionSelectors}\n </div>\n );\n }\n}\n\nexport default IrisGridPartitionSelector;\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,QAAQ,MAAM,UAAU;AAC/B,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,cAAc,EAAEC,OAAO,EAAEC,KAAK,QAAQ,kBAAkB;AACjE,OAAOC,GAAG,MAAM,gBAAgB;AAChC,SAASC,aAAa,QAAQ,6BAA6B;AAE3D,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,aAAa,EAAEC,OAAO,EAAEC,YAAY,QAAQ,kBAAkB;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAIxE,IAAMC,GAAG,GAAGV,GAAG,CAACW,MAAM,CAAC,2BAA2B,CAAC;AAiBnD,MAAMC,yBAAyB,SAASnB,SAAS,CAG/C;EACAoB,WAAWA,CAACC,KAAqC,EAAE;IACjD,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA,kCAwPWrB,QAAQ,CAC/BsB,KAAa,IAAMC,KAAc,IAChC,IAAI,CAACC,qBAAqB,CAACF,KAAK,EAAEC,KAAK,CAC3C,CAAC;IAAAF,eAAA,uCAE8BrB,QAAQ,CACpCsB,KAAa,IAAMC,KAAc,IAAK,IAAI,CAACE,eAAe,CAACH,KAAK,EAAEC,KAAK,CAC1E,CAAC;IA7PC,IAAI,CAACG,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACC,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACD,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACH,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACG,IAAI,CAAC,IAAI,CAAC;IAElE,IAAM;MAAEE;IAAM,CAAC,GAAGT,KAAK;IACvB,IAAI,CAACU,UAAU,GAAG,IAAItB,UAAU,CAACqB,KAAK,CAACE,EAAE,CAAC;IAC1C,IAAI,CAACC,OAAO,GAAG,IAAItB,OAAO,CAAC,CAAC;IAE5B,IAAI,CAACuB,KAAK,GAAG;MACX;MACAC,SAAS,EAAE,IAAI;MAEfC,SAAS,EAAE,IAAI;MACfC,gBAAgB,EAAE,IAAI;MACtBC,eAAe,EAAE;IACnB,CAAC;EACH;EAEMC,iBAAiBA,CAAA,EAAkB;IAAA,IAAAC,KAAA;IAAA,OAAAC,iBAAA;MACvC,IAAM;QAAEX;MAAM,CAAC,GAAGU,KAAI,CAACnB,KAAK;MAE5B,IAAI;QACF,IAAMe,SAAS,SAASI,KAAI,CAACP,OAAO,CAACS,GAAG,CACtCZ,KAAK,CAACa,kBAAkB,CAAC,CAAC,CAACC,IAAI,CAACC,QAAQ,IAAI;UAC1C,IAAMC,KAAK,GAAGhB,KAAK,CAACiB,gBAAgB,CAACC,GAAG,CAACC,MAAM,IAC7CA,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC,CACrB,CAAC;UACDN,QAAQ,CAACO,SAAS,CAACN,KAAK,CAAC;UACzB,OAAOD,QAAQ;QACjB,CAAC,CAAC,EACFQ,CAAC,IAAIA,CAAC,CAACC,KAAK,CAAC,CACf,CAAC;QAED,IAAMhB,eAAe,SAASiB,OAAO,CAACC,GAAG,CACvC1B,KAAK,CAACiB,gBAAgB,CAACC,GAAG;UAAA,IAAAS,IAAA,GAAAhB,iBAAA,CAAC,WAAOiB,CAAC,EAAEC,CAAC;YAAA,OACpCnB,KAAI,CAACP,OAAO,CAACS,GAAG,CACdN,SAAS,CAACwB,cAAc,CAAC9B,KAAK,CAACiB,gBAAgB,CAACc,KAAK,CAAC,CAAC,EAAEF,CAAC,GAAG,CAAC,CAAC,CAAC,EAChEN,CAAC,IAAIA,CAAC,CAACC,KAAK,CAAC,CACf,CAAC;UAAA;UAAA,iBAAAQ,EAAA,EAAAC,GAAA;YAAA,OAAAN,IAAA,CAAAO,KAAA,OAAAC,SAAA;UAAA;QAAA,GACH,CACF,CAAC;QAED,IAAM5B,gBAAgB,GAAGG,KAAI,CAAC0B,mBAAmB,CAAC5B,eAAe,CAAC;QAClEE,KAAI,CAAC2B,QAAQ,CAAC;UACZhC,SAAS,EAAE,KAAK;UAChBC,SAAS;UACTC,gBAAgB;UAChBC;QACF,CAAC,CAAC;MACJ,CAAC,CAAC,OAAO8B,CAAC,EAAE;QACV,IAAI,CAACxD,YAAY,CAACyD,UAAU,CAACD,CAAC,CAAC,EAAE;UAC/B;UACA,MAAMA,CAAC;QACT;MACF;IAAC;EACH;EAEAE,kBAAkBA,CAACC,SAAyC,EAAQ;IAClE,IAAM;MAAEC,eAAe,EAAEC;IAAW,CAAC,GAAGF,SAAS;IAEjD,IAAM;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAACnD,KAAK;IAEtC,IAAIoD,UAAU,KAAKD,eAAe,EAAE;MAClC,IAAI,CAACE,sBAAsB,CAAC,CAAC;IAC/B;EACF;EAEAC,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAAC1C,OAAO,CAAC2C,MAAM,CAAC,CAAC;IAErB,IAAM;MAAExC,SAAS;MAAEE;IAAgB,CAAC,GAAG,IAAI,CAACJ,KAAK;IACjDE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEkB,KAAK,CAAC,CAAC;IAClBhB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEuC,OAAO,CAACC,KAAK,IAAIA,KAAK,CAACxB,KAAK,CAAC,CAAC,CAAC;EAClD;EAMA3B,mBAAmBA,CAAA,EAAS;IAC1BV,GAAG,CAAC8D,MAAM,CAAC,qBAAqB,CAAC;IAEjC,IAAM;MAAEP;IAAgB,CAAC,GAAG,IAAI,CAACnD,KAAK;IACtC,IAAM2D,kBAAkB,GAAAC,aAAA,KAAQT,eAAe,CAAE;IACjD;IACAQ,kBAAkB,CAACE,IAAI,GACrBV,eAAe,CAACU,IAAI,KAAK,MAAM,GAAG,WAAW,GAAG,MAAM;IACxD,IAAI,CAACC,UAAU,CAACH,kBAAkB,CAAC;EACrC;EAEAnD,gBAAgBA,CAAA,EAAS;IACvBZ,GAAG,CAAC8D,MAAM,CAAC,kBAAkB,CAAC;IAE9B,IAAM;MAAEP;IAAgB,CAAC,GAAG,IAAI,CAACnD,KAAK;IACtC,IAAM2D,kBAAkB,GAAAC,aAAA,KAAQT,eAAe,CAAE;IACjD;IACAQ,kBAAkB,CAACE,IAAI,GACrBV,eAAe,CAACU,IAAI,KAAK,QAAQ,GAAG,WAAW,GAAG,QAAQ;IAC5D,IAAI,CAACC,UAAU,CAACH,kBAAkB,CAAC;EACrC;;EAEA;AACF;AACA;AACA;AACA;EACQvD,qBAAqBA,CACzBF,KAAa,EACb6D,aAAsB,EACP;IAAA,IAAAC,MAAA;IAAA,OAAA5C,iBAAA;MACf,IAAM;QAAEX,KAAK;QAAE0C,eAAe,EAAEC;MAAW,CAAC,GAAGY,MAAI,CAAChE,KAAK;MAEzDJ,GAAG,CAACqE,KAAK,CAAC,uBAAuB,EAAE/D,KAAK,EAAE6D,aAAa,EAAEX,UAAU,CAAC;MAEpE,IAAMc,aAAa,GAAG,CAAC,GAAGd,UAAU,CAACe,UAAU,CAAC;MAChDD,aAAa,CAAChE,KAAK,CAAC,GAAG6D,aAAa;;MAEpC;MACA,IAAI7D,KAAK,KAAKO,KAAK,CAACiB,gBAAgB,CAAC0C,MAAM,GAAG,CAAC,EAAE;QAC/CJ,MAAI,CAACF,UAAU,CAAC;UAAEK,UAAU,EAAED,aAAa;UAAEL,IAAI,EAAE;QAAY,CAAC,CAAC;QACjE;MACF;MAEA,IAAM;QAAE9C;MAAU,CAAC,GAAGiD,MAAI,CAACnD,KAAK;MAChC;MACAxB,aAAa,CAAC0B,SAAS,CAAC;MACxB,IAAI;QACFiD,MAAI,CAAClB,QAAQ,CAAC;UAAEhC,SAAS,EAAE;QAAK,CAAC,CAAC;QAClC,IAAMkB,CAAC,SAASgC,MAAI,CAACpD,OAAO,CAACS,GAAG,CAACN,SAAS,CAACsD,IAAI,CAAC,CAAC,EAAEC,KAAK,IACtDA,KAAK,CAACrC,KAAK,CAAC,CACd,CAAC;;QAED;QACA,IAAMjB,gBAAgB,GAAGkD,aAAa,CACnC1B,KAAK,CAAC,CAAC,EAAEtC,KAAK,GAAG,CAAC,CAAC,CACnByB,GAAG,CAAC,CAAC4C,SAAS,EAAEjC,CAAC,KAAK;UACrB,IAAMkC,eAAe,GAAGxC,CAAC,CAACyC,OAAO,CAACnC,CAAC,CAAC;UACpC,OAAO0B,MAAI,CAACtD,UAAU,CAACgE,oBAAoB,CACzCF,eAAe,EACfD,SACF,CAAC;QACH,CAAC,CAAC;QACJvC,CAAC,CAAC2C,WAAW,CAAC3D,gBAAgB,CAAC;QAC/BgB,CAAC,CAAC4C,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE5C,CAAC,CAACyC,OAAO,CAAC;QAC9B,IAAMI,IAAI,SAASb,MAAI,CAACpD,OAAO,CAACS,GAAG,CAACW,CAAC,CAAC8C,eAAe,CAAC,CAAC,CAAC;QACxD,IAAMC,SAA0B,GAAG;UACjC;UACA;UACA;UACAZ,UAAU,EAAEnC,CAAC,CAACyC,OAAO,CAAC9C,GAAG,CAACC,MAAM;YAAA,IAAAoD,gBAAA;YAAA,QAAAA,gBAAA,GAAIH,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAACtD,MAAM,CAAC,cAAAoD,gBAAA,cAAAA,gBAAA,GAAI,IAAI;UAAA,EAAC;UACrEnB,IAAI,EAAE;QACR,CAAC;QACD7B,CAAC,CAACC,KAAK,CAAC,CAAC;QACT+B,MAAI,CAACF,UAAU,CAACiB,SAAS,CAAC;MAC5B,CAAC,CAAC,OAAOhC,CAAC,EAAE;QACV,IAAI,CAACxD,YAAY,CAACyD,UAAU,CAACD,CAAC,CAAC,EAAE;UAC/BnD,GAAG,CAACuF,KAAK,CAAC,gCAAgC,EAAEpC,CAAC,CAAC;QAChD;MACF,CAAC,SAAS;QACRiB,MAAI,CAAClB,QAAQ,CAAC;UAAEhC,SAAS,EAAE;QAAM,CAAC,CAAC;MACrC;IAAC;EACH;EAEAgD,UAAUA,CAACX,eAAgC,EAAQ;IACjDvD,GAAG,CAAC8D,MAAM,CAAC,YAAY,EAAEP,eAAe,CAAC;IAEzC,IAAM;MAAEiC;IAAS,CAAC,GAAG,IAAI,CAACpF,KAAK;IAC/BoF,QAAQ,CAACjC,eAAe,CAAC;EAC3B;;EAEA;AACF;AACA;AACA;AACA;EACE9C,eAAeA,CAACH,KAAa,EAAEC,KAAc,EAAU;IACrD,IAAM;MAAEM;IAAM,CAAC,GAAG,IAAI,CAACT,KAAK;IAE5B,IAAIG,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,QAAQ;IACjB;IAEA,IAAIA,KAAK,KAAKkF,SAAS,IAAIlF,KAAK,KAAK,EAAE,EAAE;MACvC,OAAO,EAAE;IACX;IACA,IAAMyB,MAAM,GAAGnB,KAAK,CAACiB,gBAAgB,CAACxB,KAAK,CAAC;IAC5C,IAAId,UAAU,CAACkG,UAAU,CAAC1D,MAAM,CAAC2D,IAAI,CAAC,IAAIpF,KAAK,CAACqF,QAAQ,CAAC,CAAC,CAACpB,MAAM,GAAG,CAAC,EAAE;MACrE,OAAOqB,MAAM,CAACC,YAAY,CAACC,QAAQ,CAACxF,KAAK,CAACqF,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5D;IACA,OAAO/E,KAAK,CAACmF,aAAa,CAACzF,KAAK,EAAEyB,MAAM,CAAC2D,IAAI,EAAE3D,MAAM,CAACiE,IAAI,CAAC;EAC7D;;EAEA;AACF;AACA;EACExC,sBAAsBA,CAAA,EAAS;IAC7B,IAAM;MAAEpC;IAAgB,CAAC,GAAG,IAAI,CAACJ,KAAK;IACtCxB,aAAa,CAAC4B,eAAe,CAAC;IAE9B,IAAM;MAAEkC;IAAgB,CAAC,GAAG,IAAI,CAACnD,KAAK;IACtC,IAAM;MAAE6D;IAAK,CAAC,GAAGV,eAAe;IAChCvD,GAAG,CAACqE,KAAK,CAAC,wBAAwB,EAAEd,eAAe,CAAC;IACpD,IAAIU,IAAI,KAAK,WAAW,EAAE;MACxB;MACA;MACA;IACF;IAEA,IAAM7C,gBAAgB,GAAG,IAAI,CAAC6B,mBAAmB,CAAC5B,eAAe,CAAC;IAClE,IAAI,CAAC6B,QAAQ,CAAC;MAAE9B;IAAiB,CAAC,CAAC;EACrC;EAEA6B,mBAAmBA,CAAC5B,eAA2B,EAA0B;IACvE,IAAM;MAAER,KAAK;MAAE0C;IAAgB,CAAC,GAAG,IAAI,CAACnD,KAAK;IAC7C,IAAM;MAAEmE;IAAW,CAAC,GAAGhB,eAAe;IACtCvD,GAAG,CAACqE,KAAK,CAAC,qBAAqB,EAAEd,eAAe,CAAC;IAEjD,IAAIgB,UAAU,CAACC,MAAM,KAAKnD,eAAe,CAACmD,MAAM,EAAE;MAChD,MAAM,IAAI0B,KAAK,2CAAAC,MAAA,CAC6B9E,eAAe,CAACmD,MAAM,2BAAA2B,MAAA,CAAwB5B,UAAU,CAACC,MAAM,CAC3G,CAAC;IACH;;IAEA;IACA,IAAMpD,gBAAwC,GAAG,EAAE;IACnD,KAAK,IAAIsB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6B,UAAU,CAACC,MAAM,EAAE9B,CAAC,IAAI,CAAC,EAAE;MAC7C,IAAIA,CAAC,KAAK,CAAC,EAAE;QACX;QACAtB,gBAAgB,CAACgF,IAAI,CAAC,EAAE,CAAC;MAC3B,CAAC,MAAM;QACL,IAAMC,cAAc,GAAGjF,gBAAgB,CAACsB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAM4D,iBAAiB,GAAG/B,UAAU,CAAC7B,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAM6D,cAAc,GAAG1F,KAAK,CAACiB,gBAAgB,CAACY,CAAC,GAAG,CAAC,CAAC;QACpD,IAAM8D,eAAe,GAAG,CACtB,GAAGH,cAAc,EACjB,IAAI,CAACvF,UAAU,CAACgE,oBAAoB,CAClCyB,cAAc,EACdD,iBACF,CAAC,CACF;QACDlF,gBAAgB,CAACgF,IAAI,CAACI,eAAe,CAAC;MACxC;IACF;IACA,OAAOpF,gBAAgB;EACzB;EAWAqF,MAAMA,CAAA,EAAgB;IACpB,IAAM;MAAE5F,KAAK;MAAE0C;IAAgB,CAAC,GAAG,IAAI,CAACnD,KAAK;IAC7C,IAAM;MAAEc,SAAS;MAAEE,gBAAgB;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAACJ,KAAK;IAEnE,IAAM;MAAEgD,IAAI;MAAEM;IAAW,CAAC,GAAGhB,eAAe;IAE5C,IAAMmD,kBAAkB,GAAG7F,KAAK,CAACiB,gBAAgB,CAACC,GAAG,CAAC,CAACC,MAAM,EAAE1B,KAAK;MAAA,IAAAqG,qBAAA;MAAA,oBAClE5G,KAAA;QAAqC6G,SAAS,EAAC,iBAAiB;QAAAC,QAAA,gBAC9DhH,IAAA;UAAK+G,SAAS,EAAC,aAAa;UAAAC,QAAA,EAAE7E,MAAM,CAACiE;QAAI,CAAM,CAAC,eAChDpG,IAAA,CAACN,aAAa;UACZqH,SAAS,EAAC,kBAAkB;UAC5B/C,KAAK,EAAExC,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAGf,KAAK,CAAE;UAChC0B,MAAM,EAAEX,eAAe,aAAfA,eAAe,wBAAAsF,qBAAA,GAAftF,eAAe,CAAGf,KAAK,CAAC,cAAAqG,qBAAA,uBAAxBA,qBAAA,CAA0B9B,OAAO,CAACvE,KAAK,CAAE;UACjDwG,MAAM,EAAE1F,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAGd,KAAK,CAAE;UAClCkF,QAAQ,EAAE,IAAI,CAACuB,uBAAuB,CAACzG,KAAK,CAAE;UAC9C6D,aAAa,EAAEF,IAAI,KAAK,WAAW,GAAGM,UAAU,CAACjE,KAAK,CAAC,GAAGmF,SAAU;UACpEuB,QAAQ,EACL1G,KAAK,GAAG,CAAC,IAAIiD,eAAe,CAACU,IAAI,KAAK,WAAW,IAAK/C,SACxD;UACD+F,WAAW,EAAE,IAAI,CAACC,4BAA4B,CAAC5G,KAAK;QAAE,CACvD,CAAC,EACDO,KAAK,CAACiB,gBAAgB,CAAC0C,MAAM,GAAG,CAAC,KAAKlE,KAAK,iBAC1CT,IAAA,CAACZ,eAAe;UAACkI,IAAI,EAAEhI;QAAe,CAAE,CACzC;MAAA,eAAAgH,MAAA,CAhBmBnE,MAAM,CAACiE,IAAI,CAiB5B,CAAC;IAAA,CACP,CAAC;IACF,oBACElG,KAAA;MAAK6G,SAAS,EAAC,8BAA8B;MAAAC,QAAA,gBAC3ChH,IAAA;QAAK+G,SAAS,EAAC,YAAY;QAAAC,QAAA,EAAC;MAAiB,CAAK,CAAC,eACnD9G,KAAA;QAAK6G,SAAS,EAAC,wBAAwB;QAAAC,QAAA,gBACrChH,IAAA,CAACX,MAAM;UACL0H,SAAS,EAAC,QAAQ;UAClBQ,OAAO,EAAE,IAAI,CAAC1G,mBAAoB;UAClC2G,IAAI,EAAC,QAAQ;UACbC,OAAO,EAAC,oBAAoB;UAC5BH,IAAI,EAAE9H,KAAM;UACZkI,MAAM,EAAEhE,eAAe,CAACU,IAAI,KAAK,MAAO;UACxC+C,QAAQ,EAAE9F,SAAU;UAAA2F,QAAA,EACrB;QAED,CAAQ,CAAC,eACThH,IAAA,CAACX,MAAM;UACL0H,SAAS,EAAC,QAAQ;UAClBQ,OAAO,EAAE,IAAI,CAACxG,gBAAiB;UAC/ByG,IAAI,EAAC,QAAQ;UACbC,OAAO,EAAC,yCAAyC;UACjDH,IAAI,eAAEtH,IAAA,CAACZ,eAAe;YAACkI,IAAI,EAAE/H,OAAQ;YAACoI,QAAQ,EAAE;UAAG,CAAE,CAAE;UACvDD,MAAM,EAAEhE,eAAe,CAACU,IAAI,KAAK,QAAS;UAC1C+C,QAAQ,EAAE9F,SAAU;UAAA2F,QAAA,EACrB;QAED,CAAQ,CAAC;MAAA,CACN,CAAC,EACLH,kBAAkB;IAAA,CAChB,CAAC;EAEV;AACF;AAEA,eAAexG,yBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTableModel.d.ts","sourceRoot":"","sources":["../src/IrisGridTableModel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAItE;;GAEG;AAEH,cAAM,kBACJ,SAAQ,0BAA0B,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CACtD,YAAW,4BAA4B;IAEvC,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC;IAEjC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,gBAAgB,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;IAExC,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,CAAM;IAE9C;;;;;OAKG;gBAED,EAAE,EAAE,OAAO,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,YAAoB,EAC7B,UAAU,GAAE,MAAM,CAAC,UAAU,GAAG,IAAW;IAQ7C,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,IAAI,2BAA2B,IAAI,OAAO,CAEzC;IAED,IAAI,sBAAsB,IAAI,OAAO,CAEpC;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,IAAI,yBAAyB,IAAI,OAAO,CAEvC;IAED,IAAI,wBAAwB,IAAI,OAAO,CAEtC;IAED,IAAI,wBAAwB,IAAI,OAAO,CAEtC;IAED,uBAAuB,4BACK,UAAU,EAAE,GAAG,SAAS,cAElD;IAEF,IAAI,YAAY,IAAI,UAAU,EAAE,CAE/B;IAED,sBAAsB,2BACK,UAAU,EAAE,GAAG,SAAS,cAEjD;IAEF,IAAI,WAAW,IAAI,UAAU,EAAE,CAI9B;IAED,wBAAwB,8BAEO,UAAU,EAAE,sBACnB,UAAU,EAAE,KAC/B,UAAU,EAAE,CACf;IAEF,IAAI,aAAa,IAAI,UAAU,EAAE,CAKhC;IAED,IAAI,WAAW,IAAI,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAEvD;IAED,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,aAAa,IAAI,UAAU,EAAE,CAEhC;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,EAoB5C;IAED,IAAI,aAAa,IAAI,MAAM,CAAC,YAAY,EAAE,CAEzC;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,EAoBrD;IAED,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAShD,IAAI,gBAAgB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,CAE/C;IAEK,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAI3C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAM7C,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridTableModel.d.ts","sourceRoot":"","sources":["../src/IrisGridTableModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -156,8 +156,8 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
156
156
|
for (var i = 0; i < _this3.partitionColumns.length; i += 1) {
|
|
157
157
|
var partition = partitions[i];
|
|
158
158
|
var partitionColumn = _this3.partitionColumns[i];
|
|
159
|
-
var partitionFilter = _this3.tableUtils.
|
|
160
|
-
partitionFilters.push(
|
|
159
|
+
var partitionFilter = _this3.tableUtils.makeNullableEqFilter(partitionColumn, partition);
|
|
160
|
+
partitionFilters.push(partitionFilter);
|
|
161
161
|
}
|
|
162
162
|
var t = yield _this3.table.copy();
|
|
163
163
|
t.applyFilter([..._this3.initialFilters, ...partitionFilters]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTableModel.js","names":["memoize","GridRange","Log","Formatter","EventShimCustomEvent","PromiseUtils","assertNotNull","IrisGridModel","IrisGridTableModelTemplate","log","module","IrisGridTableModel","constructor","dh","table","formatter","arguments","length","undefined","inputTable","_defineProperty","layoutHintsFrontColumns","layoutHintsBackColumns","layoutHintsFrozenColumns","userFrozenColumns","_ref","columns","Set","map","_","index","filter","column","isPartitionColumn","customColumnList","formatColumnList","initialFilters","isExportAvailable","freeze","isColumnStatisticsAvailable","getColumnStatistics","isValuesTableAvailable","selectDistinct","copy","isRollupAvailable","rollup","isSelectDistinctAvailable","isCustomColumnsAvailable","applyCustomColumns","isFormatColumnsAvailable","frontColumns","_this$layoutHints$fro","_this$layoutHints","getMemoizedFrontColumns","layoutHints","backColumns","_this$layoutHints$bac","_this$layoutHints2","getMemoizedBackColumns","frozenColumns","_this$layoutHints$fro2","_this$layoutHints3","getMemoizedFrozenColumns","floatingLeftColumnCount","description","_this$table$descripti","customColumns","debug2","debug","closeSubscription","formatColumns","applyViewport","updateFrozenColumns","dispatchEvent","EVENT","TABLE_CHANGED","detail","partitionColumns","getCachedPartitionColumns","partitionKeysTable","_this","_asyncToGenerator","valuesTable","partitionMergedTable","_this2","t","applyFilter","partitionTable","partitions","_this3","partitionFilters","i","partition","partitionColumn","partitionFilter","tableUtils","makeFilterRawValue","type","push","eq","totalsConfig","totals","formattedStringData","totalsTablePromise","cancel","setTotalsTable","UPDATED","makeCancelable","getTotalsTable","close","then","totalsTable","catch","err","isCanceled","error","REQUEST_FAILED","isFilterRequired","isUncoalesced","isPartitionRequired","isFilterable","columnIndex","getCachedFilterableColumnSet","has","export","_this4","columnStatistics","isColumnMovable","modelIndex","columnName","name","includes","isKeyColumn","isColumnFrozen","delete","ranges","_superprop_getPendingDataMap","pendingDataMap","_superprop_setPendingDataMap","_value","_this5","_this5$inputTable","isDeletableRanges","Error","concat","keyColumns","pendingAreaRange","getPendingAreaRange","pendingRanges","range","intersection","offset","floatingTopRowCount","size","newDataMap","Map","pendingRange","startRow","endRow","r","PENDING_DATA_UPDATED","tableAreaRange","getTableAreaRange","tableRanges","data","deleteTable","Promise","all","snapshot","keyColumn","keyIndex","getColumnIndexByName","flat","filters","row","columnFilters","c","value","filterValue","reduce","agg","curr","_agg$and","and","_agg$or","or","seekRow","valueType","insensitive","contains","isBackwards","_this6","isSeekRowAvailable"],"sources":["../src/IrisGridTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport { GridRange, ModelIndex } from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport {\n EventShimCustomEvent,\n PromiseUtils,\n assertNotNull,\n} from '@deephaven/utils';\nimport IrisGridModel from './IrisGridModel';\nimport { ColumnName, UIRow, UITotalsTableConfig } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport { PartitionedGridModelProvider } from './PartitionedGridModel';\n\nconst log = Log.module('IrisGridTableModel');\n\n/**\n * Model for a grid showing an iris data table\n */\n\nclass IrisGridTableModel\n extends IrisGridTableModelTemplate<DhType.Table, UIRow>\n implements PartitionedGridModelProvider\n{\n userFrozenColumns?: ColumnName[];\n\n customColumnList: string[];\n\n formatColumnList: DhType.CustomColumn[];\n\n initialFilters: DhType.FilterCondition[] = [];\n\n /**\n * @param dh JSAPI instance\n * @param table Iris data table to be used in the model\n * @param formatter The formatter to use when getting formats\n * @param inputTable Iris input table associated with this table\n */\n constructor(\n dh: typeof DhType,\n table: DhType.Table,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh, table, formatter, inputTable);\n this.customColumnList = [];\n this.formatColumnList = [];\n this.initialFilters = table.filter;\n }\n\n get isExportAvailable(): boolean {\n return this.table.freeze != null;\n }\n\n get isColumnStatisticsAvailable(): boolean {\n return this.table.getColumnStatistics != null;\n }\n\n get isValuesTableAvailable(): boolean {\n return this.table.selectDistinct != null && this.table.copy != null;\n }\n\n get isRollupAvailable(): boolean {\n return this.table.rollup != null;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return this.table.selectDistinct != null;\n }\n\n get isCustomColumnsAvailable(): boolean {\n return this.table.applyCustomColumns != null;\n }\n\n get isFormatColumnsAvailable(): boolean {\n return this.table.applyCustomColumns != null;\n }\n\n getMemoizedFrontColumns = memoize(\n (layoutHintsFrontColumns: ColumnName[] | undefined) =>\n layoutHintsFrontColumns ?? []\n );\n\n get frontColumns(): ColumnName[] {\n return this.getMemoizedFrontColumns(this.layoutHints?.frontColumns ?? []);\n }\n\n getMemoizedBackColumns = memoize(\n (layoutHintsBackColumns: ColumnName[] | undefined) =>\n layoutHintsBackColumns ?? []\n );\n\n get backColumns(): ColumnName[] {\n return this.getMemoizedBackColumns(\n this.layoutHints?.backColumns ?? undefined\n );\n }\n\n getMemoizedFrozenColumns = memoize(\n (\n layoutHintsFrozenColumns?: ColumnName[],\n userFrozenColumns?: ColumnName[]\n ): ColumnName[] => userFrozenColumns ?? layoutHintsFrozenColumns ?? []\n );\n\n get frozenColumns(): ColumnName[] {\n return this.getMemoizedFrozenColumns(\n this.layoutHints?.frozenColumns ?? undefined,\n this.userFrozenColumns\n );\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n return this.table.layoutHints;\n }\n\n get floatingLeftColumnCount(): number {\n return this.frozenColumns.length;\n }\n\n get description(): string {\n return this.table.description ?? '';\n }\n\n get customColumns(): ColumnName[] {\n return this.customColumnList;\n }\n\n set customColumns(customColumns: ColumnName[]) {\n log.debug2(\n 'set customColumns',\n customColumns,\n this.customColumnList,\n customColumns === this.customColumnList\n );\n if (this.customColumnList.length === 0 && customColumns.length === 0) {\n log.debug('Ignore empty initial customColumns');\n this.customColumnList = customColumns;\n return;\n }\n if (this.customColumnList === customColumns) {\n log.debug('Ignore same customColumns');\n return;\n }\n this.closeSubscription();\n this.customColumnList = customColumns;\n this.table.applyCustomColumns([...customColumns, ...this.formatColumns]);\n this.applyViewport();\n }\n\n get formatColumns(): DhType.CustomColumn[] {\n return this.formatColumnList;\n }\n\n set formatColumns(formatColumns: DhType.CustomColumn[]) {\n log.debug2(\n 'set formatColumns',\n formatColumns,\n this.formatColumnList,\n formatColumns === this.formatColumnList\n );\n if (this.formatColumnList.length === 0 && formatColumns.length === 0) {\n log.debug('Ignore empty initial formatColumns');\n this.formatColumnList = formatColumns;\n return;\n }\n if (this.formatColumnList === formatColumns) {\n log.debug('Ignore same formatColumns');\n return;\n }\n this.closeSubscription();\n this.formatColumnList = formatColumns;\n this.table.applyCustomColumns([...this.customColumns, ...formatColumns]);\n this.applyViewport();\n }\n\n updateFrozenColumns(columns: ColumnName[]): void {\n this.userFrozenColumns = columns;\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.TABLE_CHANGED, {\n detail: this.table,\n })\n );\n }\n\n get partitionColumns(): readonly DhType.Column[] {\n return this.getCachedPartitionColumns(this.columns);\n }\n\n async partitionKeysTable(): Promise<DhType.Table> {\n return this.valuesTable(this.partitionColumns);\n }\n\n async partitionMergedTable(): Promise<DhType.Table> {\n const t = await this.table.copy();\n t.applyFilter([]);\n return t;\n }\n\n async partitionTable(partitions: unknown[]): Promise<DhType.Table> {\n log.debug('getting partition table for partitions', partitions);\n\n const partitionFilters: DhType.FilterCondition[] = [];\n for (let i = 0; i < this.partitionColumns.length; i += 1) {\n const partition = partitions[i];\n const partitionColumn = this.partitionColumns[i];\n\n const partitionFilter = this.tableUtils.makeFilterRawValue(\n partitionColumn.type,\n partition\n );\n partitionFilters.push(partitionColumn.filter().eq(partitionFilter));\n }\n\n const t = await this.table.copy();\n t.applyFilter([...this.initialFilters, ...partitionFilters]);\n return t;\n }\n\n set filter(filter: DhType.FilterCondition[]) {\n this.closeSubscription();\n this.table.applyFilter([...this.initialFilters, ...filter]);\n this.applyViewport();\n }\n\n set totalsConfig(totalsConfig: UITotalsTableConfig | null) {\n log.debug('set totalsConfig', totalsConfig);\n\n if (totalsConfig === this.totals) {\n // Totals already set, or it will be set when the next model actually gets set\n return;\n }\n\n this.totals = totalsConfig;\n this.formattedStringData = [];\n\n if (this.totalsTablePromise != null) {\n this.totalsTablePromise.cancel();\n }\n\n this.setTotalsTable(null);\n\n if (totalsConfig == null) {\n this.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.UPDATED));\n return;\n }\n\n this.totalsTablePromise = PromiseUtils.makeCancelable(\n this.table.getTotalsTable(totalsConfig),\n table => table.close()\n );\n this.totalsTablePromise\n .then(totalsTable => {\n this.totalsTablePromise = null;\n this.setTotalsTable(totalsTable);\n })\n .catch(err => {\n if (PromiseUtils.isCanceled(err)) {\n return;\n }\n\n log.error('Unable to set next totalsTable', err);\n this.totalsTablePromise = null;\n\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.REQUEST_FAILED, {\n detail: err,\n })\n );\n });\n }\n\n get isFilterRequired(): boolean {\n return this.table.isUncoalesced;\n }\n\n get isPartitionRequired(): boolean {\n return (\n this.table.isUncoalesced &&\n this.isValuesTableAvailable &&\n this.partitionColumns.length > 0\n );\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(this.columns).has(columnIndex);\n }\n\n async export(): Promise<DhType.Table> {\n return this.table.freeze();\n }\n\n columnStatistics(column: DhType.Column): Promise<DhType.ColumnStatistics> {\n return this.table.getColumnStatistics(column);\n }\n\n getCachedFilterableColumnSet = memoize(\n (columns: DhType.Column[]) =>\n new Set(columns.map((_: DhType.Column, index: ModelIndex) => index))\n );\n\n getCachedPartitionColumns = memoize((columns: readonly DhType.Column[]) =>\n columns.filter(column => column.isPartitionColumn)\n );\n\n isColumnMovable(modelIndex: ModelIndex): boolean {\n const columnName = this.columns[modelIndex].name;\n if (\n this.frontColumns.includes(columnName) ||\n this.backColumns.includes(columnName) ||\n this.frozenColumns.includes(columnName)\n ) {\n return false;\n }\n return !this.isKeyColumn(modelIndex);\n }\n\n isColumnFrozen(modelIndex: ModelIndex): boolean {\n return this.frozenColumns.includes(this.columns[modelIndex].name);\n }\n\n async delete(ranges: readonly GridRange[]): Promise<void> {\n if (!this.isDeletableRanges(ranges)) {\n throw new Error(`Undeletable ranges ${ranges}`);\n }\n\n assertNotNull(this.inputTable);\n const { keyColumns } = this.inputTable;\n if (keyColumns.length === 0) {\n throw new Error('No key columns to allow deletion');\n }\n\n const pendingAreaRange = this.getPendingAreaRange();\n const pendingRanges = ranges\n .map(range => GridRange.intersection(pendingAreaRange, range))\n .filter(range => range != null)\n .map(range => {\n assertNotNull(range);\n\n return GridRange.offset(\n range,\n 0,\n -(this.floatingTopRowCount + this.table.size)\n );\n });\n\n if (pendingRanges.length > 0) {\n const newDataMap = new Map(super.pendingDataMap);\n for (let i = 0; i < pendingRanges.length; i += 1) {\n const pendingRange = pendingRanges[i];\n assertNotNull(pendingRange.startRow);\n assertNotNull(pendingRange.endRow);\n for (let r = pendingRange.startRow; r <= pendingRange.endRow; r += 1) {\n newDataMap.delete(r);\n }\n }\n super.pendingDataMap = newDataMap;\n\n this.formattedStringData = [];\n\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.PENDING_DATA_UPDATED)\n );\n\n this.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.UPDATED));\n }\n\n const tableAreaRange = this.getTableAreaRange();\n const tableRanges = ranges\n .map(range => GridRange.intersection(tableAreaRange, range))\n .filter(range => range != null);\n if (tableRanges.length <= 0) {\n return;\n }\n\n const [data, deleteTable] = await Promise.all([\n // Need to get the key values of each row\n this.snapshot(\n tableRanges\n .map(range => {\n assertNotNull(range);\n // Need to map each key column to it's range so we can pass that into the snapshot function\n return keyColumns.map(keyColumn => {\n const keyIndex = this.getColumnIndexByName(keyColumn.name);\n if (keyIndex == null) {\n throw new Error(`Key column ${keyColumn.name} not found`);\n }\n\n return new GridRange(\n keyIndex,\n range.startRow,\n keyIndex,\n range.endRow\n );\n });\n })\n .flat()\n ),\n this.table.copy(),\n ]);\n\n // Now copy the existing table and filter it on the values in the snapshot for the key columns in the input table\n const filters = data.map(row => {\n const columnFilters = [];\n for (let c = 0; c < keyColumns.length; c += 1) {\n const column = keyColumns[c];\n const value = row[c];\n const filterValue = this.tableUtils.makeFilterRawValue(\n column.type,\n value\n );\n const filter = column.filter().eq(filterValue);\n columnFilters.push(filter);\n }\n return columnFilters.reduce((agg, curr) => agg?.and(curr) ?? curr);\n });\n\n const filter = filters.reduce((agg, curr) => agg?.or(curr) ?? curr);\n\n deleteTable.applyFilter([filter]);\n\n await this.inputTable?.deleteTable(deleteTable);\n deleteTable.close();\n }\n\n async seekRow(\n startRow: number,\n column: DhType.Column,\n valueType: DhType.ValueTypeType,\n value: unknown,\n insensitive?: boolean,\n contains?: boolean,\n isBackwards?: boolean\n ): Promise<number> {\n return this.table.seekRow(\n startRow,\n column,\n valueType,\n value,\n insensitive,\n contains,\n isBackwards\n );\n }\n\n get isSeekRowAvailable(): boolean {\n return this.table.seekRow != null;\n }\n}\n\nexport default IrisGridTableModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridTableModel.js","names":["memoize","GridRange","Log","Formatter","EventShimCustomEvent","PromiseUtils","assertNotNull","IrisGridModel","IrisGridTableModelTemplate","log","module","IrisGridTableModel","constructor","dh","table","formatter","arguments","length","undefined","inputTable","_defineProperty","layoutHintsFrontColumns","layoutHintsBackColumns","layoutHintsFrozenColumns","userFrozenColumns","_ref","columns","Set","map","_","index","filter","column","isPartitionColumn","customColumnList","formatColumnList","initialFilters","isExportAvailable","freeze","isColumnStatisticsAvailable","getColumnStatistics","isValuesTableAvailable","selectDistinct","copy","isRollupAvailable","rollup","isSelectDistinctAvailable","isCustomColumnsAvailable","applyCustomColumns","isFormatColumnsAvailable","frontColumns","_this$layoutHints$fro","_this$layoutHints","getMemoizedFrontColumns","layoutHints","backColumns","_this$layoutHints$bac","_this$layoutHints2","getMemoizedBackColumns","frozenColumns","_this$layoutHints$fro2","_this$layoutHints3","getMemoizedFrozenColumns","floatingLeftColumnCount","description","_this$table$descripti","customColumns","debug2","debug","closeSubscription","formatColumns","applyViewport","updateFrozenColumns","dispatchEvent","EVENT","TABLE_CHANGED","detail","partitionColumns","getCachedPartitionColumns","partitionKeysTable","_this","_asyncToGenerator","valuesTable","partitionMergedTable","_this2","t","applyFilter","partitionTable","partitions","_this3","partitionFilters","i","partition","partitionColumn","partitionFilter","tableUtils","makeNullableEqFilter","push","totalsConfig","totals","formattedStringData","totalsTablePromise","cancel","setTotalsTable","UPDATED","makeCancelable","getTotalsTable","close","then","totalsTable","catch","err","isCanceled","error","REQUEST_FAILED","isFilterRequired","isUncoalesced","isPartitionRequired","isFilterable","columnIndex","getCachedFilterableColumnSet","has","export","_this4","columnStatistics","isColumnMovable","modelIndex","columnName","name","includes","isKeyColumn","isColumnFrozen","delete","ranges","_superprop_getPendingDataMap","pendingDataMap","_superprop_setPendingDataMap","_value","_this5","_this5$inputTable","isDeletableRanges","Error","concat","keyColumns","pendingAreaRange","getPendingAreaRange","pendingRanges","range","intersection","offset","floatingTopRowCount","size","newDataMap","Map","pendingRange","startRow","endRow","r","PENDING_DATA_UPDATED","tableAreaRange","getTableAreaRange","tableRanges","data","deleteTable","Promise","all","snapshot","keyColumn","keyIndex","getColumnIndexByName","flat","filters","row","columnFilters","c","value","filterValue","makeFilterRawValue","type","eq","reduce","agg","curr","_agg$and","and","_agg$or","or","seekRow","valueType","insensitive","contains","isBackwards","_this6","isSeekRowAvailable"],"sources":["../src/IrisGridTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport { GridRange, ModelIndex } from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport {\n EventShimCustomEvent,\n PromiseUtils,\n assertNotNull,\n} from '@deephaven/utils';\nimport IrisGridModel from './IrisGridModel';\nimport { ColumnName, UIRow, UITotalsTableConfig } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport { PartitionedGridModelProvider } from './PartitionedGridModel';\n\nconst log = Log.module('IrisGridTableModel');\n\n/**\n * Model for a grid showing an iris data table\n */\n\nclass IrisGridTableModel\n extends IrisGridTableModelTemplate<DhType.Table, UIRow>\n implements PartitionedGridModelProvider\n{\n userFrozenColumns?: ColumnName[];\n\n customColumnList: string[];\n\n formatColumnList: DhType.CustomColumn[];\n\n initialFilters: DhType.FilterCondition[] = [];\n\n /**\n * @param dh JSAPI instance\n * @param table Iris data table to be used in the model\n * @param formatter The formatter to use when getting formats\n * @param inputTable Iris input table associated with this table\n */\n constructor(\n dh: typeof DhType,\n table: DhType.Table,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh, table, formatter, inputTable);\n this.customColumnList = [];\n this.formatColumnList = [];\n this.initialFilters = table.filter;\n }\n\n get isExportAvailable(): boolean {\n return this.table.freeze != null;\n }\n\n get isColumnStatisticsAvailable(): boolean {\n return this.table.getColumnStatistics != null;\n }\n\n get isValuesTableAvailable(): boolean {\n return this.table.selectDistinct != null && this.table.copy != null;\n }\n\n get isRollupAvailable(): boolean {\n return this.table.rollup != null;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return this.table.selectDistinct != null;\n }\n\n get isCustomColumnsAvailable(): boolean {\n return this.table.applyCustomColumns != null;\n }\n\n get isFormatColumnsAvailable(): boolean {\n return this.table.applyCustomColumns != null;\n }\n\n getMemoizedFrontColumns = memoize(\n (layoutHintsFrontColumns: ColumnName[] | undefined) =>\n layoutHintsFrontColumns ?? []\n );\n\n get frontColumns(): ColumnName[] {\n return this.getMemoizedFrontColumns(this.layoutHints?.frontColumns ?? []);\n }\n\n getMemoizedBackColumns = memoize(\n (layoutHintsBackColumns: ColumnName[] | undefined) =>\n layoutHintsBackColumns ?? []\n );\n\n get backColumns(): ColumnName[] {\n return this.getMemoizedBackColumns(\n this.layoutHints?.backColumns ?? undefined\n );\n }\n\n getMemoizedFrozenColumns = memoize(\n (\n layoutHintsFrozenColumns?: ColumnName[],\n userFrozenColumns?: ColumnName[]\n ): ColumnName[] => userFrozenColumns ?? layoutHintsFrozenColumns ?? []\n );\n\n get frozenColumns(): ColumnName[] {\n return this.getMemoizedFrozenColumns(\n this.layoutHints?.frozenColumns ?? undefined,\n this.userFrozenColumns\n );\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n return this.table.layoutHints;\n }\n\n get floatingLeftColumnCount(): number {\n return this.frozenColumns.length;\n }\n\n get description(): string {\n return this.table.description ?? '';\n }\n\n get customColumns(): ColumnName[] {\n return this.customColumnList;\n }\n\n set customColumns(customColumns: ColumnName[]) {\n log.debug2(\n 'set customColumns',\n customColumns,\n this.customColumnList,\n customColumns === this.customColumnList\n );\n if (this.customColumnList.length === 0 && customColumns.length === 0) {\n log.debug('Ignore empty initial customColumns');\n this.customColumnList = customColumns;\n return;\n }\n if (this.customColumnList === customColumns) {\n log.debug('Ignore same customColumns');\n return;\n }\n this.closeSubscription();\n this.customColumnList = customColumns;\n this.table.applyCustomColumns([...customColumns, ...this.formatColumns]);\n this.applyViewport();\n }\n\n get formatColumns(): DhType.CustomColumn[] {\n return this.formatColumnList;\n }\n\n set formatColumns(formatColumns: DhType.CustomColumn[]) {\n log.debug2(\n 'set formatColumns',\n formatColumns,\n this.formatColumnList,\n formatColumns === this.formatColumnList\n );\n if (this.formatColumnList.length === 0 && formatColumns.length === 0) {\n log.debug('Ignore empty initial formatColumns');\n this.formatColumnList = formatColumns;\n return;\n }\n if (this.formatColumnList === formatColumns) {\n log.debug('Ignore same formatColumns');\n return;\n }\n this.closeSubscription();\n this.formatColumnList = formatColumns;\n this.table.applyCustomColumns([...this.customColumns, ...formatColumns]);\n this.applyViewport();\n }\n\n updateFrozenColumns(columns: ColumnName[]): void {\n this.userFrozenColumns = columns;\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.TABLE_CHANGED, {\n detail: this.table,\n })\n );\n }\n\n get partitionColumns(): readonly DhType.Column[] {\n return this.getCachedPartitionColumns(this.columns);\n }\n\n async partitionKeysTable(): Promise<DhType.Table> {\n return this.valuesTable(this.partitionColumns);\n }\n\n async partitionMergedTable(): Promise<DhType.Table> {\n const t = await this.table.copy();\n t.applyFilter([]);\n return t;\n }\n\n async partitionTable(partitions: unknown[]): Promise<DhType.Table> {\n log.debug('getting partition table for partitions', partitions);\n\n const partitionFilters: DhType.FilterCondition[] = [];\n for (let i = 0; i < this.partitionColumns.length; i += 1) {\n const partition = partitions[i];\n const partitionColumn = this.partitionColumns[i];\n const partitionFilter = this.tableUtils.makeNullableEqFilter(\n partitionColumn,\n partition\n );\n partitionFilters.push(partitionFilter);\n }\n\n const t = await this.table.copy();\n t.applyFilter([...this.initialFilters, ...partitionFilters]);\n return t;\n }\n\n set filter(filter: DhType.FilterCondition[]) {\n this.closeSubscription();\n this.table.applyFilter([...this.initialFilters, ...filter]);\n this.applyViewport();\n }\n\n set totalsConfig(totalsConfig: UITotalsTableConfig | null) {\n log.debug('set totalsConfig', totalsConfig);\n\n if (totalsConfig === this.totals) {\n // Totals already set, or it will be set when the next model actually gets set\n return;\n }\n\n this.totals = totalsConfig;\n this.formattedStringData = [];\n\n if (this.totalsTablePromise != null) {\n this.totalsTablePromise.cancel();\n }\n\n this.setTotalsTable(null);\n\n if (totalsConfig == null) {\n this.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.UPDATED));\n return;\n }\n\n this.totalsTablePromise = PromiseUtils.makeCancelable(\n this.table.getTotalsTable(totalsConfig),\n table => table.close()\n );\n this.totalsTablePromise\n .then(totalsTable => {\n this.totalsTablePromise = null;\n this.setTotalsTable(totalsTable);\n })\n .catch(err => {\n if (PromiseUtils.isCanceled(err)) {\n return;\n }\n\n log.error('Unable to set next totalsTable', err);\n this.totalsTablePromise = null;\n\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.REQUEST_FAILED, {\n detail: err,\n })\n );\n });\n }\n\n get isFilterRequired(): boolean {\n return this.table.isUncoalesced;\n }\n\n get isPartitionRequired(): boolean {\n return (\n this.table.isUncoalesced &&\n this.isValuesTableAvailable &&\n this.partitionColumns.length > 0\n );\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(this.columns).has(columnIndex);\n }\n\n async export(): Promise<DhType.Table> {\n return this.table.freeze();\n }\n\n columnStatistics(column: DhType.Column): Promise<DhType.ColumnStatistics> {\n return this.table.getColumnStatistics(column);\n }\n\n getCachedFilterableColumnSet = memoize(\n (columns: DhType.Column[]) =>\n new Set(columns.map((_: DhType.Column, index: ModelIndex) => index))\n );\n\n getCachedPartitionColumns = memoize((columns: readonly DhType.Column[]) =>\n columns.filter(column => column.isPartitionColumn)\n );\n\n isColumnMovable(modelIndex: ModelIndex): boolean {\n const columnName = this.columns[modelIndex].name;\n if (\n this.frontColumns.includes(columnName) ||\n this.backColumns.includes(columnName) ||\n this.frozenColumns.includes(columnName)\n ) {\n return false;\n }\n return !this.isKeyColumn(modelIndex);\n }\n\n isColumnFrozen(modelIndex: ModelIndex): boolean {\n return this.frozenColumns.includes(this.columns[modelIndex].name);\n }\n\n async delete(ranges: readonly GridRange[]): Promise<void> {\n if (!this.isDeletableRanges(ranges)) {\n throw new Error(`Undeletable ranges ${ranges}`);\n }\n\n assertNotNull(this.inputTable);\n const { keyColumns } = this.inputTable;\n if (keyColumns.length === 0) {\n throw new Error('No key columns to allow deletion');\n }\n\n const pendingAreaRange = this.getPendingAreaRange();\n const pendingRanges = ranges\n .map(range => GridRange.intersection(pendingAreaRange, range))\n .filter(range => range != null)\n .map(range => {\n assertNotNull(range);\n\n return GridRange.offset(\n range,\n 0,\n -(this.floatingTopRowCount + this.table.size)\n );\n });\n\n if (pendingRanges.length > 0) {\n const newDataMap = new Map(super.pendingDataMap);\n for (let i = 0; i < pendingRanges.length; i += 1) {\n const pendingRange = pendingRanges[i];\n assertNotNull(pendingRange.startRow);\n assertNotNull(pendingRange.endRow);\n for (let r = pendingRange.startRow; r <= pendingRange.endRow; r += 1) {\n newDataMap.delete(r);\n }\n }\n super.pendingDataMap = newDataMap;\n\n this.formattedStringData = [];\n\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.PENDING_DATA_UPDATED)\n );\n\n this.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.UPDATED));\n }\n\n const tableAreaRange = this.getTableAreaRange();\n const tableRanges = ranges\n .map(range => GridRange.intersection(tableAreaRange, range))\n .filter(range => range != null);\n if (tableRanges.length <= 0) {\n return;\n }\n\n const [data, deleteTable] = await Promise.all([\n // Need to get the key values of each row\n this.snapshot(\n tableRanges\n .map(range => {\n assertNotNull(range);\n // Need to map each key column to it's range so we can pass that into the snapshot function\n return keyColumns.map(keyColumn => {\n const keyIndex = this.getColumnIndexByName(keyColumn.name);\n if (keyIndex == null) {\n throw new Error(`Key column ${keyColumn.name} not found`);\n }\n\n return new GridRange(\n keyIndex,\n range.startRow,\n keyIndex,\n range.endRow\n );\n });\n })\n .flat()\n ),\n this.table.copy(),\n ]);\n\n // Now copy the existing table and filter it on the values in the snapshot for the key columns in the input table\n const filters = data.map(row => {\n const columnFilters = [];\n for (let c = 0; c < keyColumns.length; c += 1) {\n const column = keyColumns[c];\n const value = row[c];\n const filterValue = this.tableUtils.makeFilterRawValue(\n column.type,\n value\n );\n const filter = column.filter().eq(filterValue);\n columnFilters.push(filter);\n }\n return columnFilters.reduce((agg, curr) => agg?.and(curr) ?? curr);\n });\n\n const filter = filters.reduce((agg, curr) => agg?.or(curr) ?? curr);\n\n deleteTable.applyFilter([filter]);\n\n await this.inputTable?.deleteTable(deleteTable);\n deleteTable.close();\n }\n\n async seekRow(\n startRow: number,\n column: DhType.Column,\n valueType: DhType.ValueTypeType,\n value: unknown,\n insensitive?: boolean,\n contains?: boolean,\n isBackwards?: boolean\n ): Promise<number> {\n return this.table.seekRow(\n startRow,\n column,\n valueType,\n value,\n insensitive,\n contains,\n isBackwards\n );\n }\n\n get isSeekRowAvailable(): boolean {\n return this.table.seekRow != null;\n }\n}\n\nexport default IrisGridTableModel;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.74.
|
|
3
|
+
"version": "0.74.1-beta.1+5f497611",
|
|
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.74.
|
|
35
|
-
"@deephaven/console": "^0.74.
|
|
36
|
-
"@deephaven/filters": "^0.74.
|
|
37
|
-
"@deephaven/grid": "^0.74.
|
|
38
|
-
"@deephaven/icons": "^0.74.
|
|
39
|
-
"@deephaven/jsapi-components": "^0.74.
|
|
34
|
+
"@deephaven/components": "^0.74.1-beta.1+5f497611",
|
|
35
|
+
"@deephaven/console": "^0.74.1-beta.1+5f497611",
|
|
36
|
+
"@deephaven/filters": "^0.74.1-beta.1+5f497611",
|
|
37
|
+
"@deephaven/grid": "^0.74.1-beta.1+5f497611",
|
|
38
|
+
"@deephaven/icons": "^0.74.1-beta.1+5f497611",
|
|
39
|
+
"@deephaven/jsapi-components": "^0.74.1-beta.1+5f497611",
|
|
40
40
|
"@deephaven/jsapi-types": "1.0.0-dev0.33.1",
|
|
41
|
-
"@deephaven/jsapi-utils": "^0.74.
|
|
42
|
-
"@deephaven/log": "^0.74.
|
|
43
|
-
"@deephaven/react-hooks": "^0.74.
|
|
44
|
-
"@deephaven/storage": "^0.74.
|
|
45
|
-
"@deephaven/utils": "^0.74.
|
|
41
|
+
"@deephaven/jsapi-utils": "^0.74.1-beta.1+5f497611",
|
|
42
|
+
"@deephaven/log": "^0.74.1-beta.1+5f497611",
|
|
43
|
+
"@deephaven/react-hooks": "^0.74.1-beta.1+5f497611",
|
|
44
|
+
"@deephaven/storage": "^0.74.1-beta.1+5f497611",
|
|
45
|
+
"@deephaven/utils": "^0.74.1-beta.1+5f497611",
|
|
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.74.
|
|
69
|
-
"@deephaven/mocks": "^0.74.
|
|
68
|
+
"@deephaven/jsapi-shim": "^0.74.1-beta.1+5f497611",
|
|
69
|
+
"@deephaven/mocks": "^0.74.1-beta.1+5f497611"
|
|
70
70
|
},
|
|
71
71
|
"files": [
|
|
72
72
|
"dist",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"publishConfig": {
|
|
79
79
|
"access": "public"
|
|
80
80
|
},
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "5f4976115bfc016e6d9cbe9fd77413c3fd8f8353"
|
|
82
82
|
}
|