@deephaven/iris-grid 0.85.3-core-plugins.6 → 0.86.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/IrisGrid.d.ts +9 -4
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +94 -60
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridPartitionSelector.css +1 -2
- package/dist/IrisGridPartitionSelector.css.map +1 -1
- package/dist/IrisGridPartitionSelector.d.ts +5 -6
- package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
- package/dist/IrisGridPartitionSelector.js +68 -84
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridPartitionedTableModel.d.ts +5 -0
- package/dist/IrisGridPartitionedTableModel.d.ts.map +1 -1
- package/dist/IrisGridPartitionedTableModel.js +24 -4
- package/dist/IrisGridPartitionedTableModel.js.map +1 -1
- package/dist/IrisGridProxyModel.js +1 -1
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts +2 -0
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js +36 -27
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/PartitionedGridModel.d.ts +5 -1
- package/dist/PartitionedGridModel.d.ts.map +1 -1
- package/dist/PartitionedGridModel.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +11 -0
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.d.ts +12 -0
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.d.ts.map +1 -0
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +38 -0
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -0
- package/dist/mousehandlers/index.d.ts +1 -0
- package/dist/mousehandlers/index.d.ts.map +1 -1
- package/dist/mousehandlers/index.js +1 -0
- package/dist/mousehandlers/index.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridPartitionedTableModel.js","names":["Formatter","EmptyIrisGridModel","MissingPartitionError","isMissingPartitionError","IrisGridPartitionedTableModel","constructor","dh","partitionedTable","formatter","arguments","length","undefined","_defineProperty","isPartitionRequired","isReversible","displayString","value","columnType","columnName","close","columns","partitionColumns","keyColumns","partitionKeysTable","_this","_asyncToGenerator","getKeyTable","
|
|
1
|
+
{"version":3,"file":"IrisGridPartitionedTableModel.js","names":["Formatter","EmptyIrisGridModel","MissingPartitionError","isMissingPartitionError","IrisGridPartitionedTableModel","constructor","dh","partitionedTable","formatter","arguments","length","undefined","_defineProperty","isPartitionRequired","isPartitionAwareSourceTable","isReversible","displayString","value","columnType","columnName","close","columns","partitionColumns","keyColumns","columnCount","getColumnIndexByName","findIndex","column","name","textForColumnHeader","depth","_this$columns$column$","partitionKeysTable","_this","_asyncToGenerator","getKeyTable","partitionBaseTable","_this2","getBaseTable","partitionMergedTable","_this3","getMergedTable","partitionTable","partitions","_this4","table","getTable","e"],"sources":["../src/IrisGridPartitionedTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport { ColumnName } from './CommonTypes';\nimport EmptyIrisGridModel from './EmptyIrisGridModel';\nimport MissingPartitionError, {\n isMissingPartitionError,\n} from './MissingPartitionError';\nimport { PartitionedGridModelProvider } from './PartitionedGridModel';\n\nclass IrisGridPartitionedTableModel\n extends EmptyIrisGridModel\n implements PartitionedGridModelProvider\n{\n readonly partitionedTable: DhType.PartitionedTable;\n\n /**\n * @param dh JSAPI instance\n * @param table Partitioned table to be used in the model\n * @param formatter The formatter to use when getting formats\n */\n constructor(\n dh: typeof DhType,\n partitionedTable: DhType.PartitionedTable,\n formatter = new Formatter(dh)\n ) {\n super(dh, formatter);\n this.partitionedTable = partitionedTable;\n }\n\n get isPartitionRequired(): boolean {\n return true;\n }\n\n get isPartitionAwareSourceTable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n displayString(\n value: unknown,\n columnType: string,\n columnName?: ColumnName\n ): string {\n return '';\n }\n\n close(): void {\n this.partitionedTable.close();\n }\n\n get columns(): readonly DhType.Column[] {\n return this.partitionedTable.columns;\n }\n\n get partitionColumns(): readonly DhType.Column[] {\n return this.partitionedTable.keyColumns;\n }\n\n get columnCount(): number {\n return this.columns.length;\n }\n\n getColumnIndexByName(columnName: string): number {\n return this.columns.findIndex(column => column.name === columnName);\n }\n\n textForColumnHeader(\n column: number,\n depth?: number | undefined\n ): string | undefined {\n return this.columns[column].name ?? '';\n }\n\n async partitionKeysTable(): Promise<DhType.Table> {\n return this.partitionedTable.getKeyTable();\n }\n\n async partitionBaseTable(): Promise<DhType.Table> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (this.partitionedTable as any).getBaseTable();\n }\n\n async partitionMergedTable(): Promise<DhType.Table> {\n return this.partitionedTable.getMergedTable();\n }\n\n async partitionTable(partitions: unknown[]): Promise<DhType.Table> {\n try {\n const table = await this.partitionedTable.getTable(partitions);\n if (table == null) {\n // TODO: Will be unnecessary with https://github.com/deephaven/deephaven-core/pull/5050\n throw new MissingPartitionError('Partition not found');\n }\n return table;\n } catch (e) {\n if (!isMissingPartitionError(e)) {\n throw new MissingPartitionError('Unable to retrieve partition');\n } else {\n throw e;\n }\n }\n }\n}\n\nexport default IrisGridPartitionedTableModel;\n"],"mappings":"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"}
|
|
@@ -239,7 +239,7 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
239
239
|
var modelPromise = Promise.resolve(this.originalModel);
|
|
240
240
|
if (partitionConfig != null && isPartitionedGridModelProvider(this.originalModel)) {
|
|
241
241
|
if (partitionConfig.mode === 'keys') {
|
|
242
|
-
modelPromise = this.originalModel.
|
|
242
|
+
modelPromise = this.originalModel.partitionBaseTable().then(table => makeModel(this.dh, table, this.formatter));
|
|
243
243
|
} else if (partitionConfig.mode === 'merged') {
|
|
244
244
|
modelPromise = this.originalModel.partitionMergedTable().then(table => makeModel(this.dh, table, this.formatter));
|
|
245
245
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridProxyModel.js","names":["deepEqual","Formatter","TableUtils","Log","EventShimCustomEvent","PromiseUtils","IrisGridTableModel","IrisGridPartitionedTableModel","IrisGridTreeTableModel","IrisGridModel","isIrisGridTableModelTemplate","isPartitionedGridModelProvider","log","module","makeModel","dh","table","formatter","inputTable","isTreeTable","isPartitionedTable","IrisGridProxyModel","constructor","arguments","length","undefined","_defineProperty","top","bottom","columns","currentViewport","model","setViewport","addEventListener","bind","removeEventListener","dispatchEvent","handleModelEvent","originalModel","modelPromise","rollup","partition","selectDistinct","Proxy","get","target","prop","receiver","_Object$getOwnPropert","proxyHasGetter","Object","getOwnPropertyDescriptor","getPrototypeOf","Reflect","proxyHasProp","prototype","hasOwnProperty","call","proxyHasFn","trueTarget","set","value","_Object$getOwnPropert2","proxyHasSetter","close","cancel","event","debug2","detail","type","setModel","debug","oldModel","oldColumns","listenerCount","addListeners","EVENT","COLUMNS_CHANGED","TABLE_CHANGED","setNextModel","removeListeners","makeCancelable","then","catch","err","isCanceled","error","REQUEST_FAILED","startListening","stopListening","events","keys","i","isCustomColumnsAvailable","isSelectDistinctAvailable","selectDistinctColumns","isRollupAvailable","originalColumns","partitionColumns","partitionConfig","isPartitionRequired","Error","Promise","resolve","mode","partitionKeysTable","partitionMergedTable","partitionTable","partitions","rollupConfig","columnNames","map","name","find","column","filter","isFilterRequired"],"sources":["../src/IrisGridProxyModel.ts"],"sourcesContent":["import deepEqual from 'fast-deep-equal';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n CancelablePromise,\n EventShimCustomEvent,\n PromiseUtils,\n} from '@deephaven/utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport IrisGridTableModel from './IrisGridTableModel';\nimport IrisGridPartitionedTableModel from './IrisGridPartitionedTableModel';\nimport IrisGridTreeTableModel from './IrisGridTreeTableModel';\nimport IrisGridModel from './IrisGridModel';\nimport { ColumnName } from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nimport {\n PartitionConfig,\n PartitionedGridModel,\n isPartitionedGridModelProvider,\n} from './PartitionedGridModel';\n\nconst log = Log.module('IrisGridProxyModel');\n\nfunction makeModel(\n dh: typeof DhType,\n table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable,\n formatter?: Formatter,\n inputTable?: DhType.InputTable | null\n): IrisGridModel {\n if (TableUtils.isTreeTable(table)) {\n return new IrisGridTreeTableModel(dh, table, formatter);\n }\n if (TableUtils.isPartitionedTable(table)) {\n return new IrisGridPartitionedTableModel(dh, table, formatter);\n }\n return new IrisGridTableModel(dh, table, formatter, inputTable);\n}\n\n/**\n * Model which proxies calls to other IrisGridModels.\n * This allows for operations that generate new tables, like rollups.\n * The proxy model will call any methods it has implemented and delegate any\n * it does not implement to the underlying model.\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nclass IrisGridProxyModel extends IrisGridModel implements PartitionedGridModel {\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\n model: IrisGridModel;\n\n dh: typeof DhType;\n\n private originalModel: IrisGridModel;\n\n private modelPromise: CancelablePromise<IrisGridModel> | null;\n\n private rollup: DhType.RollupConfig | null;\n\n private partition: PartitionConfig | null;\n\n private selectDistinct: ColumnName[];\n\n private currentViewport?: {\n top: number;\n bottom: number;\n columns?: DhType.Column[];\n };\n\n constructor(\n dh: typeof DhType,\n table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh);\n\n // The EventTarget methods must be bound to this instance\n // Otherwise they throw errors because of the Proxy\n this.addEventListener = this.addEventListener.bind(this);\n this.removeEventListener = this.removeEventListener.bind(this);\n this.dispatchEvent = this.dispatchEvent.bind(this);\n\n this.handleModelEvent = this.handleModelEvent.bind(this);\n\n const model = makeModel(dh, table, formatter, inputTable);\n this.dh = dh;\n this.originalModel = model;\n this.model = model;\n this.modelPromise = null;\n this.rollup = null;\n this.partition = null;\n this.selectDistinct = [];\n\n // eslint-disable-next-line no-constructor-return\n return new Proxy(this, {\n // We want to use any properties on the proxy model if defined\n // If not, then proxy to the underlying model\n get(target, prop, receiver) {\n // Does this class have a getter for the prop\n // Getter functions are on the prototype\n const proxyHasGetter =\n Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop)\n ?.get != null;\n\n if (proxyHasGetter) {\n return Reflect.get(target, prop, receiver);\n }\n\n // Does this class implement the property\n const proxyHasProp = Object.prototype.hasOwnProperty.call(target, prop);\n\n // Does the class implement a function for the property\n const proxyHasFn = Object.prototype.hasOwnProperty.call(\n Object.getPrototypeOf(target),\n prop\n );\n\n const trueTarget = proxyHasProp || proxyHasFn ? target : target.model;\n return Reflect.get(trueTarget, prop);\n },\n set(target, prop, value) {\n const proxyHasSetter =\n Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop)\n ?.set != null;\n\n if (proxyHasSetter) {\n return Reflect.set(target, prop, value, target);\n }\n\n return Reflect.set(target.model, prop, value, target.model);\n },\n });\n }\n\n close(): void {\n this.originalModel.close();\n if (this.model !== this.originalModel) {\n this.model.close();\n }\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n }\n\n handleModelEvent(event: CustomEvent): void {\n log.debug2('handleModelEvent', event);\n\n const { detail, type } = event;\n this.dispatchEvent(new EventShimCustomEvent(type, { detail }));\n }\n\n setModel(model: IrisGridModel): void {\n log.debug('setModel', model);\n\n const oldModel = this.model;\n const { columns: oldColumns } = oldModel;\n\n if (oldModel !== this.originalModel) {\n oldModel.close();\n }\n\n this.model = model;\n\n if (this.listenerCount > 0) {\n this.addListeners(model);\n }\n\n if (oldColumns !== model.columns) {\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: model.columns,\n })\n );\n } else if (this.currentViewport != null) {\n // If the columns haven't changed, the current viewport should still valid, and needs to be set on the new model\n const { top, bottom, columns } = this.currentViewport;\n model.setViewport(top, bottom, columns);\n }\n\n if (isIrisGridTableModelTemplate(model)) {\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.TABLE_CHANGED, {\n detail: model.table,\n })\n );\n }\n }\n\n setNextModel(modelPromise: Promise<IrisGridModel>): void {\n log.debug2('setNextModel');\n\n if (this.modelPromise) {\n this.modelPromise.cancel();\n }\n\n if (this.listenerCount > 0) {\n this.removeListeners(this.model);\n }\n\n this.modelPromise = PromiseUtils.makeCancelable(\n modelPromise,\n (model: IrisGridModel) => model.close()\n );\n this.modelPromise\n .then(model => {\n this.modelPromise = null;\n this.setModel(model);\n })\n .catch((err: unknown) => {\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('setNextModel cancelled');\n return;\n }\n\n log.error('Unable to set next model', err);\n this.modelPromise = null;\n\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.REQUEST_FAILED, {\n detail: err,\n })\n );\n });\n }\n\n startListening(): void {\n super.startListening();\n\n this.addListeners(this.model);\n }\n\n stopListening(): void {\n super.stopListening();\n\n this.removeListeners(this.model);\n }\n\n addListeners(model: IrisGridModel): void {\n const events = Object.keys(IrisGridModel.EVENT);\n for (let i = 0; i < events.length; i += 1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n model.addEventListener(events[i], this.handleModelEvent);\n }\n }\n\n removeListeners(model: IrisGridModel): void {\n const events = Object.keys(IrisGridModel.EVENT);\n for (let i = 0; i < events.length; i += 1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n model.removeEventListener(events[i], this.handleModelEvent);\n }\n }\n\n get isCustomColumnsAvailable(): boolean {\n return (\n this.model.isCustomColumnsAvailable &&\n // Disable for selectDistinct tables\n !(this.isSelectDistinctAvailable && this.selectDistinctColumns.length > 0)\n );\n }\n\n get isRollupAvailable(): boolean {\n return (\n (this.originalModel.isRollupAvailable || this.rollup != null) &&\n this.selectDistinct.length === 0\n );\n }\n\n get isSelectDistinctAvailable(): boolean {\n return (\n (this.originalModel.isSelectDistinctAvailable ||\n this.selectDistinct.length > 0) &&\n this.rollup == null\n );\n }\n\n get originalColumns(): readonly DhType.Column[] {\n return this.originalModel.columns;\n }\n\n get partitionColumns(): readonly DhType.Column[] {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n return [];\n }\n return this.originalModel.partitionColumns;\n }\n\n get partitionConfig(): PartitionConfig | null {\n if (\n !isPartitionedGridModelProvider(this.originalModel) ||\n !this.originalModel.isPartitionRequired\n ) {\n return null;\n }\n return this.partition;\n }\n\n set partitionConfig(partitionConfig: PartitionConfig | null) {\n if (!this.isPartitionRequired) {\n throw new Error('Partitions are not available');\n }\n log.debug('set partitionConfig', partitionConfig);\n this.partition = partitionConfig;\n\n let modelPromise = Promise.resolve(this.originalModel);\n if (\n partitionConfig != null &&\n isPartitionedGridModelProvider(this.originalModel)\n ) {\n if (partitionConfig.mode === 'keys') {\n modelPromise = this.originalModel\n .partitionKeysTable()\n .then(table => makeModel(this.dh, table, this.formatter));\n } else if (partitionConfig.mode === 'merged') {\n modelPromise = this.originalModel\n .partitionMergedTable()\n .then(table => makeModel(this.dh, table, this.formatter));\n } else {\n modelPromise = this.originalModel\n .partitionTable(partitionConfig.partitions)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n }\n\n this.setNextModel(modelPromise);\n }\n\n partitionKeysTable(): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionKeysTable();\n }\n\n partitionMergedTable(): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionMergedTable();\n }\n\n partitionTable(partitions: unknown[]): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionTable(partitions);\n }\n\n get rollupConfig(): DhType.RollupConfig | null {\n return this.rollup;\n }\n\n set rollupConfig(rollupConfig: DhType.RollupConfig | null) {\n log.debug('set rollupConfig', rollupConfig);\n\n if (!this.isRollupAvailable) {\n throw new Error('Rollup Rows are not available');\n }\n\n // Prevent model update when IrisGridModelUpdater is mounted\n // if rollup is already initialized in IrisGridPanel\n if (deepEqual(rollupConfig, this.rollup)) {\n return;\n }\n\n this.rollup = rollupConfig;\n\n let modelPromise = Promise.resolve(this.originalModel);\n\n if (\n isIrisGridTableModelTemplate(this.originalModel) &&\n rollupConfig != null\n ) {\n modelPromise = this.originalModel.table\n .rollup(rollupConfig)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get selectDistinctColumns(): ColumnName[] {\n return this.selectDistinct;\n }\n\n set selectDistinctColumns(columnNames: string[]) {\n log.debug('set selectDistinctColumns', columnNames);\n\n if (!this.isSelectDistinctAvailable) {\n throw new Error('Select distinct is not available');\n }\n\n if (\n columnNames === this.selectDistinctColumns ||\n (columnNames.length === 0 && this.selectDistinctColumns.length === 0)\n ) {\n log.debug('Ignore same selectDistinctColumns', columnNames);\n return;\n }\n\n this.selectDistinct = columnNames;\n\n const selectDistinctColumns = columnNames\n .map(name => this.originalColumns.find(column => column.name === name))\n .filter(column => column != null) as DhType.Column[];\n\n let modelPromise = Promise.resolve(this.originalModel);\n\n if (\n isIrisGridTableModelTemplate(this.originalModel) &&\n selectDistinctColumns.length > 0\n ) {\n modelPromise = this.originalModel.table\n .selectDistinct(selectDistinctColumns)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get isFilterRequired(): boolean {\n return this.originalModel.isFilterRequired;\n }\n\n get isPartitionRequired(): boolean {\n return isPartitionedGridModelProvider(this.originalModel)\n ? this.originalModel.isPartitionRequired\n : false;\n }\n\n setViewport = (\n top: number,\n bottom: number,\n columns?: DhType.Column[]\n ): void => {\n this.currentViewport = { top, bottom, columns };\n this.model.setViewport(top, bottom, columns);\n };\n}\n\nexport default IrisGridProxyModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridProxyModel.js","names":["deepEqual","Formatter","TableUtils","Log","EventShimCustomEvent","PromiseUtils","IrisGridTableModel","IrisGridPartitionedTableModel","IrisGridTreeTableModel","IrisGridModel","isIrisGridTableModelTemplate","isPartitionedGridModelProvider","log","module","makeModel","dh","table","formatter","inputTable","isTreeTable","isPartitionedTable","IrisGridProxyModel","constructor","arguments","length","undefined","_defineProperty","top","bottom","columns","currentViewport","model","setViewport","addEventListener","bind","removeEventListener","dispatchEvent","handleModelEvent","originalModel","modelPromise","rollup","partition","selectDistinct","Proxy","get","target","prop","receiver","_Object$getOwnPropert","proxyHasGetter","Object","getOwnPropertyDescriptor","getPrototypeOf","Reflect","proxyHasProp","prototype","hasOwnProperty","call","proxyHasFn","trueTarget","set","value","_Object$getOwnPropert2","proxyHasSetter","close","cancel","event","debug2","detail","type","setModel","debug","oldModel","oldColumns","listenerCount","addListeners","EVENT","COLUMNS_CHANGED","TABLE_CHANGED","setNextModel","removeListeners","makeCancelable","then","catch","err","isCanceled","error","REQUEST_FAILED","startListening","stopListening","events","keys","i","isCustomColumnsAvailable","isSelectDistinctAvailable","selectDistinctColumns","isRollupAvailable","originalColumns","partitionColumns","partitionConfig","isPartitionRequired","Error","Promise","resolve","mode","partitionBaseTable","partitionMergedTable","partitionTable","partitions","partitionKeysTable","rollupConfig","columnNames","map","name","find","column","filter","isFilterRequired"],"sources":["../src/IrisGridProxyModel.ts"],"sourcesContent":["import deepEqual from 'fast-deep-equal';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n CancelablePromise,\n EventShimCustomEvent,\n PromiseUtils,\n} from '@deephaven/utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport IrisGridTableModel from './IrisGridTableModel';\nimport IrisGridPartitionedTableModel from './IrisGridPartitionedTableModel';\nimport IrisGridTreeTableModel from './IrisGridTreeTableModel';\nimport IrisGridModel from './IrisGridModel';\nimport { ColumnName } from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nimport {\n PartitionConfig,\n PartitionedGridModel,\n isPartitionedGridModelProvider,\n} from './PartitionedGridModel';\n\nconst log = Log.module('IrisGridProxyModel');\n\nfunction makeModel(\n dh: typeof DhType,\n table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable,\n formatter?: Formatter,\n inputTable?: DhType.InputTable | null\n): IrisGridModel {\n if (TableUtils.isTreeTable(table)) {\n return new IrisGridTreeTableModel(dh, table, formatter);\n }\n if (TableUtils.isPartitionedTable(table)) {\n return new IrisGridPartitionedTableModel(dh, table, formatter);\n }\n return new IrisGridTableModel(dh, table, formatter, inputTable);\n}\n\n/**\n * Model which proxies calls to other IrisGridModels.\n * This allows for operations that generate new tables, like rollups.\n * The proxy model will call any methods it has implemented and delegate any\n * it does not implement to the underlying model.\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nclass IrisGridProxyModel extends IrisGridModel implements PartitionedGridModel {\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\n model: IrisGridModel;\n\n dh: typeof DhType;\n\n private originalModel: IrisGridModel;\n\n private modelPromise: CancelablePromise<IrisGridModel> | null;\n\n private rollup: DhType.RollupConfig | null;\n\n private partition: PartitionConfig | null;\n\n private selectDistinct: ColumnName[];\n\n private currentViewport?: {\n top: number;\n bottom: number;\n columns?: DhType.Column[];\n };\n\n constructor(\n dh: typeof DhType,\n table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh);\n\n // The EventTarget methods must be bound to this instance\n // Otherwise they throw errors because of the Proxy\n this.addEventListener = this.addEventListener.bind(this);\n this.removeEventListener = this.removeEventListener.bind(this);\n this.dispatchEvent = this.dispatchEvent.bind(this);\n\n this.handleModelEvent = this.handleModelEvent.bind(this);\n\n const model = makeModel(dh, table, formatter, inputTable);\n this.dh = dh;\n this.originalModel = model;\n this.model = model;\n this.modelPromise = null;\n this.rollup = null;\n this.partition = null;\n this.selectDistinct = [];\n\n // eslint-disable-next-line no-constructor-return\n return new Proxy(this, {\n // We want to use any properties on the proxy model if defined\n // If not, then proxy to the underlying model\n get(target, prop, receiver) {\n // Does this class have a getter for the prop\n // Getter functions are on the prototype\n const proxyHasGetter =\n Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop)\n ?.get != null;\n\n if (proxyHasGetter) {\n return Reflect.get(target, prop, receiver);\n }\n\n // Does this class implement the property\n const proxyHasProp = Object.prototype.hasOwnProperty.call(target, prop);\n\n // Does the class implement a function for the property\n const proxyHasFn = Object.prototype.hasOwnProperty.call(\n Object.getPrototypeOf(target),\n prop\n );\n\n const trueTarget = proxyHasProp || proxyHasFn ? target : target.model;\n return Reflect.get(trueTarget, prop);\n },\n set(target, prop, value) {\n const proxyHasSetter =\n Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop)\n ?.set != null;\n\n if (proxyHasSetter) {\n return Reflect.set(target, prop, value, target);\n }\n\n return Reflect.set(target.model, prop, value, target.model);\n },\n });\n }\n\n close(): void {\n this.originalModel.close();\n if (this.model !== this.originalModel) {\n this.model.close();\n }\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n }\n\n handleModelEvent(event: CustomEvent): void {\n log.debug2('handleModelEvent', event);\n\n const { detail, type } = event;\n this.dispatchEvent(new EventShimCustomEvent(type, { detail }));\n }\n\n setModel(model: IrisGridModel): void {\n log.debug('setModel', model);\n\n const oldModel = this.model;\n const { columns: oldColumns } = oldModel;\n\n if (oldModel !== this.originalModel) {\n oldModel.close();\n }\n\n this.model = model;\n\n if (this.listenerCount > 0) {\n this.addListeners(model);\n }\n\n if (oldColumns !== model.columns) {\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: model.columns,\n })\n );\n } else if (this.currentViewport != null) {\n // If the columns haven't changed, the current viewport should still valid, and needs to be set on the new model\n const { top, bottom, columns } = this.currentViewport;\n model.setViewport(top, bottom, columns);\n }\n\n if (isIrisGridTableModelTemplate(model)) {\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.TABLE_CHANGED, {\n detail: model.table,\n })\n );\n }\n }\n\n setNextModel(modelPromise: Promise<IrisGridModel>): void {\n log.debug2('setNextModel');\n\n if (this.modelPromise) {\n this.modelPromise.cancel();\n }\n\n if (this.listenerCount > 0) {\n this.removeListeners(this.model);\n }\n\n this.modelPromise = PromiseUtils.makeCancelable(\n modelPromise,\n (model: IrisGridModel) => model.close()\n );\n this.modelPromise\n .then(model => {\n this.modelPromise = null;\n this.setModel(model);\n })\n .catch((err: unknown) => {\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('setNextModel cancelled');\n return;\n }\n\n log.error('Unable to set next model', err);\n this.modelPromise = null;\n\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.REQUEST_FAILED, {\n detail: err,\n })\n );\n });\n }\n\n startListening(): void {\n super.startListening();\n\n this.addListeners(this.model);\n }\n\n stopListening(): void {\n super.stopListening();\n\n this.removeListeners(this.model);\n }\n\n addListeners(model: IrisGridModel): void {\n const events = Object.keys(IrisGridModel.EVENT);\n for (let i = 0; i < events.length; i += 1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n model.addEventListener(events[i], this.handleModelEvent);\n }\n }\n\n removeListeners(model: IrisGridModel): void {\n const events = Object.keys(IrisGridModel.EVENT);\n for (let i = 0; i < events.length; i += 1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n model.removeEventListener(events[i], this.handleModelEvent);\n }\n }\n\n get isCustomColumnsAvailable(): boolean {\n return (\n this.model.isCustomColumnsAvailable &&\n // Disable for selectDistinct tables\n !(this.isSelectDistinctAvailable && this.selectDistinctColumns.length > 0)\n );\n }\n\n get isRollupAvailable(): boolean {\n return (\n (this.originalModel.isRollupAvailable || this.rollup != null) &&\n this.selectDistinct.length === 0\n );\n }\n\n get isSelectDistinctAvailable(): boolean {\n return (\n (this.originalModel.isSelectDistinctAvailable ||\n this.selectDistinct.length > 0) &&\n this.rollup == null\n );\n }\n\n get originalColumns(): readonly DhType.Column[] {\n return this.originalModel.columns;\n }\n\n get partitionColumns(): readonly DhType.Column[] {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n return [];\n }\n return this.originalModel.partitionColumns;\n }\n\n get partitionConfig(): PartitionConfig | null {\n if (\n !isPartitionedGridModelProvider(this.originalModel) ||\n !this.originalModel.isPartitionRequired\n ) {\n return null;\n }\n return this.partition;\n }\n\n set partitionConfig(partitionConfig: PartitionConfig | null) {\n if (!this.isPartitionRequired) {\n throw new Error('Partitions are not available');\n }\n log.debug('set partitionConfig', partitionConfig);\n this.partition = partitionConfig;\n\n let modelPromise = Promise.resolve(this.originalModel);\n if (\n partitionConfig != null &&\n isPartitionedGridModelProvider(this.originalModel)\n ) {\n if (partitionConfig.mode === 'keys') {\n modelPromise = this.originalModel\n .partitionBaseTable()\n .then(table => makeModel(this.dh, table, this.formatter));\n } else if (partitionConfig.mode === 'merged') {\n modelPromise = this.originalModel\n .partitionMergedTable()\n .then(table => makeModel(this.dh, table, this.formatter));\n } else {\n modelPromise = this.originalModel\n .partitionTable(partitionConfig.partitions)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n }\n\n this.setNextModel(modelPromise);\n }\n\n partitionKeysTable(): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionKeysTable();\n }\n\n partitionMergedTable(): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionMergedTable();\n }\n\n partitionTable(partitions: unknown[]): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionTable(partitions);\n }\n\n get rollupConfig(): DhType.RollupConfig | null {\n return this.rollup;\n }\n\n set rollupConfig(rollupConfig: DhType.RollupConfig | null) {\n log.debug('set rollupConfig', rollupConfig);\n\n if (!this.isRollupAvailable) {\n throw new Error('Rollup Rows are not available');\n }\n\n // Prevent model update when IrisGridModelUpdater is mounted\n // if rollup is already initialized in IrisGridPanel\n if (deepEqual(rollupConfig, this.rollup)) {\n return;\n }\n\n this.rollup = rollupConfig;\n\n let modelPromise = Promise.resolve(this.originalModel);\n\n if (\n isIrisGridTableModelTemplate(this.originalModel) &&\n rollupConfig != null\n ) {\n modelPromise = this.originalModel.table\n .rollup(rollupConfig)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get selectDistinctColumns(): ColumnName[] {\n return this.selectDistinct;\n }\n\n set selectDistinctColumns(columnNames: string[]) {\n log.debug('set selectDistinctColumns', columnNames);\n\n if (!this.isSelectDistinctAvailable) {\n throw new Error('Select distinct is not available');\n }\n\n if (\n columnNames === this.selectDistinctColumns ||\n (columnNames.length === 0 && this.selectDistinctColumns.length === 0)\n ) {\n log.debug('Ignore same selectDistinctColumns', columnNames);\n return;\n }\n\n this.selectDistinct = columnNames;\n\n const selectDistinctColumns = columnNames\n .map(name => this.originalColumns.find(column => column.name === name))\n .filter(column => column != null) as DhType.Column[];\n\n let modelPromise = Promise.resolve(this.originalModel);\n\n if (\n isIrisGridTableModelTemplate(this.originalModel) &&\n selectDistinctColumns.length > 0\n ) {\n modelPromise = this.originalModel.table\n .selectDistinct(selectDistinctColumns)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get isFilterRequired(): boolean {\n return this.originalModel.isFilterRequired;\n }\n\n get isPartitionRequired(): boolean {\n return isPartitionedGridModelProvider(this.originalModel)\n ? this.originalModel.isPartitionRequired\n : false;\n }\n\n setViewport = (\n top: number,\n bottom: number,\n columns?: DhType.Column[]\n ): void => {\n this.currentViewport = { top, bottom, columns };\n this.model.setViewport(top, bottom, columns);\n };\n}\n\nexport default IrisGridProxyModel;\n"],"mappings":"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"}
|
|
@@ -45,11 +45,13 @@ declare class IrisGridTableModel extends IrisGridTableModelTemplate<DhType.Table
|
|
|
45
45
|
get partitionColumns(): readonly DhType.Column[];
|
|
46
46
|
partitionKeysTable(): Promise<DhType.Table>;
|
|
47
47
|
partitionMergedTable(): Promise<DhType.Table>;
|
|
48
|
+
partitionBaseTable(): Promise<DhType.Table>;
|
|
48
49
|
partitionTable(partitions: unknown[]): Promise<DhType.Table>;
|
|
49
50
|
set filter(filter: DhType.FilterCondition[]);
|
|
50
51
|
set totalsConfig(totalsConfig: UITotalsTableConfig | null);
|
|
51
52
|
get isFilterRequired(): boolean;
|
|
52
53
|
get isPartitionRequired(): boolean;
|
|
54
|
+
get isPartitionAwareSourceTable(): boolean;
|
|
53
55
|
isFilterable(columnIndex: ModelIndex): boolean;
|
|
54
56
|
export(): Promise<DhType.Table>;
|
|
55
57
|
columnStatistics(column: DhType.Column): Promise<DhType.ColumnStatistics>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTableModel.d.ts","sourceRoot":"","sources":["../src/IrisGridTableModel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridTableModel.d.ts","sourceRoot":"","sources":["../src/IrisGridTableModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -153,19 +153,25 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
153
153
|
return t;
|
|
154
154
|
})();
|
|
155
155
|
}
|
|
156
|
-
|
|
156
|
+
partitionBaseTable() {
|
|
157
157
|
var _this3 = this;
|
|
158
|
+
return _asyncToGenerator(function* () {
|
|
159
|
+
return _this3.partitionKeysTable();
|
|
160
|
+
})();
|
|
161
|
+
}
|
|
162
|
+
partitionTable(partitions) {
|
|
163
|
+
var _this4 = this;
|
|
158
164
|
return _asyncToGenerator(function* () {
|
|
159
165
|
log.debug('getting partition table for partitions', partitions);
|
|
160
166
|
var partitionFilters = [];
|
|
161
|
-
for (var i = 0; i <
|
|
167
|
+
for (var i = 0; i < _this4.partitionColumns.length; i += 1) {
|
|
162
168
|
var partition = partitions[i];
|
|
163
|
-
var partitionColumn =
|
|
164
|
-
var partitionFilter =
|
|
169
|
+
var partitionColumn = _this4.partitionColumns[i];
|
|
170
|
+
var partitionFilter = _this4.tableUtils.makeNullableEqFilter(partitionColumn, partition);
|
|
165
171
|
partitionFilters.push(partitionFilter);
|
|
166
172
|
}
|
|
167
|
-
var t = yield
|
|
168
|
-
t.applyFilter([...
|
|
173
|
+
var t = yield _this4.table.copy();
|
|
174
|
+
t.applyFilter([..._this4.initialFilters, ...partitionFilters]);
|
|
169
175
|
return t;
|
|
170
176
|
})();
|
|
171
177
|
}
|
|
@@ -211,13 +217,16 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
211
217
|
get isPartitionRequired() {
|
|
212
218
|
return this.table.isUncoalesced && this.isValuesTableAvailable && this.partitionColumns.length > 0;
|
|
213
219
|
}
|
|
220
|
+
get isPartitionAwareSourceTable() {
|
|
221
|
+
return this.isPartitionRequired;
|
|
222
|
+
}
|
|
214
223
|
isFilterable(columnIndex) {
|
|
215
224
|
return this.getCachedFilterableColumnSet(this.columns).has(columnIndex);
|
|
216
225
|
}
|
|
217
226
|
export() {
|
|
218
|
-
var
|
|
227
|
+
var _this5 = this;
|
|
219
228
|
return _asyncToGenerator(function* () {
|
|
220
|
-
return
|
|
229
|
+
return _this5.table.freeze();
|
|
221
230
|
})();
|
|
222
231
|
}
|
|
223
232
|
columnStatistics(column) {
|
|
@@ -236,23 +245,23 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
236
245
|
delete(ranges) {
|
|
237
246
|
var _superprop_getPendingDataMap = () => super.pendingDataMap,
|
|
238
247
|
_superprop_setPendingDataMap = _value => super.pendingDataMap = _value,
|
|
239
|
-
|
|
248
|
+
_this6 = this;
|
|
240
249
|
return _asyncToGenerator(function* () {
|
|
241
|
-
var
|
|
242
|
-
if (!
|
|
250
|
+
var _this6$inputTable;
|
|
251
|
+
if (!_this6.isDeletableRanges(ranges)) {
|
|
243
252
|
throw new Error("Undeletable ranges ".concat(ranges));
|
|
244
253
|
}
|
|
245
|
-
assertNotNull(
|
|
254
|
+
assertNotNull(_this6.inputTable);
|
|
246
255
|
var {
|
|
247
256
|
keyColumns
|
|
248
|
-
} =
|
|
249
|
-
if (
|
|
257
|
+
} = _this6.inputTable;
|
|
258
|
+
if (_this6.keyColumnSet.size === 0) {
|
|
250
259
|
throw new Error('No key columns to allow deletion');
|
|
251
260
|
}
|
|
252
|
-
var pendingAreaRange =
|
|
261
|
+
var pendingAreaRange = _this6.getPendingAreaRange();
|
|
253
262
|
var pendingRanges = ranges.map(range => GridRange.intersection(pendingAreaRange, range)).filter(range => range != null).map(range => {
|
|
254
263
|
assertNotNull(range);
|
|
255
|
-
return GridRange.offset(range, 0, -(
|
|
264
|
+
return GridRange.offset(range, 0, -(_this6.floatingTopRowCount + _this6.table.size));
|
|
256
265
|
});
|
|
257
266
|
if (pendingRanges.length > 0) {
|
|
258
267
|
var newDataMap = new Map(_superprop_getPendingDataMap());
|
|
@@ -265,28 +274,28 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
265
274
|
}
|
|
266
275
|
}
|
|
267
276
|
_superprop_setPendingDataMap(newDataMap);
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
277
|
+
_this6.formattedStringData = [];
|
|
278
|
+
_this6.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.PENDING_DATA_UPDATED));
|
|
279
|
+
_this6.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.UPDATED));
|
|
271
280
|
}
|
|
272
|
-
var tableAreaRange =
|
|
281
|
+
var tableAreaRange = _this6.getTableAreaRange();
|
|
273
282
|
var tableRanges = ranges.map(range => GridRange.intersection(tableAreaRange, range)).filter(range => range != null);
|
|
274
283
|
if (tableRanges.length <= 0) {
|
|
275
284
|
return;
|
|
276
285
|
}
|
|
277
286
|
var [data, deleteTable] = yield Promise.all([
|
|
278
287
|
// Need to get the key values of each row
|
|
279
|
-
|
|
288
|
+
_this6.snapshot(tableRanges.map(range => {
|
|
280
289
|
assertNotNull(range);
|
|
281
290
|
// Need to map each key column to it's range so we can pass that into the snapshot function
|
|
282
291
|
return keyColumns.map(keyColumn => {
|
|
283
|
-
var keyIndex =
|
|
292
|
+
var keyIndex = _this6.getColumnIndexByName(keyColumn.name);
|
|
284
293
|
if (keyIndex == null) {
|
|
285
294
|
throw new Error("Key column ".concat(keyColumn.name, " not found"));
|
|
286
295
|
}
|
|
287
296
|
return new GridRange(keyIndex, range.startRow, keyIndex, range.endRow);
|
|
288
297
|
});
|
|
289
|
-
}).flat()),
|
|
298
|
+
}).flat()), _this6.table.copy()]);
|
|
290
299
|
|
|
291
300
|
// Now copy the existing table and filter it on the values in the snapshot for the key columns in the input table
|
|
292
301
|
var filters = data.map(row => {
|
|
@@ -294,7 +303,7 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
294
303
|
for (var c = 0; c < keyColumns.length; c += 1) {
|
|
295
304
|
var column = keyColumns[c];
|
|
296
305
|
var value = row[c];
|
|
297
|
-
var filterValue =
|
|
306
|
+
var filterValue = _this6.tableUtils.makeFilterRawValue(column.type, value);
|
|
298
307
|
var _filter = column.filter().eq(filterValue);
|
|
299
308
|
columnFilters.push(_filter);
|
|
300
309
|
}
|
|
@@ -308,14 +317,14 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
308
317
|
return (_agg$or = agg === null || agg === void 0 ? void 0 : agg.or(curr)) !== null && _agg$or !== void 0 ? _agg$or : curr;
|
|
309
318
|
});
|
|
310
319
|
deleteTable.applyFilter([filter]);
|
|
311
|
-
yield (
|
|
320
|
+
yield (_this6$inputTable = _this6.inputTable) === null || _this6$inputTable === void 0 ? void 0 : _this6$inputTable.deleteTable(deleteTable);
|
|
312
321
|
deleteTable.close();
|
|
313
322
|
})();
|
|
314
323
|
}
|
|
315
324
|
seekRow(startRow, column, valueType, value, insensitive, contains, isBackwards) {
|
|
316
|
-
var
|
|
325
|
+
var _this7 = this;
|
|
317
326
|
return _asyncToGenerator(function* () {
|
|
318
|
-
return
|
|
327
|
+
return _this7.table.seekRow(startRow, column, valueType, value, insensitive, contains, isBackwards);
|
|
319
328
|
})();
|
|
320
329
|
}
|
|
321
330
|
get isSeekRowAvailable() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTableModel.js","names":["memoize","GridRange","Log","Formatter","EventShimCustomEvent","PromiseUtils","assertNotNull","EMPTY_ARRAY","IrisGridModel","IrisGridTableModelTemplate","log","module","IrisGridTableModel","constructor","dh","table","formatter","arguments","length","undefined","inputTable","_defineProperty","inputTableKeys","Set","layoutHintsFrontColumns","layoutHintsBackColumns","layoutHintsFrozenColumns","userFrozenColumns","_ref","columns","map","_","index","filter","column","isPartitionColumn","customColumnList","formatColumnList","initialFilters","isExportAvailable","freeze","isColumnStatisticsAvailable","getColumnStatistics","isValuesTableAvailable","selectDistinct","copy","isRollupAvailable","rollup","isSelectDistinctAvailable","isCustomColumnsAvailable","applyCustomColumns","isFormatColumnsAvailable","keyColumnSet","_this$inputTable","getMemoizedKeyColumnSet","keys","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","size","pendingAreaRange","getPendingAreaRange","pendingRanges","range","intersection","offset","floatingTopRowCount","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 EMPTY_ARRAY,\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 getMemoizedKeyColumnSet = memoize(\n (inputTableKeys?: readonly ColumnName[]) =>\n new Set(inputTableKeys ?? EMPTY_ARRAY)\n );\n\n get keyColumnSet(): Set<ColumnName> {\n return this.getMemoizedKeyColumnSet(this.inputTable?.keys);\n }\n\n getMemoizedFrontColumns = memoize(\n (layoutHintsFrontColumns: ColumnName[] | undefined) =>\n layoutHintsFrontColumns ?? EMPTY_ARRAY\n );\n\n get frontColumns(): readonly ColumnName[] {\n return this.getMemoizedFrontColumns(\n this.layoutHints?.frontColumns ?? undefined\n );\n }\n\n getMemoizedBackColumns = memoize(\n (layoutHintsBackColumns: ColumnName[] | undefined) =>\n layoutHintsBackColumns ?? EMPTY_ARRAY\n );\n\n get backColumns(): readonly ColumnName[] {\n return this.getMemoizedBackColumns(\n this.layoutHints?.backColumns ?? undefined\n );\n }\n\n getMemoizedFrozenColumns = memoize(\n (\n layoutHintsFrozenColumns?: ColumnName[],\n userFrozenColumns?: ColumnName[]\n ): readonly ColumnName[] =>\n userFrozenColumns ?? layoutHintsFrozenColumns ?? EMPTY_ARRAY\n );\n\n get frozenColumns(): readonly 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 (this.keyColumnSet.size === 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","EMPTY_ARRAY","IrisGridModel","IrisGridTableModelTemplate","log","module","IrisGridTableModel","constructor","dh","table","formatter","arguments","length","undefined","inputTable","_defineProperty","inputTableKeys","Set","layoutHintsFrontColumns","layoutHintsBackColumns","layoutHintsFrozenColumns","userFrozenColumns","_ref","columns","map","_","index","filter","column","isPartitionColumn","customColumnList","formatColumnList","initialFilters","isExportAvailable","freeze","isColumnStatisticsAvailable","getColumnStatistics","isValuesTableAvailable","selectDistinct","copy","isRollupAvailable","rollup","isSelectDistinctAvailable","isCustomColumnsAvailable","applyCustomColumns","isFormatColumnsAvailable","keyColumnSet","_this$inputTable","getMemoizedKeyColumnSet","keys","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","partitionBaseTable","_this3","partitionTable","partitions","_this4","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","isPartitionAwareSourceTable","isFilterable","columnIndex","getCachedFilterableColumnSet","has","export","_this5","columnStatistics","isColumnMovable","modelIndex","columnName","name","includes","isKeyColumn","isColumnFrozen","delete","ranges","_superprop_getPendingDataMap","pendingDataMap","_superprop_setPendingDataMap","_value","_this6","_this6$inputTable","isDeletableRanges","Error","concat","keyColumns","size","pendingAreaRange","getPendingAreaRange","pendingRanges","range","intersection","offset","floatingTopRowCount","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","_this7","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 EMPTY_ARRAY,\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 getMemoizedKeyColumnSet = memoize(\n (inputTableKeys?: readonly ColumnName[]) =>\n new Set(inputTableKeys ?? EMPTY_ARRAY)\n );\n\n get keyColumnSet(): Set<ColumnName> {\n return this.getMemoizedKeyColumnSet(this.inputTable?.keys);\n }\n\n getMemoizedFrontColumns = memoize(\n (layoutHintsFrontColumns: ColumnName[] | undefined) =>\n layoutHintsFrontColumns ?? EMPTY_ARRAY\n );\n\n get frontColumns(): readonly ColumnName[] {\n return this.getMemoizedFrontColumns(\n this.layoutHints?.frontColumns ?? undefined\n );\n }\n\n getMemoizedBackColumns = memoize(\n (layoutHintsBackColumns: ColumnName[] | undefined) =>\n layoutHintsBackColumns ?? EMPTY_ARRAY\n );\n\n get backColumns(): readonly ColumnName[] {\n return this.getMemoizedBackColumns(\n this.layoutHints?.backColumns ?? undefined\n );\n }\n\n getMemoizedFrozenColumns = memoize(\n (\n layoutHintsFrozenColumns?: ColumnName[],\n userFrozenColumns?: ColumnName[]\n ): readonly ColumnName[] =>\n userFrozenColumns ?? layoutHintsFrozenColumns ?? EMPTY_ARRAY\n );\n\n get frozenColumns(): readonly 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 partitionBaseTable(): Promise<DhType.Table> {\n return this.partitionKeysTable();\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 get isPartitionAwareSourceTable(): boolean {\n return this.isPartitionRequired;\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 (this.keyColumnSet.size === 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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"}
|
|
@@ -19,8 +19,12 @@ export interface PartitionedGridModelProvider extends IrisGridModel {
|
|
|
19
19
|
get partitionColumns(): readonly dh.Column[];
|
|
20
20
|
/** Whether a partition is required to be set on this model */
|
|
21
21
|
get isPartitionRequired(): boolean;
|
|
22
|
-
/**
|
|
22
|
+
/** Whether the table is a partition-aware source table or a partition table */
|
|
23
|
+
get isPartitionAwareSourceTable(): boolean;
|
|
24
|
+
/** Get a keys table for the partitions. Only includes the key columns. */
|
|
23
25
|
partitionKeysTable: () => Promise<dh.Table>;
|
|
26
|
+
/** Get the base table for the partitions. Includes key columns and possibly other columns, such as constituent columns */
|
|
27
|
+
partitionBaseTable: () => Promise<dh.Table>;
|
|
24
28
|
/** Get a merged table containing all partitions */
|
|
25
29
|
partitionMergedTable: () => Promise<dh.Table>;
|
|
26
30
|
/** Get a table containing the selected partition */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PartitionedGridModel.d.ts","sourceRoot":"","sources":["../src/PartitionedGridModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,4BAA4B,CAQvC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,oBAAoB,CAK/B;AAED,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,UAAU,EAAE,OAAO,EAAE,CAAC;IAEtB,yFAAyF;IACzF,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,aAAa;IACjE;;;OAGG;IACH,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC;IAE7C,8DAA8D;IAC9D,IAAI,mBAAmB,IAAI,OAAO,CAAC;IAEnC,
|
|
1
|
+
{"version":3,"file":"PartitionedGridModel.d.ts","sourceRoot":"","sources":["../src/PartitionedGridModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,4BAA4B,CAQvC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,oBAAoB,CAK/B;AAED,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,UAAU,EAAE,OAAO,EAAE,CAAC;IAEtB,yFAAyF;IACzF,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,aAAa;IACjE;;;OAGG;IACH,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC;IAE7C,8DAA8D;IAC9D,IAAI,mBAAmB,IAAI,OAAO,CAAC;IAEnC,+EAA+E;IAC/E,IAAI,2BAA2B,IAAI,OAAO,CAAC;IAE3C,0EAA0E;IAC1E,kBAAkB,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAE5C,0HAA0H;IAC1H,kBAAkB,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAE5C,mDAAmD;IACnD,oBAAoB,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAE9C,oDAAoD;IACpD,cAAc,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,4BAA4B;IACxE,kDAAkD;IAClD,IAAI,eAAe,IAAI,eAAe,GAAG,IAAI,CAAC;IAE9C,+BAA+B;IAC/B,IAAI,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,EAAE;CAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PartitionedGridModel.js","names":["isPartitionedGridModelProvider","model","isPartitionRequired","undefined","partitionColumns","partitionKeysTable","partitionMergedTable","partitionTable","isPartitionedGridModel","partitionConfig"],"sources":["../src/PartitionedGridModel.ts"],"sourcesContent":["import type { dh } from '@deephaven/jsapi-types';\nimport IrisGridModel from './IrisGridModel';\n\nexport function isPartitionedGridModelProvider(\n model: IrisGridModel\n): model is PartitionedGridModelProvider {\n return (\n (model as PartitionedGridModel)?.isPartitionRequired !== undefined &&\n (model as PartitionedGridModel)?.partitionColumns !== undefined &&\n (model as PartitionedGridModel)?.partitionKeysTable !== undefined &&\n (model as PartitionedGridModel)?.partitionMergedTable !== undefined &&\n (model as PartitionedGridModel)?.partitionTable !== undefined\n );\n}\n\nexport function isPartitionedGridModel(\n model: IrisGridModel\n): model is PartitionedGridModel {\n return (\n isPartitionedGridModelProvider(model) &&\n (model as PartitionedGridModel).partitionConfig !== undefined\n );\n}\n\nexport interface PartitionConfig {\n /** The partition values to set on the model */\n partitions: unknown[];\n\n /** What data to display - the keys table, the merged table, or the selected partition */\n mode: 'keys' | 'merged' | 'partition';\n}\n\n/**\n * A grid model that provides key tables and partitions, cannot accept a `PartitionConfig` being set\n */\nexport interface PartitionedGridModelProvider extends IrisGridModel {\n /**\n * Retrieve the columns this model is partitioned on\n * @returns All columns to partition on\n */\n get partitionColumns(): readonly dh.Column[];\n\n /** Whether a partition is required to be set on this model */\n get isPartitionRequired(): boolean;\n\n /** Get a keys table for the partitions */\n partitionKeysTable: () => Promise<dh.Table>;\n\n /** Get a merged table containing all partitions */\n partitionMergedTable: () => Promise<dh.Table>;\n\n /** Get a table containing the selected partition */\n partitionTable: (partitions: unknown[]) => Promise<dh.Table>;\n}\n\n/**\n * A grid model that can be partitioned on a column\n */\nexport interface PartitionedGridModel extends PartitionedGridModelProvider {\n /** Retrieve the currently set partition config */\n get partitionConfig(): PartitionConfig | null;\n\n /** Set the partition config */\n set partitionConfig(partitionConfig: PartitionConfig | null);\n}\n"],"mappings":"AAGA,OAAO,SAASA,8BAA8BA,CAC5CC,KAAoB,EACmB;EACvC,OACE,CAACA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BC,mBAAmB,MAAKC,SAAS,IAClE,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BG,gBAAgB,MAAKD,SAAS,IAC/D,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BI,kBAAkB,MAAKF,SAAS,IACjE,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BK,oBAAoB,MAAKH,SAAS,IACnE,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BM,cAAc,MAAKJ,SAAS;AAEjE;AAEA,OAAO,SAASK,sBAAsBA,CACpCP,KAAoB,EACW;EAC/B,OACED,8BAA8B,CAACC,KAAK,CAAC,IACpCA,KAAK,CAA0BQ,eAAe,KAAKN,SAAS;AAEjE;;AAUA;AACA;AACA;;
|
|
1
|
+
{"version":3,"file":"PartitionedGridModel.js","names":["isPartitionedGridModelProvider","model","isPartitionRequired","undefined","partitionColumns","partitionKeysTable","partitionMergedTable","partitionTable","isPartitionedGridModel","partitionConfig"],"sources":["../src/PartitionedGridModel.ts"],"sourcesContent":["import type { dh } from '@deephaven/jsapi-types';\nimport IrisGridModel from './IrisGridModel';\n\nexport function isPartitionedGridModelProvider(\n model: IrisGridModel\n): model is PartitionedGridModelProvider {\n return (\n (model as PartitionedGridModel)?.isPartitionRequired !== undefined &&\n (model as PartitionedGridModel)?.partitionColumns !== undefined &&\n (model as PartitionedGridModel)?.partitionKeysTable !== undefined &&\n (model as PartitionedGridModel)?.partitionMergedTable !== undefined &&\n (model as PartitionedGridModel)?.partitionTable !== undefined\n );\n}\n\nexport function isPartitionedGridModel(\n model: IrisGridModel\n): model is PartitionedGridModel {\n return (\n isPartitionedGridModelProvider(model) &&\n (model as PartitionedGridModel).partitionConfig !== undefined\n );\n}\n\nexport interface PartitionConfig {\n /** The partition values to set on the model */\n partitions: unknown[];\n\n /** What data to display - the keys table, the merged table, or the selected partition */\n mode: 'keys' | 'merged' | 'partition';\n}\n\n/**\n * A grid model that provides key tables and partitions, cannot accept a `PartitionConfig` being set\n */\nexport interface PartitionedGridModelProvider extends IrisGridModel {\n /**\n * Retrieve the columns this model is partitioned on\n * @returns All columns to partition on\n */\n get partitionColumns(): readonly dh.Column[];\n\n /** Whether a partition is required to be set on this model */\n get isPartitionRequired(): boolean;\n\n /** Whether the table is a partition-aware source table or a partition table */\n get isPartitionAwareSourceTable(): boolean;\n\n /** Get a keys table for the partitions. Only includes the key columns. */\n partitionKeysTable: () => Promise<dh.Table>;\n\n /** Get the base table for the partitions. Includes key columns and possibly other columns, such as constituent columns */\n partitionBaseTable: () => Promise<dh.Table>;\n\n /** Get a merged table containing all partitions */\n partitionMergedTable: () => Promise<dh.Table>;\n\n /** Get a table containing the selected partition */\n partitionTable: (partitions: unknown[]) => Promise<dh.Table>;\n}\n\n/**\n * A grid model that can be partitioned on a column\n */\nexport interface PartitionedGridModel extends PartitionedGridModelProvider {\n /** Retrieve the currently set partition config */\n get partitionConfig(): PartitionConfig | null;\n\n /** Set the partition config */\n set partitionConfig(partitionConfig: PartitionConfig | null);\n}\n"],"mappings":"AAGA,OAAO,SAASA,8BAA8BA,CAC5CC,KAAoB,EACmB;EACvC,OACE,CAACA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BC,mBAAmB,MAAKC,SAAS,IAClE,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BG,gBAAgB,MAAKD,SAAS,IAC/D,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BI,kBAAkB,MAAKF,SAAS,IACjE,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BK,oBAAoB,MAAKH,SAAS,IACnE,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAA2BM,cAAc,MAAKJ,SAAS;AAEjE;AAEA,OAAO,SAASK,sBAAsBA,CACpCP,KAAoB,EACW;EAC/B,OACED,8BAA8B,CAACC,KAAK,CAAC,IACpCA,KAAK,CAA0BQ,eAAe,KAAKN,SAAS;AAEjE;;AAUA;AACA;AACA;;AA2BA;AACA;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridContextMenuHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridContextMenuHandler.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EACL,aAAa,EAIb,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,IAAI,EACJ,gBAAgB,EAChB,SAAS,EAMT,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAEL,uBAAuB,EAEvB,iBAAiB,EAEjB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAa5C,OAAO,mCAAmC,CAAC;AAE3C,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridContextMenuHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridContextMenuHandler.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ import { TextUtils, assertNotEmpty, assertNotNaN, assertNotNull, copyToClipboard
|
|
|
18
18
|
import { DateTimeFormatContextMenu, DecimalFormatContextMenu, IntegerFormatContextMenu } from "../format-context-menus/index.js";
|
|
19
19
|
import "./IrisGridContextMenuHandler.css";
|
|
20
20
|
import SHORTCUTS from "../IrisGridShortcuts.js";
|
|
21
|
+
import { isPartitionedGridModel } from "../PartitionedGridModel.js";
|
|
21
22
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
24
|
var log = Log.module('IrisGridContextMenuHandler');
|
|
@@ -372,6 +373,16 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
372
373
|
});
|
|
373
374
|
}
|
|
374
375
|
});
|
|
376
|
+
if (isPartitionedGridModel(model) && !model.isPartitionAwareSourceTable) {
|
|
377
|
+
actions.push({
|
|
378
|
+
title: 'View Constituent Table',
|
|
379
|
+
group: IrisGridContextMenuHandler.GROUP_VIEW_CONTENTS,
|
|
380
|
+
order: 40,
|
|
381
|
+
action: () => {
|
|
382
|
+
irisGrid.selectPartitionKeyFromTable(rowIndex);
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
}
|
|
375
386
|
return actions;
|
|
376
387
|
}
|
|
377
388
|
|