@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.
Files changed (160) hide show
  1. package/dist/AdvancedFilterCreator.js +65 -102
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.js +22 -37
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.js +37 -63
  6. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.js +29 -59
  8. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  9. package/dist/ColumnHeaderGroup.js +6 -8
  10. package/dist/ColumnHeaderGroup.js.map +1 -1
  11. package/dist/ColumnStatistics.js +22 -28
  12. package/dist/ColumnStatistics.js.map +1 -1
  13. package/dist/CrossColumnSearch.js +20 -29
  14. package/dist/CrossColumnSearch.js.map +1 -1
  15. package/dist/FilterInputField.js +19 -46
  16. package/dist/FilterInputField.js.map +1 -1
  17. package/dist/GotoRow.js +32 -29
  18. package/dist/GotoRow.js.map +1 -1
  19. package/dist/IrisGrid.js +490 -822
  20. package/dist/IrisGrid.js.map +1 -1
  21. package/dist/IrisGridBottomBar.js +10 -11
  22. package/dist/IrisGridBottomBar.js.map +1 -1
  23. package/dist/IrisGridCacheUtils.js +28 -8
  24. package/dist/IrisGridCacheUtils.js.map +1 -1
  25. package/dist/IrisGridCellOverflowModal.js +30 -13
  26. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  27. package/dist/IrisGridCellRendererUtils.js +6 -12
  28. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  29. package/dist/IrisGridCopyHandler.js +28 -47
  30. package/dist/IrisGridCopyHandler.js.map +1 -1
  31. package/dist/IrisGridMetricCalculator.js +28 -51
  32. package/dist/IrisGridMetricCalculator.js.map +1 -1
  33. package/dist/IrisGridModelUpdater.js +32 -30
  34. package/dist/IrisGridModelUpdater.js.map +1 -1
  35. package/dist/IrisGridPartitionSelector.js +28 -62
  36. package/dist/IrisGridPartitionSelector.js.map +1 -1
  37. package/dist/IrisGridProxyModel.js +7 -12
  38. package/dist/IrisGridProxyModel.js.map +1 -1
  39. package/dist/IrisGridRenderer.js +162 -264
  40. package/dist/IrisGridRenderer.js.map +1 -1
  41. package/dist/IrisGridTableModel.js +23 -16
  42. package/dist/IrisGridTableModel.js.map +1 -1
  43. package/dist/IrisGridTableModelTemplate.js +49 -73
  44. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  45. package/dist/IrisGridTestUtils.js +19 -19
  46. package/dist/IrisGridTestUtils.js.map +1 -1
  47. package/dist/IrisGridTextCellRenderer.js +35 -52
  48. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  49. package/dist/IrisGridTheme.js +9 -1
  50. package/dist/IrisGridTheme.js.map +1 -1
  51. package/dist/IrisGridThemeProvider.js +5 -7
  52. package/dist/IrisGridThemeProvider.js.map +1 -1
  53. package/dist/IrisGridTreeTableModel.js +5 -9
  54. package/dist/IrisGridTreeTableModel.js.map +1 -1
  55. package/dist/IrisGridUtils.js +246 -300
  56. package/dist/IrisGridUtils.js.map +1 -1
  57. package/dist/NoPastePermissionModal.js +3 -5
  58. package/dist/NoPastePermissionModal.js.map +1 -1
  59. package/dist/PendingDataBottomBar.js +27 -16
  60. package/dist/PendingDataBottomBar.js.map +1 -1
  61. package/dist/ToastBottomBar.js +16 -8
  62. package/dist/ToastBottomBar.js.map +1 -1
  63. package/dist/format-context-menus/CustomFormatAction.js +11 -24
  64. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  65. package/dist/key-handlers/CopyCellKeyHandler.js +3 -4
  66. package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
  67. package/dist/key-handlers/CopyKeyHandler.js +1 -3
  68. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  69. package/dist/key-handlers/ReverseKeyHandler.js +1 -3
  70. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  71. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +35 -59
  72. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  73. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +13 -29
  74. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  75. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +8 -17
  76. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  77. package/dist/mousehandlers/IrisGridContextMenuHandler.js +96 -199
  78. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  79. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +2 -4
  80. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  81. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +16 -30
  82. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  83. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +5 -13
  84. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
  85. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +20 -36
  86. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
  87. package/dist/mousehandlers/IrisGridSortMouseHandler.js +3 -5
  88. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  89. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +9 -18
  90. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  91. package/dist/mousehandlers/PendingMouseHandler.js +10 -18
  92. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  93. package/dist/sidebar/AdvancedSettingsMenu.js +12 -5
  94. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  95. package/dist/sidebar/ChartBuilder.js +45 -102
  96. package/dist/sidebar/ChartBuilder.js.map +1 -1
  97. package/dist/sidebar/CustomColumnBuilder.js +35 -77
  98. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  99. package/dist/sidebar/CustomColumnInput.js +9 -11
  100. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  101. package/dist/sidebar/InputEditor.js +17 -24
  102. package/dist/sidebar/InputEditor.js.map +1 -1
  103. package/dist/sidebar/PluginTableOptionsErrorBoundary.js +6 -11
  104. package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -1
  105. package/dist/sidebar/RollupRows.js +72 -113
  106. package/dist/sidebar/RollupRows.js.map +1 -1
  107. package/dist/sidebar/SelectDistinctBuilder.js +16 -33
  108. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  109. package/dist/sidebar/TableCsvExporter.js +50 -74
  110. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  111. package/dist/sidebar/TableSaver.js +18 -42
  112. package/dist/sidebar/TableSaver.js.map +1 -1
  113. package/dist/sidebar/aggregations/AggregationEdit.js +25 -18
  114. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  115. package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
  116. package/dist/sidebar/aggregations/AggregationUtils.js +3 -4
  117. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  118. package/dist/sidebar/aggregations/Aggregations.js +45 -34
  119. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  120. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +35 -24
  121. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  122. package/dist/sidebar/conditional-formatting/ConditionEditor.js +38 -21
  123. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  124. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +27 -11
  125. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  126. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +9 -11
  127. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  128. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +48 -57
  129. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  130. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +35 -24
  131. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  132. package/dist/sidebar/conditional-formatting/StyleEditor.js +26 -11
  133. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  134. package/dist/sidebar/visibility-ordering-builder/SearchItem.js +5 -7
  135. package/dist/sidebar/visibility-ordering-builder/SearchItem.js.map +1 -1
  136. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js +24 -18
  137. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js.map +1 -1
  138. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +166 -256
  139. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  140. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +4 -11
  141. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  142. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +28 -14
  143. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  144. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +16 -19
  145. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  146. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +1 -3
  147. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
  148. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +19 -29
  149. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
  150. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js +39 -52
  151. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js.map +1 -1
  152. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +18 -23
  153. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
  154. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +19 -15
  155. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
  156. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +16 -30
  157. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
  158. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +30 -39
  159. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  160. 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 = this.makeColumns(),
