@deephaven/iris-grid 0.50.1-beta.5 → 0.51.1-alpha-theme-fix.1

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 (123) hide show
  1. package/dist/AdvancedFilterCreator.js.map +1 -1
  2. package/dist/AdvancedFilterCreatorFilterItem.d.ts +2 -2
  3. package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.d.ts +4 -4
  6. package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  8. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +4 -4
  9. package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
  10. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  11. package/dist/ColumnHeaderGroup.js.map +1 -1
  12. package/dist/ColumnStatistics.js.map +1 -1
  13. package/dist/CrossColumnSearch.js.map +1 -1
  14. package/dist/FilterInputField.js.map +1 -1
  15. package/dist/GotoRow.js.map +1 -1
  16. package/dist/IrisGrid.js +12 -0
  17. package/dist/IrisGrid.js.map +1 -1
  18. package/dist/IrisGridBottomBar.js.map +1 -1
  19. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  20. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  21. package/dist/IrisGridCopyHandler.js.map +1 -1
  22. package/dist/IrisGridDataBarCellRenderer.js.map +1 -1
  23. package/dist/IrisGridIcons.js.map +1 -1
  24. package/dist/IrisGridMetricCalculator.js.map +1 -1
  25. package/dist/IrisGridModel.d.ts +2 -3
  26. package/dist/IrisGridModel.d.ts.map +1 -1
  27. package/dist/IrisGridModel.js +138 -0
  28. package/dist/IrisGridModel.js.map +1 -1
  29. package/dist/IrisGridModelFactory.js.map +1 -1
  30. package/dist/IrisGridModelUpdater.js.map +1 -1
  31. package/dist/IrisGridPartitionSelector.js.map +1 -1
  32. package/dist/IrisGridProxyModel.js.map +1 -1
  33. package/dist/IrisGridRenderer.js.map +1 -1
  34. package/dist/IrisGridTableModel.js.map +1 -1
  35. package/dist/IrisGridTableModelTemplate.js +9 -0
  36. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  37. package/dist/IrisGridTestUtils.js.map +1 -1
  38. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  39. package/dist/IrisGridTheme.js.map +1 -1
  40. package/dist/IrisGridTreeTableModel.js.map +1 -1
  41. package/dist/IrisGridUtils.js +3 -0
  42. package/dist/IrisGridUtils.js.map +1 -1
  43. package/dist/MissingKeyError.js.map +1 -1
  44. package/dist/PartitionSelectorSearch.js.map +1 -1
  45. package/dist/PendingDataBottomBar.js.map +1 -1
  46. package/dist/TableViewportUpdater.js +6 -1
  47. package/dist/TableViewportUpdater.js.map +1 -1
  48. package/dist/ToastBottomBar.js.map +1 -1
  49. package/dist/TreeTableViewportUpdater.js.map +1 -1
  50. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  51. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  52. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  53. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  54. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  55. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  56. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  57. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  58. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  59. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  60. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  61. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  62. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  63. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  64. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
  65. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  66. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  67. package/dist/mousehandlers/PendingMouseHandler.js +5 -0
  68. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  69. package/dist/sidebar/AdvancedSettings.js.map +1 -1
  70. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  71. package/dist/sidebar/ChartBuilder.js.map +1 -1
  72. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  73. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  74. package/dist/sidebar/DownloadServiceWorkerUtils.js.map +1 -1
  75. package/dist/sidebar/InputEditor.js.map +1 -1
  76. package/dist/sidebar/RollupRows.d.ts +4 -4
  77. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  78. package/dist/sidebar/RollupRows.js.map +1 -1
  79. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  80. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  81. package/dist/sidebar/TableSaver.js +5 -0
  82. package/dist/sidebar/TableSaver.js.map +1 -1
  83. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  84. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  85. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  86. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  87. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  88. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  89. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  90. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  91. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  92. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  93. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  94. package/dist/sidebar/icons/BarIcon.js.map +1 -1
  95. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
  96. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
  97. package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
  98. package/dist/sidebar/icons/LineIcon.js.map +1 -1
  99. package/dist/sidebar/icons/PieIcon.js.map +1 -1
  100. package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
  101. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  102. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  103. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts +4 -4
  104. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts.map +1 -1
  105. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  106. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts +7 -7
  107. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -1
  108. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  109. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
  110. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts +7 -5
  111. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts.map +1 -1
  112. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
  113. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts +5 -3
  114. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts.map +1 -1
  115. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -1
  116. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
  117. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts +5 -5
  118. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts.map +1 -1
  119. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
  120. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
  121. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -1
  122. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  123. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTestUtils.js","names":["Formatter","IrisGridProxyModel","IrisGridTestUtils","valueForCell","rowIndex","columnIndex","formatValue","value","undefined","constructor","dh","makeColumn","name","type","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","makeTable","size","sort","layoutHints","table","Table","copy","Promise","resolve","freeze","makeTreeTable","TreeTable","makeInputTable","keyColumns","InputTable","makeSubscription","TableViewportSubscription","makeModel","formatter","inputTable"],"sources":["../src/IrisGridTestUtils.ts"],"sourcesContent":["import { GridRangeIndex, ModelSizeMap } from '@deephaven/grid';\nimport type {\n Column,\n dh as DhType,\n FilterCondition,\n InputTable,\n LayoutHints,\n RollupConfig,\n Row,\n Sort,\n Table,\n TableViewportSubscription,\n TreeTable,\n} from '@deephaven/jsapi-types';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport IrisGridProxyModel from './IrisGridProxyModel';\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: DhType;\n\n constructor(dh: DhType) {\n this.dh = dh;\n }\n\n makeColumn(\n name?: string,\n type: string = IrisGridTestUtils.DEFAULT_TYPE,\n index = 0\n ): 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(): 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 = ''): 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): 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(): FilterCondition {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).FilterCondition();\n }\n\n makeSort(): Sort {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Sort();\n }\n\n makeTable({\n columns = this.makeColumns(),\n size = 1000000000,\n sort = [],\n layoutHints = {} as LayoutHints,\n } = {}): 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 size = 1000000000,\n sort = []\n ): TreeTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).TreeTable({ columns, size, sort });\n table.copy = jest.fn(() => Promise.resolve(table));\n return table;\n }\n\n makeInputTable(keyColumns: Column[] = []): InputTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).InputTable(keyColumns);\n }\n\n makeSubscription(table = this.makeTable()): 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: 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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"}
