@deephaven/iris-grid 0.85.24 → 0.85.26
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 +3 -3
|
@@ -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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"}
|
|
@@ -240,7 +240,7 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
240
240
|
var modelPromise = Promise.resolve(this.originalModel);
|
|
241
241
|
if (partitionConfig != null && isPartitionedGridModelProvider(this.originalModel)) {
|
|
242
242
|
if (partitionConfig.mode === 'keys') {
|
|
243
|
-
modelPromise = this.originalModel.
|
|
243
|
+
modelPromise = this.originalModel.partitionBaseTable().then(table => makeModel(this.dh, table, this.formatter));
|
|
244
244
|
} else if (partitionConfig.mode === 'merged') {
|
|
245
245
|
modelPromise = this.originalModel.partitionMergedTable().then(table => makeModel(this.dh, table, this.formatter));
|
|
246
246
|
} 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 const proxyHasProp = Object.prototype.hasOwnProperty.call(target, prop);\n\n if (proxyHasSetter || proxyHasProp) {\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 get formatter(): Formatter {\n return this.originalModel.formatter;\n }\n\n set formatter(formatter: Formatter) {\n this.originalModel.formatter = formatter;\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 const proxyHasProp = Object.prototype.hasOwnProperty.call(target, prop);\n\n if (proxyHasSetter || proxyHasProp) {\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 get formatter(): Formatter {\n return this.originalModel.formatter;\n }\n\n set formatter(formatter: Formatter) {\n this.originalModel.formatter = formatter;\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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"}
|
|
@@ -44,11 +44,13 @@ declare class IrisGridTableModel extends IrisGridTableModelTemplate<DhType.Table
|
|
|
44
44
|
get partitionColumns(): readonly DhType.Column[];
|
|
45
45
|
partitionKeysTable(): Promise<DhType.Table>;
|
|
46
46
|
partitionMergedTable(): Promise<DhType.Table>;
|
|
47
|
+
partitionBaseTable(): Promise<DhType.Table>;
|
|
47
48
|
partitionTable(partitions: unknown[]): Promise<DhType.Table>;
|
|
48
49
|
set filter(filter: DhType.FilterCondition[]);
|
|
49
50
|
set totalsConfig(totalsConfig: UITotalsTableConfig | null);
|
|
50
51
|
get isFilterRequired(): boolean;
|
|
51
52
|
get isPartitionRequired(): boolean;
|
|
53
|
+
get isPartitionAwareSourceTable(): boolean;
|
|
52
54
|
isFilterable(columnIndex: ModelIndex): boolean;
|
|
53
55
|
export(): Promise<DhType.Table>;
|
|
54
56
|
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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"}
|
|
@@ -150,19 +150,25 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
150
150
|
return t;
|
|
151
151
|
})();
|
|
152
152
|
}
|
|
153
|
-
|
|
153
|
+
partitionBaseTable() {
|
|
154
154
|
var _this3 = this;
|
|
155
|
+
return _asyncToGenerator(function* () {
|
|
156
|
+
return _this3.partitionKeysTable();
|
|
157
|
+
})();
|
|
158
|
+
}
|
|
159
|
+
partitionTable(partitions) {
|
|
160
|
+
var _this4 = this;
|
|
155
161
|
return _asyncToGenerator(function* () {
|
|
156
162
|
log.debug('getting partition table for partitions', partitions);
|
|
157
163
|
var partitionFilters = [];
|
|
158
|
-
for (var i = 0; i <
|
|
164
|
+
for (var i = 0; i < _this4.partitionColumns.length; i += 1) {
|
|
159
165
|
var partition = partitions[i];
|
|
160
|
-
var partitionColumn =
|
|
161
|
-
var partitionFilter =
|
|
166
|
+
var partitionColumn = _this4.partitionColumns[i];
|
|
167
|
+
var partitionFilter = _this4.tableUtils.makeNullableEqFilter(partitionColumn, partition);
|
|
162
168
|
partitionFilters.push(partitionFilter);
|
|
163
169
|
}
|
|
164
|
-
var t = yield
|
|
165
|
-
t.applyFilter([...
|
|
170
|
+
var t = yield _this4.table.copy();
|
|
171
|
+
t.applyFilter([..._this4.initialFilters, ...partitionFilters]);
|
|
166
172
|
return t;
|
|
167
173
|
})();
|
|
168
174
|
}
|
|
@@ -208,13 +214,16 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
208
214
|
get isPartitionRequired() {
|
|
209
215
|
return this.table.isUncoalesced && this.isValuesTableAvailable && this.partitionColumns.length > 0;
|
|
210
216
|
}
|
|
217
|
+
get isPartitionAwareSourceTable() {
|
|
218
|
+
return this.isPartitionRequired;
|
|
219
|
+
}
|
|
211
220
|
isFilterable(columnIndex) {
|
|
212
221
|
return this.getCachedFilterableColumnSet(this.columns).has(columnIndex);
|
|
213
222
|
}
|
|
214
223
|
export() {
|
|
215
|
-
var
|
|
224
|
+
var _this5 = this;
|
|
216
225
|
return _asyncToGenerator(function* () {
|
|
217
|
-
return
|
|
226
|
+
return _this5.table.freeze();
|
|
218
227
|
})();
|
|
219
228
|
}
|
|
220
229
|
columnStatistics(column) {
|
|
@@ -233,23 +242,23 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
233
242
|
delete(ranges) {
|
|
234
243
|
var _superprop_getPendingDataMap = () => super.pendingDataMap,
|
|
235
244
|
_superprop_setPendingDataMap = _value => super.pendingDataMap = _value,
|
|
236
|
-
|
|
245
|
+
_this6 = this;
|
|
237
246
|
return _asyncToGenerator(function* () {
|
|
238
|
-
var
|
|
239
|
-
if (!
|
|
247
|
+
var _this6$inputTable;
|
|
248
|
+
if (!_this6.isDeletableRanges(ranges)) {
|
|
240
249
|
throw new Error("Undeletable ranges ".concat(ranges));
|
|
241
250
|
}
|
|
242
|
-
assertNotNull(
|
|
251
|
+
assertNotNull(_this6.inputTable);
|
|
243
252
|
var {
|
|
244
253
|
keyColumns
|
|
245
|
-
} =
|
|
246
|
-
if (
|
|
254
|
+
} = _this6.inputTable;
|
|
255
|
+
if (_this6.keyColumnSet.size === 0) {
|
|
247
256
|
throw new Error('No key columns to allow deletion');
|
|
248
257
|
}
|
|
249
|
-
var pendingAreaRange =
|
|
258
|
+
var pendingAreaRange = _this6.getPendingAreaRange();
|
|
250
259
|
var pendingRanges = ranges.map(range => GridRange.intersection(pendingAreaRange, range)).filter(range => range != null).map(range => {
|
|
251
260
|
assertNotNull(range);
|
|
252
|
-
return GridRange.offset(range, 0, -(
|
|
261
|
+
return GridRange.offset(range, 0, -(_this6.floatingTopRowCount + _this6.table.size));
|
|
253
262
|
});
|
|
254
263
|
if (pendingRanges.length > 0) {
|
|
255
264
|
var newDataMap = new Map(_superprop_getPendingDataMap());
|
|
@@ -262,28 +271,28 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
262
271
|
}
|
|
263
272
|
}
|
|
264
273
|
_superprop_setPendingDataMap(newDataMap);
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
274
|
+
_this6.formattedStringData = [];
|
|
275
|
+
_this6.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.PENDING_DATA_UPDATED));
|
|
276
|
+
_this6.dispatchEvent(new EventShimCustomEvent(IrisGridModel.EVENT.UPDATED));
|
|
268
277
|
}
|
|
269
|
-
var tableAreaRange =
|
|
278
|
+
var tableAreaRange = _this6.getTableAreaRange();
|
|
270
279
|
var tableRanges = ranges.map(range => GridRange.intersection(tableAreaRange, range)).filter(range => range != null);
|
|
271
280
|
if (tableRanges.length <= 0) {
|
|
272
281
|
return;
|
|
273
282
|
}
|
|
274
283
|
var [data, deleteTable] = yield Promise.all([
|
|
275
284
|
// Need to get the key values of each row
|
|
276
|
-
|
|
285
|
+
_this6.snapshot(tableRanges.map(range => {
|
|
277
286
|
assertNotNull(range);
|
|
278
287
|
// Need to map each key column to it's range so we can pass that into the snapshot function
|
|
279
288
|
return keyColumns.map(keyColumn => {
|
|
280
|
-
var keyIndex =
|
|
289
|
+
var keyIndex = _this6.getColumnIndexByName(keyColumn.name);
|
|
281
290
|
if (keyIndex == null) {
|
|
282
291
|
throw new Error("Key column ".concat(keyColumn.name, " not found"));
|
|
283
292
|
}
|
|
284
293
|
return new GridRange(keyIndex, range.startRow, keyIndex, range.endRow);
|
|
285
294
|
});
|
|
286
|
-
}).flat()),
|
|
295
|
+
}).flat()), _this6.table.copy()]);
|
|
287
296
|
|
|
288
297
|
// Now copy the existing table and filter it on the values in the snapshot for the key columns in the input table
|
|
289
298
|
var filters = data.map(row => {
|
|
@@ -291,7 +300,7 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
291
300
|
for (var c = 0; c < keyColumns.length; c += 1) {
|
|
292
301
|
var column = keyColumns[c];
|
|
293
302
|
var value = row[c];
|
|
294
|
-
var _filter =
|
|
303
|
+
var _filter = _this6.tableUtils.makeNullableEqFilter(column, value);
|
|
295
304
|
columnFilters.push(_filter);
|
|
296
305
|
}
|
|
297
306
|
return columnFilters.reduce((agg, curr) => {
|
|
@@ -304,14 +313,14 @@ class IrisGridTableModel extends IrisGridTableModelTemplate {
|
|
|
304
313
|
return (_agg$or = agg === null || agg === void 0 ? void 0 : agg.or(curr)) !== null && _agg$or !== void 0 ? _agg$or : curr;
|
|
305
314
|
});
|
|
306
315
|
deleteTable.applyFilter([filter]);
|
|
307
|
-
yield (
|
|
316
|
+
yield (_this6$inputTable = _this6.inputTable) === null || _this6$inputTable === void 0 ? void 0 : _this6$inputTable.deleteTable(deleteTable);
|
|
308
317
|
deleteTable.close();
|
|
309
318
|
})();
|
|
310
319
|
}
|
|
311
320
|
seekRow(startRow, column, valueType, value, insensitive, contains, isBackwards) {
|
|
312
|
-
var
|
|
321
|
+
var _this7 = this;
|
|
313
322
|
return _asyncToGenerator(function* () {
|
|
314
|
-
return
|
|
323
|
+
return _this7.table.seekRow(startRow, column, valueType, value, insensitive, contains, isBackwards);
|
|
315
324
|
})();
|
|
316
325
|
}
|
|
317
326
|
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","isRollupAvailable","rollup","isSelectDistinctAvailable","selectDistinct","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","copy","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","isValuesTableAvailable","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","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 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 filter = this.tableUtils.makeNullableEqFilter(column, value);\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","isRollupAvailable","rollup","isSelectDistinctAvailable","selectDistinct","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","copy","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","isValuesTableAvailable","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","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 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 filter = this.tableUtils.makeNullableEqFilter(column, value);\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,EAOT,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
|
|