78
- size = 1000000000,
79
- sort = [],
80
- layoutHints = {}
81
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
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
- keys,
117
- values
118
- } = [...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
- });
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
- metrics,
10
- model
11
- } = state;
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
- mouseX,
40
- mouseY,
41
- metrics,
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: mouseColumn,
49
- row: mouseRow
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
- width: gridWidth,
82
- verticalBarWidth
83
- } = metrics;
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
- context,
105
- mouseX,
106
- mouseY,
107
- metrics,
108
- model,
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: textWidth
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":"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","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":[]}
@@ -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 [start, end] = _ref;
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
- children,
18
- density = 'regular'
19
- } = _ref;
20
- var {
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,IAHN;IACpCC,QAAQ;IACRJ,OAAO,GAAG;EACgB,CAAC,GAAAG,IAAA;EAC3B,IAAM;IAAEE;EAAa,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAEnC,IAAMc,SAAS,GAAGZ,OAAO,CACvB,MAAMC,0BAA0B,CAAC,CAAC;EAClC;EACA;EACA,CAACU,YAAY,CACf,CAAC;EAED,IAAME,YAAY,GAAGb,OAAO,CAC1B,OAAO;IAAEK,KAAK,EAAEO,SAAS;IAAEN;EAAQ,CAAC,CAAC,EACrC,CAACM,SAAS,EAAEN,OAAO,CACrB,CAAC;EAED,oBACEH,IAAA,CAACC,oBAAoB,CAACU,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAH,QAAA,EAChDA;EAAQ,CACoB,CAAC;AAEpC","ignoreList":[]}
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
- format,
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
- isExpanded,
188
- hasChildren,
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) {