1
+ {"version":3,"file":"IrisGridTestUtils.js","names":["Formatter","IrisGridProxyModel","IrisGridTestUtils","valueForCell","rowIndex","columnIndex","formatValue","value","concat","undefined","constructor","dh","_defineProperty","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","makeTable","size","sort","layoutHints","table","Table","copy","Promise","resolve","freeze","makeTreeTable","TreeTable","makeInputTable","keyColumns","InputTable","makeSubscription","TableViewportSubscription","makeModel","formatter","inputTable"],"sources":["../src/IrisGridTestUtils.ts"],"sourcesContent":["import { GridRangeIndex, ModelSizeMap } from '@deephaven/grid';\nimport type {\n Column,\n dh as DhType,\n FilterCondition,\n InputTable,\n LayoutHints,\n RollupConfig,\n Row,\n Sort,\n Table,\n TableViewportSubscription,\n TreeTable,\n} from '@deephaven/jsapi-types';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport IrisGridProxyModel from './IrisGridProxyModel';\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: DhType;\n\n constructor(dh: DhType) {\n this.dh = dh;\n }\n\n makeColumn(\n name?: string,\n type: string = IrisGridTestUtils.DEFAULT_TYPE,\n index = 0\n ): 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(): 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 = ''): 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): 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(): FilterCondition {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).FilterCondition();\n }\n\n makeSort(): Sort {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Sort();\n }\n\n makeTable({\n columns = this.makeColumns(),\n size = 1000000000,\n sort = [],\n layoutHints = {} as LayoutHints,\n } = {}): 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 size = 1000000000,\n sort = []\n ): TreeTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).TreeTable({ columns, size, sort });\n table.copy = jest.fn(() => Promise.resolve(table));\n return table;\n }\n\n makeInputTable(keyColumns: Column[] = []): InputTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).InputTable(keyColumns);\n }\n\n makeSubscription(table = this.makeTable()): 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: 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTextCellRenderer.js","names":["DEFAULT_FONT_WIDTH","getOrThrow","GridUtils","TextCellRenderer","TableUtils","ICON_SIZE","IrisGridCellRendererUtils","IrisGridTextCellRenderer","drawCellContent","context","state","column","row","metrics","model","modelColumns","modelRows","modelRow","modelColumn","get","undefined","value","valueForCell","isTextType","columns","type","originalFont","font","getTextRenderMetrics","textMetrics","mouseX","mouseY","theme","mouseColumn","mouseRow","getGridPointFromXY","left","getCellOverflowButtonPosition","shouldRenderOverflowButton","width","gridX","x","NULL_POSITION","top","height","rowHeight","columnWidth","getCellInfoFromXY","gridWidth","verticalBarWidth","cellHorizontalPadding","right","Math","min","buttonLeft","buttonTop","gridY","isStringType","text","textForCell","textWidth","fontWidth","fontWidths","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n BoxCoordinates,\n Coordinate,\n DEFAULT_FONT_WIDTH,\n getOrThrow,\n GridMetrics,\n GridThemeType,\n GridUtils,\n TextCellRenderer,\n VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { IrisGridRenderState } from './IrisGridRenderer';\nimport { ICON_SIZE } from './IrisGridIcons';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\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: GridThemeType\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 } = theme;\n\n const width = ICON_SIZE + 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 !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 fontWidth = metrics.fontWidths.get(theme.font) ?? DEFAULT_FONT_WIDTH;\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidth,\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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"}
1
+ {"version":3,"file":"IrisGridTextCellRenderer.js","names":["DEFAULT_FONT_WIDTH","getOrThrow","GridUtils","TextCellRenderer","TableUtils","ICON_SIZE","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","right","Math","min","buttonLeft","buttonTop","gridY","_model$textForCell","_metrics$fontWidths$g","isStringType","text","textForCell","textWidth","fontWidth","fontWidths","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n BoxCoordinates,\n Coordinate,\n DEFAULT_FONT_WIDTH,\n getOrThrow,\n GridMetrics,\n GridThemeType,\n GridUtils,\n TextCellRenderer,\n VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { IrisGridRenderState } from './IrisGridRenderer';\nimport { ICON_SIZE } from './IrisGridIcons';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\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: GridThemeType\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 } = theme;\n\n const width = ICON_SIZE + 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 !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 fontWidth = metrics.fontWidths.get(theme.font) ?? DEFAULT_FONT_WIDTH;\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidth,\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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTheme.js","names":["resolveCssVariablesInRecord","Log","IrisGridThemeRaw","log","module","createDefaultIrisGridTheme","IrisGridTheme","debug2","Object","freeze","backgroundColor","white","black","font","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","scrimBlurSize","minScrimTransitionTime","maxScrimTransitionTime","scrollSnapToRow","linkerColumnHoverBackgroundColor","treeLineColor","treeMarkerColor","treeMarkerHoverColor","floatingGridColumnColor","floatingGridRowColor","floatingRowBackgroundColors","floatingDividerInnerColor","floatingDividerOuterColor","overflowButtonColor","overflowButtonHoverColor","zeroLineColor","positiveBarColor","negativeBarColor","markerBarColor"],"sources":["../src/IrisGridTheme.ts"],"sourcesContent":["import { resolveCssVariablesInRecord } from '@deephaven/components';\nimport type { GridThemeType } from '@deephaven/grid';\nimport Log from '@deephaven/log';\nimport { GridColor, NullableGridColor } from '@deephaven/grid/src/GridTheme';\nimport IrisGridThemeRaw from './IrisGridTheme.module.scss';\n\nconst log = Log.module('IrisGridTheme');\n\nexport type IrisGridThemeType = GridThemeType & {\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};\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 and does not change when CSS\n * variables change.\n */\nexport function createDefaultIrisGridTheme(): Partial<IrisGridThemeType> {\n const IrisGridTheme = resolveCssVariablesInRecord(IrisGridThemeRaw);\n log.debug2('Iris grid theme:', IrisGridThemeRaw);\n log.debug2('Iris grid theme derived:', IrisGridTheme);\n\n return Object.freeze({\n backgroundColor: IrisGridTheme['grid-bg'],\n white: IrisGridTheme.white,\n black: IrisGridTheme.black,\n font: 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: 60,\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\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}\n"],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridTheme.js","names":["resolveCssVariablesInRecord","Log","IrisGridThemeRaw","log","module","createDefaultIrisGridTheme","IrisGridTheme","debug2","Object","freeze","backgroundColor","white","black","font","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","scrimBlurSize","minScrimTransitionTime","maxScrimTransitionTime","scrollSnapToRow","linkerColumnHoverBackgroundColor","treeLineColor","treeMarkerColor","treeMarkerHoverColor","floatingGridColumnColor","floatingGridRowColor","floatingRowBackgroundColors","floatingDividerInnerColor","floatingDividerOuterColor","overflowButtonColor","overflowButtonHoverColor","zeroLineColor","positiveBarColor","negativeBarColor","markerBarColor"],"sources":["../src/IrisGridTheme.ts"],"sourcesContent":["import { resolveCssVariablesInRecord } from '@deephaven/components';\nimport type { GridThemeType } from '@deephaven/grid';\nimport Log from '@deephaven/log';\nimport { GridColor, NullableGridColor } from '@deephaven/grid/src/GridTheme';\nimport IrisGridThemeRaw from './IrisGridTheme.module.scss';\n\nconst log = Log.module('IrisGridTheme');\n\nexport type IrisGridThemeType = GridThemeType & {\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};\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 and does not change when CSS\n * variables change.\n */\nexport function createDefaultIrisGridTheme(): Partial<IrisGridThemeType> {\n const IrisGridTheme = resolveCssVariablesInRecord(IrisGridThemeRaw);\n log.debug2('Iris grid theme:', IrisGridThemeRaw);\n log.debug2('Iris grid theme derived:', IrisGridTheme);\n\n return Object.freeze({\n backgroundColor: IrisGridTheme['grid-bg'],\n white: IrisGridTheme.white,\n black: IrisGridTheme.black,\n font: 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: 60,\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\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}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","assertNotNull","IrisGridTableModelTemplate","IrisGridTreeTableModel","columns","groupedColumns","Set","length","map","c1","findIndex","c2","name","applyBufferedViewport","viewportTop","viewportBottom","table","setViewport","textForCell","x","y","column","row","hasChildren","constituentType","value","valueForCell","displayString","depth","getCachedGroupedColumnSet","has","extractViewportRow","isExpanded","snapshot","ranges","includeHeaders","formatValue","viewport","viewportData","result","push","c","viewportRange","offset","rows","i","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","data","get","hasExpandableRows","isExpandAllAvailable","expandAll","undefined","isChartBuilderAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","isColumnMovable","isRowExpandable","isRowExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","depthForRow","updateFrozenColumns","Error"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport { GridRange, ModelIndex } from '@deephaven/grid';\nimport type { Column, TreeRow, TreeTable } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport { UIRow, ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\nclass IrisGridTreeTableModel extends IrisGridTableModelTemplate<\n TreeTable,\n UITreeRow\n> {\n // table: TreeTable\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: Column[]\n ): void {\n this.table.setViewport(viewportTop, viewportBottom, columns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.columns[x];\n const row = this.row(y);\n if (row != null && column != null) {\n if (!row.hasChildren && column.constituentType != null) {\n const value = this.valueForCell(x, y);\n return this.displayString(value, column.constituentType, column.name);\n }\n // Show empty string instead of null in rollup grouping columns (issue #1483)\n if (\n row.hasChildren &&\n row.depth <= x + 1 &&\n this.valueForCell(x, y) === null &&\n this.getCachedGroupedColumnSet(this.groupedColumns).has(x)\n ) {\n return '';\n }\n }\n\n return super.textForCell(x, y);\n }\n\n extractViewportRow(row: TreeRow, columns: Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n return {\n ...super.extractViewportRow(row, columns),\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue?: (value: unknown, column: Column) => unknown\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const { columns } = this.viewport;\n const result = [];\n\n if (includeHeaders != null && includeHeaders) {\n result.push(columns.map(c => c.name));\n }\n\n const viewportRange = new GridRange(\n 0,\n this.viewportData?.offset,\n columns.length,\n this.viewportData.offset + this.viewportData.rows.length\n );\n\n for (let i = 0; i < ranges.length; i += 1) {\n const intersection = GridRange.intersection(viewportRange, ranges[i]);\n\n assertNotNull(intersection);\n assertNotNull(intersection.startRow);\n assertNotNull(intersection.endRow);\n\n for (let r = intersection.startRow; r <= intersection.endRow; r += 1) {\n const resultRow = [];\n const viewportRow =\n this.viewportData.rows[r - this.viewportData.offset];\n assertNotNull(intersection.startColumn);\n assertNotNull(intersection.endColumn);\n for (\n let c = intersection.startColumn;\n c <= intersection.endColumn;\n c += 1\n ) {\n assertNotNull(formatValue);\n resultRow.push(\n formatValue(viewportRow.data.get(c)?.value, this.columns[c])\n );\n }\n result.push(resultRow);\n }\n }\n\n return result;\n }\n\n get groupedColumns(): Column[] {\n return this.table.groupedColumns;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isExpandAllAvailable(): boolean {\n return this.table.expandAll !== undefined;\n }\n\n get isChartBuilderAvailable(): boolean {\n return false;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(\n this.columns,\n this.groupedColumns\n ).has(columnIndex);\n }\n\n isColumnMovable(column: ModelIndex): boolean {\n return column >= this.groupedColumns.length;\n }\n\n isRowExpandable(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.hasChildren ?? false;\n }\n\n isRowExpanded(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.isExpanded ?? false;\n }\n\n setRowExpanded(\n y: ModelIndex,\n isExpanded: boolean,\n expandDescendants = false\n ): void {\n if (this.isExpandAllAvailable) {\n this.table.setExpanded(y, isExpanded, expandDescendants);\n } else {\n this.table.setExpanded(y, isExpanded);\n }\n }\n\n expandAll(): void {\n if (this.table.expandAll) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll) {\n this.table.collapseAll();\n }\n }\n\n depthForRow(y: ModelIndex): ModelIndex {\n const row = this.row(y);\n return (row?.depth ?? 1) - 1;\n }\n\n getCachedFilterableColumnSet = memoize(\n (columns: Column[], groupedColumns: Column[]) =>\n new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns).map(c1 =>\n columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n\n getCachedGroupedColumnSet = memoize(\n (groupedColumns: readonly Column[]) =>\n new Set(\n groupedColumns.map(c1 =>\n this.columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n\n updateFrozenColumns(columns: ColumnName[]): void {\n if (columns.length > 0) {\n throw new Error('Cannot freeze columns on a tree table');\n }\n }\n}\n\nexport default IrisGridTreeTableModel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","assertNotNull","IrisGridTableModelTemplate","IrisGridTreeTableModel","constructor","arguments","_defineProperty","columns","groupedColumns","Set","length","map","c1","findIndex","c2","name","applyBufferedViewport","viewportTop","viewportBottom","table","setViewport","textForCell","x","y","column","row","hasChildren","constituentType","value","valueForCell","displayString","depth","getCachedGroupedColumnSet","has","extractViewportRow","isExpanded","_objectSpread","snapshot","ranges","includeHeaders","formatValue","_this","_asyncToGenerator","_this$viewportData","viewport","viewportData","result","push","c","viewportRange","offset","rows","i","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","_viewportRow$data$get","data","get","hasExpandableRows","isExpandAllAvailable","expandAll","undefined","isChartBuilderAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","isColumnMovable","isRowExpandable","_row$hasChildren","isRowExpanded","_row$isExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","depthForRow","_row$depth","updateFrozenColumns","Error"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport { GridRange, ModelIndex } from '@deephaven/grid';\nimport type { Column, TreeRow, TreeTable } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport { UIRow, ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\nclass IrisGridTreeTableModel extends IrisGridTableModelTemplate<\n TreeTable,\n UITreeRow\n> {\n // table: TreeTable\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: Column[]\n ): void {\n this.table.setViewport(viewportTop, viewportBottom, columns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.columns[x];\n const row = this.row(y);\n if (row != null && column != null) {\n if (!row.hasChildren && column.constituentType != null) {\n const value = this.valueForCell(x, y);\n return this.displayString(value, column.constituentType, column.name);\n }\n // Show empty string instead of null in rollup grouping columns (issue #1483)\n if (\n row.hasChildren &&\n row.depth <= x + 1 &&\n this.valueForCell(x, y) === null &&\n this.getCachedGroupedColumnSet(this.groupedColumns).has(x)\n ) {\n return '';\n }\n }\n\n return super.textForCell(x, y);\n }\n\n extractViewportRow(row: TreeRow, columns: Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n return {\n ...super.extractViewportRow(row, columns),\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue?: (value: unknown, column: Column) => unknown\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const { columns } = this.viewport;\n const result = [];\n\n if (includeHeaders != null && includeHeaders) {\n result.push(columns.map(c => c.name));\n }\n\n const viewportRange = new GridRange(\n 0,\n this.viewportData?.offset,\n columns.length,\n this.viewportData.offset + this.viewportData.rows.length\n );\n\n for (let i = 0; i < ranges.length; i += 1) {\n const intersection = GridRange.intersection(viewportRange, ranges[i]);\n\n assertNotNull(intersection);\n assertNotNull(intersection.startRow);\n assertNotNull(intersection.endRow);\n\n for (let r = intersection.startRow; r <= intersection.endRow; r += 1) {\n const resultRow = [];\n const viewportRow =\n this.viewportData.rows[r - this.viewportData.offset];\n assertNotNull(intersection.startColumn);\n assertNotNull(intersection.endColumn);\n for (\n let c = intersection.startColumn;\n c <= intersection.endColumn;\n c += 1\n ) {\n assertNotNull(formatValue);\n resultRow.push(\n formatValue(viewportRow.data.get(c)?.value, this.columns[c])\n );\n }\n result.push(resultRow);\n }\n }\n\n return result;\n }\n\n get groupedColumns(): Column[] {\n return this.table.groupedColumns;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isExpandAllAvailable(): boolean {\n return this.table.expandAll !== undefined;\n }\n\n get isChartBuilderAvailable(): boolean {\n return false;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(\n this.columns,\n this.groupedColumns\n ).has(columnIndex);\n }\n\n isColumnMovable(column: ModelIndex): boolean {\n return column >= this.groupedColumns.length;\n }\n\n isRowExpandable(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.hasChildren ?? false;\n }\n\n isRowExpanded(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.isExpanded ?? false;\n }\n\n setRowExpanded(\n y: ModelIndex,\n isExpanded: boolean,\n expandDescendants = false\n ): void {\n if (this.isExpandAllAvailable) {\n this.table.setExpanded(y, isExpanded, expandDescendants);\n } else {\n this.table.setExpanded(y, isExpanded);\n }\n }\n\n expandAll(): void {\n if (this.table.expandAll) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll) {\n this.table.collapseAll();\n }\n }\n\n depthForRow(y: ModelIndex): ModelIndex {\n const row = this.row(y);\n return (row?.depth ?? 1) - 1;\n }\n\n getCachedFilterableColumnSet = memoize(\n (columns: Column[], groupedColumns: Column[]) =>\n new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns).map(c1 =>\n columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n\n getCachedGroupedColumnSet = memoize(\n (groupedColumns: readonly Column[]) =>\n new Set(\n groupedColumns.map(c1 =>\n this.columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n\n updateFrozenColumns(columns: ColumnName[]): void {\n if (columns.length > 0) {\n throw new Error('Cannot freeze columns on a tree table');\n }\n }\n}\n\nexport default IrisGridTreeTableModel;\n"],"mappings":"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"}
@@ -16,6 +16,9 @@ import AggregationOperation from "./sidebar/aggregations/AggregationOperation.js
16
16
  import AdvancedSettings from "./sidebar/AdvancedSettings.js";
17
17
  import ColumnHeaderGroup from "./ColumnHeaderGroup.js";
18
18
  var log = Log.module('IrisGridUtils');
19
+
20
+ /** @deprecated Use `DehydratedSort` instead */
21
+
19
22
  /**
20
23
  * Checks if an index is valid for the given array
21
24
  * @param x The index to check