@deephaven/iris-grid 1.22.1-alpha-pivot-builder.0 → 1.22.2-alpha-pivot-builder.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/AdvancedFilterCreator.js +65 -102
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js +22 -37
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js +37 -63
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +29 -59
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnHeaderGroup.js +6 -8
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/ColumnStatistics.js +22 -28
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CrossColumnSearch.js +20 -29
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/FilterInputField.js +19 -46
- package/dist/FilterInputField.js.map +1 -1
- package/dist/GotoRow.js +32 -29
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.js +490 -822
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.js +10 -11
- package/dist/IrisGridBottomBar.js.map +1 -1
- package/dist/IrisGridCacheUtils.js +28 -8
- package/dist/IrisGridCacheUtils.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.js +30 -13
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCellRendererUtils.js +6 -12
- package/dist/IrisGridCellRendererUtils.js.map +1 -1
- package/dist/IrisGridCopyHandler.js +28 -47
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridMetricCalculator.js +28 -51
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModelUpdater.js +32 -30
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridPartitionSelector.js +28 -62
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridProxyModel.js +7 -12
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.js +162 -264
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridTableModel.js +23 -16
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +49 -73
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.js +19 -19
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTextCellRenderer.js +35 -52
- package/dist/IrisGridTextCellRenderer.js.map +1 -1
- package/dist/IrisGridTheme.js +9 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridThemeProvider.js +5 -7
- package/dist/IrisGridThemeProvider.js.map +1 -1
- package/dist/IrisGridTreeTableModel.js +5 -9
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.js +246 -300
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/NoPastePermissionModal.js +3 -5
- package/dist/NoPastePermissionModal.js.map +1 -1
- package/dist/PendingDataBottomBar.js +27 -16
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/ToastBottomBar.js +16 -8
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js +11 -24
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/key-handlers/CopyCellKeyHandler.js +3 -4
- package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js +1 -3
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js +1 -3
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +35 -59
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +13 -29
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +8 -17
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +96 -199
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +2 -4
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js +16 -30
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +5 -13
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +20 -36
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js +3 -5
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js +9 -18
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js +10 -18
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js +12 -5
- package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
- package/dist/sidebar/ChartBuilder.js +45 -102
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js +35 -77
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.js +9 -11
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/InputEditor.js +17 -24
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js +6 -11
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -1
- package/dist/sidebar/RollupRows.js +72 -113
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js +16 -33
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +50 -74
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.js +18 -42
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js +25 -18
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js +3 -4
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js +45 -34
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +35 -24
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js +38 -21
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +27 -11
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +9 -11
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +48 -57
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js +35 -24
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.js +26 -11
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/SearchItem.js +5 -7
- package/dist/sidebar/visibility-ordering-builder/SearchItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js +24 -18
- package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +166 -256
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +4 -11
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +28 -14
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +16 -19
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +1 -3
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +19 -29
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js +39 -52
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +18 -23
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +19 -15
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +16 -30
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +30 -39
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
- package/package.json +16 -16
|
@@ -73,12 +73,15 @@ class IrisGridTestUtils {
|
|
|
73
73
|
return this.irisGridUtils.hydrateDhSort(columns, sortDescriptor);
|
|
74
74
|
}
|
|
75
75
|
makeTable() {
|
|
76
|
-
var {
|
|
77
|
-
columns =
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
77
|
+
_ref$columns = _ref.columns,
|
|
78
|
+
columns = _ref$columns === void 0 ? this.makeColumns() : _ref$columns,
|
|
79
|
+
_ref$size = _ref.size,
|
|
80
|
+
size = _ref$size === void 0 ? 1000000000 : _ref$size,
|
|
81
|
+
_ref$sort = _ref.sort,
|
|
82
|
+
sort = _ref$sort === void 0 ? [] : _ref$sort,
|
|
83
|
+
_ref$layoutHints = _ref.layoutHints,
|
|
84
|
+
layoutHints = _ref$layoutHints === void 0 ? {} : _ref$layoutHints;
|
|
82
85
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
86
|
var table = new this.dh.Table({
|
|
84
87
|
columns,
|
|
@@ -112,16 +115,15 @@ class IrisGridTestUtils {
|
|
|
112
115
|
static makeInputTable() {
|
|
113
116
|
var keyColumns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
114
117
|
var valueColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
115
|
-
var {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
keys
|
|
123
|
-
values
|
|
124
|
-
});
|
|
118
|
+
var _reduce = [...keyColumns, ...valueColumns].reduce((acc, col) => {
|
|
119
|
+
if (keyColumns.includes(col)) acc.keys.push(col.name);else acc.values.push(col.name);
|
|
120
|
+
return acc;
|
|
121
|
+
}, {
|
|
122
|
+
keys: [],
|
|
123
|
+
values: []
|
|
124
|
+
}),
|
|
125
|
+
keys = _reduce.keys,
|
|
126
|
+
values = _reduce.values;
|
|
125
127
|
return {
|
|
126
128
|
keys,
|
|
127
129
|
values
|
|
@@ -138,9 +140,7 @@ class IrisGridTestUtils {
|
|
|
138
140
|
var table = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeTable();
|
|
139
141
|
var formatter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
140
142
|
var inputTable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
141
|
-
var
|
|
142
|
-
dh
|
|
143
|
-
} = this;
|
|
143
|
+
var dh = this.dh;
|
|
144
144
|
return new IrisGridProxyModel(dh, table, formatter !== null && formatter !== void 0 ? formatter : new Formatter(dh), inputTable);
|
|
145
145
|
}
|
|
146
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTestUtils.js","names":["Formatter","IrisGridProxyModel","IrisGridUtils","IrisGridTestUtils","valueForCell","rowIndex","columnIndex","formatValue","value","concat","undefined","constructor","dh","_defineProperty","irisGridUtils","makeColumn","name","type","arguments","length","DEFAULT_TYPE","index","Column","makeRollupTableConfig","RollupTableConfig","makeColumns","count","prefix","columns","i","push","makeUserColumnWidths","userColumnWidths","Map","set","toString","makeRow","row","Row","get","jest","fn","column","makeFilter","FilterCondition","makeSort","Sort","hydrateSort","sortDescriptor","hydrateDhSort","makeTable","size","sort","layoutHints","table","Table","copy","Promise","resolve","freeze","makeTreeTable","aggregatedColumns","groupedColumns","TreeTable","makeInputTable","keyColumns","valueColumns","keys","values","reduce","acc","col","includes","makeSubscription","TableViewportSubscription","makeModel","formatter","inputTable"],"sources":["../src/IrisGridTestUtils.ts"],"sourcesContent":["import { type GridRangeIndex, type ModelSizeMap } from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Formatter, type SortDescriptor } from '@deephaven/jsapi-utils';\nimport IrisGridProxyModel from './IrisGridProxyModel';\nimport IrisGridUtils from './IrisGridUtils';\n\nclass IrisGridTestUtils {\n static DEFAULT_TYPE = 'java.lang.String';\n\n static valueForCell(\n rowIndex: GridRangeIndex,\n columnIndex: GridRangeIndex,\n formatValue?: boolean\n ): string {\n let value = `${rowIndex},${columnIndex}`;\n if (formatValue !== undefined && formatValue) {\n value = `(${value})`;\n }\n return value;\n }\n\n private dh: typeof DhType;\n\n private irisGridUtils: IrisGridUtils;\n\n constructor(dh: typeof DhType) {\n this.dh = dh;\n this.irisGridUtils = new IrisGridUtils(dh);\n }\n\n makeColumn(\n name?: string,\n type: string = IrisGridTestUtils.DEFAULT_TYPE,\n index = 0\n ): DhType.Column {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Column({ index, name, type });\n }\n\n makeRollupTableConfig(): DhType.RollupConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).RollupTableConfig();\n }\n\n makeColumns(count = 5, prefix = ''): DhType.Column[] {\n const columns = [];\n for (let i = 0; i < count; i += 1) {\n columns.push(\n this.makeColumn(`${prefix}${i}`, IrisGridTestUtils.DEFAULT_TYPE, i)\n );\n }\n return columns;\n }\n\n static makeUserColumnWidths(count = 5): ModelSizeMap {\n const userColumnWidths = new Map();\n for (let i = 0; i < count; i += 1) {\n userColumnWidths.set(i.toString(), 100);\n }\n return userColumnWidths;\n }\n\n makeRow(i: number): DhType.Row {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const row = new (this.dh as any).Row({ index: i, name: `${i}` });\n\n row.get = jest.fn(column =>\n IrisGridTestUtils.valueForCell(i, column.index)\n );\n\n return row;\n }\n\n makeFilter(): DhType.FilterCondition {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).FilterCondition();\n }\n\n makeSort(column: DhType.Column = this.makeColumn()): DhType.Sort {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Sort({ column });\n }\n\n hydrateSort(\n sortDescriptor: readonly SortDescriptor[],\n columns: DhType.Column[]\n ): DhType.Sort[] {\n return this.irisGridUtils.hydrateDhSort(columns, sortDescriptor);\n }\n\n makeTable({\n columns = this.makeColumns(),\n size = 1000000000,\n sort = [],\n layoutHints = {},\n }: {\n columns?: DhType.Column[];\n size?: number;\n sort?: readonly SortDescriptor[];\n layoutHints?: Partial<DhType.LayoutHints>;\n } = {}): DhType.Table {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).Table({ columns, size, sort });\n table.copy = jest.fn(() => Promise.resolve(table));\n table.freeze = jest.fn(() => Promise.resolve(table));\n table.layoutHints = layoutHints;\n return table;\n }\n\n makeTreeTable(\n columns = this.makeColumns(),\n aggregatedColumns: DhType.Column[] = [],\n groupedColumns: DhType.Column[] = [],\n size = 1000000000,\n sort = [],\n layoutHints?: Partial<DhType.LayoutHints>\n ): DhType.TreeTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).TreeTable({\n columns,\n aggregatedColumns,\n groupedColumns,\n size,\n sort,\n layoutHints,\n });\n table.copy = jest.fn(() => Promise.resolve(table));\n return table;\n }\n\n static makeInputTable(\n keyColumns: DhType.Column[] = [],\n valueColumns: DhType.Column[] = []\n ): DhType.InputTable {\n const { keys, values } = [...keyColumns, ...valueColumns].reduce(\n (acc, col) => {\n if (keyColumns.includes(col)) acc.keys.push(col.name);\n else acc.values.push(col.name);\n return acc;\n },\n { keys: [], values: [] } as { keys: string[]; values: string[] }\n );\n return { keys, values } as DhType.InputTable;\n }\n\n makeSubscription(table = this.makeTable()): DhType.TableViewportSubscription {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).TableViewportSubscription({ table });\n }\n\n makeModel(\n table = this.makeTable(),\n formatter: Formatter | null = null,\n inputTable: DhType.InputTable | null = null\n ): IrisGridProxyModel {\n const { dh } = this;\n return new IrisGridProxyModel(\n dh,\n table,\n formatter ?? new Formatter(dh),\n inputTable\n );\n }\n}\n\nexport default IrisGridTestUtils;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"IrisGridTestUtils.js","names":["Formatter","IrisGridProxyModel","IrisGridUtils","IrisGridTestUtils","valueForCell","rowIndex","columnIndex","formatValue","value","concat","undefined","constructor","dh","_defineProperty","irisGridUtils","makeColumn","name","type","arguments","length","DEFAULT_TYPE","index","Column","makeRollupTableConfig","RollupTableConfig","makeColumns","count","prefix","columns","i","push","makeUserColumnWidths","userColumnWidths","Map","set","toString","makeRow","row","Row","get","jest","fn","column","makeFilter","FilterCondition","makeSort","Sort","hydrateSort","sortDescriptor","hydrateDhSort","makeTable","_ref","_ref$columns","_ref$size","size","_ref$sort","sort","_ref$layoutHints","layoutHints","table","Table","copy","Promise","resolve","freeze","makeTreeTable","aggregatedColumns","groupedColumns","TreeTable","makeInputTable","keyColumns","valueColumns","_reduce","reduce","acc","col","includes","keys","values","makeSubscription","TableViewportSubscription","makeModel","formatter","inputTable"],"sources":["../src/IrisGridTestUtils.ts"],"sourcesContent":["import { type GridRangeIndex, type ModelSizeMap } from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Formatter, type SortDescriptor } from '@deephaven/jsapi-utils';\nimport IrisGridProxyModel from './IrisGridProxyModel';\nimport IrisGridUtils from './IrisGridUtils';\n\nclass IrisGridTestUtils {\n static DEFAULT_TYPE = 'java.lang.String';\n\n static valueForCell(\n rowIndex: GridRangeIndex,\n columnIndex: GridRangeIndex,\n formatValue?: boolean\n ): string {\n let value = `${rowIndex},${columnIndex}`;\n if (formatValue !== undefined && formatValue) {\n value = `(${value})`;\n }\n return value;\n }\n\n private dh: typeof DhType;\n\n private irisGridUtils: IrisGridUtils;\n\n constructor(dh: typeof DhType) {\n this.dh = dh;\n this.irisGridUtils = new IrisGridUtils(dh);\n }\n\n makeColumn(\n name?: string,\n type: string = IrisGridTestUtils.DEFAULT_TYPE,\n index = 0\n ): DhType.Column {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Column({ index, name, type });\n }\n\n makeRollupTableConfig(): DhType.RollupConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).RollupTableConfig();\n }\n\n makeColumns(count = 5, prefix = ''): DhType.Column[] {\n const columns = [];\n for (let i = 0; i < count; i += 1) {\n columns.push(\n this.makeColumn(`${prefix}${i}`, IrisGridTestUtils.DEFAULT_TYPE, i)\n );\n }\n return columns;\n }\n\n static makeUserColumnWidths(count = 5): ModelSizeMap {\n const userColumnWidths = new Map();\n for (let i = 0; i < count; i += 1) {\n userColumnWidths.set(i.toString(), 100);\n }\n return userColumnWidths;\n }\n\n makeRow(i: number): DhType.Row {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const row = new (this.dh as any).Row({ index: i, name: `${i}` });\n\n row.get = jest.fn(column =>\n IrisGridTestUtils.valueForCell(i, column.index)\n );\n\n return row;\n }\n\n makeFilter(): DhType.FilterCondition {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).FilterCondition();\n }\n\n makeSort(column: DhType.Column = this.makeColumn()): DhType.Sort {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Sort({ column });\n }\n\n hydrateSort(\n sortDescriptor: readonly SortDescriptor[],\n columns: DhType.Column[]\n ): DhType.Sort[] {\n return this.irisGridUtils.hydrateDhSort(columns, sortDescriptor);\n }\n\n makeTable({\n columns = this.makeColumns(),\n size = 1000000000,\n sort = [],\n layoutHints = {},\n }: {\n columns?: DhType.Column[];\n size?: number;\n sort?: readonly SortDescriptor[];\n layoutHints?: Partial<DhType.LayoutHints>;\n } = {}): DhType.Table {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).Table({ columns, size, sort });\n table.copy = jest.fn(() => Promise.resolve(table));\n table.freeze = jest.fn(() => Promise.resolve(table));\n table.layoutHints = layoutHints;\n return table;\n }\n\n makeTreeTable(\n columns = this.makeColumns(),\n aggregatedColumns: DhType.Column[] = [],\n groupedColumns: DhType.Column[] = [],\n size = 1000000000,\n sort = [],\n layoutHints?: Partial<DhType.LayoutHints>\n ): DhType.TreeTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).TreeTable({\n columns,\n aggregatedColumns,\n groupedColumns,\n size,\n sort,\n layoutHints,\n });\n table.copy = jest.fn(() => Promise.resolve(table));\n return table;\n }\n\n static makeInputTable(\n keyColumns: DhType.Column[] = [],\n valueColumns: DhType.Column[] = []\n ): DhType.InputTable {\n const { keys, values } = [...keyColumns, ...valueColumns].reduce(\n (acc, col) => {\n if (keyColumns.includes(col)) acc.keys.push(col.name);\n else acc.values.push(col.name);\n return acc;\n },\n { keys: [], values: [] } as { keys: string[]; values: string[] }\n );\n return { keys, values } as DhType.InputTable;\n }\n\n makeSubscription(table = this.makeTable()): DhType.TableViewportSubscription {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).TableViewportSubscription({ table });\n }\n\n makeModel(\n table = this.makeTable(),\n formatter: Formatter | null = null,\n inputTable: DhType.InputTable | null = null\n ): IrisGridProxyModel {\n const { dh } = this;\n return new IrisGridProxyModel(\n dh,\n table,\n formatter ?? new Formatter(dh),\n inputTable\n );\n }\n}\n\nexport default IrisGridTestUtils;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,14 +5,10 @@ import IrisGridCellRendererUtils from "./IrisGridCellRendererUtils.js";
|
|
|
5
5
|
class IrisGridTextCellRenderer extends TextCellRenderer {
|
|
6
6
|
drawCellContent(context, state, column, row) {
|
|
7
7
|
var _model$columns$modelC;
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var {
|
|
13
|
-
modelColumns,
|
|
14
|
-
modelRows
|
|
15
|
-
} = metrics;
|
|
8
|
+
var metrics = state.metrics,
|
|
9
|
+
model = state.model;
|
|
10
|
+
var modelColumns = metrics.modelColumns,
|
|
11
|
+
modelRows = metrics.modelRows;
|
|
16
12
|
var modelRow = getOrThrow(modelRows, row);
|
|
17
13
|
var modelColumn = modelColumns.get(column);
|
|
18
14
|
if (modelColumn === undefined) {
|
|
@@ -35,23 +31,19 @@ class IrisGridTextCellRenderer extends TextCellRenderer {
|
|
|
35
31
|
// The text will truncate to a smaller width and won't overlap the button
|
|
36
32
|
getTextRenderMetrics(state, column, row) {
|
|
37
33
|
var textMetrics = GridUtils.getTextRenderMetrics(state, column, row);
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
theme
|
|
43
|
-
} = state;
|
|
34
|
+
var mouseX = state.mouseX,
|
|
35
|
+
mouseY = state.mouseY,
|
|
36
|
+
metrics = state.metrics,
|
|
37
|
+
theme = state.theme;
|
|
44
38
|
if (mouseX == null || mouseY == null) {
|
|
45
39
|
return textMetrics;
|
|
46
40
|
}
|
|
47
|
-
var
|
|
48
|
-
column
|
|
49
|
-
row
|
|
50
|
-
} = GridUtils.getGridPointFromXY(mouseX, mouseY, metrics);
|
|
41
|
+
var _GridUtils$getGridPoi = GridUtils.getGridPointFromXY(mouseX, mouseY, metrics),
|
|
42
|
+
mouseColumn = _GridUtils$getGridPoi.column,
|
|
43
|
+
mouseRow = _GridUtils$getGridPoi.row;
|
|
51
44
|
if (column === mouseColumn && row === mouseRow) {
|
|
52
|
-
var
|
|
53
|
-
left
|
|
54
|
-
} = this.getCellOverflowButtonPosition(mouseX, mouseY, metrics, theme);
|
|
45
|
+
var _this$getCellOverflow = this.getCellOverflowButtonPosition(mouseX, mouseY, metrics, theme),
|
|
46
|
+
left = _this$getCellOverflow.left;
|
|
55
47
|
if (this.shouldRenderOverflowButton(state) && left != null) {
|
|
56
48
|
textMetrics.width = left - metrics.gridX - textMetrics.x;
|
|
57
49
|
}
|
|
@@ -68,23 +60,18 @@ class IrisGridTextCellRenderer extends TextCellRenderer {
|
|
|
68
60
|
if (mouseX == null || mouseY == null || metrics == null) {
|
|
69
61
|
return NULL_POSITION;
|
|
70
62
|
}
|
|
71
|
-
var
|
|
72
|
-
rowHeight,
|
|
73
|
-
columnWidth,
|
|
74
|
-
left,
|
|
75
|
-
top
|
|
76
|
-
} = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics);
|
|
63
|
+
var _GridUtils$getCellInf = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics),
|
|
64
|
+
rowHeight = _GridUtils$getCellInf.rowHeight,
|
|
65
|
+
columnWidth = _GridUtils$getCellInf.columnWidth,
|
|
66
|
+
left = _GridUtils$getCellInf.left,
|
|
67
|
+
top = _GridUtils$getCellInf.top;
|
|
77
68
|
if (left == null || columnWidth == null || top == null) {
|
|
78
69
|
return NULL_POSITION;
|
|
79
70
|
}
|
|
80
|
-
var
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
var {
|
|
85
|
-
cellHorizontalPadding,
|
|
86
|
-
iconSize
|
|
87
|
-
} = theme;
|
|
71
|
+
var gridWidth = metrics.width,
|
|
72
|
+
verticalBarWidth = metrics.verticalBarWidth;
|
|
73
|
+
var cellHorizontalPadding = theme.cellHorizontalPadding,
|
|
74
|
+
iconSize = theme.iconSize;
|
|
88
75
|
var width = iconSize + 2 * cellHorizontalPadding;
|
|
89
76
|
var height = rowHeight;
|
|
90
77
|
// Right edge of column or of visible grid, whichever is smaller
|
|
@@ -100,30 +87,26 @@ class IrisGridTextCellRenderer extends TextCellRenderer {
|
|
|
100
87
|
}
|
|
101
88
|
shouldRenderOverflowButton(state) {
|
|
102
89
|
var _model$textForCell;
|
|
103
|
-
var
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
theme
|
|
110
|
-
} = state;
|
|
90
|
+
var context = state.context,
|
|
91
|
+
mouseX = state.mouseX,
|
|
92
|
+
mouseY = state.mouseY,
|
|
93
|
+
metrics = state.metrics,
|
|
94
|
+
model = state.model,
|
|
95
|
+
theme = state.theme;
|
|
111
96
|
if (mouseX == null || mouseY == null) {
|
|
112
97
|
return false;
|
|
113
98
|
}
|
|
114
|
-
var
|
|
115
|
-
row,
|
|
116
|
-
column,
|
|
117
|
-
modelRow,
|
|
118
|
-
modelColumn
|
|
119
|
-
} = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics);
|
|
99
|
+
var _GridUtils$getCellInf2 = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics),
|
|
100
|
+
row = _GridUtils$getCellInf2.row,
|
|
101
|
+
column = _GridUtils$getCellInf2.column,
|
|
102
|
+
modelRow = _GridUtils$getCellInf2.modelRow,
|
|
103
|
+
modelColumn = _GridUtils$getCellInf2.modelColumn;
|
|
120
104
|
if (row == null || column == null || modelRow == null || modelColumn == null || model.columns[modelColumn] == null || !TableUtils.isStringType(model.columns[modelColumn].type)) {
|
|
121
105
|
return false;
|
|
122
106
|
}
|
|
123
107
|
var text = (_model$textForCell = model.textForCell(modelColumn, modelRow)) !== null && _model$textForCell !== void 0 ? _model$textForCell : '';
|
|
124
|
-
var
|
|
125
|
-
width
|
|
126
|
-
} = GridUtils.getTextRenderMetrics(state, column, row);
|
|
108
|
+
var _GridUtils$getTextRen = GridUtils.getTextRenderMetrics(state, column, row),
|
|
109
|
+
textWidth = _GridUtils$getTextRen.width;
|
|
127
110
|
var fontWidthLower = metrics.fontWidthsLower.get(theme.font);
|
|
128
111
|
var fontWidthUpper = metrics.fontWidthsUpper.get(theme.font);
|
|
129
112
|
context.save();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTextCellRenderer.js","names":["getOrThrow","GridUtils","TextCellRenderer","TableUtils","IrisGridCellRendererUtils","IrisGridTextCellRenderer","drawCellContent","context","state","column","row","_model$columns$modelC","metrics","model","modelColumns","modelRows","modelRow","modelColumn","get","undefined","value","valueForCell","isTextType","columns","type","originalFont","font","concat","getTextRenderMetrics","textMetrics","mouseX","mouseY","theme","mouseColumn","mouseRow","getGridPointFromXY","left","getCellOverflowButtonPosition","shouldRenderOverflowButton","width","gridX","x","NULL_POSITION","top","height","rowHeight","columnWidth","getCellInfoFromXY","gridWidth","verticalBarWidth","cellHorizontalPadding","iconSize","right","Math","min","buttonLeft","buttonTop","gridY","_model$textForCell","isStringType","text","textForCell","textWidth","fontWidthLower","fontWidthsLower","fontWidthUpper","fontWidthsUpper","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n type BoxCoordinates,\n type Coordinate,\n getOrThrow,\n type GridMetrics,\n GridUtils,\n TextCellRenderer,\n type VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { type IrisGridRenderState } from './IrisGridRenderer';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\nimport type { IrisGridThemeType } from './IrisGridTheme';\n\nclass IrisGridTextCellRenderer extends TextCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) {\n return;\n }\n const value = model.valueForCell(modelColumn, modelRow);\n if (TableUtils.isTextType(model.columns[modelColumn]?.type)) {\n if (value === null || value === '') {\n const originalFont = context.font;\n context.font = `italic ${originalFont}`;\n super.drawCellContent(context, state, column, row);\n context.font = originalFont;\n return;\n }\n }\n super.drawCellContent(context, state, column, row);\n }\n\n // This will shrink the size the text may take when the overflow button is rendered\n // The text will truncate to a smaller width and won't overlap the button\n getTextRenderMetrics(\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): {\n width: number;\n x: Coordinate;\n y: Coordinate;\n } {\n const textMetrics = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { mouseX, mouseY, metrics, theme } = state;\n\n if (mouseX == null || mouseY == null) {\n return textMetrics;\n }\n\n const { column: mouseColumn, row: mouseRow } = GridUtils.getGridPointFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (column === mouseColumn && row === mouseRow) {\n const { left } = this.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n if (this.shouldRenderOverflowButton(state) && left != null) {\n textMetrics.width = left - metrics.gridX - textMetrics.x;\n }\n }\n return textMetrics;\n }\n\n getCellOverflowButtonPosition(\n mouseX: Coordinate | null,\n mouseY: Coordinate | null,\n metrics: GridMetrics | undefined,\n theme: IrisGridThemeType\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || metrics == null) {\n return NULL_POSITION;\n }\n const { rowHeight, columnWidth, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (left == null || columnWidth == null || top == null) {\n return NULL_POSITION;\n }\n\n const { width: gridWidth, verticalBarWidth } = metrics;\n const { cellHorizontalPadding, iconSize } = theme;\n\n const width = iconSize + 2 * cellHorizontalPadding;\n const height = rowHeight;\n // Right edge of column or of visible grid, whichever is smaller\n const right = Math.min(\n metrics.gridX + left + columnWidth,\n gridWidth - verticalBarWidth\n );\n const buttonLeft = right - width;\n const buttonTop = metrics.gridY + top;\n\n return { left: buttonLeft, top: buttonTop, width, height };\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n const { context, mouseX, mouseY, metrics, model, theme } = state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n const { row, column, modelRow, modelColumn } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (\n row == null ||\n column == null ||\n modelRow == null ||\n modelColumn == null ||\n model.columns[modelColumn] == null ||\n !TableUtils.isStringType(model.columns[modelColumn].type)\n ) {\n return false;\n }\n\n const text = model.textForCell(modelColumn, modelRow) ?? '';\n const { width: textWidth } = GridUtils.getTextRenderMetrics(\n state,\n column,\n row\n );\n const fontWidthLower = metrics.fontWidthsLower.get(theme.font);\n const fontWidthUpper = metrics.fontWidthsUpper.get(theme.font);\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n model.truncationCharForCell(modelColumn, modelRow)\n );\n context.restore();\n\n return text !== '' && truncatedText !== text;\n }\n\n drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridTextCellRenderer;\n"],"mappings":"AAAA;AACA,SAGEA,UAAU,EAEVC,SAAS,EACTC,gBAAgB,QAEX,iBAAiB;AACxB,SAASC,UAAU,QAAQ,wBAAwB;AAAC,OAE7CC,yBAAyB;AAGhC,MAAMC,wBAAwB,SAASH,gBAAgB,CAAC;EACtDI,eAAeA,CACbC,OAAiC,EACjCC,KAA0B,EAC1BC,MAAoB,EACpBC,GAAiB,EACX;IAAA,IAAAC,qBAAA;IACN,IAAM;MAAEC,OAAO;MAAEC;IAAM,CAAC,GAAGL,KAAK;IAChC,IAAM;MAAEM,YAAY;MAAEC;IAAU,CAAC,GAAGH,OAAO;IAC3C,IAAMI,QAAQ,GAAGhB,UAAU,CAACe,SAAS,EAAEL,GAAG,CAAC;IAC3C,IAAMO,WAAW,GAAGH,YAAY,CAACI,GAAG,CAACT,MAAM,CAAC;IAC5C,IAAIQ,WAAW,KAAKE,SAAS,EAAE;MAC7B;IACF;IACA,IAAMC,KAAK,GAAGP,KAAK,CAACQ,YAAY,CAACJ,WAAW,EAAED,QAAQ,CAAC;IACvD,IAAIb,UAAU,CAACmB,UAAU,EAAAX,qBAAA,GAACE,KAAK,CAACU,OAAO,CAACN,WAAW,CAAC,cAAAN,qBAAA,uBAA1BA,qBAAA,CAA4Ba,IAAI,CAAC,EAAE;MAC3D,IAAIJ,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;QAClC,IAAMK,YAAY,GAAGlB,OAAO,CAACmB,IAAI;QACjCnB,OAAO,CAACmB,IAAI,aAAAC,MAAA,CAAaF,YAAY,CAAE;QACvC,KAAK,CAACnB,eAAe,CAACC,OAAO,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,CAAC;QAClDH,OAAO,CAACmB,IAAI,GAAGD,YAAY;QAC3B;MACF;IACF;IACA,KAAK,CAACnB,eAAe,CAACC,OAAO,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,CAAC;EACpD;;EAEA;EACA;EACAkB,oBAAoBA,CAClBpB,KAA0B,EAC1BC,MAAoB,EACpBC,GAAiB,EAKjB;IACA,IAAMmB,WAAW,GAAG5B,SAAS,CAAC2B,oBAAoB,CAACpB,KAAK,EAAEC,MAAM,EAAEC,GAAG,CAAC;IAEtE,IAAM;MAAEoB,MAAM;MAAEC,MAAM;MAAEnB,OAAO;MAAEoB;IAAM,CAAC,GAAGxB,KAAK;IAEhD,IAAIsB,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;MACpC,OAAOF,WAAW;IACpB;IAEA,IAAM;MAAEpB,MAAM,EAAEwB,WAAW;MAAEvB,GAAG,EAAEwB;IAAS,CAAC,GAAGjC,SAAS,CAACkC,kBAAkB,CACzEL,MAAM,EACNC,MAAM,EACNnB,OACF,CAAC;IAED,IAAIH,MAAM,KAAKwB,WAAW,IAAIvB,GAAG,KAAKwB,QAAQ,EAAE;MAC9C,IAAM;QAAEE;MAAK,CAAC,GAAG,IAAI,CAACC,6BAA6B,CACjDP,MAAM,EACNC,MAAM,EACNnB,OAAO,EACPoB,KACF,CAAC;MACD,IAAI,IAAI,CAACM,0BAA0B,CAAC9B,KAAK,CAAC,IAAI4B,IAAI,IAAI,IAAI,EAAE;QAC1DP,WAAW,CAACU,KAAK,GAAGH,IAAI,GAAGxB,OAAO,CAAC4B,KAAK,GAAGX,WAAW,CAACY,CAAC;MAC1D;IACF;IACA,OAAOZ,WAAW;EACpB;EAEAQ,6BAA6BA,CAC3BP,MAAyB,EACzBC,MAAyB,EACzBnB,OAAgC,EAChCoB,KAAwB,EAMxB;IACA,IAAMU,aAAa,GAAG;MAAEN,IAAI,EAAE,IAAI;MAAEO,GAAG,EAAE,IAAI;MAAEJ,KAAK,EAAE,IAAI;MAAEK,MAAM,EAAE;IAAK,CAAC;IAC1E,IAAId,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,IAAInB,OAAO,IAAI,IAAI,EAAE;MACvD,OAAO8B,aAAa;IACtB;IACA,IAAM;MAAEG,SAAS;MAAEC,WAAW;MAAEV,IAAI;MAAEO;IAAI,CAAC,GAAG1C,SAAS,CAAC8C,iBAAiB,CACvEjB,MAAM,EACNC,MAAM,EACNnB,OACF,CAAC;IAED,IAAIwB,IAAI,IAAI,IAAI,IAAIU,WAAW,IAAI,IAAI,IAAIH,GAAG,IAAI,IAAI,EAAE;MACtD,OAAOD,aAAa;IACtB;IAEA,IAAM;MAAEH,KAAK,EAAES,SAAS;MAAEC;IAAiB,CAAC,GAAGrC,OAAO;IACtD,IAAM;MAAEsC,qBAAqB;MAAEC;IAAS,CAAC,GAAGnB,KAAK;IAEjD,IAAMO,KAAK,GAAGY,QAAQ,GAAG,CAAC,GAAGD,qBAAqB;IAClD,IAAMN,MAAM,GAAGC,SAAS;IACxB;IACA,IAAMO,KAAK,GAAGC,IAAI,CAACC,GAAG,CACpB1C,OAAO,CAAC4B,KAAK,GAAGJ,IAAI,GAAGU,WAAW,EAClCE,SAAS,GAAGC,gBACd,CAAC;IACD,IAAMM,UAAU,GAAGH,KAAK,GAAGb,KAAK;IAChC,IAAMiB,SAAS,GAAG5C,OAAO,CAAC6C,KAAK,GAAGd,GAAG;IAErC,OAAO;MAAEP,IAAI,EAAEmB,UAAU;MAAEZ,GAAG,EAAEa,SAAS;MAAEjB,KAAK;MAAEK;IAAO,CAAC;EAC5D;EAEAN,0BAA0BA,CAAC9B,KAA0B,EAAW;IAAA,IAAAkD,kBAAA;IAC9D,IAAM;MAAEnD,OAAO;MAAEuB,MAAM;MAAEC,MAAM;MAAEnB,OAAO;MAAEC,KAAK;MAAEmB;IAAM,CAAC,GAAGxB,KAAK;IAChE,IAAIsB,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;MACpC,OAAO,KAAK;IACd;IAEA,IAAM;MAAErB,GAAG;MAAED,MAAM;MAAEO,QAAQ;MAAEC;IAAY,CAAC,GAAGhB,SAAS,CAAC8C,iBAAiB,CACxEjB,MAAM,EACNC,MAAM,EACNnB,OACF,CAAC;IAED,IACEF,GAAG,IAAI,IAAI,IACXD,MAAM,IAAI,IAAI,IACdO,QAAQ,IAAI,IAAI,IAChBC,WAAW,IAAI,IAAI,IACnBJ,KAAK,CAACU,OAAO,CAACN,WAAW,CAAC,IAAI,IAAI,IAClC,CAACd,UAAU,CAACwD,YAAY,CAAC9C,KAAK,CAACU,OAAO,CAACN,WAAW,CAAC,CAACO,IAAI,CAAC,EACzD;MACA,OAAO,KAAK;IACd;IAEA,IAAMoC,IAAI,IAAAF,kBAAA,GAAG7C,KAAK,CAACgD,WAAW,CAAC5C,WAAW,EAAED,QAAQ,CAAC,cAAA0C,kBAAA,cAAAA,kBAAA,GAAI,EAAE;IAC3D,IAAM;MAAEnB,KAAK,EAAEuB;IAAU,CAAC,GAAG7D,SAAS,CAAC2B,oBAAoB,CACzDpB,KAAK,EACLC,MAAM,EACNC,GACF,CAAC;IACD,IAAMqD,cAAc,GAAGnD,OAAO,CAACoD,eAAe,CAAC9C,GAAG,CAACc,KAAK,CAACN,IAAI,CAAC;IAC9D,IAAMuC,cAAc,GAAGrD,OAAO,CAACsD,eAAe,CAAChD,GAAG,CAACc,KAAK,CAACN,IAAI,CAAC;IAE9DnB,OAAO,CAAC4D,IAAI,CAAC,CAAC;IACd5D,OAAO,CAACmB,IAAI,GAAGM,KAAK,CAACN,IAAI;IAEzB,IAAM0C,aAAa,GAAG,IAAI,CAACC,wBAAwB,CACjD9D,OAAO,EACPqD,IAAI,EACJE,SAAS,EACTC,cAAc,EACdE,cAAc,EACdpD,KAAK,CAACyD,qBAAqB,CAACrD,WAAW,EAAED,QAAQ,CACnD,CAAC;IACDT,OAAO,CAACgE,OAAO,CAAC,CAAC;IAEjB,OAAOX,IAAI,KAAK,EAAE,IAAIQ,aAAa,KAAKR,IAAI;EAC9C;EAEAY,cAAcA,CACZjE,OAAiC,EACjCC,KAA0B,EAC1BiE,OAAmB,EACnBC,IAAgB,EAChBC,OAAuB,EACvBC,KAAa,EACbC,UAAmB,EACb;IACNzE,yBAAyB,CAACoE,cAAc,CACtCjE,OAAO,EACPC,KAAK,EACLiE,OAAO,EACPC,IAAI,EACJC,OAAO,EACPC,KAAK,EACLC,UACF,CAAC;EACH;AACF;AAEA,eAAexE,wBAAwB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"IrisGridTextCellRenderer.js","names":["getOrThrow","GridUtils","TextCellRenderer","TableUtils","IrisGridCellRendererUtils","IrisGridTextCellRenderer","drawCellContent","context","state","column","row","_model$columns$modelC","metrics","model","modelColumns","modelRows","modelRow","modelColumn","get","undefined","value","valueForCell","isTextType","columns","type","originalFont","font","concat","getTextRenderMetrics","textMetrics","mouseX","mouseY","theme","_GridUtils$getGridPoi","getGridPointFromXY","mouseColumn","mouseRow","_this$getCellOverflow","getCellOverflowButtonPosition","left","shouldRenderOverflowButton","width","gridX","x","NULL_POSITION","top","height","_GridUtils$getCellInf","getCellInfoFromXY","rowHeight","columnWidth","gridWidth","verticalBarWidth","cellHorizontalPadding","iconSize","right","Math","min","buttonLeft","buttonTop","gridY","_model$textForCell","_GridUtils$getCellInf2","isStringType","text","textForCell","_GridUtils$getTextRen","textWidth","fontWidthLower","fontWidthsLower","fontWidthUpper","fontWidthsUpper","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n type BoxCoordinates,\n type Coordinate,\n getOrThrow,\n type GridMetrics,\n GridUtils,\n TextCellRenderer,\n type VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { type IrisGridRenderState } from './IrisGridRenderer';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\nimport type { IrisGridThemeType } from './IrisGridTheme';\n\nclass IrisGridTextCellRenderer extends TextCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) {\n return;\n }\n const value = model.valueForCell(modelColumn, modelRow);\n if (TableUtils.isTextType(model.columns[modelColumn]?.type)) {\n if (value === null || value === '') {\n const originalFont = context.font;\n context.font = `italic ${originalFont}`;\n super.drawCellContent(context, state, column, row);\n context.font = originalFont;\n return;\n }\n }\n super.drawCellContent(context, state, column, row);\n }\n\n // This will shrink the size the text may take when the overflow button is rendered\n // The text will truncate to a smaller width and won't overlap the button\n getTextRenderMetrics(\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): {\n width: number;\n x: Coordinate;\n y: Coordinate;\n } {\n const textMetrics = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { mouseX, mouseY, metrics, theme } = state;\n\n if (mouseX == null || mouseY == null) {\n return textMetrics;\n }\n\n const { column: mouseColumn, row: mouseRow } = GridUtils.getGridPointFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (column === mouseColumn && row === mouseRow) {\n const { left } = this.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n if (this.shouldRenderOverflowButton(state) && left != null) {\n textMetrics.width = left - metrics.gridX - textMetrics.x;\n }\n }\n return textMetrics;\n }\n\n getCellOverflowButtonPosition(\n mouseX: Coordinate | null,\n mouseY: Coordinate | null,\n metrics: GridMetrics | undefined,\n theme: IrisGridThemeType\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || metrics == null) {\n return NULL_POSITION;\n }\n const { rowHeight, columnWidth, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (left == null || columnWidth == null || top == null) {\n return NULL_POSITION;\n }\n\n const { width: gridWidth, verticalBarWidth } = metrics;\n const { cellHorizontalPadding, iconSize } = theme;\n\n const width = iconSize + 2 * cellHorizontalPadding;\n const height = rowHeight;\n // Right edge of column or of visible grid, whichever is smaller\n const right = Math.min(\n metrics.gridX + left + columnWidth,\n gridWidth - verticalBarWidth\n );\n const buttonLeft = right - width;\n const buttonTop = metrics.gridY + top;\n\n return { left: buttonLeft, top: buttonTop, width, height };\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n const { context, mouseX, mouseY, metrics, model, theme } = state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n const { row, column, modelRow, modelColumn } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (\n row == null ||\n column == null ||\n modelRow == null ||\n modelColumn == null ||\n model.columns[modelColumn] == null ||\n !TableUtils.isStringType(model.columns[modelColumn].type)\n ) {\n return false;\n }\n\n const text = model.textForCell(modelColumn, modelRow) ?? '';\n const { width: textWidth } = GridUtils.getTextRenderMetrics(\n state,\n column,\n row\n );\n const fontWidthLower = metrics.fontWidthsLower.get(theme.font);\n const fontWidthUpper = metrics.fontWidthsUpper.get(theme.font);\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n model.truncationCharForCell(modelColumn, modelRow)\n );\n context.restore();\n\n return text !== '' && truncatedText !== text;\n }\n\n drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridTextCellRenderer;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/IrisGridTheme.js
CHANGED
|
@@ -3,6 +3,12 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
3
3
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
4
4
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
5
5
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
6
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
7
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
9
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
10
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
11
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
6
12
|
import { getExpressionRanges, resolveCssVariablesInRecord } from '@deephaven/components';
|
|
7
13
|
import { GridTheme } from '@deephaven/grid';
|
|
8
14
|
import Log from '@deephaven/log';
|
|
@@ -22,7 +28,9 @@ export function createDefaultIrisGridTheme() {
|
|
|
22
28
|
// row-background-colors is a space-separated list of colors, so we need to
|
|
23
29
|
// normalize each color expression in the list individually
|
|
24
30
|
IrisGridTheme['row-background-colors'] = getExpressionRanges((_IrisGridTheme$rowBa = IrisGridTheme['row-background-colors']) !== null && _IrisGridTheme$rowBa !== void 0 ? _IrisGridTheme$rowBa : '').map(_ref => {
|
|
25
|
-
var
|
|
31
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
32
|
+
start = _ref2[0],
|
|
33
|
+
end = _ref2[1];
|
|
26
34
|
return ColorUtils.normalizeCssColor(IrisGridTheme['row-background-colors'].substring(start, end + 1));
|
|
27
35
|
}).join(' ');
|
|
28
36
|
log.debug2('Iris grid theme:', IrisGridThemeRaw);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTheme.js","names":["getExpressionRanges","resolveCssVariablesInRecord","GridTheme","Log","ColorUtils","IrisGridThemeRaw","log","module","createDefaultIrisGridTheme","_IrisGridTheme$rowBa","IrisGridTheme","map","_ref","start","end","normalizeCssColor","substring","join","debug2","Object","freeze","_objectSpread","backgroundColor","white","black","font","filterBarFont","headerBackgroundColor","headerColor","headerSeparatorColor","headerSeparatorHoverColor","headerHiddenSeparatorHoverColor","headerSortBarColor","headerReverseBarColor","headerBarCasingColor","headerFont","rowBackgroundColors","rowHoverBackgroundColor","selectionColor","selectionOutlineColor","selectionOutlineCasingColor","selectedRowHoverBackgroundColor","scrollBarBackgroundColor","scrollBarHoverBackgroundColor","scrollBarCasingColor","scrollBarCornerColor","scrollBarColor","scrollBarHoverColor","scrollBarActiveColor","scrollBarSelectionTickColor","scrollBarActiveSelectionTickColor","textColor","hyperlinkColor","positiveNumberColor","negativeNumberColor","zeroNumberColor","dateColor","pendingTextColor","errorTextColor","nullStringColor","filterBarActiveBackgroundColor","filterBarExpandedBackgroundColor","filterBarExpandedActiveBackgroundColor","filterBarExpandedActiveCellBackgroundColor","filterBarSeparatorColor","filterBarActiveColor","filterBarErrorColor","filterIconColor","scrimColor","contextMenuSortIconColor","contextMenuReverseIconColor","allowRowResize","autoSelectRow","gridColumnColor","gridRowColor","groupedColumnDividerColor","columnHoverBackgroundColor","headerHorizontalPadding","scrollBarSize","scrollBarHoverSize","minScrollHandleSize","rowHeight","parseInt","columnWidth","rowHeaderWidth","rowFooterWidth","columnHeaderHeight","filterBarHeight","filterBarCollapsedHeight","sortHeaderBarHeight","reverseHeaderBarHeight","filterBarHorizontalPadding","iconSize","activeCellSelectionBorderWidth","shadowAlpha","parseFloat","scrimBlurSize","minScrimTransitionTime","maxScrimTransitionTime","scrollSnapToRow","linkerColumnHoverBackgroundColor","treeLineColor","treeMarkerColor","treeMarkerHoverColor","floatingGridColumnColor","floatingGridRowColor","floatingRowBackgroundColors","floatingDividerInnerColor","floatingDividerOuterColor","overflowButtonColor","overflowButtonHoverColor","zeroLineColor","positiveBarColor","negativeBarColor","markerBarColor","density","compact","cellHorizontalPadding","minColumnWidth","spacious"],"sources":["../src/IrisGridTheme.ts"],"sourcesContent":["import {\n getExpressionRanges,\n resolveCssVariablesInRecord,\n} from '@deephaven/components';\nimport type { GridThemeType } from '@deephaven/grid';\nimport { GridTheme } from '@deephaven/grid';\nimport Log from '@deephaven/log';\nimport {\n type GridColor,\n type NullableGridColor,\n} from '@deephaven/grid/src/GridTheme';\nimport { ColorUtils } from '@deephaven/utils';\nimport IrisGridThemeRaw from './IrisGridTheme.module.scss';\n\nconst log = Log.module('IrisGridTheme');\n\nexport type IrisGridThemeType = GridThemeType & {\n filterBarFont: string;\n filterBarCollapsedHeight: number;\n filterBarHeight: number;\n reverseHeaderBarHeight: number;\n filterIconColor: string;\n filterBarActiveColor: GridColor;\n contextMenuSortIconColor: GridColor;\n contextMenuReverseIconColor: GridColor;\n minScrimTransitionTime: number;\n maxScrimTransitionTime: number;\n nullStringColor: GridColor;\n pendingTextColor: GridColor;\n dateColor: GridColor;\n positiveNumberColor: GridColor;\n negativeNumberColor: GridColor;\n zeroNumberColor: GridColor;\n errorTextColor: GridColor;\n groupedColumnDividerColor: GridColor;\n linkerColumnHoverBackgroundColor: GridColor;\n scrimBlurSize: number;\n scrimColor: GridColor;\n headerReverseBarColor: GridColor;\n sortHeaderBarHeight: number;\n headerSortBarColor: GridColor;\n headerBarCasingColor: GridColor;\n filterBarExpandedActiveBackgroundColor: GridColor;\n filterBarExpandedBackgroundColor: GridColor;\n filterBarSeparatorColor: GridColor;\n filterBarExpandedActiveCellBackgroundColor: GridColor;\n filterBarErrorColor: GridColor;\n filterBarHorizontalPadding: number;\n filterBarActiveBackgroundColor: GridColor;\n overflowButtonColor: GridColor;\n overflowButtonHoverColor: GridColor;\n floatingGridRowColor: NullableGridColor;\n iconSize: number;\n density: {\n compact: Partial<Omit<IrisGridThemeType, 'density'>>;\n spacious: Partial<Omit<IrisGridThemeType, 'density'>>;\n };\n};\n\n/**\n * Derive default Iris grid theme from IrisGridThemeRaw. Note that CSS variables\n * contained in IrisGridThemeRaw are resolved to their actual values. This means\n * that the returned theme is statically defined based on the CSS variable values\n * at the time this function is called. They will not automatically update if the\n * CSS variables change.\n */\nexport function createDefaultIrisGridTheme(): IrisGridThemeType {\n const IrisGridTheme = resolveCssVariablesInRecord(IrisGridThemeRaw);\n // row-background-colors is a space-separated list of colors, so we need to\n // normalize each color expression in the list individually\n IrisGridTheme['row-background-colors'] = getExpressionRanges(\n IrisGridTheme['row-background-colors'] ?? ''\n )\n .map(([start, end]) =>\n ColorUtils.normalizeCssColor(\n IrisGridTheme['row-background-colors'].substring(start, end + 1)\n )\n )\n .join(' ');\n\n log.debug2('Iris grid theme:', IrisGridThemeRaw);\n log.debug2('Iris grid theme derived:', IrisGridTheme);\n\n return Object.freeze({\n ...GridTheme,\n backgroundColor: IrisGridTheme['grid-bg'],\n white: IrisGridTheme.white,\n black: IrisGridTheme.black,\n font: IrisGridTheme.font,\n filterBarFont: IrisGridTheme.font,\n headerBackgroundColor: IrisGridTheme['header-bg'],\n headerColor: IrisGridTheme['header-color'],\n headerSeparatorColor: IrisGridTheme['header-separator-color'],\n headerSeparatorHoverColor: IrisGridTheme['header-separator-hover-color'],\n headerHiddenSeparatorHoverColor:\n IrisGridTheme['header-hidden-separator-hover-color'],\n headerSortBarColor: IrisGridTheme['header-sort-bar-color'],\n headerReverseBarColor: IrisGridTheme['header-reverse-bar-color'],\n headerBarCasingColor: IrisGridTheme['header-bar-casing-color'],\n headerFont: IrisGridTheme['header-font'],\n rowBackgroundColors: IrisGridTheme['row-background-colors'],\n rowHoverBackgroundColor: IrisGridTheme['row-hover-bg'],\n selectionColor: IrisGridTheme['selection-color'],\n selectionOutlineColor: IrisGridTheme['selection-outline-color'],\n selectionOutlineCasingColor:\n IrisGridTheme['selection-outline-casing-color'],\n selectedRowHoverBackgroundColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarBackgroundColor: IrisGridTheme['scroll-bar-bg'],\n scrollBarHoverBackgroundColor: IrisGridTheme['scroll-bar-hover-bg'],\n scrollBarCasingColor: IrisGridTheme['scroll-bar-casing-color'],\n scrollBarCornerColor: IrisGridTheme['scroll-bar-corner-color'],\n scrollBarColor: IrisGridTheme['scroll-bar-color'],\n scrollBarHoverColor: IrisGridTheme['scroll-bar-hover-color'],\n scrollBarActiveColor: IrisGridTheme['scroll-bar-active-color'],\n scrollBarSelectionTickColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarActiveSelectionTickColor:\n IrisGridTheme['scroll-bar-active-selection-tick-color'],\n textColor: IrisGridTheme['text-color'],\n hyperlinkColor: IrisGridTheme['hyperlink-color'],\n positiveNumberColor: IrisGridTheme['positive-number-color'],\n negativeNumberColor: IrisGridTheme['negative-number-color'],\n zeroNumberColor: IrisGridTheme['zero-number-color'],\n dateColor: IrisGridTheme['date-color'],\n pendingTextColor: IrisGridTheme['pending-text-color'],\n errorTextColor: IrisGridTheme['error-text-color'],\n nullStringColor: IrisGridTheme['null-string-color'],\n filterBarActiveBackgroundColor: IrisGridTheme['filter-bar-active-bg'],\n filterBarExpandedBackgroundColor: IrisGridTheme['filter-bar-expanded-bg'],\n filterBarExpandedActiveBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-bg'],\n filterBarExpandedActiveCellBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-cell-bg'],\n filterBarSeparatorColor: IrisGridTheme['filter-bar-separator-color'],\n filterBarActiveColor: IrisGridTheme['filter-bar-active-color'],\n filterBarErrorColor: IrisGridTheme['filter-bar-error-color'],\n filterIconColor: IrisGridTheme['filter-icon-color'],\n scrimColor: IrisGridTheme['scrim-color'],\n contextMenuSortIconColor: IrisGridTheme['context-menu-sort-icon-color'],\n contextMenuReverseIconColor:\n IrisGridTheme['context-menu-reverse-icon-color'],\n\n allowRowResize: false,\n autoSelectRow: true,\n gridColumnColor: null,\n gridRowColor: null,\n groupedColumnDividerColor: IrisGridTheme['grouped-column-divider-color'],\n columnHoverBackgroundColor: null,\n headerHorizontalPadding: 12,\n scrollBarSize: 13,\n scrollBarHoverSize: 16, // system default scrollbar width is 17\n minScrollHandleSize: 24,\n rowHeight: parseInt(IrisGridTheme['row-height'], 10) || 19, // IrisGrid test breaks without the fallback value\n columnWidth: 100,\n rowHeaderWidth: 0,\n rowFooterWidth: 90,\n columnHeaderHeight: parseInt(IrisGridTheme['header-height'], 10) || 30,\n filterBarHeight: 30, // includes 1px casing at bottom\n filterBarCollapsedHeight: 5, // includes 1px casing at bottom\n sortHeaderBarHeight: 2,\n reverseHeaderBarHeight: 4,\n filterBarHorizontalPadding: 4,\n iconSize: 16,\n\n activeCellSelectionBorderWidth:\n parseInt(IrisGridTheme['active-cell-selection-border-width'], 10) || 2,\n\n shadowAlpha: parseFloat(IrisGridTheme['row-shadow-alpha']) || 0.15,\n\n // Amount of blur to apply to the bottom of the scrim while animating in\n scrimBlurSize: 25,\n minScrimTransitionTime: 150,\n maxScrimTransitionTime: 350,\n\n scrollSnapToRow: true,\n\n linkerColumnHoverBackgroundColor: IrisGridTheme['linker-column-hover-bg'],\n\n treeLineColor: IrisGridTheme['tree-line-color'],\n treeMarkerColor: IrisGridTheme['tree-marker-color'],\n treeMarkerHoverColor: IrisGridTheme['tree-marker-hover-color'],\n\n floatingGridColumnColor: null,\n floatingGridRowColor: IrisGridTheme['floating-grid-row-color'],\n floatingRowBackgroundColors:\n IrisGridTheme['floating-row-background-colors'],\n floatingDividerInnerColor: IrisGridTheme['floating-divider-inner-color'],\n floatingDividerOuterColor: IrisGridTheme['floating-divider-outer-color'],\n\n overflowButtonColor: IrisGridTheme['overflow-button-color'],\n overflowButtonHoverColor: IrisGridTheme['overflow-button-hover-color'],\n\n zeroLineColor: IrisGridTheme['zero-line-color'],\n positiveBarColor: IrisGridTheme['positive-bar-color'],\n negativeBarColor: IrisGridTheme['negative-bar-color'],\n markerBarColor: IrisGridTheme['marker-bar-color'],\n\n density: {\n compact: {\n cellHorizontalPadding: 5, // Same as regular set in GridTheme\n headerHorizontalPadding: 10,\n minColumnWidth: 10,\n rowHeight: 16,\n font: '11px Fira Sans, sans-serif',\n iconSize: 14,\n columnHeaderHeight: 26,\n },\n spacious: {\n cellHorizontalPadding: 7,\n headerHorizontalPadding: 15,\n rowHeight: 28,\n },\n },\n } satisfies IrisGridThemeType);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"IrisGridTheme.js","names":["getExpressionRanges","resolveCssVariablesInRecord","GridTheme","Log","ColorUtils","IrisGridThemeRaw","log","module","createDefaultIrisGridTheme","_IrisGridTheme$rowBa","IrisGridTheme","map","_ref","_ref2","_slicedToArray","start","end","normalizeCssColor","substring","join","debug2","Object","freeze","_objectSpread","backgroundColor","white","black","font","filterBarFont","headerBackgroundColor","headerColor","headerSeparatorColor","headerSeparatorHoverColor","headerHiddenSeparatorHoverColor","headerSortBarColor","headerReverseBarColor","headerBarCasingColor","headerFont","rowBackgroundColors","rowHoverBackgroundColor","selectionColor","selectionOutlineColor","selectionOutlineCasingColor","selectedRowHoverBackgroundColor","scrollBarBackgroundColor","scrollBarHoverBackgroundColor","scrollBarCasingColor","scrollBarCornerColor","scrollBarColor","scrollBarHoverColor","scrollBarActiveColor","scrollBarSelectionTickColor","scrollBarActiveSelectionTickColor","textColor","hyperlinkColor","positiveNumberColor","negativeNumberColor","zeroNumberColor","dateColor","pendingTextColor","errorTextColor","nullStringColor","filterBarActiveBackgroundColor","filterBarExpandedBackgroundColor","filterBarExpandedActiveBackgroundColor","filterBarExpandedActiveCellBackgroundColor","filterBarSeparatorColor","filterBarActiveColor","filterBarErrorColor","filterIconColor","scrimColor","contextMenuSortIconColor","contextMenuReverseIconColor","allowRowResize","autoSelectRow","gridColumnColor","gridRowColor","groupedColumnDividerColor","columnHoverBackgroundColor","headerHorizontalPadding","scrollBarSize","scrollBarHoverSize","minScrollHandleSize","rowHeight","parseInt","columnWidth","rowHeaderWidth","rowFooterWidth","columnHeaderHeight","filterBarHeight","filterBarCollapsedHeight","sortHeaderBarHeight","reverseHeaderBarHeight","filterBarHorizontalPadding","iconSize","activeCellSelectionBorderWidth","shadowAlpha","parseFloat","scrimBlurSize","minScrimTransitionTime","maxScrimTransitionTime","scrollSnapToRow","linkerColumnHoverBackgroundColor","treeLineColor","treeMarkerColor","treeMarkerHoverColor","floatingGridColumnColor","floatingGridRowColor","floatingRowBackgroundColors","floatingDividerInnerColor","floatingDividerOuterColor","overflowButtonColor","overflowButtonHoverColor","zeroLineColor","positiveBarColor","negativeBarColor","markerBarColor","density","compact","cellHorizontalPadding","minColumnWidth","spacious"],"sources":["../src/IrisGridTheme.ts"],"sourcesContent":["import {\n getExpressionRanges,\n resolveCssVariablesInRecord,\n} from '@deephaven/components';\nimport type { GridThemeType } from '@deephaven/grid';\nimport { GridTheme } from '@deephaven/grid';\nimport Log from '@deephaven/log';\nimport {\n type GridColor,\n type NullableGridColor,\n} from '@deephaven/grid/src/GridTheme';\nimport { ColorUtils } from '@deephaven/utils';\nimport IrisGridThemeRaw from './IrisGridTheme.module.scss';\n\nconst log = Log.module('IrisGridTheme');\n\nexport type IrisGridThemeType = GridThemeType & {\n filterBarFont: string;\n filterBarCollapsedHeight: number;\n filterBarHeight: number;\n reverseHeaderBarHeight: number;\n filterIconColor: string;\n filterBarActiveColor: GridColor;\n contextMenuSortIconColor: GridColor;\n contextMenuReverseIconColor: GridColor;\n minScrimTransitionTime: number;\n maxScrimTransitionTime: number;\n nullStringColor: GridColor;\n pendingTextColor: GridColor;\n dateColor: GridColor;\n positiveNumberColor: GridColor;\n negativeNumberColor: GridColor;\n zeroNumberColor: GridColor;\n errorTextColor: GridColor;\n groupedColumnDividerColor: GridColor;\n linkerColumnHoverBackgroundColor: GridColor;\n scrimBlurSize: number;\n scrimColor: GridColor;\n headerReverseBarColor: GridColor;\n sortHeaderBarHeight: number;\n headerSortBarColor: GridColor;\n headerBarCasingColor: GridColor;\n filterBarExpandedActiveBackgroundColor: GridColor;\n filterBarExpandedBackgroundColor: GridColor;\n filterBarSeparatorColor: GridColor;\n filterBarExpandedActiveCellBackgroundColor: GridColor;\n filterBarErrorColor: GridColor;\n filterBarHorizontalPadding: number;\n filterBarActiveBackgroundColor: GridColor;\n overflowButtonColor: GridColor;\n overflowButtonHoverColor: GridColor;\n floatingGridRowColor: NullableGridColor;\n iconSize: number;\n density: {\n compact: Partial<Omit<IrisGridThemeType, 'density'>>;\n spacious: Partial<Omit<IrisGridThemeType, 'density'>>;\n };\n};\n\n/**\n * Derive default Iris grid theme from IrisGridThemeRaw. Note that CSS variables\n * contained in IrisGridThemeRaw are resolved to their actual values. This means\n * that the returned theme is statically defined based on the CSS variable values\n * at the time this function is called. They will not automatically update if the\n * CSS variables change.\n */\nexport function createDefaultIrisGridTheme(): IrisGridThemeType {\n const IrisGridTheme = resolveCssVariablesInRecord(IrisGridThemeRaw);\n // row-background-colors is a space-separated list of colors, so we need to\n // normalize each color expression in the list individually\n IrisGridTheme['row-background-colors'] = getExpressionRanges(\n IrisGridTheme['row-background-colors'] ?? ''\n )\n .map(([start, end]) =>\n ColorUtils.normalizeCssColor(\n IrisGridTheme['row-background-colors'].substring(start, end + 1)\n )\n )\n .join(' ');\n\n log.debug2('Iris grid theme:', IrisGridThemeRaw);\n log.debug2('Iris grid theme derived:', IrisGridTheme);\n\n return Object.freeze({\n ...GridTheme,\n backgroundColor: IrisGridTheme['grid-bg'],\n white: IrisGridTheme.white,\n black: IrisGridTheme.black,\n font: IrisGridTheme.font,\n filterBarFont: IrisGridTheme.font,\n headerBackgroundColor: IrisGridTheme['header-bg'],\n headerColor: IrisGridTheme['header-color'],\n headerSeparatorColor: IrisGridTheme['header-separator-color'],\n headerSeparatorHoverColor: IrisGridTheme['header-separator-hover-color'],\n headerHiddenSeparatorHoverColor:\n IrisGridTheme['header-hidden-separator-hover-color'],\n headerSortBarColor: IrisGridTheme['header-sort-bar-color'],\n headerReverseBarColor: IrisGridTheme['header-reverse-bar-color'],\n headerBarCasingColor: IrisGridTheme['header-bar-casing-color'],\n headerFont: IrisGridTheme['header-font'],\n rowBackgroundColors: IrisGridTheme['row-background-colors'],\n rowHoverBackgroundColor: IrisGridTheme['row-hover-bg'],\n selectionColor: IrisGridTheme['selection-color'],\n selectionOutlineColor: IrisGridTheme['selection-outline-color'],\n selectionOutlineCasingColor:\n IrisGridTheme['selection-outline-casing-color'],\n selectedRowHoverBackgroundColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarBackgroundColor: IrisGridTheme['scroll-bar-bg'],\n scrollBarHoverBackgroundColor: IrisGridTheme['scroll-bar-hover-bg'],\n scrollBarCasingColor: IrisGridTheme['scroll-bar-casing-color'],\n scrollBarCornerColor: IrisGridTheme['scroll-bar-corner-color'],\n scrollBarColor: IrisGridTheme['scroll-bar-color'],\n scrollBarHoverColor: IrisGridTheme['scroll-bar-hover-color'],\n scrollBarActiveColor: IrisGridTheme['scroll-bar-active-color'],\n scrollBarSelectionTickColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarActiveSelectionTickColor:\n IrisGridTheme['scroll-bar-active-selection-tick-color'],\n textColor: IrisGridTheme['text-color'],\n hyperlinkColor: IrisGridTheme['hyperlink-color'],\n positiveNumberColor: IrisGridTheme['positive-number-color'],\n negativeNumberColor: IrisGridTheme['negative-number-color'],\n zeroNumberColor: IrisGridTheme['zero-number-color'],\n dateColor: IrisGridTheme['date-color'],\n pendingTextColor: IrisGridTheme['pending-text-color'],\n errorTextColor: IrisGridTheme['error-text-color'],\n nullStringColor: IrisGridTheme['null-string-color'],\n filterBarActiveBackgroundColor: IrisGridTheme['filter-bar-active-bg'],\n filterBarExpandedBackgroundColor: IrisGridTheme['filter-bar-expanded-bg'],\n filterBarExpandedActiveBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-bg'],\n filterBarExpandedActiveCellBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-cell-bg'],\n filterBarSeparatorColor: IrisGridTheme['filter-bar-separator-color'],\n filterBarActiveColor: IrisGridTheme['filter-bar-active-color'],\n filterBarErrorColor: IrisGridTheme['filter-bar-error-color'],\n filterIconColor: IrisGridTheme['filter-icon-color'],\n scrimColor: IrisGridTheme['scrim-color'],\n contextMenuSortIconColor: IrisGridTheme['context-menu-sort-icon-color'],\n contextMenuReverseIconColor:\n IrisGridTheme['context-menu-reverse-icon-color'],\n\n allowRowResize: false,\n autoSelectRow: true,\n gridColumnColor: null,\n gridRowColor: null,\n groupedColumnDividerColor: IrisGridTheme['grouped-column-divider-color'],\n columnHoverBackgroundColor: null,\n headerHorizontalPadding: 12,\n scrollBarSize: 13,\n scrollBarHoverSize: 16, // system default scrollbar width is 17\n minScrollHandleSize: 24,\n rowHeight: parseInt(IrisGridTheme['row-height'], 10) || 19, // IrisGrid test breaks without the fallback value\n columnWidth: 100,\n rowHeaderWidth: 0,\n rowFooterWidth: 90,\n columnHeaderHeight: parseInt(IrisGridTheme['header-height'], 10) || 30,\n filterBarHeight: 30, // includes 1px casing at bottom\n filterBarCollapsedHeight: 5, // includes 1px casing at bottom\n sortHeaderBarHeight: 2,\n reverseHeaderBarHeight: 4,\n filterBarHorizontalPadding: 4,\n iconSize: 16,\n\n activeCellSelectionBorderWidth:\n parseInt(IrisGridTheme['active-cell-selection-border-width'], 10) || 2,\n\n shadowAlpha: parseFloat(IrisGridTheme['row-shadow-alpha']) || 0.15,\n\n // Amount of blur to apply to the bottom of the scrim while animating in\n scrimBlurSize: 25,\n minScrimTransitionTime: 150,\n maxScrimTransitionTime: 350,\n\n scrollSnapToRow: true,\n\n linkerColumnHoverBackgroundColor: IrisGridTheme['linker-column-hover-bg'],\n\n treeLineColor: IrisGridTheme['tree-line-color'],\n treeMarkerColor: IrisGridTheme['tree-marker-color'],\n treeMarkerHoverColor: IrisGridTheme['tree-marker-hover-color'],\n\n floatingGridColumnColor: null,\n floatingGridRowColor: IrisGridTheme['floating-grid-row-color'],\n floatingRowBackgroundColors:\n IrisGridTheme['floating-row-background-colors'],\n floatingDividerInnerColor: IrisGridTheme['floating-divider-inner-color'],\n floatingDividerOuterColor: IrisGridTheme['floating-divider-outer-color'],\n\n overflowButtonColor: IrisGridTheme['overflow-button-color'],\n overflowButtonHoverColor: IrisGridTheme['overflow-button-hover-color'],\n\n zeroLineColor: IrisGridTheme['zero-line-color'],\n positiveBarColor: IrisGridTheme['positive-bar-color'],\n negativeBarColor: IrisGridTheme['negative-bar-color'],\n markerBarColor: IrisGridTheme['marker-bar-color'],\n\n density: {\n compact: {\n cellHorizontalPadding: 5, // Same as regular set in GridTheme\n headerHorizontalPadding: 10,\n minColumnWidth: 10,\n rowHeight: 16,\n font: '11px Fira Sans, sans-serif',\n iconSize: 14,\n columnHeaderHeight: 26,\n },\n spacious: {\n cellHorizontalPadding: 7,\n headerHorizontalPadding: 15,\n rowHeight: 28,\n },\n },\n } satisfies IrisGridThemeType);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,13 +13,11 @@ export var IrisGridThemeContext = /*#__PURE__*/createContext({
|
|
|
13
13
|
});
|
|
14
14
|
IrisGridThemeContext.displayName = 'IrisGridThemeContext';
|
|
15
15
|
export function IrisGridThemeProvider(_ref) {
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
density = 'regular'
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
activeThemes
|
|
22
|
-
} = useTheme();
|
|
16
|
+
var children = _ref.children,
|
|
17
|
+
_ref$density = _ref.density,
|
|
18
|
+
density = _ref$density === void 0 ? 'regular' : _ref$density;
|
|
19
|
+
var _useTheme = useTheme(),
|
|
20
|
+
activeThemes = _useTheme.activeThemes;
|
|
23
21
|
var gridTheme = useMemo(() => createDefaultIrisGridTheme(),
|
|
24
22
|
// When the theme changes, we need to update the grid theme which reads CSS variables to JS
|
|
25
23
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridThemeProvider.js","names":["useTheme","createContext","useMemo","createDefaultIrisGridTheme","jsx","_jsx","IrisGridThemeContext","theme","density","displayName","IrisGridThemeProvider","_ref","children","activeThemes","gridTheme","contextValue","Provider","value"],"sources":["../src/IrisGridThemeProvider.tsx"],"sourcesContent":["import { useTheme } from '@deephaven/components';\nimport { createContext, type ReactNode, useMemo } from 'react';\nimport {\n createDefaultIrisGridTheme,\n type IrisGridThemeType,\n} from './IrisGridTheme';\n\n/**\n * The context value for the IrisGridThemeProvider.\n * This must be a full object and not a partial so that we\n * can createDefaultIrisGridTheme once, and not per grid.\n */\nexport type IrisGridThemeContextValue = IrisGridThemeType;\n\nexport const IrisGridThemeContext = createContext<{\n theme: IrisGridThemeContextValue | null;\n density: 'compact' | 'regular' | 'spacious';\n}>({ theme: null, density: 'regular' });\nIrisGridThemeContext.displayName = 'IrisGridThemeContext';\n\nexport interface IrisGridThemeProviderProps {\n children: ReactNode;\n /* The density of the grid. Defaults to regular */\n density?: 'compact' | 'regular' | 'spacious';\n}\n\nexport function IrisGridThemeProvider({\n children,\n density = 'regular',\n}: IrisGridThemeProviderProps): JSX.Element {\n const { activeThemes } = useTheme();\n\n const gridTheme = useMemo(\n () => createDefaultIrisGridTheme(),\n // When the theme changes, we need to update the grid theme which reads CSS variables to JS\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeThemes]\n );\n\n const contextValue = useMemo(\n () => ({ theme: gridTheme, density }),\n [gridTheme, density]\n );\n\n return (\n <IrisGridThemeContext.Provider value={contextValue}>\n {children}\n </IrisGridThemeContext.Provider>\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,aAAa,EAAkBC,OAAO,QAAQ,OAAO;AAAC,SAE7DC,0BAA0B;AAI5B;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,IAAMC,oBAAoB,gBAAGL,aAAa,CAG9C;EAAEM,KAAK,EAAE,IAAI;EAAEC,OAAO,EAAE;AAAU,CAAC,CAAC;AACvCF,oBAAoB,CAACG,WAAW,GAAG,sBAAsB;AAQzD,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAGO;EAAA,
|
|
1
|
+
{"version":3,"file":"IrisGridThemeProvider.js","names":["useTheme","createContext","useMemo","createDefaultIrisGridTheme","jsx","_jsx","IrisGridThemeContext","theme","density","displayName","IrisGridThemeProvider","_ref","children","_ref$density","_useTheme","activeThemes","gridTheme","contextValue","Provider","value"],"sources":["../src/IrisGridThemeProvider.tsx"],"sourcesContent":["import { useTheme } from '@deephaven/components';\nimport { createContext, type ReactNode, useMemo } from 'react';\nimport {\n createDefaultIrisGridTheme,\n type IrisGridThemeType,\n} from './IrisGridTheme';\n\n/**\n * The context value for the IrisGridThemeProvider.\n * This must be a full object and not a partial so that we\n * can createDefaultIrisGridTheme once, and not per grid.\n */\nexport type IrisGridThemeContextValue = IrisGridThemeType;\n\nexport const IrisGridThemeContext = createContext<{\n theme: IrisGridThemeContextValue | null;\n density: 'compact' | 'regular' | 'spacious';\n}>({ theme: null, density: 'regular' });\nIrisGridThemeContext.displayName = 'IrisGridThemeContext';\n\nexport interface IrisGridThemeProviderProps {\n children: ReactNode;\n /* The density of the grid. Defaults to regular */\n density?: 'compact' | 'regular' | 'spacious';\n}\n\nexport function IrisGridThemeProvider({\n children,\n density = 'regular',\n}: IrisGridThemeProviderProps): JSX.Element {\n const { activeThemes } = useTheme();\n\n const gridTheme = useMemo(\n () => createDefaultIrisGridTheme(),\n // When the theme changes, we need to update the grid theme which reads CSS variables to JS\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeThemes]\n );\n\n const contextValue = useMemo(\n () => ({ theme: gridTheme, density }),\n [gridTheme, density]\n );\n\n return (\n <IrisGridThemeContext.Provider value={contextValue}>\n {children}\n </IrisGridThemeContext.Provider>\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,aAAa,EAAkBC,OAAO,QAAQ,OAAO;AAAC,SAE7DC,0BAA0B;AAI5B;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,IAAMC,oBAAoB,gBAAGL,aAAa,CAG9C;EAAEM,KAAK,EAAE,IAAI;EAAEC,OAAO,EAAE;AAAU,CAAC,CAAC;AACvCF,oBAAoB,CAACG,WAAW,GAAG,sBAAsB;AAQzD,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAGO;EAAA,IAF1CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAC,YAAA,GAAAF,IAAA,CACRH,OAAO;IAAPA,OAAO,GAAAK,YAAA,cAAG,SAAS,GAAAA,YAAA;EAEnB,IAAAC,SAAA,GAAyBd,QAAQ,CAAC,CAAC;IAA3Be,YAAY,GAAAD,SAAA,CAAZC,YAAY;EAEpB,IAAMC,SAAS,GAAGd,OAAO,CACvB,MAAMC,0BAA0B,CAAC,CAAC;EAClC;EACA;EACA,CAACY,YAAY,CACf,CAAC;EAED,IAAME,YAAY,GAAGf,OAAO,CAC1B,OAAO;IAAEK,KAAK,EAAES,SAAS;IAAER;EAAQ,CAAC,CAAC,EACrC,CAACQ,SAAS,EAAER,OAAO,CACrB,CAAC;EAED,oBACEH,IAAA,CAACC,oBAAoB,CAACY,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAL,QAAA,EAChDA;EAAQ,CACoB,CAAC;AAEpC","ignoreList":[]}
|
|
@@ -138,10 +138,8 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
|
|
|
138
138
|
colorForCell(x, y, theme) {
|
|
139
139
|
var data = this.dataForCell(x, y);
|
|
140
140
|
if (data) {
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
value
|
|
144
|
-
} = data;
|
|
141
|
+
var format = data.format,
|
|
142
|
+
value = data.value;
|
|
145
143
|
if (value == null || value === '') {
|
|
146
144
|
assertNotNull(theme.nullStringColor);
|
|
147
145
|
return theme.nullStringColor;
|
|
@@ -183,11 +181,9 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
|
|
|
183
181
|
return IrisGridUtils.textAlignForValue(typeForFormatting, column.name);
|
|
184
182
|
}
|
|
185
183
|
extractViewportRow(row, columns) {
|
|
186
|
-
var
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
depth
|
|
190
|
-
} = row;
|
|
184
|
+
var isExpanded = row.isExpanded,
|
|
185
|
+
hasChildren = row.hasChildren,
|
|
186
|
+
depth = row.depth;
|
|
191
187
|
var extractedRow = super.extractViewportRow(row, columns);
|
|
192
188
|
var modifiedData = new Map(extractedRow.data);
|
|
193
189
|
if (hasChildren) {
|