@deephaven/iris-grid 0.27.1-beta.7 → 0.28.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/IrisGridProxyModel.d.ts +3 -0
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +19 -0
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridTreeTableModel.d.ts +4 -1
- package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
- package/dist/IrisGridTreeTableModel.js +19 -1
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +2 -0
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +52 -2
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/package.json +15 -15
|
@@ -50,9 +50,12 @@ declare class IrisGridProxyModel extends IrisGridModel {
|
|
|
50
50
|
isColumnMovable: IrisGridModel['isColumnMovable'];
|
|
51
51
|
isColumnFrozen(x: ModelIndex): boolean;
|
|
52
52
|
get hasExpandableRows(): boolean;
|
|
53
|
+
get isExpandAllAvailable(): boolean;
|
|
53
54
|
isRowExpandable: IrisGridTreeTableModel['isRowExpandable'];
|
|
54
55
|
isRowExpanded: IrisGridTreeTableModel['isRowExpanded'];
|
|
55
56
|
setRowExpanded: IrisGridTreeTableModel['setRowExpanded'];
|
|
57
|
+
expandAll: IrisGridTreeTableModel['expandAll'];
|
|
58
|
+
collapseAll: IrisGridTreeTableModel['collapseAll'];
|
|
56
59
|
depthForRow: IrisGridTreeTableModel['depthForRow'];
|
|
57
60
|
get isExportAvailable(): boolean;
|
|
58
61
|
get isColumnStatisticsAvailable(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridProxyModel.d.ts","sourceRoot":"","sources":["../src/IrisGridProxyModel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridProxyModel.d.ts","sourceRoot":"","sources":["../src/IrisGridProxyModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -94,6 +94,18 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
94
94
|
}
|
|
95
95
|
throw Error('Function setRowExpanded does not exist on IrisGridTableModel');
|
|
96
96
|
});
|
|
97
|
+
_defineProperty(this, "expandAll", () => {
|
|
98
|
+
if (isExpandableGridModel(this.model)) {
|
|
99
|
+
return this.model.expandAll();
|
|
100
|
+
}
|
|
101
|
+
throw Error('Function expandAll does not exist on IrisGridTableModel');
|
|
102
|
+
});
|
|
103
|
+
_defineProperty(this, "collapseAll", () => {
|
|
104
|
+
if (isExpandableGridModel(this.model)) {
|
|
105
|
+
return this.model.collapseAll();
|
|
106
|
+
}
|
|
107
|
+
throw Error('Function collapseAll does not exist on IrisGridTableModel');
|
|
108
|
+
});
|
|
97
109
|
_defineProperty(this, "depthForRow", function () {
|
|
98
110
|
if (isExpandableGridModel(_this.model)) {
|
|
99
111
|
return _this.model.depthForRow(...arguments);
|
|
@@ -292,6 +304,13 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
292
304
|
}
|
|
293
305
|
return false;
|
|
294
306
|
}
|
|
307
|
+
get isExpandAllAvailable() {
|
|
308
|
+
if (isExpandableGridModel(this.model)) {
|
|
309
|
+
var _this$model$isExpandA;
|
|
310
|
+
return (_this$model$isExpandA = this.model.isExpandAllAvailable) !== null && _this$model$isExpandA !== void 0 ? _this$model$isExpandA : false;
|
|
311
|
+
}
|
|
312
|
+
return false;
|
|
313
|
+
}
|
|
295
314
|
get isExportAvailable() {
|
|
296
315
|
return this.model.isExportAvailable;
|
|
297
316
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridProxyModel.js","names":["deepEqual","Formatter","TableUtils","Log","EventShimCustomEvent","PromiseUtils","isEditableGridModel","isExpandableGridModel","IrisGridTableModel","IrisGridTreeTableModel","IrisGridModel","isIrisGridTableModelTemplate","log","module","makeModel","table","formatter","inputTable","isTreeTable","IrisGridProxyModel","constructor","model","textForCell","truncationCharForCell","textAlignForCell","colorForCell","backgroundColorForCell","textForColumnHeader","colorForColumnHeader","textForRowHeader","textForRowFooter","isRowMovable","isColumnMovable","isRowExpandable","isRowExpanded","setRowExpanded","Error","depthForRow","getColumnHeaderGroup","getColumnHeaderParentGroup","formatForCell","valueForCell","displayString","isEditableRange","isFilterable","top","bottom","columns","setViewport","snapshot","textSnapshot","valuesTable","editValueForCell","setValueForCell","Promise","reject","setValueForRanges","setValues","resolve","isValidForCell","delete","commitPending","handleModelEvent","bind","originalModel","modelPromise","rollup","selectDistinct","close","cancel","event","debug2","detail","type","dispatchEvent","setModel","debug","oldModel","listenerCount","addListeners","EVENT","COLUMNS_CHANGED","TABLE_CHANGED","setNextModel","removeListeners","makeCancelable","then","catch","err","isCanceled","error","REQUEST_FAILED","startListening","stopListening","events","Object","keys","i","length","addEventListener","removeEventListener","rowCount","columnCount","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","isColumnFrozen","x","hasExpandableRows","isExportAvailable","isColumnStatisticsAvailable","isValuesTableAvailable","isCustomColumnsAvailable","isSelectDistinctAvailable","selectDistinctColumns","isFormatColumnsAvailable","isChartBuilderAvailable","isRollupAvailable","isTotalsAvailable","isReversible","initialMovedColumns","initialMovedRows","layoutHints","frontColumns","backColumns","frozenColumns","columnHeaderGroups","groups","initialColumnHeaderGroups","columnHeaderGroupMap","columnHeaderMaxDepth","updateFrozenColumns","originalColumns","groupedColumns","description","filter","sort","customColumns","formatColumns","rollupConfig","columnNames","map","name","find","column","undefined","totalsConfig","isFilterRequired","isEditable","export","columnStatistics","pendingDataMap","pendingRowCount","count","pendingDataErrors","getColumnIndexByName","seekRow","startRow","valueType","value","insensitive","contains","isBackwards","isSeekRowAvailable"],"sources":["../src/IrisGridProxyModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport deepEqual from '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 {\n Column,\n ColumnStatistics,\n CustomColumn,\n FilterCondition,\n InputTable,\n LayoutHints,\n RollupConfig,\n Sort,\n Table,\n TreeTable,\n ValueTypeUnion,\n} from '@deephaven/jsapi-shim';\nimport {\n EditableGridModel,\n isEditableGridModel,\n isExpandableGridModel,\n ModelIndex,\n MoveOperation,\n} from '@deephaven/grid';\nimport IrisGridTableModel from './IrisGridTableModel';\nimport IrisGridTreeTableModel from './IrisGridTreeTableModel';\nimport IrisGridModel from './IrisGridModel';\nimport {\n ColumnName,\n UITotalsTableConfig,\n PendingDataMap,\n UIRow,\n} from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\n\nconst log = Log.module('IrisGridProxyModel');\n\nfunction makeModel(\n table: Table | TreeTable,\n formatter?: Formatter,\n inputTable?: InputTable | null\n): IrisGridModel {\n if (TableUtils.isTreeTable(table)) {\n return new IrisGridTreeTableModel(table, formatter);\n }\n return new IrisGridTableModel(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 */\nclass IrisGridProxyModel extends IrisGridModel {\n /**\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 originalModel: IrisGridModel;\n\n model: IrisGridModel;\n\n modelPromise: CancelablePromise<IrisGridModel> | null;\n\n rollup: RollupConfig | null;\n\n selectDistinct: ColumnName[];\n\n constructor(\n table: Table | TreeTable,\n formatter = new Formatter(),\n inputTable: InputTable | null = null\n ) {\n super();\n\n this.handleModelEvent = this.handleModelEvent.bind(this);\n\n const model = makeModel(table, formatter, inputTable);\n this.originalModel = model;\n this.model = model;\n this.modelPromise = null;\n this.rollup = null;\n this.selectDistinct = [];\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\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 this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: model.columns,\n })\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 rowCount(): number {\n return this.model.rowCount;\n }\n\n get columnCount(): number {\n return this.model.columnCount;\n }\n\n get floatingTopRowCount(): number {\n return this.model.floatingTopRowCount;\n }\n\n get floatingBottomRowCount(): number {\n return this.model.floatingBottomRowCount;\n }\n\n get floatingLeftColumnCount(): number {\n return this.model.floatingLeftColumnCount;\n }\n\n get floatingRightColumnCount(): number {\n return this.model.floatingRightColumnCount;\n }\n\n textForCell: IrisGridModel['textForCell'] = (...args) =>\n this.model.textForCell(...args);\n\n truncationCharForCell: IrisGridModel['truncationCharForCell'] = (...args) =>\n this.model.truncationCharForCell(...args);\n\n textAlignForCell: IrisGridModel['textAlignForCell'] = (...args) =>\n this.model.textAlignForCell(...args);\n\n colorForCell: IrisGridModel['colorForCell'] = (...args) =>\n this.model.colorForCell(...args);\n\n backgroundColorForCell: IrisGridModel['backgroundColorForCell'] = (...args) =>\n this.model.backgroundColorForCell(...args);\n\n textForColumnHeader: IrisGridModel['textForColumnHeader'] = (...args) =>\n this.model.textForColumnHeader(...args);\n\n colorForColumnHeader: IrisGridModel['colorForColumnHeader'] = (...args) =>\n this.model.colorForColumnHeader(...args);\n\n textForRowHeader: IrisGridModel['textForRowHeader'] = (...args) =>\n this.model.textForRowHeader(...args);\n\n textForRowFooter: IrisGridModel['textForRowFooter'] = (...args) =>\n this.model.textForRowFooter(...args);\n\n isRowMovable: IrisGridModel['isRowMovable'] = (...args) =>\n this.model.isRowMovable(...args);\n\n isColumnMovable: IrisGridModel['isColumnMovable'] = (...args) =>\n this.model.isColumnMovable(...args);\n\n isColumnFrozen(x: ModelIndex): boolean {\n return this.model.isColumnFrozen(x);\n }\n\n get hasExpandableRows(): boolean {\n if (isExpandableGridModel(this.model)) {\n return this.model.hasExpandableRows;\n }\n return false;\n }\n\n isRowExpandable: IrisGridTreeTableModel['isRowExpandable'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.isRowExpandable(...args);\n }\n return false;\n };\n\n isRowExpanded: IrisGridTreeTableModel['isRowExpanded'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.isRowExpanded(...args);\n }\n return false;\n };\n\n setRowExpanded: IrisGridTreeTableModel['setRowExpanded'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.setRowExpanded(...args);\n }\n throw Error('Function setRowExpanded does not exist on IrisGridTableModel');\n };\n\n depthForRow: IrisGridTreeTableModel['depthForRow'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.depthForRow(...args);\n }\n return 0;\n // throw Error('Function depthForRow does not exist on IrisGridTableModel');\n };\n\n get isExportAvailable(): boolean {\n return this.model.isExportAvailable;\n }\n\n get isColumnStatisticsAvailable(): boolean {\n return this.model.isColumnStatisticsAvailable;\n }\n\n get isValuesTableAvailable(): boolean {\n return this.model.isValuesTableAvailable;\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 isFormatColumnsAvailable(): boolean {\n return this.model.isFormatColumnsAvailable;\n }\n\n get isChartBuilderAvailable(): boolean {\n return this.model.isChartBuilderAvailable;\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 isTotalsAvailable(): boolean {\n return this.model.isTotalsAvailable;\n }\n\n get isReversible(): boolean {\n return this.model.isReversible;\n }\n\n get columns(): Column[] {\n return this.model.columns;\n }\n\n get initialMovedColumns(): MoveOperation[] {\n return this.model.initialMovedColumns;\n }\n\n get initialMovedRows(): MoveOperation[] {\n return this.model.initialMovedRows;\n }\n\n get layoutHints(): LayoutHints | null {\n return this.model.layoutHints;\n }\n\n get frontColumns(): ColumnName[] {\n return this.model.frontColumns;\n }\n\n get backColumns(): ColumnName[] {\n return this.model.backColumns;\n }\n\n get frozenColumns(): ColumnName[] {\n return this.model.frozenColumns;\n }\n\n getColumnHeaderGroup: IrisGridModel['getColumnHeaderGroup'] = (...args) =>\n this.model.getColumnHeaderGroup(...args);\n\n get columnHeaderGroups(): ColumnHeaderGroup[] {\n return this.model.columnHeaderGroups;\n }\n\n set columnHeaderGroups(groups: ColumnHeaderGroup[]) {\n this.model.columnHeaderGroups = groups;\n }\n\n get initialColumnHeaderGroups(): ColumnHeaderGroup[] {\n return this.model.initialColumnHeaderGroups;\n }\n\n getColumnHeaderParentGroup: IrisGridModel['getColumnHeaderParentGroup'] = (\n ...args\n ) => this.model.getColumnHeaderParentGroup(...args);\n\n get columnHeaderGroupMap(): Map<string, ColumnHeaderGroup> {\n return this.model.columnHeaderGroupMap;\n }\n\n get columnHeaderMaxDepth(): number {\n return this.model.columnHeaderMaxDepth;\n }\n\n updateFrozenColumns(columns: ColumnName[]): void {\n return this.model.updateFrozenColumns(columns);\n }\n\n get originalColumns(): Column[] {\n return this.originalModel.columns;\n }\n\n get groupedColumns(): Column[] {\n return this.model.groupedColumns;\n }\n\n get description(): string {\n return this.model.description;\n }\n\n formatForCell: IrisGridModel['formatForCell'] = (...args) =>\n this.model.formatForCell(...args);\n\n valueForCell: IrisGridModel['valueForCell'] = (...args) =>\n this.model.valueForCell(...args);\n\n get filter(): FilterCondition[] {\n return this.model.filter;\n }\n\n set filter(filter: FilterCondition[]) {\n this.model.filter = filter;\n }\n\n get formatter(): Formatter {\n return this.model.formatter;\n }\n\n set formatter(formatter: Formatter) {\n this.model.formatter = formatter;\n }\n\n displayString: IrisGridModel['displayString'] = (...args) =>\n this.model.displayString(...args);\n\n get sort(): Sort[] {\n return this.model.sort;\n }\n\n set sort(sort: Sort[]) {\n this.model.sort = sort;\n }\n\n get customColumns(): ColumnName[] {\n return this.model.customColumns;\n }\n\n set customColumns(customColumns: ColumnName[]) {\n this.model.customColumns = customColumns;\n }\n\n get formatColumns(): CustomColumn[] {\n return this.model.formatColumns;\n }\n\n set formatColumns(formatColumns: CustomColumn[]) {\n this.model.formatColumns = formatColumns;\n }\n\n get rollupConfig(): RollupConfig | null {\n return this.rollup;\n }\n\n set rollupConfig(rollupConfig: 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(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 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(table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get table(): Table | TreeTable | undefined {\n if (isIrisGridTableModelTemplate(this.model)) {\n return this.model.table;\n }\n\n return undefined;\n }\n\n get totalsConfig(): UITotalsTableConfig | null {\n return this.model.totalsConfig;\n }\n\n set totalsConfig(totalsConfig: UITotalsTableConfig | null) {\n this.model.totalsConfig = totalsConfig;\n }\n\n get isFilterRequired(): boolean {\n return this.model.isFilterRequired;\n }\n\n get isEditable(): boolean {\n return isEditableGridModel(this.model) && this.model.isEditable;\n }\n\n isEditableRange: IrisGridTableModel['isEditableRange'] = (\n ...args\n ): boolean => {\n if (isEditableGridModel(this.model)) {\n return this.model.isEditableRange(...args);\n }\n return false;\n };\n\n isFilterable: IrisGridTableModel['isFilterable'] = (...args) =>\n this.model.isFilterable(...args);\n\n setViewport = (top: number, bottom: number, columns: Column[]): void =>\n this.model.setViewport(top, bottom, columns);\n\n snapshot: IrisGridModel['snapshot'] = (...args) =>\n this.model.snapshot(...args);\n\n textSnapshot: IrisGridTableModel['textSnapshot'] = (...args) =>\n this.model.textSnapshot(...args);\n\n export(): Promise<Table> {\n if (TableUtils.isTreeTable(this.model)) {\n throw new Error(\"TreeTable has no 'export' property\");\n }\n return (this.model as IrisGridTableModel).export();\n }\n\n valuesTable: IrisGridTableModel['valuesTable'] = (...args) =>\n this.model.valuesTable(...args);\n\n columnStatistics(column: Column): Promise<ColumnStatistics> {\n if (TableUtils.isTreeTable(this.model)) {\n throw new Error(\"TreeTable has no 'columnStatistics' function\");\n }\n return (this.model as IrisGridTableModel).columnStatistics(column);\n }\n\n editValueForCell: IrisGridTableModel['editValueForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n this.model.editValueForCell(...args);\n }\n return '';\n };\n\n setValueForCell: IrisGridTableModel['setValueForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValueForCell(...args);\n }\n return Promise.reject(new Error('Model is not editable'));\n };\n\n setValueForRanges: IrisGridTableModel['setValueForRanges'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValueForRanges(...args);\n }\n return Promise.reject(new Error('Model is not editable'));\n };\n\n setValues: EditableGridModel['setValues'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValues(...args);\n }\n return Promise.resolve();\n };\n\n isValidForCell: IrisGridTableModel['isValidForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.isValidForCell(...args);\n }\n return false;\n };\n\n delete: IrisGridTableModel['delete'] = (...args) =>\n this.model.delete(...args);\n\n get pendingDataMap(): PendingDataMap<UIRow> {\n return this.model.pendingDataMap;\n }\n\n set pendingDataMap(map: PendingDataMap<UIRow>) {\n this.model.pendingDataMap = map;\n }\n\n get pendingRowCount(): number {\n return this.model.pendingRowCount;\n }\n\n set pendingRowCount(count: number) {\n this.model.pendingRowCount = count;\n }\n\n get pendingDataErrors(): Map<number, Error[]> {\n return this.model.pendingDataErrors;\n }\n\n commitPending: IrisGridTableModel['commitPending'] = (...args) =>\n this.model.commitPending(...args);\n\n getColumnIndexByName(name: ColumnName): number | undefined {\n return this.model.getColumnIndexByName(name);\n }\n\n async seekRow(\n startRow: number,\n column: Column,\n valueType: ValueTypeUnion,\n value: unknown,\n insensitive?: boolean,\n contains?: boolean,\n isBackwards?: boolean\n ): Promise<number> {\n return this.model.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.model.isSeekRowAvailable;\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","isEditableGridModel","isExpandableGridModel","IrisGridTableModel","IrisGridTreeTableModel","IrisGridModel","isIrisGridTableModelTemplate","log","module","makeModel","table","formatter","inputTable","isTreeTable","IrisGridProxyModel","constructor","model","textForCell","truncationCharForCell","textAlignForCell","colorForCell","backgroundColorForCell","textForColumnHeader","colorForColumnHeader","textForRowHeader","textForRowFooter","isRowMovable","isColumnMovable","isRowExpandable","isRowExpanded","setRowExpanded","Error","expandAll","collapseAll","depthForRow","getColumnHeaderGroup","getColumnHeaderParentGroup","formatForCell","valueForCell","displayString","isEditableRange","isFilterable","top","bottom","columns","setViewport","snapshot","textSnapshot","valuesTable","editValueForCell","setValueForCell","Promise","reject","setValueForRanges","setValues","resolve","isValidForCell","delete","commitPending","handleModelEvent","bind","originalModel","modelPromise","rollup","selectDistinct","close","cancel","event","debug2","detail","type","dispatchEvent","setModel","debug","oldModel","listenerCount","addListeners","EVENT","COLUMNS_CHANGED","TABLE_CHANGED","setNextModel","removeListeners","makeCancelable","then","catch","err","isCanceled","error","REQUEST_FAILED","startListening","stopListening","events","Object","keys","i","length","addEventListener","removeEventListener","rowCount","columnCount","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","isColumnFrozen","x","hasExpandableRows","isExpandAllAvailable","isExportAvailable","isColumnStatisticsAvailable","isValuesTableAvailable","isCustomColumnsAvailable","isSelectDistinctAvailable","selectDistinctColumns","isFormatColumnsAvailable","isChartBuilderAvailable","isRollupAvailable","isTotalsAvailable","isReversible","initialMovedColumns","initialMovedRows","layoutHints","frontColumns","backColumns","frozenColumns","columnHeaderGroups","groups","initialColumnHeaderGroups","columnHeaderGroupMap","columnHeaderMaxDepth","updateFrozenColumns","originalColumns","groupedColumns","description","filter","sort","customColumns","formatColumns","rollupConfig","columnNames","map","name","find","column","undefined","totalsConfig","isFilterRequired","isEditable","export","columnStatistics","pendingDataMap","pendingRowCount","count","pendingDataErrors","getColumnIndexByName","seekRow","startRow","valueType","value","insensitive","contains","isBackwards","isSeekRowAvailable"],"sources":["../src/IrisGridProxyModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport deepEqual from '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 {\n Column,\n ColumnStatistics,\n CustomColumn,\n FilterCondition,\n InputTable,\n LayoutHints,\n RollupConfig,\n Sort,\n Table,\n TreeTable,\n ValueTypeUnion,\n} from '@deephaven/jsapi-shim';\nimport {\n EditableGridModel,\n isEditableGridModel,\n isExpandableGridModel,\n ModelIndex,\n MoveOperation,\n} from '@deephaven/grid';\nimport IrisGridTableModel from './IrisGridTableModel';\nimport IrisGridTreeTableModel from './IrisGridTreeTableModel';\nimport IrisGridModel from './IrisGridModel';\nimport {\n ColumnName,\n UITotalsTableConfig,\n PendingDataMap,\n UIRow,\n} from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\n\nconst log = Log.module('IrisGridProxyModel');\n\nfunction makeModel(\n table: Table | TreeTable,\n formatter?: Formatter,\n inputTable?: InputTable | null\n): IrisGridModel {\n if (TableUtils.isTreeTable(table)) {\n return new IrisGridTreeTableModel(table, formatter);\n }\n return new IrisGridTableModel(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 */\nclass IrisGridProxyModel extends IrisGridModel {\n /**\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 originalModel: IrisGridModel;\n\n model: IrisGridModel;\n\n modelPromise: CancelablePromise<IrisGridModel> | null;\n\n rollup: RollupConfig | null;\n\n selectDistinct: ColumnName[];\n\n constructor(\n table: Table | TreeTable,\n formatter = new Formatter(),\n inputTable: InputTable | null = null\n ) {\n super();\n\n this.handleModelEvent = this.handleModelEvent.bind(this);\n\n const model = makeModel(table, formatter, inputTable);\n this.originalModel = model;\n this.model = model;\n this.modelPromise = null;\n this.rollup = null;\n this.selectDistinct = [];\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\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 this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: model.columns,\n })\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 rowCount(): number {\n return this.model.rowCount;\n }\n\n get columnCount(): number {\n return this.model.columnCount;\n }\n\n get floatingTopRowCount(): number {\n return this.model.floatingTopRowCount;\n }\n\n get floatingBottomRowCount(): number {\n return this.model.floatingBottomRowCount;\n }\n\n get floatingLeftColumnCount(): number {\n return this.model.floatingLeftColumnCount;\n }\n\n get floatingRightColumnCount(): number {\n return this.model.floatingRightColumnCount;\n }\n\n textForCell: IrisGridModel['textForCell'] = (...args) =>\n this.model.textForCell(...args);\n\n truncationCharForCell: IrisGridModel['truncationCharForCell'] = (...args) =>\n this.model.truncationCharForCell(...args);\n\n textAlignForCell: IrisGridModel['textAlignForCell'] = (...args) =>\n this.model.textAlignForCell(...args);\n\n colorForCell: IrisGridModel['colorForCell'] = (...args) =>\n this.model.colorForCell(...args);\n\n backgroundColorForCell: IrisGridModel['backgroundColorForCell'] = (...args) =>\n this.model.backgroundColorForCell(...args);\n\n textForColumnHeader: IrisGridModel['textForColumnHeader'] = (...args) =>\n this.model.textForColumnHeader(...args);\n\n colorForColumnHeader: IrisGridModel['colorForColumnHeader'] = (...args) =>\n this.model.colorForColumnHeader(...args);\n\n textForRowHeader: IrisGridModel['textForRowHeader'] = (...args) =>\n this.model.textForRowHeader(...args);\n\n textForRowFooter: IrisGridModel['textForRowFooter'] = (...args) =>\n this.model.textForRowFooter(...args);\n\n isRowMovable: IrisGridModel['isRowMovable'] = (...args) =>\n this.model.isRowMovable(...args);\n\n isColumnMovable: IrisGridModel['isColumnMovable'] = (...args) =>\n this.model.isColumnMovable(...args);\n\n isColumnFrozen(x: ModelIndex): boolean {\n return this.model.isColumnFrozen(x);\n }\n\n get hasExpandableRows(): boolean {\n if (isExpandableGridModel(this.model)) {\n return this.model.hasExpandableRows;\n }\n return false;\n }\n\n get isExpandAllAvailable(): boolean {\n if (isExpandableGridModel(this.model)) {\n return this.model.isExpandAllAvailable ?? false;\n }\n return false;\n }\n\n isRowExpandable: IrisGridTreeTableModel['isRowExpandable'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.isRowExpandable(...args);\n }\n return false;\n };\n\n isRowExpanded: IrisGridTreeTableModel['isRowExpanded'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.isRowExpanded(...args);\n }\n return false;\n };\n\n setRowExpanded: IrisGridTreeTableModel['setRowExpanded'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.setRowExpanded(...args);\n }\n throw Error('Function setRowExpanded does not exist on IrisGridTableModel');\n };\n\n expandAll: IrisGridTreeTableModel['expandAll'] = () => {\n if (isExpandableGridModel(this.model)) {\n return this.model.expandAll();\n }\n throw Error('Function expandAll does not exist on IrisGridTableModel');\n };\n\n collapseAll: IrisGridTreeTableModel['collapseAll'] = () => {\n if (isExpandableGridModel(this.model)) {\n return this.model.collapseAll();\n }\n throw Error('Function collapseAll does not exist on IrisGridTableModel');\n };\n\n depthForRow: IrisGridTreeTableModel['depthForRow'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.depthForRow(...args);\n }\n return 0;\n // throw Error('Function depthForRow does not exist on IrisGridTableModel');\n };\n\n get isExportAvailable(): boolean {\n return this.model.isExportAvailable;\n }\n\n get isColumnStatisticsAvailable(): boolean {\n return this.model.isColumnStatisticsAvailable;\n }\n\n get isValuesTableAvailable(): boolean {\n return this.model.isValuesTableAvailable;\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 isFormatColumnsAvailable(): boolean {\n return this.model.isFormatColumnsAvailable;\n }\n\n get isChartBuilderAvailable(): boolean {\n return this.model.isChartBuilderAvailable;\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 isTotalsAvailable(): boolean {\n return this.model.isTotalsAvailable;\n }\n\n get isReversible(): boolean {\n return this.model.isReversible;\n }\n\n get columns(): Column[] {\n return this.model.columns;\n }\n\n get initialMovedColumns(): MoveOperation[] {\n return this.model.initialMovedColumns;\n }\n\n get initialMovedRows(): MoveOperation[] {\n return this.model.initialMovedRows;\n }\n\n get layoutHints(): LayoutHints | null {\n return this.model.layoutHints;\n }\n\n get frontColumns(): ColumnName[] {\n return this.model.frontColumns;\n }\n\n get backColumns(): ColumnName[] {\n return this.model.backColumns;\n }\n\n get frozenColumns(): ColumnName[] {\n return this.model.frozenColumns;\n }\n\n getColumnHeaderGroup: IrisGridModel['getColumnHeaderGroup'] = (...args) =>\n this.model.getColumnHeaderGroup(...args);\n\n get columnHeaderGroups(): ColumnHeaderGroup[] {\n return this.model.columnHeaderGroups;\n }\n\n set columnHeaderGroups(groups: ColumnHeaderGroup[]) {\n this.model.columnHeaderGroups = groups;\n }\n\n get initialColumnHeaderGroups(): ColumnHeaderGroup[] {\n return this.model.initialColumnHeaderGroups;\n }\n\n getColumnHeaderParentGroup: IrisGridModel['getColumnHeaderParentGroup'] = (\n ...args\n ) => this.model.getColumnHeaderParentGroup(...args);\n\n get columnHeaderGroupMap(): Map<string, ColumnHeaderGroup> {\n return this.model.columnHeaderGroupMap;\n }\n\n get columnHeaderMaxDepth(): number {\n return this.model.columnHeaderMaxDepth;\n }\n\n updateFrozenColumns(columns: ColumnName[]): void {\n return this.model.updateFrozenColumns(columns);\n }\n\n get originalColumns(): Column[] {\n return this.originalModel.columns;\n }\n\n get groupedColumns(): Column[] {\n return this.model.groupedColumns;\n }\n\n get description(): string {\n return this.model.description;\n }\n\n formatForCell: IrisGridModel['formatForCell'] = (...args) =>\n this.model.formatForCell(...args);\n\n valueForCell: IrisGridModel['valueForCell'] = (...args) =>\n this.model.valueForCell(...args);\n\n get filter(): FilterCondition[] {\n return this.model.filter;\n }\n\n set filter(filter: FilterCondition[]) {\n this.model.filter = filter;\n }\n\n get formatter(): Formatter {\n return this.model.formatter;\n }\n\n set formatter(formatter: Formatter) {\n this.model.formatter = formatter;\n }\n\n displayString: IrisGridModel['displayString'] = (...args) =>\n this.model.displayString(...args);\n\n get sort(): Sort[] {\n return this.model.sort;\n }\n\n set sort(sort: Sort[]) {\n this.model.sort = sort;\n }\n\n get customColumns(): ColumnName[] {\n return this.model.customColumns;\n }\n\n set customColumns(customColumns: ColumnName[]) {\n this.model.customColumns = customColumns;\n }\n\n get formatColumns(): CustomColumn[] {\n return this.model.formatColumns;\n }\n\n set formatColumns(formatColumns: CustomColumn[]) {\n this.model.formatColumns = formatColumns;\n }\n\n get rollupConfig(): RollupConfig | null {\n return this.rollup;\n }\n\n set rollupConfig(rollupConfig: 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(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 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(table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get table(): Table | TreeTable | undefined {\n if (isIrisGridTableModelTemplate(this.model)) {\n return this.model.table;\n }\n\n return undefined;\n }\n\n get totalsConfig(): UITotalsTableConfig | null {\n return this.model.totalsConfig;\n }\n\n set totalsConfig(totalsConfig: UITotalsTableConfig | null) {\n this.model.totalsConfig = totalsConfig;\n }\n\n get isFilterRequired(): boolean {\n return this.model.isFilterRequired;\n }\n\n get isEditable(): boolean {\n return isEditableGridModel(this.model) && this.model.isEditable;\n }\n\n isEditableRange: IrisGridTableModel['isEditableRange'] = (\n ...args\n ): boolean => {\n if (isEditableGridModel(this.model)) {\n return this.model.isEditableRange(...args);\n }\n return false;\n };\n\n isFilterable: IrisGridTableModel['isFilterable'] = (...args) =>\n this.model.isFilterable(...args);\n\n setViewport = (top: number, bottom: number, columns: Column[]): void =>\n this.model.setViewport(top, bottom, columns);\n\n snapshot: IrisGridModel['snapshot'] = (...args) =>\n this.model.snapshot(...args);\n\n textSnapshot: IrisGridTableModel['textSnapshot'] = (...args) =>\n this.model.textSnapshot(...args);\n\n export(): Promise<Table> {\n if (TableUtils.isTreeTable(this.model)) {\n throw new Error(\"TreeTable has no 'export' property\");\n }\n return (this.model as IrisGridTableModel).export();\n }\n\n valuesTable: IrisGridTableModel['valuesTable'] = (...args) =>\n this.model.valuesTable(...args);\n\n columnStatistics(column: Column): Promise<ColumnStatistics> {\n if (TableUtils.isTreeTable(this.model)) {\n throw new Error(\"TreeTable has no 'columnStatistics' function\");\n }\n return (this.model as IrisGridTableModel).columnStatistics(column);\n }\n\n editValueForCell: IrisGridTableModel['editValueForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n this.model.editValueForCell(...args);\n }\n return '';\n };\n\n setValueForCell: IrisGridTableModel['setValueForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValueForCell(...args);\n }\n return Promise.reject(new Error('Model is not editable'));\n };\n\n setValueForRanges: IrisGridTableModel['setValueForRanges'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValueForRanges(...args);\n }\n return Promise.reject(new Error('Model is not editable'));\n };\n\n setValues: EditableGridModel['setValues'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValues(...args);\n }\n return Promise.resolve();\n };\n\n isValidForCell: IrisGridTableModel['isValidForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.isValidForCell(...args);\n }\n return false;\n };\n\n delete: IrisGridTableModel['delete'] = (...args) =>\n this.model.delete(...args);\n\n get pendingDataMap(): PendingDataMap<UIRow> {\n return this.model.pendingDataMap;\n }\n\n set pendingDataMap(map: PendingDataMap<UIRow>) {\n this.model.pendingDataMap = map;\n }\n\n get pendingRowCount(): number {\n return this.model.pendingRowCount;\n }\n\n set pendingRowCount(count: number) {\n this.model.pendingRowCount = count;\n }\n\n get pendingDataErrors(): Map<number, Error[]> {\n return this.model.pendingDataErrors;\n }\n\n commitPending: IrisGridTableModel['commitPending'] = (...args) =>\n this.model.commitPending(...args);\n\n getColumnIndexByName(name: ColumnName): number | undefined {\n return this.model.getColumnIndexByName(name);\n }\n\n async seekRow(\n startRow: number,\n column: Column,\n valueType: ValueTypeUnion,\n value: unknown,\n insensitive?: boolean,\n contains?: boolean,\n isBackwards?: boolean\n ): Promise<number> {\n return this.model.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.model.isSeekRowAvailable;\n }\n}\n\nexport default IrisGridProxyModel;\n"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ declare class IrisGridTreeTableModel extends IrisGridTableModelTemplate<TreeTabl
|
|
|
14
14
|
snapshot(ranges: GridRange[], includeHeaders?: boolean, formatValue?: (value: unknown, column: Column) => unknown): Promise<unknown[][]>;
|
|
15
15
|
get groupedColumns(): Column[];
|
|
16
16
|
get hasExpandableRows(): boolean;
|
|
17
|
+
get isExpandAllAvailable(): boolean;
|
|
17
18
|
get isChartBuilderAvailable(): boolean;
|
|
18
19
|
get isSelectDistinctAvailable(): boolean;
|
|
19
20
|
get isReversible(): boolean;
|
|
@@ -21,7 +22,9 @@ declare class IrisGridTreeTableModel extends IrisGridTableModelTemplate<TreeTabl
|
|
|
21
22
|
isColumnMovable(column: ModelIndex): boolean;
|
|
22
23
|
isRowExpandable(y: ModelIndex): boolean;
|
|
23
24
|
isRowExpanded(y: ModelIndex): boolean;
|
|
24
|
-
setRowExpanded(y: ModelIndex, isExpanded: boolean): void;
|
|
25
|
+
setRowExpanded(y: ModelIndex, isExpanded: boolean, expandDescendants?: boolean): void;
|
|
26
|
+
expandAll(): void;
|
|
27
|
+
collapseAll(): void;
|
|
25
28
|
depthForRow(y: ModelIndex): ModelIndex;
|
|
26
29
|
getCachedFilterableColumnSet: (columns: Column[], groupedColumns: Column[]) => Set<number>;
|
|
27
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTreeTableModel.d.ts","sourceRoot":"","sources":["../src/IrisGridTreeTableModel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AAEtE,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,cAAM,sBAAuB,SAAQ,0BAA0B,CAC7D,SAAS,EACT,SAAS,CACV;IAGC,qBAAqB,CACnB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EAAE,GAChB,IAAI;IAIP,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM;IAajD,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;IAUxD,QAAQ,CACZ,MAAM,EAAE,SAAS,EAAE,EACnB,cAAc,CAAC,EAAE,OAAO,EACxB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,GACxD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAgDvB,IAAI,cAAc,IAAI,MAAM,EAAE,CAE7B;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,IAAI,uBAAuB,IAAI,OAAO,CAErC;IAED,IAAI,yBAAyB,IAAI,OAAO,CAEvC;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO;IAO9C,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAI5C,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO;IAKvC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO;IAKrC,cAAc,
|
|
1
|
+
{"version":3,"file":"IrisGridTreeTableModel.d.ts","sourceRoot":"","sources":["../src/IrisGridTreeTableModel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AAEtE,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,cAAM,sBAAuB,SAAQ,0BAA0B,CAC7D,SAAS,EACT,SAAS,CACV;IAGC,qBAAqB,CACnB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EAAE,GAChB,IAAI;IAIP,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM;IAajD,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;IAUxD,QAAQ,CACZ,MAAM,EAAE,SAAS,EAAE,EACnB,cAAc,CAAC,EAAE,OAAO,EACxB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,GACxD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAgDvB,IAAI,cAAc,IAAI,MAAM,EAAE,CAE7B;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED,IAAI,uBAAuB,IAAI,OAAO,CAErC;IAED,IAAI,yBAAyB,IAAI,OAAO,CAEvC;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO;IAO9C,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAI5C,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO;IAKvC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO;IAKrC,cAAc,CACZ,CAAC,EAAE,UAAU,EACb,UAAU,EAAE,OAAO,EACnB,iBAAiB,UAAQ,GACxB,IAAI;IAQP,SAAS,IAAI,IAAI;IAMjB,WAAW,IAAI,IAAI;IAMnB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAKtC,4BAA4B,YAChB,MAAM,EAAE,kBAAkB,MAAM,EAAE,iBAM5C;CACH;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -84,6 +84,9 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
|
|
|
84
84
|
get hasExpandableRows() {
|
|
85
85
|
return true;
|
|
86
86
|
}
|
|
87
|
+
get isExpandAllAvailable() {
|
|
88
|
+
return this.table.expandAll !== undefined;
|
|
89
|
+
}
|
|
87
90
|
get isChartBuilderAvailable() {
|
|
88
91
|
return false;
|
|
89
92
|
}
|
|
@@ -110,7 +113,22 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
|
|
|
110
113
|
return (_row$isExpanded = row === null || row === void 0 ? void 0 : row.isExpanded) !== null && _row$isExpanded !== void 0 ? _row$isExpanded : false;
|
|
111
114
|
}
|
|
112
115
|
setRowExpanded(y, isExpanded) {
|
|
113
|
-
|
|
116
|
+
var expandDescendants = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
117
|
+
if (this.isExpandAllAvailable) {
|
|
118
|
+
this.table.setExpanded(y, isExpanded, expandDescendants);
|
|
119
|
+
} else {
|
|
120
|
+
this.table.setExpanded(y, isExpanded);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
expandAll() {
|
|
124
|
+
if (this.table.expandAll) {
|
|
125
|
+
this.table.expandAll();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
collapseAll() {
|
|
129
|
+
if (this.table.collapseAll) {
|
|
130
|
+
this.table.collapseAll();
|
|
131
|
+
}
|
|
114
132
|
}
|
|
115
133
|
depthForRow(y) {
|
|
116
134
|
var _row$depth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","assertNotNull","IrisGridTableModelTemplate","IrisGridTreeTableModel","columns","groupedColumns","Set","length","map","c1","findIndex","c2","name","applyBufferedViewport","viewportTop","viewportBottom","table","setViewport","textForCell","x","y","column","row","hasChildren","constituentType","value","valueForCell","displayString","extractViewportRow","isExpanded","depth","snapshot","ranges","includeHeaders","formatValue","viewport","viewportData","result","push","c","viewportRange","offset","rows","i","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","data","get","hasExpandableRows","isChartBuilderAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","has","isColumnMovable","isRowExpandable","isRowExpanded","setRowExpanded","setExpanded","depthForRow"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport { GridRange, ModelIndex } from '@deephaven/grid';\nimport { Column, TreeRow, TreeTable } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport { UIRow } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\nclass IrisGridTreeTableModel extends IrisGridTableModelTemplate<\n TreeTable,\n UITreeRow\n> {\n // table: TreeTable\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: Column[]\n ): void {\n this.table.setViewport(viewportTop, viewportBottom, columns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.columns[x];\n const row = this.row(y);\n if (row != null && column != null) {\n if (!row.hasChildren && column.constituentType != null) {\n const value = this.valueForCell(x, y);\n return this.displayString(value, column.constituentType, column.name);\n }\n }\n\n return super.textForCell(x, y);\n }\n\n extractViewportRow(row: TreeRow, columns: Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n return {\n ...super.extractViewportRow(row, columns),\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue?: (value: unknown, column: Column) => unknown\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const { columns } = this.viewport;\n const result = [];\n\n if (includeHeaders != null && includeHeaders) {\n result.push(columns.map(c => c.name));\n }\n\n const viewportRange = new GridRange(\n 0,\n this.viewportData?.offset,\n columns.length,\n this.viewportData.offset + this.viewportData.rows.length\n );\n\n for (let i = 0; i < ranges.length; i += 1) {\n const intersection = GridRange.intersection(viewportRange, ranges[i]);\n\n assertNotNull(intersection);\n assertNotNull(intersection.startRow);\n assertNotNull(intersection.endRow);\n\n for (let r = intersection.startRow; r <= intersection.endRow; r += 1) {\n const resultRow = [];\n const viewportRow = this.viewportData.rows[\n r - this.viewportData.offset\n ];\n assertNotNull(intersection.startColumn);\n assertNotNull(intersection.endColumn);\n for (\n let c = intersection.startColumn;\n c <= intersection.endColumn;\n c += 1\n ) {\n assertNotNull(formatValue);\n resultRow.push(\n formatValue(viewportRow.data.get(c)?.value, this.columns[c])\n );\n }\n result.push(resultRow);\n }\n }\n\n return result;\n }\n\n get groupedColumns(): Column[] {\n return this.table.groupedColumns;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isChartBuilderAvailable(): boolean {\n return false;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(\n this.columns,\n this.groupedColumns\n ).has(columnIndex);\n }\n\n isColumnMovable(column: ModelIndex): boolean {\n return column >= this.groupedColumns.length;\n }\n\n isRowExpandable(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.hasChildren ?? false;\n }\n\n isRowExpanded(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.isExpanded ?? false;\n }\n\n setRowExpanded(y: ModelIndex, isExpanded: boolean): void {\n this.table.setExpanded(y, isExpanded);\n }\n\n depthForRow(y: ModelIndex): ModelIndex {\n const row = this.row(y);\n return (row?.depth ?? 1) - 1;\n }\n\n getCachedFilterableColumnSet = memoize(\n (columns: Column[], groupedColumns: Column[]) =>\n new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns).map(c1 =>\n columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n}\n\nexport default IrisGridTreeTableModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","assertNotNull","IrisGridTableModelTemplate","IrisGridTreeTableModel","columns","groupedColumns","Set","length","map","c1","findIndex","c2","name","applyBufferedViewport","viewportTop","viewportBottom","table","setViewport","textForCell","x","y","column","row","hasChildren","constituentType","value","valueForCell","displayString","extractViewportRow","isExpanded","depth","snapshot","ranges","includeHeaders","formatValue","viewport","viewportData","result","push","c","viewportRange","offset","rows","i","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","data","get","hasExpandableRows","isExpandAllAvailable","expandAll","undefined","isChartBuilderAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","has","isColumnMovable","isRowExpandable","isRowExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","depthForRow"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport { GridRange, ModelIndex } from '@deephaven/grid';\nimport { Column, TreeRow, TreeTable } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport { UIRow } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\nclass IrisGridTreeTableModel extends IrisGridTableModelTemplate<\n TreeTable,\n UITreeRow\n> {\n // table: TreeTable\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: Column[]\n ): void {\n this.table.setViewport(viewportTop, viewportBottom, columns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.columns[x];\n const row = this.row(y);\n if (row != null && column != null) {\n if (!row.hasChildren && column.constituentType != null) {\n const value = this.valueForCell(x, y);\n return this.displayString(value, column.constituentType, column.name);\n }\n }\n\n return super.textForCell(x, y);\n }\n\n extractViewportRow(row: TreeRow, columns: Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n return {\n ...super.extractViewportRow(row, columns),\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue?: (value: unknown, column: Column) => unknown\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const { columns } = this.viewport;\n const result = [];\n\n if (includeHeaders != null && includeHeaders) {\n result.push(columns.map(c => c.name));\n }\n\n const viewportRange = new GridRange(\n 0,\n this.viewportData?.offset,\n columns.length,\n this.viewportData.offset + this.viewportData.rows.length\n );\n\n for (let i = 0; i < ranges.length; i += 1) {\n const intersection = GridRange.intersection(viewportRange, ranges[i]);\n\n assertNotNull(intersection);\n assertNotNull(intersection.startRow);\n assertNotNull(intersection.endRow);\n\n for (let r = intersection.startRow; r <= intersection.endRow; r += 1) {\n const resultRow = [];\n const viewportRow = this.viewportData.rows[\n r - this.viewportData.offset\n ];\n assertNotNull(intersection.startColumn);\n assertNotNull(intersection.endColumn);\n for (\n let c = intersection.startColumn;\n c <= intersection.endColumn;\n c += 1\n ) {\n assertNotNull(formatValue);\n resultRow.push(\n formatValue(viewportRow.data.get(c)?.value, this.columns[c])\n );\n }\n result.push(resultRow);\n }\n }\n\n return result;\n }\n\n get groupedColumns(): Column[] {\n return this.table.groupedColumns;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isExpandAllAvailable(): boolean {\n return this.table.expandAll !== undefined;\n }\n\n get isChartBuilderAvailable(): boolean {\n return false;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(\n this.columns,\n this.groupedColumns\n ).has(columnIndex);\n }\n\n isColumnMovable(column: ModelIndex): boolean {\n return column >= this.groupedColumns.length;\n }\n\n isRowExpandable(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.hasChildren ?? false;\n }\n\n isRowExpanded(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.isExpanded ?? false;\n }\n\n setRowExpanded(\n y: ModelIndex,\n isExpanded: boolean,\n expandDescendants = false\n ): void {\n if (this.isExpandAllAvailable) {\n this.table.setExpanded(y, isExpanded, expandDescendants);\n } else {\n this.table.setExpanded(y, isExpanded);\n }\n }\n\n expandAll(): void {\n if (this.table.expandAll) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll) {\n this.table.collapseAll();\n }\n }\n\n depthForRow(y: ModelIndex): ModelIndex {\n const row = this.row(y);\n return (row?.depth ?? 1) - 1;\n }\n\n getCachedFilterableColumnSet = memoize(\n (columns: Column[], groupedColumns: Column[]) =>\n new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns).map(c1 =>\n columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n}\n\nexport default IrisGridTreeTableModel;\n"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ declare class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
14
14
|
static GROUP_EDIT: number;
|
|
15
15
|
static GROUP_HIDE_COLUMNS: number;
|
|
16
16
|
static GROUP_FILTER: number;
|
|
17
|
+
static GROUP_EXPAND_COLLAPSE: number;
|
|
17
18
|
static GROUP_GOTO: number;
|
|
18
19
|
static GROUP_SORT: number;
|
|
19
20
|
static GROUP_COPY: number;
|
|
@@ -49,6 +50,7 @@ declare class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
49
50
|
*/
|
|
50
51
|
static getNumberValueEqualsFilter(column: Column, value: number): FilterCondition;
|
|
51
52
|
static getFilterValueForNumberOrChar(columnType: string, value: unknown): FilterValue;
|
|
53
|
+
static getRowOptionFormatted(command: string, cellValue: string, len?: number): string;
|
|
52
54
|
irisGrid: IrisGrid;
|
|
53
55
|
debouncedUpdateCustomFormat: DebouncedFunc<(modelIndex: number, selectedFormat: TableColumnFormat | null) => void>;
|
|
54
56
|
constructor(irisGrid: IrisGrid);
|
|
@@ -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,EAId,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,IAAI,EACJ,gBAAgB,EAChB,SAAS,
|
|
1
|
+
{"version":3,"file":"IrisGridContextMenuHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridContextMenuHandler.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
|
9
9
|
import { dhFilterFilled, vsRemove, vsCheck, vsFilter } from '@deephaven/icons';
|
|
10
10
|
import debounce from 'lodash.debounce';
|
|
11
11
|
import { ContextActions, ContextActionUtils, GLOBAL_SHORTCUTS } from '@deephaven/components';
|
|
12
|
-
import { GridMouseHandler, isEditableGridModel } from '@deephaven/grid';
|
|
12
|
+
import { GridMouseHandler, GridRenderer, isEditableGridModel, isExpandableGridModel } from '@deephaven/grid';
|
|
13
13
|
import dh from '@deephaven/jsapi-shim';
|
|
14
14
|
import { TableColumnFormatter, DateTimeColumnFormatter, TableUtils } from '@deephaven/jsapi-utils';
|
|
15
15
|
import Log from '@deephaven/log';
|
|
@@ -81,6 +81,10 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
81
81
|
static getFilterValueForNumberOrChar(columnType, value) {
|
|
82
82
|
return TableUtils.isCharType(columnType) ? dh.FilterValue.ofString(String.fromCharCode(value)) : dh.FilterValue.ofNumber(value);
|
|
83
83
|
}
|
|
84
|
+
static getRowOptionFormatted(command, cellValue) {
|
|
85
|
+
var len = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 30;
|
|
86
|
+
return "".concat(command, " \"").concat(GridRenderer.truncate(cellValue, len - command.length - 3), "\"");
|
|
87
|
+
}
|
|
84
88
|
constructor(irisGrid) {
|
|
85
89
|
super();
|
|
86
90
|
_defineProperty(this, "irisGrid", void 0);
|
|
@@ -386,6 +390,51 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
386
390
|
actions.push(filterMenu);
|
|
387
391
|
}
|
|
388
392
|
}
|
|
393
|
+
|
|
394
|
+
// Expand/Collapse options
|
|
395
|
+
if (isExpandableGridModel(model) && model.isRowExpandable(modelRow)) {
|
|
396
|
+
// If there are grouped columns, then it is a rollup
|
|
397
|
+
// For rollups, the column number will be the depth minus one
|
|
398
|
+
var expandingColumn = model.groupedColumns.length > 0 ? model.depthForRow(modelRow) - 1 : 0;
|
|
399
|
+
var cellValue = model.valueForCell(expandingColumn, modelRow);
|
|
400
|
+
var cellText = cellValue == null ? 'null' : model.textForCell(expandingColumn, modelRow);
|
|
401
|
+
actions.push({
|
|
402
|
+
title: IrisGridContextMenuHandler.getRowOptionFormatted(model.isRowExpanded(modelRow) ? 'Collapse' : 'Expand', cellText),
|
|
403
|
+
group: IrisGridContextMenuHandler.GROUP_EXPAND_COLLAPSE,
|
|
404
|
+
order: 10,
|
|
405
|
+
action: () => {
|
|
406
|
+
model.setRowExpanded(modelRow, !model.isRowExpanded(modelRow));
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
if (model.isExpandAllAvailable === true) {
|
|
410
|
+
actions.push({
|
|
411
|
+
title: IrisGridContextMenuHandler.getRowOptionFormatted('Expand All in', cellText),
|
|
412
|
+
group: IrisGridContextMenuHandler.GROUP_EXPAND_COLLAPSE,
|
|
413
|
+
order: 20,
|
|
414
|
+
action: () => {
|
|
415
|
+
model.setRowExpanded(modelRow, true, true);
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
if (isExpandableGridModel(model) && model.hasExpandableRows && model.isExpandAllAvailable === true) {
|
|
421
|
+
actions.push({
|
|
422
|
+
title: 'Expand Entire Table',
|
|
423
|
+
group: IrisGridContextMenuHandler.GROUP_EXPAND_COLLAPSE,
|
|
424
|
+
order: 30,
|
|
425
|
+
action: () => {
|
|
426
|
+
model.expandAll();
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
actions.push({
|
|
430
|
+
title: 'Collapse Entire Table',
|
|
431
|
+
group: IrisGridContextMenuHandler.GROUP_EXPAND_COLLAPSE,
|
|
432
|
+
order: 40,
|
|
433
|
+
action: () => {
|
|
434
|
+
model.collapseAll();
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
}
|
|
389
438
|
var gotoRow = {
|
|
390
439
|
title: 'Go to',
|
|
391
440
|
iconColor: filterIconColor,
|
|
@@ -1072,7 +1121,8 @@ class IrisGridContextMenuHandler extends GridMouseHandler {
|
|
|
1072
1121
|
_defineProperty(IrisGridContextMenuHandler, "GROUP_EDIT", ContextActions.groups.high + 10);
|
|
1073
1122
|
_defineProperty(IrisGridContextMenuHandler, "GROUP_HIDE_COLUMNS", ContextActions.groups.high + 25);
|
|
1074
1123
|
_defineProperty(IrisGridContextMenuHandler, "GROUP_FILTER", ContextActions.groups.high + 50);
|
|
1075
|
-
_defineProperty(IrisGridContextMenuHandler, "
|
|
1124
|
+
_defineProperty(IrisGridContextMenuHandler, "GROUP_EXPAND_COLLAPSE", ContextActions.groups.high + 55);
|
|
1125
|
+
_defineProperty(IrisGridContextMenuHandler, "GROUP_GOTO", ContextActions.groups.high + 60);
|
|
1076
1126
|
_defineProperty(IrisGridContextMenuHandler, "GROUP_SORT", ContextActions.groups.high + 75);
|
|
1077
1127
|
_defineProperty(IrisGridContextMenuHandler, "GROUP_COPY", ContextActions.groups.high + 100);
|
|
1078
1128
|
_defineProperty(IrisGridContextMenuHandler, "GROUP_FORMAT", ContextActions.groups.high + 150);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridContextMenuHandler.js","names":["React","FontAwesomeIcon","dhFilterFilled","vsRemove","vsCheck","vsFilter","debounce","ContextActions","ContextActionUtils","GLOBAL_SHORTCUTS","GridMouseHandler","isEditableGridModel","dh","TableColumnFormatter","DateTimeColumnFormatter","TableUtils","Log","assertNotNull","copyToClipboard","DateTimeFormatContextMenu","DecimalFormatContextMenu","IntegerFormatContextMenu","SHORTCUTS","log","module","DEBOUNCE_UPDATE_FORMAT","CONTEXT_MENU_DATE_FORMAT","IrisGridContextMenuHandler","getQuickFilterCondition","columnFilter","newColumnFilter","operator","and","or","getQuickFilterText","filterText","newFilterText","getOperatorAsText","getNumberValueEqualsFilter","column","value","filter","Number","POSITIVE_INFINITY","FilterCondition","invoke","greaterThan","FilterValue","ofNumber","NEGATIVE_INFINITY","lessThan","isNaN","filterValue","getFilterValueForNumberOrChar","type","eq","columnType","isCharType","ofString","String","fromCharCode","constructor","irisGrid","debouncedUpdateCustomFormat","handleFormatSelection","componentWillUnmount","flush","getHeaderActions","modelIndex","gridPoint","visibleIndex","model","props","columns","actions","metrics","reverseType","quickFilters","advancedFilters","searchFilter","state","theme","getTheme","filterIconColor","filterBarActiveColor","contextMenuSortIconColor","contextMenuReverseIconColor","modelSort","sort","columnSort","getSortForColumn","hasReverse","REVERSE_TYPE","NONE","userColumnWidths","isColumnHidden","values","some","columnWidth","isColumnFreezable","getColumnHeaderParentGroup","undefined","isColumnFrozen","push","title","group","GROUP_HIDE_COLUMNS","action","hideColumnByVisibleIndex","disabled","unFreezeColumnByColumnName","name","freezeColumnByColumnName","order","showAllColumns","icon","iconColor","shortcut","TABLE","TOGGLE_QUICK_FILTER","GROUP_FILTER","toggleFilterBar","get","handleAdvancedMenuOpened","CLEAR_FILTERS","clearAllFilters","size","GROUP_SORT","sortByActions","length","additionalSortActions","sortColumn","COLUMN_SORT_DIRECTION","none","isReversible","REVERSE","reverse","POST_SORT","GROUP_COPY","textForColumnHeader","catch","e","error","isDateType","GROUP_FORMAT","dateFormatActions","isNumberType","numberFormatActions","getCellActions","modelColumn","grid","columnIndex","row","rowIndex","canCopy","modelRow","getModelRow","valueForCell","valueText","textForCell","settings","dateFilterFormatter","timeZone","showTimeZone","showTSeparator","defaultDateTimeFormatString","previewFilterFormatter","isFilterable","filterMenu","nullFilterActions","groups","high","isBooleanType","booleanFilterActions","numberValueText","numberFilterActions","dateValueText","format","previewValue","dateFilterActions","stringFilterActions","gotoRow","GOTO_ROW","GROUP_GOTO","toggleGotoRow","copyCell","onContextMenu","event","y","columnHeaderDepth","getModelColumn","isFilterBarShown","selectedRanges","columnHeaderHeight","gridY","columnHeaderMaxDepth","removeColumnFilter","has","COPY","copyRanges","isEditable","GROUP_EDIT","deleteRanges","gridWrapper","triggerMenu","pageX","pageY","formatter","selectedFormat","getColumnFormat","formatOptions","getOptions","description","isSelected","i","getColumnIndexByName","isDecimalType","isIntegerType","TYPE_CONTEXT_CUSTOM","quickFilter","newQuickFilter","text","menuElement","setQuickFilter","low","notEq","contains","not","isFinite","valueFilter","greaterThanOrEqualTo","lessThanOrEqualTo","isTrue","isFalse","isNull","sortActions","ascending","checkColumnSort","descending","color","isMacPlatform","direction","isAbs"],"sources":["../../src/mousehandlers/IrisGridContextMenuHandler.tsx"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n dhFilterFilled,\n vsRemove,\n vsCheck,\n vsFilter,\n IconDefinition,\n} from '@deephaven/icons';\nimport debounce from 'lodash.debounce';\nimport {\n ContextAction,\n ContextActions,\n ContextActionUtils,\n GLOBAL_SHORTCUTS,\n} from '@deephaven/components';\nimport {\n EventHandlerResult,\n Grid,\n GridMouseHandler,\n GridPoint,\n isEditableGridModel,\n ModelIndex,\n} from '@deephaven/grid';\nimport dh, {\n Column,\n FilterCondition,\n FilterValue,\n Sort,\n} from '@deephaven/jsapi-shim';\nimport {\n TableColumnFormatter,\n DateTimeColumnFormatter,\n TableUtils,\n TableColumnFormat,\n IntegerColumnFormat,\n SortDirection,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport type { DebouncedFunc } from 'lodash';\nimport { assertNotNull, copyToClipboard } from '@deephaven/utils';\nimport {\n DateTimeFormatContextMenu,\n DecimalFormatContextMenu,\n IntegerFormatContextMenu,\n} from '../format-context-menus';\nimport './IrisGridContextMenuHandler.scss';\nimport SHORTCUTS from '../IrisGridShortcuts';\nimport IrisGrid from '../IrisGrid';\nimport { QuickFilter } from '../CommonTypes';\n\nconst log = Log.module('IrisGridContextMenuHandler');\n\nconst DEBOUNCE_UPDATE_FORMAT = 150;\nconst CONTEXT_MENU_DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss.SSSSSSSSS';\n\n/**\n * Used to eat the mouse event in the bottom right corner of the scroll bar\n */\nclass IrisGridContextMenuHandler extends GridMouseHandler {\n static GROUP_EDIT = ContextActions.groups.high + 10;\n\n static GROUP_HIDE_COLUMNS = ContextActions.groups.high + 25;\n\n static GROUP_FILTER = ContextActions.groups.high + 50;\n\n static GROUP_GOTO = ContextActions.groups.high + 51;\n\n static GROUP_SORT = ContextActions.groups.high + 75;\n\n static GROUP_COPY = ContextActions.groups.high + 100;\n\n static GROUP_FORMAT = ContextActions.groups.high + 150;\n\n static COLUMN_SORT_DIRECTION = {\n ascending: 'ASC',\n descending: 'DESC',\n none: null,\n } as const;\n\n /**\n * Get filter condition for quick filter and combines with a new filter using the operator specified,\n * returns new filter if no operator supplied.\n * @param columnFilter\n * @param newColumnFilter\n * @param operator\n */\n static getQuickFilterCondition(\n columnFilter: FilterCondition | null | undefined,\n newColumnFilter: FilterCondition,\n operator?: '&&' | '||' | null\n ): FilterCondition {\n if (columnFilter && operator === '&&') {\n return columnFilter.and(newColumnFilter);\n }\n if (columnFilter && operator === '||') {\n return columnFilter.or(newColumnFilter);\n }\n return newColumnFilter;\n }\n\n /**\n * combines filter text with operator if declared\n * @param filterText\n * @param newFilterText\n * @param operator\n */\n static getQuickFilterText(\n filterText: string | null | undefined,\n newFilterText: string,\n operator?: '&&' | '||' | null\n ): string {\n return operator && filterText != null\n ? `${filterText} ${operator} ${newFilterText}`\n : newFilterText;\n }\n\n /**\n * Converts operator to text string,\n */\n static getOperatorAsText(operator: '&&' | '||'): 'And' | 'Or' {\n return operator === '&&' ? 'And' : 'Or';\n }\n\n /**\n * Gets an equality filter for the provided numeric value\n * @param column The column to make the filter for\n * @param value The value to get the equality filter for\n */\n static getNumberValueEqualsFilter(\n column: Column,\n value: number\n ): FilterCondition {\n const columnFilter = column.filter();\n if (value === Number.POSITIVE_INFINITY) {\n return dh.FilterCondition.invoke('isInf', columnFilter).and(\n columnFilter.greaterThan(dh.FilterValue.ofNumber(0))\n );\n }\n if (value === Number.NEGATIVE_INFINITY) {\n return dh.FilterCondition.invoke('isInf', columnFilter).and(\n columnFilter.lessThan(dh.FilterValue.ofNumber(0))\n );\n }\n if (Number.isNaN(value)) {\n return dh.FilterCondition.invoke('isNaN', columnFilter);\n }\n\n const filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(\n column.type,\n value\n );\n return columnFilter.eq(filterValue);\n }\n\n static getFilterValueForNumberOrChar(\n columnType: string,\n value: unknown\n ): FilterValue {\n return TableUtils.isCharType(columnType)\n ? dh.FilterValue.ofString(String.fromCharCode(value as number))\n : dh.FilterValue.ofNumber(value);\n }\n\n irisGrid: IrisGrid;\n\n debouncedUpdateCustomFormat: DebouncedFunc<\n (modelIndex: number, selectedFormat: TableColumnFormat | null) => void\n >;\n\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.debouncedUpdateCustomFormat = debounce(\n irisGrid.handleFormatSelection,\n DEBOUNCE_UPDATE_FORMAT\n );\n\n this.irisGrid = irisGrid;\n }\n\n componentWillUnmount(): void {\n this.debouncedUpdateCustomFormat.flush();\n }\n\n getHeaderActions(\n modelIndex: ModelIndex,\n gridPoint: GridPoint\n ): ContextAction[] {\n const { irisGrid } = this;\n const { column: visibleIndex } = gridPoint;\n assertNotNull(visibleIndex);\n const { model } = irisGrid.props;\n const { columns } = model;\n const column = columns[modelIndex];\n\n const actions = [] as ContextAction[];\n\n const {\n metrics,\n reverseType,\n quickFilters,\n advancedFilters,\n searchFilter,\n } = irisGrid.state;\n const theme = irisGrid.getTheme();\n assertNotNull(metrics);\n const {\n filterIconColor,\n filterBarActiveColor,\n contextMenuSortIconColor,\n contextMenuReverseIconColor,\n } = theme;\n\n const modelSort = model.sort;\n const columnSort = TableUtils.getSortForColumn(modelSort, modelIndex);\n const hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;\n const { userColumnWidths } = metrics;\n const isColumnHidden = [...userColumnWidths.values()].some(\n columnWidth => columnWidth === 0\n );\n const isColumnFreezable =\n model.getColumnHeaderParentGroup(modelIndex, 0) === undefined;\n const isColumnFrozen = model.isColumnFrozen(modelIndex);\n actions.push({\n title: 'Hide Column',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n this.irisGrid.hideColumnByVisibleIndex(visibleIndex);\n },\n });\n actions.push({\n title: isColumnFrozen ? 'Unfreeze Column' : 'Freeze Column',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n disabled: !isColumnFreezable,\n action: () => {\n if (isColumnFrozen) {\n this.irisGrid.unFreezeColumnByColumnName(column.name);\n } else {\n this.irisGrid.freezeColumnByColumnName(column.name);\n }\n },\n order: 10,\n });\n actions.push({\n title: 'Show All Columns',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n this.irisGrid.showAllColumns();\n },\n disabled: !isColumnHidden,\n });\n actions.push({\n title: 'Quick Filters',\n icon: vsRemove,\n iconColor: filterBarActiveColor,\n shortcut: SHORTCUTS.TABLE.TOGGLE_QUICK_FILTER,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 10,\n action: () => {\n this.irisGrid.toggleFilterBar(visibleIndex);\n },\n });\n actions.push({\n title: 'Advanced Filters',\n icon: advancedFilters.get(modelIndex) ? dhFilterFilled : vsFilter,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 20,\n action: () => {\n this.irisGrid.handleAdvancedMenuOpened(visibleIndex);\n },\n });\n actions.push({\n title: 'Clear Table Filters',\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 40,\n // this just displays the shortcut, the actual listener is in irisgrid handleKeyDown\n shortcut: SHORTCUTS.TABLE.CLEAR_FILTERS,\n action: () => {\n this.irisGrid.clearAllFilters();\n },\n disabled: !(\n quickFilters.size > 0 ||\n advancedFilters.size > 0 ||\n searchFilter != null\n ),\n });\n actions.push({\n title: 'Sort by',\n icon: vsRemove,\n iconColor: contextMenuSortIconColor,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 10,\n actions: this.sortByActions(column, modelIndex, columnSort),\n });\n actions.push({\n title: 'Add Additional Sort',\n /**\n * disable conditions:\n * 1. table is sorted only by this column\n * 2. table is only reversed\n * 3. 1 & 2 combined\n * 4. table has no sort\n * reverse is a type of sort, so needs to be accounted for in exclusions\n * */\n disabled:\n (columnSort && modelSort.length === 1) ||\n (hasReverse && modelSort.length === 1) ||\n (columnSort && hasReverse && modelSort.length === 2) ||\n modelSort.length === 0,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 20,\n actions: this.additionalSortActions(column, modelIndex),\n });\n actions.push({\n title: 'Clear Table Sorting',\n disabled:\n // reverse is a type of sort, but special and needs to be exluded despite being part of model.sort\n modelSort.length === 0 || (hasReverse && modelSort.length === 1),\n group: IrisGridContextMenuHandler.GROUP_SORT,\n action: () => {\n this.irisGrid.sortColumn(\n visibleIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.none\n );\n },\n order: 30,\n });\n actions.push({\n title:\n reverseType === TableUtils.REVERSE_TYPE.NONE\n ? 'Reverse Table'\n : 'Clear Reverse Table',\n icon: vsRemove,\n iconColor: contextMenuReverseIconColor,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 40,\n disabled: !model.isReversible,\n // this just displays the shortcut, the actual listener is in irisgrid handleKeyDown\n shortcut: SHORTCUTS.TABLE.REVERSE,\n action: () => {\n if (reverseType === TableUtils.REVERSE_TYPE.NONE) {\n this.irisGrid.reverse(TableUtils.REVERSE_TYPE.POST_SORT);\n } else {\n this.irisGrid.reverse(TableUtils.REVERSE_TYPE.NONE);\n }\n },\n });\n actions.push({\n title: 'Copy Column Name',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n action: () => {\n copyToClipboard(model.textForColumnHeader(modelIndex) ?? '').catch(e =>\n log.error('Unable to copy header', e)\n );\n },\n });\n\n if (TableUtils.isDateType(column.type)) {\n actions.push({\n title: 'Date/Time Format',\n group: IrisGridContextMenuHandler.GROUP_FORMAT,\n actions: this.dateFormatActions(column),\n });\n } else if (TableUtils.isNumberType(column.type)) {\n actions.push({\n title: 'Number Format',\n group: IrisGridContextMenuHandler.GROUP_FORMAT,\n actions: this.numberFormatActions(column) ?? undefined,\n });\n }\n return actions;\n }\n\n getCellActions(\n modelColumn: number | undefined | null,\n grid: Grid,\n gridPoint: GridPoint\n ): ContextAction[] {\n assertNotNull(modelColumn);\n const { irisGrid } = this;\n const { column: columnIndex, row: rowIndex } = gridPoint;\n const { model, canCopy } = irisGrid.props;\n const { columns } = model;\n const modelRow = irisGrid.getModelRow(rowIndex);\n assertNotNull(modelRow);\n const value = model.valueForCell(modelColumn, modelRow);\n\n const valueText = model.textForCell(modelColumn, modelRow);\n const column = columns[modelColumn];\n\n const actions = [] as ContextAction[];\n\n const { quickFilters } = irisGrid.state;\n const theme = irisGrid.getTheme();\n const { filterIconColor } = theme;\n const { settings } = irisGrid.props;\n\n const dateFilterFormatter = new DateTimeColumnFormatter({\n timeZone: settings?.timeZone,\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT,\n });\n const previewFilterFormatter = new DateTimeColumnFormatter({\n timeZone: settings?.timeZone,\n showTimeZone: settings?.showTimeZone,\n showTSeparator: settings?.showTSeparator,\n defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT,\n });\n\n if (column == null || rowIndex == null) return actions;\n\n // grid data area context menu options\n if (model.isFilterable(modelColumn)) {\n // cell data area contextmenu options\n const filterMenu = {\n title: 'Filter by Value',\n icon: vsRemove,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 10,\n actions: [],\n } as {\n title: string;\n icon: IconDefinition;\n iconColor: string;\n group: number;\n order: number;\n actions: ContextAction[];\n };\n\n if (value == null) {\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'And',\n actions: this.nullFilterActions(\n column,\n quickFilters.get(modelColumn),\n '&&'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(...this.nullFilterActions(column));\n } else if (TableUtils.isBooleanType(column.type)) {\n // boolean should have OR condition, and handles it's own null menu options\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'Or',\n actions: this.booleanFilterActions(\n column,\n valueText,\n quickFilters.get(modelColumn),\n '||'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(\n ...this.booleanFilterActions(column, valueText)\n );\n } else if (\n TableUtils.isNumberType(column.type) ||\n TableUtils.isCharType(column.type)\n ) {\n // Chars get treated like numbers in terms of which filters are available\n assertNotNull(modelColumn);\n // We want to show the full unformatted value if it's a number, so user knows which value they are matching\n // If it's a Char we just show the char\n const numberValueText = TableUtils.isCharType(column.type)\n ? String.fromCharCode(value as number)\n : `${value}`;\n\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'And',\n actions: this.numberFilterActions(\n column,\n numberValueText,\n value,\n quickFilters.get(modelColumn),\n '&&'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(\n ...this.numberFilterActions(\n column,\n numberValueText,\n value,\n quickFilters.get(modelColumn)\n )\n );\n } else if (TableUtils.isDateType(column.type)) {\n const dateValueText = dateFilterFormatter.format(value as Date);\n const previewValue = previewFilterFormatter.format(value as Date);\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'And',\n actions: this.dateFilterActions(\n column,\n dateValueText,\n previewValue,\n value,\n quickFilters.get(modelColumn),\n '&&'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(\n ...this.dateFilterActions(\n column,\n dateValueText,\n previewValue,\n value,\n quickFilters.get(modelColumn)\n )\n );\n } else {\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'And',\n\n actions: this.stringFilterActions(\n column,\n valueText,\n value,\n quickFilters.get(modelColumn),\n '&&'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(\n ...this.stringFilterActions(column, valueText, value)\n );\n }\n\n if (filterMenu.actions != null && filterMenu.actions.length > 0) {\n actions.push(filterMenu);\n }\n }\n\n const gotoRow = {\n title: 'Go to',\n iconColor: filterIconColor,\n shortcut: SHORTCUTS.TABLE.GOTO_ROW,\n group: IrisGridContextMenuHandler.GROUP_GOTO,\n order: 10,\n action: () =>\n this.irisGrid.toggleGotoRow(`${rowIndex + 1}`, `${value}`, column.name),\n };\n actions.push(gotoRow);\n\n if (canCopy) {\n actions.push({\n title: 'Copy Cell',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 10,\n action: () => {\n irisGrid.copyCell(columnIndex, rowIndex);\n },\n });\n\n actions.push({\n title: 'Copy Cell Unformatted',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 20,\n action: () => {\n irisGrid.copyCell(columnIndex, rowIndex, true);\n },\n });\n }\n\n return actions;\n }\n\n onContextMenu(\n gridPoint: GridPoint,\n grid: Grid,\n event: React.MouseEvent<Element, MouseEvent>\n ): EventHandlerResult {\n const { irisGrid } = this;\n const {\n y,\n column: columnIndex,\n row: rowIndex,\n columnHeaderDepth,\n } = gridPoint;\n const modelColumn = irisGrid.getModelColumn(columnIndex);\n const modelRow = irisGrid.getModelRow(rowIndex);\n\n const { model, canCopy } = irisGrid.props;\n const { columns } = model;\n\n const {\n metrics,\n isFilterBarShown,\n quickFilters,\n advancedFilters,\n selectedRanges,\n } = irisGrid.state;\n\n assertNotNull(metrics);\n\n const { columnHeaderHeight, gridY, columnHeaderMaxDepth } = metrics;\n\n const actions = [] as ContextAction[];\n\n if (modelColumn != null && modelRow != null) {\n const value = model.valueForCell(modelColumn, modelRow);\n\n const valueText = model.textForCell(modelColumn, modelRow);\n const column = columns[modelColumn];\n\n const { onContextMenu } = irisGrid.props;\n\n if (column != null) {\n actions.push(\n onContextMenu({\n model,\n value,\n valueText,\n column,\n rowIndex,\n columnIndex,\n modelRow,\n modelColumn,\n })\n );\n }\n }\n\n if (modelColumn != null && model.isFilterable(modelColumn)) {\n // Clear column filter should still be available after last row\n // And should be available in both header and body context menus\n actions.push({\n title: 'Clear Column Filter',\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 30,\n action: () => {\n this.irisGrid.removeColumnFilter(modelColumn);\n },\n disabled: !(\n quickFilters.has(modelColumn) || advancedFilters.has(modelColumn)\n ),\n });\n }\n\n if (\n isFilterBarShown\n ? y <= gridY\n : y <= columnHeaderHeight * columnHeaderMaxDepth &&\n columnHeaderDepth === 0\n ) {\n // grid header context menu options\n if (modelColumn != null) {\n actions.push(...this.getHeaderActions(modelColumn, gridPoint));\n }\n } else {\n // grid body context menu options\n if (modelColumn != null && modelRow != null) {\n actions.push(...this.getCellActions(modelColumn, grid, gridPoint));\n }\n\n // blank space context menu options\n if (canCopy && selectedRanges.length > 0) {\n actions.push({\n title: 'Copy Selection',\n shortcut: GLOBAL_SHORTCUTS.COPY,\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 30,\n action: () => {\n irisGrid.copyRanges(selectedRanges);\n },\n });\n\n actions.push({\n title: 'Copy Selection w/ Headers',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 40,\n action: () => {\n irisGrid.copyRanges(selectedRanges, true);\n },\n });\n }\n\n if (\n isEditableGridModel(model) &&\n model.isEditable &&\n selectedRanges.length > 0\n ) {\n actions.push({\n title: 'Delete Selected Rows',\n group: IrisGridContextMenuHandler.GROUP_EDIT,\n order: 50,\n action: () => {\n this.irisGrid.deleteRanges(selectedRanges);\n },\n });\n }\n }\n\n if (actions.length === 0) {\n return false;\n }\n\n assertNotNull(irisGrid.gridWrapper);\n\n ContextActions.triggerMenu(\n irisGrid.gridWrapper,\n event.pageX,\n event.pageY,\n actions\n );\n return true;\n }\n\n dateFormatActions(column: Column): ContextAction[] {\n const { model } = this.irisGrid.props;\n const { formatter } = model;\n const selectedFormat = formatter.getColumnFormat(column.type, column.name);\n\n const formatOptions = DateTimeFormatContextMenu.getOptions(\n formatter,\n selectedFormat\n );\n\n const actions = [];\n\n for (let i = 0; i < formatOptions.length; i += 1) {\n const { description, format, group, isSelected, title } = formatOptions[\n i\n ];\n actions.push({\n title,\n description,\n icon: isSelected ? vsCheck : undefined,\n group,\n order: i,\n action: () => {\n const modelIndex = model.getColumnIndexByName(column.name);\n assertNotNull(modelIndex);\n this.irisGrid.handleFormatSelection(modelIndex, format);\n },\n });\n }\n return actions;\n }\n\n numberFormatActions(column: Column): ContextAction[] | null {\n const { model } = this.irisGrid.props;\n const { formatter } = model;\n const selectedFormat = formatter.getColumnFormat(\n column.type,\n column.name\n ) as IntegerColumnFormat;\n let formatOptions;\n\n const columnIndex = model.getColumnIndexByName(column.name);\n if (TableUtils.isDecimalType(column.type)) {\n formatOptions = DecimalFormatContextMenu.getOptions(\n selectedFormat,\n format => {\n assertNotNull(columnIndex);\n this.debouncedUpdateCustomFormat(columnIndex, format);\n }\n );\n } else if (TableUtils.isIntegerType(column.type)) {\n formatOptions = IntegerFormatContextMenu.getOptions(\n selectedFormat,\n format => {\n assertNotNull(columnIndex);\n this.debouncedUpdateCustomFormat(columnIndex, format);\n }\n );\n } else {\n log.error('Invalid column type in numberFormatActions');\n return null;\n }\n\n const actions = [];\n\n for (let i = 0; i < formatOptions.length; i += 1) {\n const { format, isSelected } = formatOptions[i];\n actions.push({\n ...formatOptions[i],\n icon: isSelected ? vsCheck : undefined,\n order: i,\n action: () => {\n if (\n columnIndex === undefined &&\n format &&\n format.type === TableColumnFormatter.TYPE_CONTEXT_CUSTOM\n ) {\n return;\n }\n assertNotNull(columnIndex);\n this.irisGrid.handleFormatSelection(columnIndex, format);\n },\n });\n }\n return actions;\n }\n\n stringFilterActions(\n column: Column,\n valueText: string | null,\n value?: unknown,\n quickFilter?: QuickFilter,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n const filterValue = dh.FilterValue.ofString(value);\n let newQuickFilter:\n | {\n filter: null | FilterCondition | undefined;\n text: string | null;\n }\n | undefined\n | null = quickFilter;\n if (!newQuickFilter) {\n newQuickFilter = { filter: null, text: null };\n }\n const { filter, text: filterText } = newQuickFilter;\n const actions = [];\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "{valueText}"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n\n actions.push({\n title: 'text is exactly',\n description: `Show only rows where ${column.name} is ${value} (case sensitive)`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().eq(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'text is not exactly',\n description: `Show only rows where ${column.name} is not ${valueText} (case sensitive)`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().notEq(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: `text contains`,\n description: `Show only rows where ${column.name} contains ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().contains(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `~${valueText}`,\n operator\n )\n );\n },\n order: 30,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'text does not contain',\n description: `Show only rows where ${column.name} does not contain ${value}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().contains(filterValue).not(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!~${valueText}`,\n operator\n )\n );\n },\n order: 40,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'text starts with',\n description: `Show only rows where ${column.name} starts with ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().invoke('startsWith', filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `${valueText}*`,\n operator\n )\n );\n },\n order: 50,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'text ends with',\n description: `Show only rows where ${column.name} ends with ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().invoke('endsWith', filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `*${valueText}`,\n operator\n )\n );\n },\n order: 60,\n group: ContextActions.groups.low,\n });\n return actions;\n }\n\n numberFilterActions(\n column: Column,\n valueText: string,\n value: unknown,\n quickFilter?: QuickFilter | null,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n const filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(\n column.type,\n value\n );\n let filter: FilterCondition | null = null;\n let filterText: string | null = null;\n if (quickFilter) {\n filter = quickFilter.filter;\n filterText = quickFilter.text;\n }\n const actions = [];\n const isFinite =\n value !== Number.POSITIVE_INFINITY &&\n value !== Number.NEGATIVE_INFINITY &&\n !Number.isNaN(value);\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "{valueText}"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n actions.push({\n title: 'is equal to',\n description: `Show only rows where ${column.name} is ${valueText}`,\n action: () => {\n const valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(\n column,\n value as number\n );\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n valueFilter,\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'is not equal to',\n description: `Show only rows where ${column.name} is not ${valueText}`,\n action: () => {\n const valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(\n column,\n value as number\n ).not();\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n valueFilter,\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n\n // IDS-6092 Less/greater than filters don't make sense for Infinite/NaN\n // TODO (DH-11799): These char filters should work in Bard, with the merge for DH-11040: https://gitlab.eng.illumon.com/illumon/iris/merge_requests/5801\n // They do not work in Powell though, so disable them.\n if (isFinite && !TableUtils.isCharType(column.type)) {\n actions.push({\n title: 'greater than',\n description: `Show only rows where ${column.name} is greater than ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThan(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>${valueText}`,\n operator\n )\n );\n },\n order: 30,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'greater than or equal to',\n description: `Show only rows where ${column.name} is greater than or equal to ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThanOrEqualTo(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>=${valueText}`,\n operator\n )\n );\n },\n order: 40,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'less than',\n description: `Show only rows where ${column.name} is less than ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThan(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<${valueText}`,\n operator\n )\n );\n },\n order: 50,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'less than or equal to',\n description: `Show only rows where ${column.name} is less than or equal to ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThanOrEqualTo(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<=${valueText}`,\n operator\n )\n );\n },\n order: 60,\n group: ContextActions.groups.low,\n });\n }\n return actions;\n }\n\n booleanFilterActions(\n column: Column,\n valueText: string | null,\n quickFilter?: QuickFilter | null,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n const actions: ContextAction[] = [];\n\n const { model } = this.irisGrid.props;\n const { filter, text: filterText } = quickFilter || {};\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "{valueText ?? 'null'}"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n\n actions.push({\n title: 'true',\n description: `Show only rows where ${column.name} is true`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isTrue(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'true',\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'false',\n description: `Show only rows where ${column.name} is false`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isFalse(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'false',\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'is null',\n description: `Show only rows where ${column.name} is null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'null',\n operator\n )\n );\n },\n order: 30,\n group: ContextActions.groups.low,\n });\n\n actions.push({\n title: 'is not null',\n description: `Show only rows where ${column.name} is not null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull().not(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n '!null',\n operator\n )\n );\n },\n order: 40,\n group: ContextActions.groups.low,\n });\n\n return actions;\n }\n\n dateFilterActions(\n column: Column,\n valueText: string,\n previewValue: unknown,\n value: unknown,\n quickFilter?: QuickFilter | null,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n const filterValue = dh.FilterValue.ofNumber(value);\n\n let filter: FilterCondition | null = null;\n let filterText: string | null = null;\n if (quickFilter) {\n filter = quickFilter.filter;\n filterText = quickFilter.text;\n }\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n\n const actions = [];\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "{previewValue}"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n actions.push({\n title: 'date is',\n description: `Show only rows where ${column.name} is ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().eq(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is not',\n description: `Show only rows where ${column.name} is not ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().notEq(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is before',\n description: `Show only rows where ${column.name} is before ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThan(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<${valueText}`,\n operator\n )\n );\n },\n order: 30,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is before or equal',\n description: `Show only rows where ${column.name} is before or equal to ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThanOrEqualTo(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<=${valueText}`,\n operator\n )\n );\n },\n order: 40,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is after',\n description: `Show only rows where ${column.name} is greater than ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThan(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>${valueText}`,\n operator\n )\n );\n },\n order: 50,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is after or equal',\n description: `Show only rows where ${column.name} is after or equal to ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThanOrEqualTo(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>=${valueText}`,\n operator\n )\n );\n },\n order: 60,\n group: ContextActions.groups.low,\n });\n return actions;\n }\n\n nullFilterActions(\n column: Column,\n quickFilter?: QuickFilter,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n let filter: FilterCondition | null = null;\n let filterText: string | null = null;\n if (quickFilter) {\n filter = quickFilter.filter;\n filterText = quickFilter.text;\n }\n const actions = [];\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "null"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n actions.push({\n title: 'is null',\n description: `Show only rows where ${column.name} is null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'null',\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'is not null',\n description: `Show only rows where ${column.name} is not null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull().not(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n '!null',\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n\n return actions;\n }\n\n sortByActions(\n column: Column,\n modelColumn: ModelIndex,\n columnSort: Sort | null\n ): ContextAction[] {\n const theme = this.irisGrid.getTheme();\n const { contextMenuSortIconColor } = theme;\n const sortActions = [\n {\n title: `${column.name} Ascending`,\n order: 10,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending\n )\n ? vsRemove\n : undefined,\n iconColor: contextMenuSortIconColor,\n },\n {\n title: `${column.name} Descending`,\n order: 20,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending\n )\n ? vsRemove\n : undefined,\n iconColor: contextMenuSortIconColor,\n },\n {\n title: `Remove Sort`,\n order: 50,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.none,\n false,\n true\n );\n },\n disabled: !columnSort,\n },\n ];\n if (TableUtils.isNumberType(column.type)) {\n sortActions.push({\n title: `ABS(${column.name}) Ascending`,\n order: 30,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true\n )\n ? vsRemove\n : undefined,\n iconColor: contextMenuSortIconColor,\n });\n sortActions.push({\n title: `ABS(${column.name}) Descending`,\n order: 40,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true\n )\n ? vsRemove\n : undefined,\n iconColor: contextMenuSortIconColor,\n });\n }\n return sortActions;\n }\n\n additionalSortActions(\n column: Column,\n columnIndex: ModelIndex\n ): ContextAction[] {\n const theme = this.irisGrid.getTheme();\n const { contextMenuSortIconColor } = theme;\n const additionalSortActions = [\n {\n title: 'Add Sort By',\n menuElement: (\n <div className=\"btn-context-menu menu-title\">\n <span className=\"icon\">\n <FontAwesomeIcon\n icon={vsRemove}\n style={{ color: contextMenuSortIconColor ?? undefined }}\n />\n </span>\n <span className=\"title\">Add Additional Sort</span>\n <span className=\"shortcut\">\n {ContextActionUtils.isMacPlatform() ? '⌘Click' : '^Click'}\n </span>\n </div>\n ),\n order: 1,\n },\n {\n title: `${column.name} Ascending`,\n order: 10,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n false,\n true\n );\n },\n },\n {\n title: `${column.name} Descending`,\n order: 20,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n false,\n true\n );\n },\n },\n ];\n if (TableUtils.isNumberType(column.type)) {\n additionalSortActions.push({\n title: `ABS(${column.name}) Ascending`,\n order: 30,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true,\n true\n );\n },\n });\n additionalSortActions.push({\n title: `ABS(${column.name}) Descending`,\n order: 40,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true,\n true\n );\n },\n });\n }\n return additionalSortActions;\n }\n\n checkColumnSort(\n columnSort?: Sort | null,\n direction: SortDirection = null,\n isAbs = false\n ): boolean {\n if (!columnSort) {\n return false;\n }\n return columnSort.direction === direction && columnSort.isAbs === isAbs;\n }\n}\n\nexport default IrisGridContextMenuHandler;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridContextMenuHandler.js","names":["React","FontAwesomeIcon","dhFilterFilled","vsRemove","vsCheck","vsFilter","debounce","ContextActions","ContextActionUtils","GLOBAL_SHORTCUTS","GridMouseHandler","GridRenderer","isEditableGridModel","isExpandableGridModel","dh","TableColumnFormatter","DateTimeColumnFormatter","TableUtils","Log","assertNotNull","copyToClipboard","DateTimeFormatContextMenu","DecimalFormatContextMenu","IntegerFormatContextMenu","SHORTCUTS","log","module","DEBOUNCE_UPDATE_FORMAT","CONTEXT_MENU_DATE_FORMAT","IrisGridContextMenuHandler","getQuickFilterCondition","columnFilter","newColumnFilter","operator","and","or","getQuickFilterText","filterText","newFilterText","getOperatorAsText","getNumberValueEqualsFilter","column","value","filter","Number","POSITIVE_INFINITY","FilterCondition","invoke","greaterThan","FilterValue","ofNumber","NEGATIVE_INFINITY","lessThan","isNaN","filterValue","getFilterValueForNumberOrChar","type","eq","columnType","isCharType","ofString","String","fromCharCode","getRowOptionFormatted","command","cellValue","len","truncate","length","constructor","irisGrid","debouncedUpdateCustomFormat","handleFormatSelection","componentWillUnmount","flush","getHeaderActions","modelIndex","gridPoint","visibleIndex","model","props","columns","actions","metrics","reverseType","quickFilters","advancedFilters","searchFilter","state","theme","getTheme","filterIconColor","filterBarActiveColor","contextMenuSortIconColor","contextMenuReverseIconColor","modelSort","sort","columnSort","getSortForColumn","hasReverse","REVERSE_TYPE","NONE","userColumnWidths","isColumnHidden","values","some","columnWidth","isColumnFreezable","getColumnHeaderParentGroup","undefined","isColumnFrozen","push","title","group","GROUP_HIDE_COLUMNS","action","hideColumnByVisibleIndex","disabled","unFreezeColumnByColumnName","name","freezeColumnByColumnName","order","showAllColumns","icon","iconColor","shortcut","TABLE","TOGGLE_QUICK_FILTER","GROUP_FILTER","toggleFilterBar","get","handleAdvancedMenuOpened","CLEAR_FILTERS","clearAllFilters","size","GROUP_SORT","sortByActions","additionalSortActions","sortColumn","COLUMN_SORT_DIRECTION","none","isReversible","REVERSE","reverse","POST_SORT","GROUP_COPY","textForColumnHeader","catch","e","error","isDateType","GROUP_FORMAT","dateFormatActions","isNumberType","numberFormatActions","getCellActions","modelColumn","grid","columnIndex","row","rowIndex","canCopy","modelRow","getModelRow","valueForCell","valueText","textForCell","settings","dateFilterFormatter","timeZone","showTimeZone","showTSeparator","defaultDateTimeFormatString","previewFilterFormatter","isFilterable","filterMenu","nullFilterActions","groups","high","isBooleanType","booleanFilterActions","numberValueText","numberFilterActions","dateValueText","format","previewValue","dateFilterActions","stringFilterActions","isRowExpandable","expandingColumn","groupedColumns","depthForRow","cellText","isRowExpanded","GROUP_EXPAND_COLLAPSE","setRowExpanded","isExpandAllAvailable","hasExpandableRows","expandAll","collapseAll","gotoRow","GOTO_ROW","GROUP_GOTO","toggleGotoRow","copyCell","onContextMenu","event","y","columnHeaderDepth","getModelColumn","isFilterBarShown","selectedRanges","columnHeaderHeight","gridY","columnHeaderMaxDepth","removeColumnFilter","has","COPY","copyRanges","isEditable","GROUP_EDIT","deleteRanges","gridWrapper","triggerMenu","pageX","pageY","formatter","selectedFormat","getColumnFormat","formatOptions","getOptions","description","isSelected","i","getColumnIndexByName","isDecimalType","isIntegerType","TYPE_CONTEXT_CUSTOM","quickFilter","newQuickFilter","text","menuElement","setQuickFilter","low","notEq","contains","not","isFinite","valueFilter","greaterThanOrEqualTo","lessThanOrEqualTo","isTrue","isFalse","isNull","sortActions","ascending","checkColumnSort","descending","color","isMacPlatform","direction","isAbs"],"sources":["../../src/mousehandlers/IrisGridContextMenuHandler.tsx"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n dhFilterFilled,\n vsRemove,\n vsCheck,\n vsFilter,\n IconDefinition,\n} from '@deephaven/icons';\nimport debounce from 'lodash.debounce';\nimport {\n ContextAction,\n ContextActions,\n ContextActionUtils,\n GLOBAL_SHORTCUTS,\n} from '@deephaven/components';\nimport {\n EventHandlerResult,\n Grid,\n GridMouseHandler,\n GridPoint,\n GridRenderer,\n isEditableGridModel,\n isExpandableGridModel,\n ModelIndex,\n} from '@deephaven/grid';\nimport dh, {\n Column,\n FilterCondition,\n FilterValue,\n Sort,\n} from '@deephaven/jsapi-shim';\nimport {\n TableColumnFormatter,\n DateTimeColumnFormatter,\n TableUtils,\n TableColumnFormat,\n IntegerColumnFormat,\n SortDirection,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport type { DebouncedFunc } from 'lodash';\nimport { assertNotNull, copyToClipboard } from '@deephaven/utils';\nimport {\n DateTimeFormatContextMenu,\n DecimalFormatContextMenu,\n IntegerFormatContextMenu,\n} from '../format-context-menus';\nimport './IrisGridContextMenuHandler.scss';\nimport SHORTCUTS from '../IrisGridShortcuts';\nimport IrisGrid from '../IrisGrid';\nimport { QuickFilter } from '../CommonTypes';\n\nconst log = Log.module('IrisGridContextMenuHandler');\n\nconst DEBOUNCE_UPDATE_FORMAT = 150;\nconst CONTEXT_MENU_DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss.SSSSSSSSS';\n\n/**\n * Used to eat the mouse event in the bottom right corner of the scroll bar\n */\nclass IrisGridContextMenuHandler extends GridMouseHandler {\n static GROUP_EDIT = ContextActions.groups.high + 10;\n\n static GROUP_HIDE_COLUMNS = ContextActions.groups.high + 25;\n\n static GROUP_FILTER = ContextActions.groups.high + 50;\n\n static GROUP_EXPAND_COLLAPSE = ContextActions.groups.high + 55;\n\n static GROUP_GOTO = ContextActions.groups.high + 60;\n\n static GROUP_SORT = ContextActions.groups.high + 75;\n\n static GROUP_COPY = ContextActions.groups.high + 100;\n\n static GROUP_FORMAT = ContextActions.groups.high + 150;\n\n static COLUMN_SORT_DIRECTION = {\n ascending: 'ASC',\n descending: 'DESC',\n none: null,\n } as const;\n\n /**\n * Get filter condition for quick filter and combines with a new filter using the operator specified,\n * returns new filter if no operator supplied.\n * @param columnFilter\n * @param newColumnFilter\n * @param operator\n */\n static getQuickFilterCondition(\n columnFilter: FilterCondition | null | undefined,\n newColumnFilter: FilterCondition,\n operator?: '&&' | '||' | null\n ): FilterCondition {\n if (columnFilter && operator === '&&') {\n return columnFilter.and(newColumnFilter);\n }\n if (columnFilter && operator === '||') {\n return columnFilter.or(newColumnFilter);\n }\n return newColumnFilter;\n }\n\n /**\n * combines filter text with operator if declared\n * @param filterText\n * @param newFilterText\n * @param operator\n */\n static getQuickFilterText(\n filterText: string | null | undefined,\n newFilterText: string,\n operator?: '&&' | '||' | null\n ): string {\n return operator && filterText != null\n ? `${filterText} ${operator} ${newFilterText}`\n : newFilterText;\n }\n\n /**\n * Converts operator to text string,\n */\n static getOperatorAsText(operator: '&&' | '||'): 'And' | 'Or' {\n return operator === '&&' ? 'And' : 'Or';\n }\n\n /**\n * Gets an equality filter for the provided numeric value\n * @param column The column to make the filter for\n * @param value The value to get the equality filter for\n */\n static getNumberValueEqualsFilter(\n column: Column,\n value: number\n ): FilterCondition {\n const columnFilter = column.filter();\n if (value === Number.POSITIVE_INFINITY) {\n return dh.FilterCondition.invoke('isInf', columnFilter).and(\n columnFilter.greaterThan(dh.FilterValue.ofNumber(0))\n );\n }\n if (value === Number.NEGATIVE_INFINITY) {\n return dh.FilterCondition.invoke('isInf', columnFilter).and(\n columnFilter.lessThan(dh.FilterValue.ofNumber(0))\n );\n }\n if (Number.isNaN(value)) {\n return dh.FilterCondition.invoke('isNaN', columnFilter);\n }\n\n const filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(\n column.type,\n value\n );\n return columnFilter.eq(filterValue);\n }\n\n static getFilterValueForNumberOrChar(\n columnType: string,\n value: unknown\n ): FilterValue {\n return TableUtils.isCharType(columnType)\n ? dh.FilterValue.ofString(String.fromCharCode(value as number))\n : dh.FilterValue.ofNumber(value);\n }\n\n static getRowOptionFormatted(\n command: string,\n cellValue: string,\n len = 30\n ): string {\n return `${command} \"${GridRenderer.truncate(\n cellValue,\n len - command.length - 3\n )}\"`;\n }\n\n irisGrid: IrisGrid;\n\n debouncedUpdateCustomFormat: DebouncedFunc<\n (modelIndex: number, selectedFormat: TableColumnFormat | null) => void\n >;\n\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.debouncedUpdateCustomFormat = debounce(\n irisGrid.handleFormatSelection,\n DEBOUNCE_UPDATE_FORMAT\n );\n\n this.irisGrid = irisGrid;\n }\n\n componentWillUnmount(): void {\n this.debouncedUpdateCustomFormat.flush();\n }\n\n getHeaderActions(\n modelIndex: ModelIndex,\n gridPoint: GridPoint\n ): ContextAction[] {\n const { irisGrid } = this;\n const { column: visibleIndex } = gridPoint;\n assertNotNull(visibleIndex);\n const { model } = irisGrid.props;\n const { columns } = model;\n const column = columns[modelIndex];\n\n const actions = [] as ContextAction[];\n\n const {\n metrics,\n reverseType,\n quickFilters,\n advancedFilters,\n searchFilter,\n } = irisGrid.state;\n const theme = irisGrid.getTheme();\n assertNotNull(metrics);\n const {\n filterIconColor,\n filterBarActiveColor,\n contextMenuSortIconColor,\n contextMenuReverseIconColor,\n } = theme;\n\n const modelSort = model.sort;\n const columnSort = TableUtils.getSortForColumn(modelSort, modelIndex);\n const hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;\n const { userColumnWidths } = metrics;\n const isColumnHidden = [...userColumnWidths.values()].some(\n columnWidth => columnWidth === 0\n );\n const isColumnFreezable =\n model.getColumnHeaderParentGroup(modelIndex, 0) === undefined;\n const isColumnFrozen = model.isColumnFrozen(modelIndex);\n actions.push({\n title: 'Hide Column',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n this.irisGrid.hideColumnByVisibleIndex(visibleIndex);\n },\n });\n actions.push({\n title: isColumnFrozen ? 'Unfreeze Column' : 'Freeze Column',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n disabled: !isColumnFreezable,\n action: () => {\n if (isColumnFrozen) {\n this.irisGrid.unFreezeColumnByColumnName(column.name);\n } else {\n this.irisGrid.freezeColumnByColumnName(column.name);\n }\n },\n order: 10,\n });\n actions.push({\n title: 'Show All Columns',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n this.irisGrid.showAllColumns();\n },\n disabled: !isColumnHidden,\n });\n actions.push({\n title: 'Quick Filters',\n icon: vsRemove,\n iconColor: filterBarActiveColor,\n shortcut: SHORTCUTS.TABLE.TOGGLE_QUICK_FILTER,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 10,\n action: () => {\n this.irisGrid.toggleFilterBar(visibleIndex);\n },\n });\n actions.push({\n title: 'Advanced Filters',\n icon: advancedFilters.get(modelIndex) ? dhFilterFilled : vsFilter,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 20,\n action: () => {\n this.irisGrid.handleAdvancedMenuOpened(visibleIndex);\n },\n });\n actions.push({\n title: 'Clear Table Filters',\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 40,\n // this just displays the shortcut, the actual listener is in irisgrid handleKeyDown\n shortcut: SHORTCUTS.TABLE.CLEAR_FILTERS,\n action: () => {\n this.irisGrid.clearAllFilters();\n },\n disabled: !(\n quickFilters.size > 0 ||\n advancedFilters.size > 0 ||\n searchFilter != null\n ),\n });\n actions.push({\n title: 'Sort by',\n icon: vsRemove,\n iconColor: contextMenuSortIconColor,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 10,\n actions: this.sortByActions(column, modelIndex, columnSort),\n });\n actions.push({\n title: 'Add Additional Sort',\n /**\n * disable conditions:\n * 1. table is sorted only by this column\n * 2. table is only reversed\n * 3. 1 & 2 combined\n * 4. table has no sort\n * reverse is a type of sort, so needs to be accounted for in exclusions\n * */\n disabled:\n (columnSort && modelSort.length === 1) ||\n (hasReverse && modelSort.length === 1) ||\n (columnSort && hasReverse && modelSort.length === 2) ||\n modelSort.length === 0,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 20,\n actions: this.additionalSortActions(column, modelIndex),\n });\n actions.push({\n title: 'Clear Table Sorting',\n disabled:\n // reverse is a type of sort, but special and needs to be exluded despite being part of model.sort\n modelSort.length === 0 || (hasReverse && modelSort.length === 1),\n group: IrisGridContextMenuHandler.GROUP_SORT,\n action: () => {\n this.irisGrid.sortColumn(\n visibleIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.none\n );\n },\n order: 30,\n });\n actions.push({\n title:\n reverseType === TableUtils.REVERSE_TYPE.NONE\n ? 'Reverse Table'\n : 'Clear Reverse Table',\n icon: vsRemove,\n iconColor: contextMenuReverseIconColor,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 40,\n disabled: !model.isReversible,\n // this just displays the shortcut, the actual listener is in irisgrid handleKeyDown\n shortcut: SHORTCUTS.TABLE.REVERSE,\n action: () => {\n if (reverseType === TableUtils.REVERSE_TYPE.NONE) {\n this.irisGrid.reverse(TableUtils.REVERSE_TYPE.POST_SORT);\n } else {\n this.irisGrid.reverse(TableUtils.REVERSE_TYPE.NONE);\n }\n },\n });\n actions.push({\n title: 'Copy Column Name',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n action: () => {\n copyToClipboard(model.textForColumnHeader(modelIndex) ?? '').catch(e =>\n log.error('Unable to copy header', e)\n );\n },\n });\n\n if (TableUtils.isDateType(column.type)) {\n actions.push({\n title: 'Date/Time Format',\n group: IrisGridContextMenuHandler.GROUP_FORMAT,\n actions: this.dateFormatActions(column),\n });\n } else if (TableUtils.isNumberType(column.type)) {\n actions.push({\n title: 'Number Format',\n group: IrisGridContextMenuHandler.GROUP_FORMAT,\n actions: this.numberFormatActions(column) ?? undefined,\n });\n }\n return actions;\n }\n\n getCellActions(\n modelColumn: number | undefined | null,\n grid: Grid,\n gridPoint: GridPoint\n ): ContextAction[] {\n assertNotNull(modelColumn);\n const { irisGrid } = this;\n const { column: columnIndex, row: rowIndex } = gridPoint;\n const { model, canCopy } = irisGrid.props;\n const { columns } = model;\n const modelRow = irisGrid.getModelRow(rowIndex);\n assertNotNull(modelRow);\n const value = model.valueForCell(modelColumn, modelRow);\n\n const valueText = model.textForCell(modelColumn, modelRow);\n const column = columns[modelColumn];\n\n const actions = [] as ContextAction[];\n\n const { quickFilters } = irisGrid.state;\n const theme = irisGrid.getTheme();\n const { filterIconColor } = theme;\n const { settings } = irisGrid.props;\n\n const dateFilterFormatter = new DateTimeColumnFormatter({\n timeZone: settings?.timeZone,\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT,\n });\n const previewFilterFormatter = new DateTimeColumnFormatter({\n timeZone: settings?.timeZone,\n showTimeZone: settings?.showTimeZone,\n showTSeparator: settings?.showTSeparator,\n defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT,\n });\n\n if (column == null || rowIndex == null) return actions;\n\n // grid data area context menu options\n if (model.isFilterable(modelColumn)) {\n // cell data area contextmenu options\n const filterMenu = {\n title: 'Filter by Value',\n icon: vsRemove,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 10,\n actions: [],\n } as {\n title: string;\n icon: IconDefinition;\n iconColor: string;\n group: number;\n order: number;\n actions: ContextAction[];\n };\n\n if (value == null) {\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'And',\n actions: this.nullFilterActions(\n column,\n quickFilters.get(modelColumn),\n '&&'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(...this.nullFilterActions(column));\n } else if (TableUtils.isBooleanType(column.type)) {\n // boolean should have OR condition, and handles it's own null menu options\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'Or',\n actions: this.booleanFilterActions(\n column,\n valueText,\n quickFilters.get(modelColumn),\n '||'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(\n ...this.booleanFilterActions(column, valueText)\n );\n } else if (\n TableUtils.isNumberType(column.type) ||\n TableUtils.isCharType(column.type)\n ) {\n // Chars get treated like numbers in terms of which filters are available\n assertNotNull(modelColumn);\n // We want to show the full unformatted value if it's a number, so user knows which value they are matching\n // If it's a Char we just show the char\n const numberValueText = TableUtils.isCharType(column.type)\n ? String.fromCharCode(value as number)\n : `${value}`;\n\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'And',\n actions: this.numberFilterActions(\n column,\n numberValueText,\n value,\n quickFilters.get(modelColumn),\n '&&'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(\n ...this.numberFilterActions(\n column,\n numberValueText,\n value,\n quickFilters.get(modelColumn)\n )\n );\n } else if (TableUtils.isDateType(column.type)) {\n const dateValueText = dateFilterFormatter.format(value as Date);\n const previewValue = previewFilterFormatter.format(value as Date);\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'And',\n actions: this.dateFilterActions(\n column,\n dateValueText,\n previewValue,\n value,\n quickFilters.get(modelColumn),\n '&&'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(\n ...this.dateFilterActions(\n column,\n dateValueText,\n previewValue,\n value,\n quickFilters.get(modelColumn)\n )\n );\n } else {\n if (quickFilters.get(modelColumn)) {\n filterMenu.actions.push({\n title: 'And',\n\n actions: this.stringFilterActions(\n column,\n valueText,\n value,\n quickFilters.get(modelColumn),\n '&&'\n ),\n order: 2,\n group: ContextActions.groups.high,\n });\n }\n filterMenu.actions.push(\n ...this.stringFilterActions(column, valueText, value)\n );\n }\n\n if (filterMenu.actions != null && filterMenu.actions.length > 0) {\n actions.push(filterMenu);\n }\n }\n\n // Expand/Collapse options\n if (isExpandableGridModel(model) && model.isRowExpandable(modelRow)) {\n // If there are grouped columns, then it is a rollup\n // For rollups, the column number will be the depth minus one\n const expandingColumn =\n model.groupedColumns.length > 0 ? model.depthForRow(modelRow) - 1 : 0;\n const cellValue = model.valueForCell(expandingColumn, modelRow);\n const cellText =\n cellValue == null\n ? 'null'\n : model.textForCell(expandingColumn, modelRow);\n\n actions.push({\n title: IrisGridContextMenuHandler.getRowOptionFormatted(\n model.isRowExpanded(modelRow) ? 'Collapse' : 'Expand',\n cellText\n ),\n group: IrisGridContextMenuHandler.GROUP_EXPAND_COLLAPSE,\n order: 10,\n action: () => {\n model.setRowExpanded(modelRow, !model.isRowExpanded(modelRow));\n },\n });\n\n if (model.isExpandAllAvailable === true) {\n actions.push({\n title: IrisGridContextMenuHandler.getRowOptionFormatted(\n 'Expand All in',\n cellText\n ),\n group: IrisGridContextMenuHandler.GROUP_EXPAND_COLLAPSE,\n order: 20,\n action: () => {\n model.setRowExpanded(modelRow, true, true);\n },\n });\n }\n }\n\n if (\n isExpandableGridModel(model) &&\n model.hasExpandableRows &&\n model.isExpandAllAvailable === true\n ) {\n actions.push({\n title: 'Expand Entire Table',\n group: IrisGridContextMenuHandler.GROUP_EXPAND_COLLAPSE,\n order: 30,\n action: () => {\n model.expandAll();\n },\n });\n\n actions.push({\n title: 'Collapse Entire Table',\n group: IrisGridContextMenuHandler.GROUP_EXPAND_COLLAPSE,\n order: 40,\n action: () => {\n model.collapseAll();\n },\n });\n }\n\n const gotoRow = {\n title: 'Go to',\n iconColor: filterIconColor,\n shortcut: SHORTCUTS.TABLE.GOTO_ROW,\n group: IrisGridContextMenuHandler.GROUP_GOTO,\n order: 10,\n action: () =>\n this.irisGrid.toggleGotoRow(`${rowIndex + 1}`, `${value}`, column.name),\n };\n actions.push(gotoRow);\n\n if (canCopy) {\n actions.push({\n title: 'Copy Cell',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 10,\n action: () => {\n irisGrid.copyCell(columnIndex, rowIndex);\n },\n });\n\n actions.push({\n title: 'Copy Cell Unformatted',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 20,\n action: () => {\n irisGrid.copyCell(columnIndex, rowIndex, true);\n },\n });\n }\n\n return actions;\n }\n\n onContextMenu(\n gridPoint: GridPoint,\n grid: Grid,\n event: React.MouseEvent<Element, MouseEvent>\n ): EventHandlerResult {\n const { irisGrid } = this;\n const {\n y,\n column: columnIndex,\n row: rowIndex,\n columnHeaderDepth,\n } = gridPoint;\n const modelColumn = irisGrid.getModelColumn(columnIndex);\n const modelRow = irisGrid.getModelRow(rowIndex);\n\n const { model, canCopy } = irisGrid.props;\n const { columns } = model;\n\n const {\n metrics,\n isFilterBarShown,\n quickFilters,\n advancedFilters,\n selectedRanges,\n } = irisGrid.state;\n\n assertNotNull(metrics);\n\n const { columnHeaderHeight, gridY, columnHeaderMaxDepth } = metrics;\n\n const actions = [] as ContextAction[];\n\n if (modelColumn != null && modelRow != null) {\n const value = model.valueForCell(modelColumn, modelRow);\n\n const valueText = model.textForCell(modelColumn, modelRow);\n const column = columns[modelColumn];\n\n const { onContextMenu } = irisGrid.props;\n\n if (column != null) {\n actions.push(\n onContextMenu({\n model,\n value,\n valueText,\n column,\n rowIndex,\n columnIndex,\n modelRow,\n modelColumn,\n })\n );\n }\n }\n\n if (modelColumn != null && model.isFilterable(modelColumn)) {\n // Clear column filter should still be available after last row\n // And should be available in both header and body context menus\n actions.push({\n title: 'Clear Column Filter',\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 30,\n action: () => {\n this.irisGrid.removeColumnFilter(modelColumn);\n },\n disabled: !(\n quickFilters.has(modelColumn) || advancedFilters.has(modelColumn)\n ),\n });\n }\n\n if (\n isFilterBarShown\n ? y <= gridY\n : y <= columnHeaderHeight * columnHeaderMaxDepth &&\n columnHeaderDepth === 0\n ) {\n // grid header context menu options\n if (modelColumn != null) {\n actions.push(...this.getHeaderActions(modelColumn, gridPoint));\n }\n } else {\n // grid body context menu options\n if (modelColumn != null && modelRow != null) {\n actions.push(...this.getCellActions(modelColumn, grid, gridPoint));\n }\n\n // blank space context menu options\n if (canCopy && selectedRanges.length > 0) {\n actions.push({\n title: 'Copy Selection',\n shortcut: GLOBAL_SHORTCUTS.COPY,\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 30,\n action: () => {\n irisGrid.copyRanges(selectedRanges);\n },\n });\n\n actions.push({\n title: 'Copy Selection w/ Headers',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 40,\n action: () => {\n irisGrid.copyRanges(selectedRanges, true);\n },\n });\n }\n\n if (\n isEditableGridModel(model) &&\n model.isEditable &&\n selectedRanges.length > 0\n ) {\n actions.push({\n title: 'Delete Selected Rows',\n group: IrisGridContextMenuHandler.GROUP_EDIT,\n order: 50,\n action: () => {\n this.irisGrid.deleteRanges(selectedRanges);\n },\n });\n }\n }\n\n if (actions.length === 0) {\n return false;\n }\n\n assertNotNull(irisGrid.gridWrapper);\n\n ContextActions.triggerMenu(\n irisGrid.gridWrapper,\n event.pageX,\n event.pageY,\n actions\n );\n return true;\n }\n\n dateFormatActions(column: Column): ContextAction[] {\n const { model } = this.irisGrid.props;\n const { formatter } = model;\n const selectedFormat = formatter.getColumnFormat(column.type, column.name);\n\n const formatOptions = DateTimeFormatContextMenu.getOptions(\n formatter,\n selectedFormat\n );\n\n const actions = [];\n\n for (let i = 0; i < formatOptions.length; i += 1) {\n const { description, format, group, isSelected, title } = formatOptions[\n i\n ];\n actions.push({\n title,\n description,\n icon: isSelected ? vsCheck : undefined,\n group,\n order: i,\n action: () => {\n const modelIndex = model.getColumnIndexByName(column.name);\n assertNotNull(modelIndex);\n this.irisGrid.handleFormatSelection(modelIndex, format);\n },\n });\n }\n return actions;\n }\n\n numberFormatActions(column: Column): ContextAction[] | null {\n const { model } = this.irisGrid.props;\n const { formatter } = model;\n const selectedFormat = formatter.getColumnFormat(\n column.type,\n column.name\n ) as IntegerColumnFormat;\n let formatOptions;\n\n const columnIndex = model.getColumnIndexByName(column.name);\n if (TableUtils.isDecimalType(column.type)) {\n formatOptions = DecimalFormatContextMenu.getOptions(\n selectedFormat,\n format => {\n assertNotNull(columnIndex);\n this.debouncedUpdateCustomFormat(columnIndex, format);\n }\n );\n } else if (TableUtils.isIntegerType(column.type)) {\n formatOptions = IntegerFormatContextMenu.getOptions(\n selectedFormat,\n format => {\n assertNotNull(columnIndex);\n this.debouncedUpdateCustomFormat(columnIndex, format);\n }\n );\n } else {\n log.error('Invalid column type in numberFormatActions');\n return null;\n }\n\n const actions = [];\n\n for (let i = 0; i < formatOptions.length; i += 1) {\n const { format, isSelected } = formatOptions[i];\n actions.push({\n ...formatOptions[i],\n icon: isSelected ? vsCheck : undefined,\n order: i,\n action: () => {\n if (\n columnIndex === undefined &&\n format &&\n format.type === TableColumnFormatter.TYPE_CONTEXT_CUSTOM\n ) {\n return;\n }\n assertNotNull(columnIndex);\n this.irisGrid.handleFormatSelection(columnIndex, format);\n },\n });\n }\n return actions;\n }\n\n stringFilterActions(\n column: Column,\n valueText: string | null,\n value?: unknown,\n quickFilter?: QuickFilter,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n const filterValue = dh.FilterValue.ofString(value);\n let newQuickFilter:\n | {\n filter: null | FilterCondition | undefined;\n text: string | null;\n }\n | undefined\n | null = quickFilter;\n if (!newQuickFilter) {\n newQuickFilter = { filter: null, text: null };\n }\n const { filter, text: filterText } = newQuickFilter;\n const actions = [];\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "{valueText}"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n\n actions.push({\n title: 'text is exactly',\n description: `Show only rows where ${column.name} is ${value} (case sensitive)`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().eq(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'text is not exactly',\n description: `Show only rows where ${column.name} is not ${valueText} (case sensitive)`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().notEq(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: `text contains`,\n description: `Show only rows where ${column.name} contains ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().contains(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `~${valueText}`,\n operator\n )\n );\n },\n order: 30,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'text does not contain',\n description: `Show only rows where ${column.name} does not contain ${value}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().contains(filterValue).not(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!~${valueText}`,\n operator\n )\n );\n },\n order: 40,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'text starts with',\n description: `Show only rows where ${column.name} starts with ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().invoke('startsWith', filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `${valueText}*`,\n operator\n )\n );\n },\n order: 50,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'text ends with',\n description: `Show only rows where ${column.name} ends with ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().invoke('endsWith', filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `*${valueText}`,\n operator\n )\n );\n },\n order: 60,\n group: ContextActions.groups.low,\n });\n return actions;\n }\n\n numberFilterActions(\n column: Column,\n valueText: string,\n value: unknown,\n quickFilter?: QuickFilter | null,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n const filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(\n column.type,\n value\n );\n let filter: FilterCondition | null = null;\n let filterText: string | null = null;\n if (quickFilter) {\n filter = quickFilter.filter;\n filterText = quickFilter.text;\n }\n const actions = [];\n const isFinite =\n value !== Number.POSITIVE_INFINITY &&\n value !== Number.NEGATIVE_INFINITY &&\n !Number.isNaN(value);\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "{valueText}"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n actions.push({\n title: 'is equal to',\n description: `Show only rows where ${column.name} is ${valueText}`,\n action: () => {\n const valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(\n column,\n value as number\n );\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n valueFilter,\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'is not equal to',\n description: `Show only rows where ${column.name} is not ${valueText}`,\n action: () => {\n const valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(\n column,\n value as number\n ).not();\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n valueFilter,\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n\n // IDS-6092 Less/greater than filters don't make sense for Infinite/NaN\n // TODO (DH-11799): These char filters should work in Bard, with the merge for DH-11040: https://gitlab.eng.illumon.com/illumon/iris/merge_requests/5801\n // They do not work in Powell though, so disable them.\n if (isFinite && !TableUtils.isCharType(column.type)) {\n actions.push({\n title: 'greater than',\n description: `Show only rows where ${column.name} is greater than ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThan(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>${valueText}`,\n operator\n )\n );\n },\n order: 30,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'greater than or equal to',\n description: `Show only rows where ${column.name} is greater than or equal to ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThanOrEqualTo(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>=${valueText}`,\n operator\n )\n );\n },\n order: 40,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'less than',\n description: `Show only rows where ${column.name} is less than ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThan(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<${valueText}`,\n operator\n )\n );\n },\n order: 50,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'less than or equal to',\n description: `Show only rows where ${column.name} is less than or equal to ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThanOrEqualTo(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<=${valueText}`,\n operator\n )\n );\n },\n order: 60,\n group: ContextActions.groups.low,\n });\n }\n return actions;\n }\n\n booleanFilterActions(\n column: Column,\n valueText: string | null,\n quickFilter?: QuickFilter | null,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n const actions: ContextAction[] = [];\n\n const { model } = this.irisGrid.props;\n const { filter, text: filterText } = quickFilter || {};\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "{valueText ?? 'null'}"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n\n actions.push({\n title: 'true',\n description: `Show only rows where ${column.name} is true`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isTrue(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'true',\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'false',\n description: `Show only rows where ${column.name} is false`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isFalse(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'false',\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'is null',\n description: `Show only rows where ${column.name} is null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'null',\n operator\n )\n );\n },\n order: 30,\n group: ContextActions.groups.low,\n });\n\n actions.push({\n title: 'is not null',\n description: `Show only rows where ${column.name} is not null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull().not(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n '!null',\n operator\n )\n );\n },\n order: 40,\n group: ContextActions.groups.low,\n });\n\n return actions;\n }\n\n dateFilterActions(\n column: Column,\n valueText: string,\n previewValue: unknown,\n value: unknown,\n quickFilter?: QuickFilter | null,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n const filterValue = dh.FilterValue.ofNumber(value);\n\n let filter: FilterCondition | null = null;\n let filterText: string | null = null;\n if (quickFilter) {\n filter = quickFilter.filter;\n filterText = quickFilter.text;\n }\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n\n const actions = [];\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "{previewValue}"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n actions.push({\n title: 'date is',\n description: `Show only rows where ${column.name} is ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().eq(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is not',\n description: `Show only rows where ${column.name} is not ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().notEq(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is before',\n description: `Show only rows where ${column.name} is before ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThan(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<${valueText}`,\n operator\n )\n );\n },\n order: 30,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is before or equal',\n description: `Show only rows where ${column.name} is before or equal to ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThanOrEqualTo(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<=${valueText}`,\n operator\n )\n );\n },\n order: 40,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is after',\n description: `Show only rows where ${column.name} is greater than ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThan(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>${valueText}`,\n operator\n )\n );\n },\n order: 50,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'date is after or equal',\n description: `Show only rows where ${column.name} is after or equal to ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThanOrEqualTo(filterValue),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>=${valueText}`,\n operator\n )\n );\n },\n order: 60,\n group: ContextActions.groups.low,\n });\n return actions;\n }\n\n nullFilterActions(\n column: Column,\n quickFilter?: QuickFilter,\n operator?: '&&' | '||' | null\n ): ContextAction[] {\n let filter: FilterCondition | null = null;\n let filterText: string | null = null;\n if (quickFilter) {\n filter = quickFilter.filter;\n filterText = quickFilter.text;\n }\n const actions = [];\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {operator\n ? IrisGridContextMenuHandler.getOperatorAsText(operator)\n : ''}{' '}\n "null"\n </div>\n ),\n order: 1,\n group: ContextActions.groups.high,\n });\n actions.push({\n title: 'is null',\n description: `Show only rows where ${column.name} is null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'null',\n operator\n )\n );\n },\n order: 10,\n group: ContextActions.groups.low,\n });\n actions.push({\n title: 'is not null',\n description: `Show only rows where ${column.name} is not null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull().not(),\n operator\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n '!null',\n operator\n )\n );\n },\n order: 20,\n group: ContextActions.groups.low,\n });\n\n return actions;\n }\n\n sortByActions(\n column: Column,\n modelColumn: ModelIndex,\n columnSort: Sort | null\n ): ContextAction[] {\n const theme = this.irisGrid.getTheme();\n const { contextMenuSortIconColor } = theme;\n const sortActions = [\n {\n title: `${column.name} Ascending`,\n order: 10,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending\n )\n ? vsRemove\n : undefined,\n iconColor: contextMenuSortIconColor,\n },\n {\n title: `${column.name} Descending`,\n order: 20,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending\n )\n ? vsRemove\n : undefined,\n iconColor: contextMenuSortIconColor,\n },\n {\n title: `Remove Sort`,\n order: 50,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.none,\n false,\n true\n );\n },\n disabled: !columnSort,\n },\n ];\n if (TableUtils.isNumberType(column.type)) {\n sortActions.push({\n title: `ABS(${column.name}) Ascending`,\n order: 30,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true\n )\n ? vsRemove\n : undefined,\n iconColor: contextMenuSortIconColor,\n });\n sortActions.push({\n title: `ABS(${column.name}) Descending`,\n order: 40,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true\n )\n ? vsRemove\n : undefined,\n iconColor: contextMenuSortIconColor,\n });\n }\n return sortActions;\n }\n\n additionalSortActions(\n column: Column,\n columnIndex: ModelIndex\n ): ContextAction[] {\n const theme = this.irisGrid.getTheme();\n const { contextMenuSortIconColor } = theme;\n const additionalSortActions = [\n {\n title: 'Add Sort By',\n menuElement: (\n <div className=\"btn-context-menu menu-title\">\n <span className=\"icon\">\n <FontAwesomeIcon\n icon={vsRemove}\n style={{ color: contextMenuSortIconColor ?? undefined }}\n />\n </span>\n <span className=\"title\">Add Additional Sort</span>\n <span className=\"shortcut\">\n {ContextActionUtils.isMacPlatform() ? '⌘Click' : '^Click'}\n </span>\n </div>\n ),\n order: 1,\n },\n {\n title: `${column.name} Ascending`,\n order: 10,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n false,\n true\n );\n },\n },\n {\n title: `${column.name} Descending`,\n order: 20,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n false,\n true\n );\n },\n },\n ];\n if (TableUtils.isNumberType(column.type)) {\n additionalSortActions.push({\n title: `ABS(${column.name}) Ascending`,\n order: 30,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true,\n true\n );\n },\n });\n additionalSortActions.push({\n title: `ABS(${column.name}) Descending`,\n order: 40,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true,\n true\n );\n },\n });\n }\n return additionalSortActions;\n }\n\n checkColumnSort(\n columnSort?: Sort | null,\n direction: SortDirection = null,\n isAbs = false\n ): boolean {\n if (!columnSort) {\n return false;\n }\n return columnSort.direction === direction && columnSort.isAbs === isAbs;\n }\n}\n\nexport default IrisGridContextMenuHandler;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.1-beta.0+aeaf940",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@deephaven/components": "^0.
|
|
27
|
-
"@deephaven/console": "^0.
|
|
28
|
-
"@deephaven/filters": "^0.
|
|
29
|
-
"@deephaven/grid": "^0.
|
|
30
|
-
"@deephaven/icons": "^0.
|
|
31
|
-
"@deephaven/jsapi-shim": "^0.
|
|
32
|
-
"@deephaven/jsapi-utils": "^0.
|
|
33
|
-
"@deephaven/log": "^0.
|
|
34
|
-
"@deephaven/react-hooks": "^0.
|
|
35
|
-
"@deephaven/storage": "^0.
|
|
36
|
-
"@deephaven/utils": "^0.
|
|
26
|
+
"@deephaven/components": "^0.28.1-beta.0+aeaf940",
|
|
27
|
+
"@deephaven/console": "^0.28.1-beta.0+aeaf940",
|
|
28
|
+
"@deephaven/filters": "^0.28.1-beta.0+aeaf940",
|
|
29
|
+
"@deephaven/grid": "^0.28.1-beta.0+aeaf940",
|
|
30
|
+
"@deephaven/icons": "^0.28.1-beta.0+aeaf940",
|
|
31
|
+
"@deephaven/jsapi-shim": "^0.28.1-beta.0+aeaf940",
|
|
32
|
+
"@deephaven/jsapi-utils": "^0.28.1-beta.0+aeaf940",
|
|
33
|
+
"@deephaven/log": "^0.28.1-beta.0+aeaf940",
|
|
34
|
+
"@deephaven/react-hooks": "^0.28.1-beta.0+aeaf940",
|
|
35
|
+
"@deephaven/storage": "^0.28.1-beta.0+aeaf940",
|
|
36
|
+
"@deephaven/utils": "^0.28.1-beta.0+aeaf940",
|
|
37
37
|
"@dnd-kit/core": "^6.0.5",
|
|
38
38
|
"@dnd-kit/sortable": "^7.0.0",
|
|
39
39
|
"@dnd-kit/utilities": "^3.2.0",
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"react-dom": "^17.x"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@deephaven/mocks": "^0.
|
|
61
|
-
"@deephaven/tsconfig": "^0.
|
|
60
|
+
"@deephaven/mocks": "^0.28.1-beta.0+aeaf940",
|
|
61
|
+
"@deephaven/tsconfig": "^0.28.1-beta.0+aeaf940"
|
|
62
62
|
},
|
|
63
63
|
"files": [
|
|
64
64
|
"dist"
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"publishConfig": {
|
|
70
70
|
"access": "public"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "aeaf940b52b8a88322f4bcb9b7803c394937a28c"
|
|
73
73
|
}
|