@deephaven/iris-grid 1.2.1-plotly-rc.3 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AdvancedFilterCreator.css.map +1 -1
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.css.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.css.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/ColumnStatistics.css.map +1 -1
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CommonTypes.js.map +1 -1
- package/dist/CrossColumnSearch.css.map +1 -1
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/EmptyIrisGridModel.js.map +1 -1
- package/dist/FilterInputField.css.map +1 -1
- package/dist/FilterInputField.js.map +1 -1
- package/dist/GotoRow.css.map +1 -1
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.css.map +1 -1
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.css.map +1 -1
- package/dist/IrisGridBottomBar.js.map +1 -1
- package/dist/IrisGridCacheUtils.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.css.map +1 -1
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCellRendererUtils.js.map +1 -1
- package/dist/IrisGridCopyHandler.css.map +1 -1
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridDataBarCellRenderer.js.map +1 -1
- package/dist/IrisGridIcons.js.map +1 -1
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelFactory.js.map +1 -1
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridPartitionSelector.css.map +1 -1
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridPartitionedTableModel.js.map +1 -1
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridShortcuts.js.map +1 -1
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTextCellRenderer.js.map +1 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridTheme.module.css.map +1 -1
- package/dist/IrisGridThemeProvider.js.map +1 -1
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/LazyIrisGrid.js.map +1 -1
- package/dist/MissingKeyError.js.map +1 -1
- package/dist/MissingPartitionError.js.map +1 -1
- package/dist/NoPastePermissionModal.js.map +1 -1
- package/dist/PartitionedGridModel.js.map +1 -1
- package/dist/PendingDataBottomBar.css.map +1 -1
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.css.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
- package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.css.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridCopyCellMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/mousehandlers/index.js.map +1 -1
- package/dist/sidebar/AdvancedSettings.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
- package/dist/sidebar/ChartBuilder.css.map +1 -1
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.css.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/DownloadServiceWorkerUtils.js.map +1 -1
- package/dist/sidebar/InputEditor.css.map +1 -1
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/OptionType.js.map +1 -1
- package/dist/sidebar/RollupRows.css.map +1 -1
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.css.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.css.map +1 -1
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.css.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.css.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/aggregations/index.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.css.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.css.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
- package/dist/sidebar/icons/BarIcon.js.map +1 -1
- package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
- package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
- package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
- package/dist/sidebar/icons/LineIcon.js.map +1 -1
- package/dist/sidebar/icons/PieIcon.js.map +1 -1
- package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
- package/dist/sidebar/icons/index.js.map +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
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","aggregatedColumns","groupedColumns","TreeTable","makeInputTable","keyColumns","InputTable","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 } 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: typeof DhType;\n\n constructor(dh: typeof DhType) {\n this.dh = 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(): DhType.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 = {},\n }: {\n columns?: DhType.Column[];\n size?: number;\n sort?: readonly DhType.Sort[];\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 makeInputTable(keyColumns: DhType.Column[] = []): DhType.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()): 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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"
|
|
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","aggregatedColumns","groupedColumns","TreeTable","makeInputTable","keyColumns","InputTable","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 } 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: typeof DhType;\n\n constructor(dh: typeof DhType) {\n this.dh = 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(): DhType.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 = {},\n }: {\n columns?: DhType.Column[];\n size?: number;\n sort?: readonly DhType.Sort[];\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 makeInputTable(keyColumns: DhType.Column[] = []): DhType.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()): 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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"}
|
|
@@ -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 !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","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 !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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"}
|
|
@@ -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":";;;;;AAAA,SACEA,mBAAmB,EACnBC,2BAA2B,QACtB,uBAAuB;AAE9B,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,OAAOC,GAAG,MAAM,gBAAgB;AAKhC,SAASC,UAAU,QAAQ,kBAAkB;AAAC,OACvCC,gBAAgB;AAEvB,IAAMC,GAAG,GAAGH,GAAG,CAACI,MAAM,CAAC,eAAe,CAAC;AA6CvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAAA,EAAsB;EAAA,IAAAC,oBAAA;EAC9D,IAAMC,aAAa,GAAGT,2BAA2B,CAACI,gBAAgB,CAAC;EACnE;EACA;EACAK,aAAa,CAAC,uBAAuB,CAAC,GAAGV,mBAAmB,EAAAS,oBAAA,GAC1DC,aAAa,CAAC,uBAAuB,CAAC,cAAAD,oBAAA,cAAAA,oBAAA,GAAI,EAC5C,CAAC,CACEE,GAAG,CAACC,IAAA;IAAA,IAAC,CAACC,KAAK,EAAEC,GAAG,CAAC,GAAAF,IAAA;IAAA,OAChBR,UAAU,CAACW,iBAAiB,CAC1BL,aAAa,CAAC,uBAAuB,CAAC,CAACM,SAAS,CAACH,KAAK,EAAEC,GAAG,GAAG,CAAC,CACjE,CAAC;EAAA,CACH,CAAC,CACAG,IAAI,CAAC,GAAG,CAAC;EAEZX,GAAG,CAACY,MAAM,CAAC,kBAAkB,EAAEb,gBAAgB,CAAC;EAChDC,GAAG,CAACY,MAAM,CAAC,0BAA0B,EAAER,aAAa,CAAC;EAErD,OAAOS,MAAM,CAACC,MAAM,CAAAC,aAAA,CAAAA,aAAA,KACfnB,SAAS;IACZoB,eAAe,EAAEZ,aAAa,CAAC,SAAS,CAAC;IACzCa,KAAK,EAAEb,aAAa,CAACa,KAAK;IAC1BC,KAAK,EAAEd,aAAa,CAACc,KAAK;IAC1BC,IAAI,EAAEf,aAAa,CAACe,IAAI;IACxBC,aAAa,EAAEhB,aAAa,CAACe,IAAI;IACjCE,qBAAqB,EAAEjB,aAAa,CAAC,WAAW,CAAC;IACjDkB,WAAW,EAAElB,aAAa,CAAC,cAAc,CAAC;IAC1CmB,oBAAoB,EAAEnB,aAAa,CAAC,wBAAwB,CAAC;IAC7DoB,yBAAyB,EAAEpB,aAAa,CAAC,8BAA8B,CAAC;IACxEqB,+BAA+B,EAC7BrB,aAAa,CAAC,qCAAqC,CAAC;IACtDsB,kBAAkB,EAAEtB,aAAa,CAAC,uBAAuB,CAAC;IAC1DuB,qBAAqB,EAAEvB,aAAa,CAAC,0BAA0B,CAAC;IAChEwB,oBAAoB,EAAExB,aAAa,CAAC,yBAAyB,CAAC;IAC9DyB,UAAU,EAAEzB,aAAa,CAAC,aAAa,CAAC;IACxC0B,mBAAmB,EAAE1B,aAAa,CAAC,uBAAuB,CAAC;IAC3D2B,uBAAuB,EAAE3B,aAAa,CAAC,cAAc,CAAC;IACtD4B,cAAc,EAAE5B,aAAa,CAAC,iBAAiB,CAAC;IAChD6B,qBAAqB,EAAE7B,aAAa,CAAC,yBAAyB,CAAC;IAC/D8B,2BAA2B,EACzB9B,aAAa,CAAC,gCAAgC,CAAC;IACjD+B,+BAA+B,EAAE/B,aAAa,CAAC,uBAAuB,CAAC;IACvEgC,wBAAwB,EAAEhC,aAAa,CAAC,eAAe,CAAC;IACxDiC,6BAA6B,EAAEjC,aAAa,CAAC,qBAAqB,CAAC;IACnEkC,oBAAoB,EAAElC,aAAa,CAAC,yBAAyB,CAAC;IAC9DmC,oBAAoB,EAAEnC,aAAa,CAAC,yBAAyB,CAAC;IAC9DoC,cAAc,EAAEpC,aAAa,CAAC,kBAAkB,CAAC;IACjDqC,mBAAmB,EAAErC,aAAa,CAAC,wBAAwB,CAAC;IAC5DsC,oBAAoB,EAAEtC,aAAa,CAAC,yBAAyB,CAAC;IAC9DuC,2BAA2B,EAAEvC,aAAa,CAAC,uBAAuB,CAAC;IACnEwC,iCAAiC,EAC/BxC,aAAa,CAAC,wCAAwC,CAAC;IACzDyC,SAAS,EAAEzC,aAAa,CAAC,YAAY,CAAC;IACtC0C,cAAc,EAAE1C,aAAa,CAAC,iBAAiB,CAAC;IAChD2C,mBAAmB,EAAE3C,aAAa,CAAC,uBAAuB,CAAC;IAC3D4C,mBAAmB,EAAE5C,aAAa,CAAC,uBAAuB,CAAC;IAC3D6C,eAAe,EAAE7C,aAAa,CAAC,mBAAmB,CAAC;IACnD8C,SAAS,EAAE9C,aAAa,CAAC,YAAY,CAAC;IACtC+C,gBAAgB,EAAE/C,aAAa,CAAC,oBAAoB,CAAC;IACrDgD,cAAc,EAAEhD,aAAa,CAAC,kBAAkB,CAAC;IACjDiD,eAAe,EAAEjD,aAAa,CAAC,mBAAmB,CAAC;IACnDkD,8BAA8B,EAAElD,aAAa,CAAC,sBAAsB,CAAC;IACrEmD,gCAAgC,EAAEnD,aAAa,CAAC,wBAAwB,CAAC;IACzEoD,sCAAsC,EACpCpD,aAAa,CAAC,+BAA+B,CAAC;IAChDqD,0CAA0C,EACxCrD,aAAa,CAAC,oCAAoC,CAAC;IACrDsD,uBAAuB,EAAEtD,aAAa,CAAC,4BAA4B,CAAC;IACpEuD,oBAAoB,EAAEvD,aAAa,CAAC,yBAAyB,CAAC;IAC9DwD,mBAAmB,EAAExD,aAAa,CAAC,wBAAwB,CAAC;IAC5DyD,eAAe,EAAEzD,aAAa,CAAC,mBAAmB,CAAC;IACnD0D,UAAU,EAAE1D,aAAa,CAAC,aAAa,CAAC;IACxC2D,wBAAwB,EAAE3D,aAAa,CAAC,8BAA8B,CAAC;IACvE4D,2BAA2B,EACzB5D,aAAa,CAAC,iCAAiC,CAAC;IAElD6D,cAAc,EAAE,KAAK;IACrBC,aAAa,EAAE,IAAI;IACnBC,eAAe,EAAE,IAAI;IACrBC,YAAY,EAAE,IAAI;IAClBC,yBAAyB,EAAEjE,aAAa,CAAC,8BAA8B,CAAC;IACxEkE,0BAA0B,EAAE,IAAI;IAChCC,uBAAuB,EAAE,EAAE;IAC3BC,aAAa,EAAE,EAAE;IACjBC,kBAAkB,EAAE,EAAE;IAAE;IACxBC,mBAAmB,EAAE,EAAE;IACvBC,SAAS,EAAEC,QAAQ,CAACxE,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;IAAE;IAC5DyE,WAAW,EAAE,GAAG;IAChBC,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAE,EAAE;IAClBC,kBAAkB,EAAEJ,QAAQ,CAACxE,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;IACtE6E,eAAe,EAAE,EAAE;IAAE;IACrBC,wBAAwB,EAAE,CAAC;IAAE;IAC7BC,mBAAmB,EAAE,CAAC;IACtBC,sBAAsB,EAAE,CAAC;IACzBC,0BAA0B,EAAE,CAAC;IAC7BC,QAAQ,EAAE,EAAE;IAEZC,8BAA8B,EAC5BX,QAAQ,CAACxE,aAAa,CAAC,oCAAoC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;IAExEoF,WAAW,EAAEC,UAAU,CAACrF,aAAa,CAAC,kBAAkB,CAAC,CAAC,IAAI,IAAI;IAElE;IACAsF,aAAa,EAAE,EAAE;IACjBC,sBAAsB,EAAE,GAAG;IAC3BC,sBAAsB,EAAE,GAAG;IAE3BC,eAAe,EAAE,IAAI;IAErBC,gCAAgC,EAAE1F,aAAa,CAAC,wBAAwB,CAAC;IAEzE2F,aAAa,EAAE3F,aAAa,CAAC,iBAAiB,CAAC;IAC/C4F,eAAe,EAAE5F,aAAa,CAAC,mBAAmB,CAAC;IACnD6F,oBAAoB,EAAE7F,aAAa,CAAC,yBAAyB,CAAC;IAE9D8F,uBAAuB,EAAE,IAAI;IAC7BC,oBAAoB,EAAE/F,aAAa,CAAC,yBAAyB,CAAC;IAC9DgG,2BAA2B,EACzBhG,aAAa,CAAC,gCAAgC,CAAC;IACjDiG,yBAAyB,EAAEjG,aAAa,CAAC,8BAA8B,CAAC;IACxEkG,yBAAyB,EAAElG,aAAa,CAAC,8BAA8B,CAAC;IAExEmG,mBAAmB,EAAEnG,aAAa,CAAC,uBAAuB,CAAC;IAC3DoG,wBAAwB,EAAEpG,aAAa,CAAC,6BAA6B,CAAC;IAEtEqG,aAAa,EAAErG,aAAa,CAAC,iBAAiB,CAAC;IAC/CsG,gBAAgB,EAAEtG,aAAa,CAAC,oBAAoB,CAAC;IACrDuG,gBAAgB,EAAEvG,aAAa,CAAC,oBAAoB,CAAC;IACrDwG,cAAc,EAAExG,aAAa,CAAC,kBAAkB,CAAC;IAEjDyG,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,qBAAqB,EAAE,CAAC;QAAE;QAC1BxC,uBAAuB,EAAE,EAAE;QAC3ByC,cAAc,EAAE,EAAE;QAClBrC,SAAS,EAAE,EAAE;QACbxD,IAAI,EAAE,4BAA4B;QAClCmE,QAAQ,EAAE,EAAE;QACZN,kBAAkB,EAAE;MACtB,CAAC;MACDiC,QAAQ,EAAE;QACRF,qBAAqB,EAAE,CAAC;QACxBxC,uBAAuB,EAAE,EAAE;QAC3BI,SAAS,EAAE;MACb;IACF;EAAC,EAC0B,CAAC;AAChC","ignoreList":[]}
|
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../src/IrisGridTheme.module.scss","../../../node_modules/@deephaven/components/scss/custom.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACAA;AC6LA;AFrLA;EACE;EACA,MACE;EAEF;EACA;EACA;EACA;EACA,eAZc;EAad;EACA;EACA;EAGA;EACA;EACA;EACA,aACE;EAEF,YAzBW;EA0BX;EAEA,oCA1BmC;EA2BnC;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EAEA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA","file":"IrisGridTheme.module.css","sourcesContent":["/* stylelint-disable */\n@import '@deephaven/components/scss/custom.scss';\n\n$font-size: 12px;\n$row-height: 19px;\n$header-height: 30px;\n$active-cell-selection-border-width: 2px;\n\n:export {\n grid-bg: var(--dh-color-grid-bg);\n font:\n $font-size Fira Sans,\n sans-serif; // must be preloaded\n white: var(--dh-color-white);\n black: var(--dh-color-black);\n header-bg: var(--dh-color-grid-header-bg);\n header-color: var(--dh-color-grid-header-text);\n header-height: $header-height;\n header-separator-color: var(--dh-color-grid-header-separator);\n header-separator-hover-color: var(--dh-color-grid-header-separator-hover);\n header-hidden-separator-hover-color: var(\n --dh-color-grid-header-separator-hidden-hover\n );\n header-sort-bar-color: var(--dh-color-grid-header-sort-bar);\n header-reverse-bar-color: var(--dh-color-grid-header-reverse-bar);\n header-bar-casing-color: var(--dh-color-grid-header-bar-casing);\n header-font:\n 600 $font-size Fira Sans,\n sans-serif; // must be preloaded\n row-height: $row-height;\n row-background-colors: var(--dh-color-grid-row-0-bg)\n var(--dh-color-grid-row-1-bg);\n active-cell-selection-border-width: $active-cell-selection-border-width;\n selection-color: var(--dh-color-grid-selection);\n selection-outline-color: var(--dh-color-grid-selection-outline);\n selection-outline-casing-color: var(--dh-color-grid-selection-outline-casing);\n row-hover-bg: var(--dh-color-grid-row-hover-bg);\n row-shadow-alpha: var(--dh-color-grid-row-shadow-alpha);\n selected-row-hover-bg: var(--dh-color-grid-row-hover-bg-selected);\n scroll-bar-active-selection-tick-color: var(\n --dh-color-grid-scroll-bar-active-selection-tick\n );\n\n scroll-bar-bg: var(--dh-color-grid-scroll-bar-bg);\n scroll-bar-hover-bg: var(--dh-color-grid-scroll-bar-hover-bg);\n scroll-bar-casing-color: var(--dh-color-grid-scroll-bar-casing);\n scroll-bar-corner-color: var(--dh-color-grid-scroll-bar-corner);\n scroll-bar-color: var(--dh-color-grid-scroll-bar);\n scroll-bar-hover-color: var(--dh-color-grid-scroll-bar-hover);\n scroll-bar-active-color: var(--dh-color-grid-scroll-bar-active);\n\n text-color: var(--dh-color-grid-text);\n hyperlink-color: var(--dh-color-grid-text-hyperlink);\n positive-number-color: var(--dh-color-grid-number-positive);\n negative-number-color: var(--dh-color-grid-number-negative);\n zero-number-color: var(--dh-color-grid-number-zero);\n date-color: var(--dh-color-grid-date);\n pending-text-color: var(--dh-color-grid-text-pending);\n error-text-color: var(--dh-color-grid-text-error);\n null-string-color: var(--dh-color-grid-string-null);\n\n filter-bar-active-bg: var(--dh-color-grid-filter-bar-active-bg);\n filter-bar-active-color: var(--dh-color-grid-filter-bar-active);\n filter-bar-expanded-bg: var(--dh-color-grid-filter-bar-expanded-bg);\n filter-bar-expanded-active-bg: var(\n --dh-color-grid-filter-bar-expanded-active-bg\n );\n filter-bar-expanded-active-cell-bg: var(\n --dh-color-grid-filter-bar-expanded-active-cell-bg\n );\n filter-bar-separator-color: var(--dh-color-grid-filter-bar-separator);\n filter-bar-error-color: var(--dh-color-grid-filter-bar-error);\n filter-icon-color: var(--dh-color-grid-filter-icon);\n\n scrim-color: var(--dh-color-grid-scrim);\n context-menu-sort-icon-color: var(--dh-color-grid-context-menu-sort-icon);\n context-menu-reverse-icon-color: var(\n --dh-color-grid-context-menu-reverse-icon\n );\n linker-column-hover-bg: var(--dh-color-grid-column-linker-hover-bg);\n tree-line-color: var(--dh-color-grid-tree-line);\n tree-marker-color: var(--dh-color-grid-tree-marker);\n tree-marker-hover-color: var(--dh-color-grid-tree-marker-hover);\n grouped-column-divider-color: var(--dh-color-grid-column-grouped-divider);\n\n floating-grid-row-color: var(--dh-color-grid-floating-row);\n floating-row-background-colors: var(--dh-color-grid-floating-row-bg);\n floating-divider-inner-color: var(--dh-color-grid-floating-divider-inner);\n floating-divider-outer-color: var(--dh-color-grid-floating-divider-outer);\n\n overflow-button-color: var(--dh-color-grid-overflow-button);\n overflow-button-hover-color: var(--dh-color-grid-overflow-button-hover);\n\n zero-line-color: var(--dh-color-grid-data-bar-zero-line);\n positive-bar-color: var(--dh-color-grid-data-bar-positive);\n negative-bar-color: var(--dh-color-grid-data-bar-negative);\n marker-bar-color: var(--dh-color-grid-data-bar-marker);\n}\n","/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/IrisGridTheme.module.scss","../../../node_modules/@deephaven/components/scss/custom.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACAA;AC6LA;AFrLA;EACE;EACA,MACE;EAEF;EACA;EACA;EACA;EACA,eAZc;EAad;EACA;EACA;EAGA;EACA;EACA;EACA,aACE;EAEF,YAzBW;EA0BX;EAEA,oCA1BmC;EA2BnC;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EAEA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA","file":"IrisGridTheme.module.css","sourcesContent":["/* stylelint-disable */\n@import '@deephaven/components/scss/custom.scss';\n\n$font-size: 12px;\n$row-height: 19px;\n$header-height: 30px;\n$active-cell-selection-border-width: 2px;\n\n:export {\n grid-bg: var(--dh-color-grid-bg);\n font:\n $font-size Fira Sans,\n sans-serif; // must be preloaded\n white: var(--dh-color-white);\n black: var(--dh-color-black);\n header-bg: var(--dh-color-grid-header-bg);\n header-color: var(--dh-color-grid-header-text);\n header-height: $header-height;\n header-separator-color: var(--dh-color-grid-header-separator);\n header-separator-hover-color: var(--dh-color-grid-header-separator-hover);\n header-hidden-separator-hover-color: var(\n --dh-color-grid-header-separator-hidden-hover\n );\n header-sort-bar-color: var(--dh-color-grid-header-sort-bar);\n header-reverse-bar-color: var(--dh-color-grid-header-reverse-bar);\n header-bar-casing-color: var(--dh-color-grid-header-bar-casing);\n header-font:\n 600 $font-size Fira Sans,\n sans-serif; // must be preloaded\n row-height: $row-height;\n row-background-colors: var(--dh-color-grid-row-0-bg)\n var(--dh-color-grid-row-1-bg);\n active-cell-selection-border-width: $active-cell-selection-border-width;\n selection-color: var(--dh-color-grid-selection);\n selection-outline-color: var(--dh-color-grid-selection-outline);\n selection-outline-casing-color: var(--dh-color-grid-selection-outline-casing);\n row-hover-bg: var(--dh-color-grid-row-hover-bg);\n row-shadow-alpha: var(--dh-color-grid-row-shadow-alpha);\n selected-row-hover-bg: var(--dh-color-grid-row-hover-bg-selected);\n scroll-bar-active-selection-tick-color: var(\n --dh-color-grid-scroll-bar-active-selection-tick\n );\n\n scroll-bar-bg: var(--dh-color-grid-scroll-bar-bg);\n scroll-bar-hover-bg: var(--dh-color-grid-scroll-bar-hover-bg);\n scroll-bar-casing-color: var(--dh-color-grid-scroll-bar-casing);\n scroll-bar-corner-color: var(--dh-color-grid-scroll-bar-corner);\n scroll-bar-color: var(--dh-color-grid-scroll-bar);\n scroll-bar-hover-color: var(--dh-color-grid-scroll-bar-hover);\n scroll-bar-active-color: var(--dh-color-grid-scroll-bar-active);\n\n text-color: var(--dh-color-grid-text);\n hyperlink-color: var(--dh-color-grid-text-hyperlink);\n positive-number-color: var(--dh-color-grid-number-positive);\n negative-number-color: var(--dh-color-grid-number-negative);\n zero-number-color: var(--dh-color-grid-number-zero);\n date-color: var(--dh-color-grid-date);\n pending-text-color: var(--dh-color-grid-text-pending);\n error-text-color: var(--dh-color-grid-text-error);\n null-string-color: var(--dh-color-grid-string-null);\n\n filter-bar-active-bg: var(--dh-color-grid-filter-bar-active-bg);\n filter-bar-active-color: var(--dh-color-grid-filter-bar-active);\n filter-bar-expanded-bg: var(--dh-color-grid-filter-bar-expanded-bg);\n filter-bar-expanded-active-bg: var(\n --dh-color-grid-filter-bar-expanded-active-bg\n );\n filter-bar-expanded-active-cell-bg: var(\n --dh-color-grid-filter-bar-expanded-active-cell-bg\n );\n filter-bar-separator-color: var(--dh-color-grid-filter-bar-separator);\n filter-bar-error-color: var(--dh-color-grid-filter-bar-error);\n filter-icon-color: var(--dh-color-grid-filter-icon);\n\n scrim-color: var(--dh-color-grid-scrim);\n context-menu-sort-icon-color: var(--dh-color-grid-context-menu-sort-icon);\n context-menu-reverse-icon-color: var(\n --dh-color-grid-context-menu-reverse-icon\n );\n linker-column-hover-bg: var(--dh-color-grid-column-linker-hover-bg);\n tree-line-color: var(--dh-color-grid-tree-line);\n tree-marker-color: var(--dh-color-grid-tree-marker);\n tree-marker-hover-color: var(--dh-color-grid-tree-marker-hover);\n grouped-column-divider-color: var(--dh-color-grid-column-grouped-divider);\n\n floating-grid-row-color: var(--dh-color-grid-floating-row);\n floating-row-background-colors: var(--dh-color-grid-floating-row-bg);\n floating-divider-inner-color: var(--dh-color-grid-floating-divider-inner);\n floating-divider-outer-color: var(--dh-color-grid-floating-divider-outer);\n\n overflow-button-color: var(--dh-color-grid-overflow-button);\n overflow-button-hover-color: var(--dh-color-grid-overflow-button-hover);\n\n zero-line-color: var(--dh-color-grid-data-bar-zero-line);\n positive-bar-color: var(--dh-color-grid-data-bar-positive);\n negative-bar-color: var(--dh-color-grid-data-bar-negative);\n marker-bar-color: var(--dh-color-grid-data-bar-marker);\n}\n","/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-text-disabled);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridThemeProvider.js","names":["useTheme","createContext","useMemo","createDefaultIrisGridTheme","jsx","_jsx","IrisGridThemeContext","theme","density","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' });\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;AAQvC,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAGO;EAAA,IAHN;IACpCC,QAAQ;IACRH,OAAO,GAAG;EACgB,CAAC,GAAAE,IAAA;EAC3B,IAAM;IAAEE;EAAa,CAAC,GAAGZ,QAAQ,CAAC,CAAC;EAEnC,IAAMa,SAAS,GAAGX,OAAO,CACvB,MAAMC,0BAA0B,CAAC,CAAC;EAClC;EACA;EACA,CAACS,YAAY,CACf,CAAC;EAED,IAAME,YAAY,GAAGZ,OAAO,CAC1B,OAAO;IAAEK,KAAK,EAAEM,SAAS;IAAEL;EAAQ,CAAC,CAAC,EACrC,CAACK,SAAS,EAAEL,OAAO,CACrB,CAAC;EAED,oBACEH,IAAA,CAACC,oBAAoB,CAACS,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAH,QAAA,EAChDA;EAAQ,CACoB,CAAC;AAEpC"
|
|
1
|
+
{"version":3,"file":"IrisGridThemeProvider.js","names":["useTheme","createContext","useMemo","createDefaultIrisGridTheme","jsx","_jsx","IrisGridThemeContext","theme","density","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' });\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;AAQvC,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAGO;EAAA,IAHN;IACpCC,QAAQ;IACRH,OAAO,GAAG;EACgB,CAAC,GAAAE,IAAA;EAC3B,IAAM;IAAEE;EAAa,CAAC,GAAGZ,QAAQ,CAAC,CAAC;EAEnC,IAAMa,SAAS,GAAGX,OAAO,CACvB,MAAMC,0BAA0B,CAAC,CAAC;EAClC;EACA;EACA,CAACS,YAAY,CACf,CAAC;EAED,IAAME,YAAY,GAAGZ,OAAO,CAC1B,OAAO;IAAEK,KAAK,EAAEM,SAAS;IAAEL;EAAQ,CAAC,CAAC,EACrC,CAACK,SAAS,EAAEL,OAAO,CACrB,CAAC;EAED,oBACEH,IAAA,CAACC,oBAAoB,CAACS,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAH,QAAA,EAChDA;EAAQ,CACoB,CAAC;AAEpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","Log","Formatter","TableUtils","assertNotNull","EMPTY_ARRAY","EventShimCustomEvent","IrisGridTableModelTemplate","IrisGridModel","IrisGridUtils","log","module","VirtualGroupColumn","Object","freeze","name","displayName","type","dataType","STRING","constituentType","isPartitionColumn","isSortable","isProxy","description","index","filter","Error","sort","formatColor","get","getFormat","formatNumber","formatDate","isUITreeRow","row","hasChildren","isExpanded","depth","isLayoutTreeTable","table","layoutHints","undefined","isIrisGridTreeTableModel","tableModel","showExtraGroupColumn","IrisGridTreeTableModel","constructor","dh","formatter","arguments","length","inputTable","_defineProperty","virtualColumns","tableColumns","tableGroupedColumns","columns","isAggregatedColumnsAvailable","aggregatedColumns","groupedColumns","Set","c","includes","map","c1","findIndex","c2","showExtraGroupCol","updateVirtualColumns","dispatchEvent","EVENT","COLUMNS_CHANGED","detail","applyBufferedViewport","viewportTop","viewportBottom","viewportColumns","setViewport","textForCell","x","y","column","sourceColumn","_this$columns$x","value","valueForCell","text","displayString","isTextType","showNullStrings","showEmptyStrings","getCachedGroupedColumnSet","has","colorForCell","theme","data","dataForCell","format","nullStringColor","color","columnTypeForFormatting","colorForValue","textColor","textAlignForCell","typeForFormatting","textAlignForValue","extractViewportRow","extractedRow","modifiedData","Map","i","key","cellData","warn","set","_objectSpread","snapshot","ranges","includeHeaders","_arguments","_this","_asyncToGenerator","_this$viewport$column","formatValue","viewport","viewportData","result","push","viewportRange","offset","rows","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","_viewportRow$data$get","getCachedColumns","getCachedGroupColumns","sourceForCell","depthForRow","getClearFilterRange","hasExpandableRows","isExpandAllAvailable","expandAll","isChartBuilderAvailable","isOrganizeColumnsAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","isColumnMovable","isRowExpandable","_row$hasChildren","isRowExpanded","_row$isExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","_row$depth","updateFrozenColumns"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport {\n type BoundedAxisRange,\n type GridCell,\n GridRange,\n type ModelIndex,\n} from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport {\n assertNotNull,\n EMPTY_ARRAY,\n EventShimCustomEvent,\n} from '@deephaven/utils';\nimport { type UIRow, type ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport IrisGridModel, { type DisplayColumn } from './IrisGridModel';\nimport { type IrisGridThemeType } from './IrisGridTheme';\nimport IrisGridUtils from './IrisGridUtils';\n\nconst log = Log.module('IrisGridTreeTableModel');\n\nconst VirtualGroupColumn = Object.freeze({\n name: '__DH_UI_GROUP__',\n displayName: 'Group',\n type: TableUtils.dataType.STRING,\n constituentType: TableUtils.dataType.STRING,\n isPartitionColumn: false,\n isSortable: false,\n isProxy: true,\n description: 'Key column',\n index: -1,\n filter: () => {\n throw new Error('Filter not implemented for virtual column');\n },\n sort: () => {\n throw new Error('Sort not implemented for virtual column');\n },\n formatColor: () => {\n throw new Error('Color not implemented for virtual column');\n },\n get: () => {\n throw new Error('get not implemented for virtual column');\n },\n getFormat: () => {\n throw new Error('getFormat not implemented for virtual column');\n },\n formatNumber: () => {\n throw new Error('formatNumber not implemented for virtual column');\n },\n formatDate: () => {\n throw new Error('formatDate not implemented for virtual column');\n },\n});\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\n\n/**\n * Check if a row is a UITreeRow\n * @param row The row to check\n * @returns True if the row is a UITreeRow and false otherwise\n */\nexport function isUITreeRow(row: unknown): row is UITreeRow {\n return (\n row != null &&\n typeof row === 'object' &&\n 'hasChildren' in row &&\n 'isExpanded' in row &&\n 'depth' in row &&\n typeof row.hasChildren === 'boolean' &&\n typeof row.isExpanded === 'boolean' &&\n typeof row.depth === 'number'\n );\n}\n\ntype LayoutTreeTable = DhType.TreeTable & {\n layoutHints?: null | DhType.LayoutHints;\n};\n\nfunction isLayoutTreeTable(table: DhType.TreeTable): table is LayoutTreeTable {\n return (table as LayoutTreeTable).layoutHints !== undefined;\n}\n\nexport function isIrisGridTreeTableModel(\n tableModel: IrisGridModel\n): tableModel is IrisGridTreeTableModel {\n return (tableModel as IrisGridTreeTableModel).showExtraGroupColumn != null;\n}\n\nclass IrisGridTreeTableModel extends IrisGridTableModelTemplate<\n DhType.TreeTable,\n UITreeRow\n> {\n /** We keep a virtual column at the front that tracks the \"group\" that is expanded */\n private virtualColumns: DisplayColumn[];\n\n private showExtraGroupCol = true;\n\n constructor(\n dh: typeof DhType,\n table: DhType.TreeTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh, table, formatter, inputTable);\n\n this.virtualColumns =\n this.showExtraGroupColumn && table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n }\n\n get showExtraGroupColumn(): boolean {\n return this.showExtraGroupCol;\n }\n\n set showExtraGroupColumn(showExtraGroupCol: boolean) {\n if (this.showExtraGroupCol === showExtraGroupCol) {\n return;\n }\n this.showExtraGroupCol = showExtraGroupCol;\n this.updateVirtualColumns();\n }\n\n updateVirtualColumns(): void {\n this.virtualColumns =\n this.showExtraGroupColumn && this.table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: this.columns,\n })\n );\n }\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: DhType.Column[]\n ): void {\n const viewportColumns = [\n // Need to always fetch the grouped columns so we always have key data for the rows\n // Used to display our virtual key column\n ...this.table.groupedColumns,\n ...columns.filter(\n c =>\n !this.virtualColumns.includes(c) && !this.groupedColumns.includes(c)\n ),\n ];\n this.table.setViewport(viewportTop, viewportBottom, viewportColumns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.sourceColumn(x, y);\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 const text = this.displayString(\n value,\n column.constituentType,\n column.name\n );\n\n if (TableUtils.isTextType(this.columns[x]?.type)) {\n if (value === null) {\n return this.formatter.showNullStrings ? 'null' : '';\n }\n\n if (text === '') {\n return this.formatter.showEmptyStrings ? 'empty' : '';\n }\n }\n\n return text;\n }\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 colorForCell(x: ModelIndex, y: ModelIndex, theme: IrisGridThemeType): string {\n const data = this.dataForCell(x, y);\n if (data) {\n const { format, value } = data;\n if (value == null || value === '') {\n assertNotNull(theme.nullStringColor);\n return theme.nullStringColor;\n }\n if (format?.color != null && format.color !== '') {\n return format.color;\n }\n\n // Fallback to formatting based on the value/type of the cell\n if (value != null) {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n assertNotNull(row);\n\n let columnTypeForFormatting = column.type;\n\n // For tree table leaf nodes, use the constituent type for formatting\n if (\n isUITreeRow(row) &&\n row.hasChildren === false &&\n column.constituentType != null\n ) {\n columnTypeForFormatting = column.constituentType;\n }\n\n return IrisGridUtils.colorForValue(\n theme,\n columnTypeForFormatting,\n column.name,\n value\n );\n }\n }\n\n return theme.textColor;\n }\n\n textAlignForCell(x: ModelIndex, y: ModelIndex): CanvasTextAlign {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n assertNotNull(row);\n\n let typeForFormatting = column.type;\n\n // For tree table leaf nodes, use the constituent type for formatting\n if (\n isUITreeRow(row) &&\n row.hasChildren === false &&\n column.constituentType != null\n ) {\n typeForFormatting = column.constituentType;\n }\n\n return IrisGridUtils.textAlignForValue(typeForFormatting, column.name);\n }\n\n extractViewportRow(row: DhType.TreeRow, columns: DhType.Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n const extractedRow = super.extractViewportRow(row, columns);\n const modifiedData = new Map(extractedRow.data);\n if (hasChildren) {\n for (let i = 0; i < this.virtualColumns.length; i += 1) {\n const key = i + (depth - 1) + (this.virtualColumns.length - 1);\n const cellData = modifiedData.get(key);\n if (cellData == null) {\n log.warn('Missing key data for virtual column', i, depth, key, row);\n } else {\n modifiedData.set(i, cellData);\n }\n }\n }\n\n return {\n ...extractedRow,\n data: modifiedData,\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue: (value: unknown, column: DhType.Column) => unknown = value =>\n value\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const columns = this.viewport.columns ?? this.columns;\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 - 1\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 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 columns(): DhType.Column[] {\n return this.getCachedColumns(this.virtualColumns, super.columns);\n }\n\n get aggregatedColumns(): readonly DhType.Column[] {\n return this.isAggregatedColumnsAvailable\n ? this.table.aggregatedColumns\n : EMPTY_ARRAY;\n }\n\n get groupedColumns(): readonly DhType.Column[] {\n return this.getCachedGroupColumns(\n this.virtualColumns,\n this.table.groupedColumns\n );\n }\n\n sourceForCell(column: ModelIndex, row: ModelIndex): GridCell {\n if (column >= this.virtualColumns.length) {\n return { column, row };\n }\n const depth = this.depthForRow(row);\n return { column: column + depth, row };\n }\n\n sourceColumn(column: ModelIndex, row: ModelIndex): DhType.Column {\n if (column >= this.virtualColumns.length) {\n return super.sourceColumn(column, row);\n }\n\n const depth = this.depthForRow(row);\n return this.columns[column + depth];\n }\n\n getClearFilterRange(column: ModelIndex): BoundedAxisRange | null {\n if (column >= this.virtualColumns.length) {\n return super.getClearFilterRange(column);\n }\n // Source for the proxied column could be any of the grouped columns.\n // Return the range of columns matching the grouped columns.\n return [this.virtualColumns.length, this.groupedColumns.length];\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n if (isLayoutTreeTable(this.table)) {\n return this.table.layoutHints;\n }\n return undefined;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isAggregatedColumnsAvailable(): boolean {\n return (\n // aggregatedColumns are not available in the Legacy API\n // and Core API before v0.39.4\n this.table.aggregatedColumns !== undefined\n );\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 isOrganizeColumnsAvailable(): boolean {\n return true;\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.isAggregatedColumnsAvailable,\n this.aggregatedColumns,\n this.groupedColumns,\n this.virtualColumns\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 != null) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll != null) {\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 getCachedColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableColumns]\n );\n\n getCachedGroupColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableGroupedColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableGroupedColumns]\n );\n\n getCachedFilterableColumnSet = memoize(\n (\n columns: readonly DhType.Column[],\n isAggregatedColumnsAvailable: boolean,\n aggregatedColumns: readonly DhType.Column[],\n groupedColumns: readonly DhType.Column[],\n virtualColumns: readonly DhType.Column[]\n ) => {\n if (isAggregatedColumnsAvailable) {\n return new Set(\n // Virtual and aggregated columns are not filterable\n columns\n .filter(\n c => !virtualColumns.includes(c) && !aggregatedColumns.includes(c)\n )\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n );\n }\n // For compatibility with the Enterprise JSAPI,\n // only groupedColumns are filterable on rollup tables\n // if aggregatedColumns API is not available.\n return new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns)\n .filter(c => !virtualColumns.includes(c))\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n );\n }\n );\n\n getCachedGroupedColumnSet = memoize(\n (groupedColumns: readonly DhType.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":";;;;;;;AAAA;AACA,OAAOA,OAAO,MAAM,aAAa;AACjC,SAGEC,SAAS,QAEJ,iBAAiB;AAExB,OAAOC,GAAG,MAAM,gBAAgB;AAChC,SAASC,SAAS,EAAEC,UAAU,QAAQ,wBAAwB;AAC9D,SACEC,aAAa,EACbC,WAAW,EACXC,oBAAoB,QACf,kBAAkB;AAAC,OAEnBC,0BAA0B;AAAA,OAC1BC,aAAa;AAAA,OAEbC,aAAa;AAEpB,IAAMC,GAAG,GAAGT,GAAG,CAACU,MAAM,CAAC,wBAAwB,CAAC;AAEhD,IAAMC,kBAAkB,GAAGC,MAAM,CAACC,MAAM,CAAC;EACvCC,IAAI,EAAE,iBAAiB;EACvBC,WAAW,EAAE,OAAO;EACpBC,IAAI,EAAEd,UAAU,CAACe,QAAQ,CAACC,MAAM;EAChCC,eAAe,EAAEjB,UAAU,CAACe,QAAQ,CAACC,MAAM;EAC3CE,iBAAiB,EAAE,KAAK;EACxBC,UAAU,EAAE,KAAK;EACjBC,OAAO,EAAE,IAAI;EACbC,WAAW,EAAE,YAAY;EACzBC,KAAK,EAAE,CAAC,CAAC;EACTC,MAAM,EAAEA,CAAA,KAAM;IACZ,MAAM,IAAIC,KAAK,CAAC,2CAA2C,CAAC;EAC9D,CAAC;EACDC,IAAI,EAAEA,CAAA,KAAM;IACV,MAAM,IAAID,KAAK,CAAC,yCAAyC,CAAC;EAC5D,CAAC;EACDE,WAAW,EAAEA,CAAA,KAAM;IACjB,MAAM,IAAIF,KAAK,CAAC,0CAA0C,CAAC;EAC7D,CAAC;EACDG,GAAG,EAAEA,CAAA,KAAM;IACT,MAAM,IAAIH,KAAK,CAAC,wCAAwC,CAAC;EAC3D,CAAC;EACDI,SAAS,EAAEA,CAAA,KAAM;IACf,MAAM,IAAIJ,KAAK,CAAC,8CAA8C,CAAC;EACjE,CAAC;EACDK,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAIL,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDM,UAAU,EAAEA,CAAA,KAAM;IAChB,MAAM,IAAIN,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC;AAQF;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,WAAWA,CAACC,GAAY,EAAoB;EAC1D,OACEA,GAAG,IAAI,IAAI,IACX,OAAOA,GAAG,KAAK,QAAQ,IACvB,aAAa,IAAIA,GAAG,IACpB,YAAY,IAAIA,GAAG,IACnB,OAAO,IAAIA,GAAG,IACd,OAAOA,GAAG,CAACC,WAAW,KAAK,SAAS,IACpC,OAAOD,GAAG,CAACE,UAAU,KAAK,SAAS,IACnC,OAAOF,GAAG,CAACG,KAAK,KAAK,QAAQ;AAEjC;AAMA,SAASC,iBAAiBA,CAACC,KAAuB,EAA4B;EAC5E,OAAQA,KAAK,CAAqBC,WAAW,KAAKC,SAAS;AAC7D;AAEA,OAAO,SAASC,wBAAwBA,CACtCC,UAAyB,EACa;EACtC,OAAQA,UAAU,CAA4BC,oBAAoB,IAAI,IAAI;AAC5E;AAEA,MAAMC,sBAAsB,SAASvC,0BAA0B,CAG7D;EACA;;EAKAwC,WAAWA,CACTC,EAAiB,EACjBR,KAAuB,EAGvB;IAAA,IAFAS,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,IAAIhD,SAAS,CAAC8C,EAAE,CAAC;IAAA,IAC7BI,UAAoC,GAAAF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,IAAI;IAE3C,KAAK,CAACF,EAAE,EAAER,KAAK,EAAES,SAAS,EAAEG,UAAU,CAAC;IAACC,eAAA;IAAAA,eAAA,4BARd,IAAI;IAAAA,eAAA,2BA+WbtD,OAAO,CACxB,CACEuD,cAAwC,EACxCC,YAAsC,KACnC,CAAC,GAAGD,cAAc,EAAE,GAAGC,YAAY,CAC1C,CAAC;IAAAF,eAAA,gCAEuBtD,OAAO,CAC7B,CACEuD,cAAwC,EACxCE,mBAA6C,KAC1C,CAAC,GAAGF,cAAc,EAAE,GAAGE,mBAAmB,CACjD,CAAC;IAAAH,eAAA,uCAE8BtD,OAAO,CACpC,CACE0D,OAAiC,EACjCC,4BAAqC,EACrCC,iBAA2C,EAC3CC,cAAwC,EACxCN,cAAwC,KACrC;MACH,IAAII,4BAA4B,EAAE;QAChC,OAAO,IAAIG,GAAG;QACZ;QACAJ,OAAO,CACJ/B,MAAM,CACLoC,CAAC,IAAI,CAACR,cAAc,CAACS,QAAQ,CAACD,CAAC,CAAC,IAAI,CAACH,iBAAiB,CAACI,QAAQ,CAACD,CAAC,CACnE,CAAC,CACAE,GAAG,CAACC,EAAE,IAAIR,OAAO,CAACS,SAAS,CAACC,EAAE,IAAIF,EAAE,CAAClD,IAAI,KAAKoD,EAAE,CAACpD,IAAI,CAAC,CAC3D,CAAC;MACH;MACA;MACA;MACA;MACA,OAAO,IAAI8C,GAAG,CACZ,CAAC,CAAAD,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAET,MAAM,IAAG,CAAC,GAAGS,cAAc,GAAGH,OAAO,EACnD/B,MAAM,CAACoC,CAAC,IAAI,CAACR,cAAc,CAACS,QAAQ,CAACD,CAAC,CAAC,CAAC,CACxCE,GAAG,CAACC,EAAE,IAAIR,OAAO,CAACS,SAAS,CAACC,EAAE,IAAIF,EAAE,CAAClD,IAAI,KAAKoD,EAAE,CAACpD,IAAI,CAAC,CAC3D,CAAC;IACH,CACF,CAAC;IAAAsC,eAAA,oCAE2BtD,OAAO,CAChC6D,cAAwC,IACvC,IAAIC,GAAG,CACLD,cAAc,CAACI,GAAG,CAACC,EAAE,IACnB,IAAI,CAACR,OAAO,CAACS,SAAS,CAACC,EAAE,IAAIF,EAAE,CAAClD,IAAI,KAAKoD,EAAE,CAACpD,IAAI,CAClD,CACF,CACJ,CAAC;IAvZC,IAAI,CAACuC,cAAc,GACjB,IAAI,CAACT,oBAAoB,IAAIL,KAAK,CAACoB,cAAc,CAACT,MAAM,GAAG,CAAC,GACxD,CAACvC,kBAAkB,CAAC,GACpB,EAAE;EACV;EAEA,IAAIiC,oBAAoBA,CAAA,EAAY;IAClC,OAAO,IAAI,CAACuB,iBAAiB;EAC/B;EAEA,IAAIvB,oBAAoBA,CAACuB,iBAA0B,EAAE;IACnD,IAAI,IAAI,CAACA,iBAAiB,KAAKA,iBAAiB,EAAE;MAChD;IACF;IACA,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,oBAAoB,CAAC,CAAC;EAC7B;EAEAA,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACf,cAAc,GACjB,IAAI,CAACT,oBAAoB,IAAI,IAAI,CAACL,KAAK,CAACoB,cAAc,CAACT,MAAM,GAAG,CAAC,GAC7D,CAACvC,kBAAkB,CAAC,GACpB,EAAE;IACR,IAAI,CAAC0D,aAAa,CAChB,IAAIhE,oBAAoB,CAACE,aAAa,CAAC+D,KAAK,CAACC,eAAe,EAAE;MAC5DC,MAAM,EAAE,IAAI,CAAChB;IACf,CAAC,CACH,CAAC;EACH;EAEAiB,qBAAqBA,CACnBC,WAAmB,EACnBC,cAAsB,EACtBnB,OAAwB,EAClB;IACN,IAAMoB,eAAe,GAAG;IACtB;IACA;IACA,GAAG,IAAI,CAACrC,KAAK,CAACoB,cAAc,EAC5B,GAAGH,OAAO,CAAC/B,MAAM,CACfoC,CAAC,IACC,CAAC,IAAI,CAACR,cAAc,CAACS,QAAQ,CAACD,CAAC,CAAC,IAAI,CAAC,IAAI,CAACF,cAAc,CAACG,QAAQ,CAACD,CAAC,CACvE,CAAC,CACF;IACD,IAAI,CAACtB,KAAK,CAACsC,WAAW,CAACH,WAAW,EAAEC,cAAc,EAAEC,eAAe,CAAC;EACtE;EAEAE,WAAWA,CAACC,CAAa,EAAEC,CAAa,EAAU;IAChD,IAAMC,MAAM,GAAG,IAAI,CAACC,YAAY,CAACH,CAAC,EAAEC,CAAC,CAAC;IACtC,IAAM9C,GAAG,GAAG,IAAI,CAACA,GAAG,CAAC8C,CAAC,CAAC;IACvB,IAAI9C,GAAG,IAAI,IAAI,IAAI+C,MAAM,IAAI,IAAI,EAAE;MACjC,IAAI,CAAC/C,GAAG,CAACC,WAAW,IAAI8C,MAAM,CAAC9D,eAAe,IAAI,IAAI,EAAE;QAAA,IAAAgE,eAAA;QACtD,IAAMC,MAAK,GAAG,IAAI,CAACC,YAAY,CAACN,CAAC,EAAEC,CAAC,CAAC;QACrC,IAAMM,IAAI,GAAG,IAAI,CAACC,aAAa,CAC7BH,MAAK,EACLH,MAAM,CAAC9D,eAAe,EACtB8D,MAAM,CAACnE,IACT,CAAC;QAED,IAAIZ,UAAU,CAACsF,UAAU,EAAAL,eAAA,GAAC,IAAI,CAAC3B,OAAO,CAACuB,CAAC,CAAC,cAAAI,eAAA,uBAAfA,eAAA,CAAiBnE,IAAI,CAAC,EAAE;UAChD,IAAIoE,MAAK,KAAK,IAAI,EAAE;YAClB,OAAO,IAAI,CAACpC,SAAS,CAACyC,eAAe,GAAG,MAAM,GAAG,EAAE;UACrD;UAEA,IAAIH,IAAI,KAAK,EAAE,EAAE;YACf,OAAO,IAAI,CAACtC,SAAS,CAAC0C,gBAAgB,GAAG,OAAO,GAAG,EAAE;UACvD;QACF;QAEA,OAAOJ,IAAI;MACb;;MAEA;MACA,IACEpD,GAAG,CAACC,WAAW,IACfD,GAAG,CAACG,KAAK,IAAI0C,CAAC,GAAG,CAAC,IAClB,IAAI,CAACM,YAAY,CAACN,CAAC,EAAEC,CAAC,CAAC,KAAK,IAAI,IAChC,IAAI,CAACW,yBAAyB,CAAC,IAAI,CAAChC,cAAc,CAAC,CAACiC,GAAG,CAACb,CAAC,CAAC,EAC1D;QACA,OAAO,EAAE;MACX;IACF;IAEA,OAAO,KAAK,CAACD,WAAW,CAACC,CAAC,EAAEC,CAAC,CAAC;EAChC;EAEAa,YAAYA,CAACd,CAAa,EAAEC,CAAa,EAAEc,KAAwB,EAAU;IAC3E,IAAMC,IAAI,GAAG,IAAI,CAACC,WAAW,CAACjB,CAAC,EAAEC,CAAC,CAAC;IACnC,IAAIe,IAAI,EAAE;MACR,IAAM;QAAEE,MAAM;QAAEb,KAAK,EAALA;MAAM,CAAC,GAAGW,IAAI;MAC9B,IAAIX,OAAK,IAAI,IAAI,IAAIA,OAAK,KAAK,EAAE,EAAE;QACjCjF,aAAa,CAAC2F,KAAK,CAACI,eAAe,CAAC;QACpC,OAAOJ,KAAK,CAACI,eAAe;MAC9B;MACA,IAAI,CAAAD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEE,KAAK,KAAI,IAAI,IAAIF,MAAM,CAACE,KAAK,KAAK,EAAE,EAAE;QAChD,OAAOF,MAAM,CAACE,KAAK;MACrB;;MAEA;MACA,IAAIf,OAAK,IAAI,IAAI,EAAE;QACjB,IAAMH,OAAM,GAAG,IAAI,CAACC,YAAY,CAACH,CAAC,EAAEC,CAAC,CAAC;QACtC,IAAM9C,GAAG,GAAG,IAAI,CAACA,GAAG,CAAC8C,CAAC,CAAC;QACvB7E,aAAa,CAAC+B,GAAG,CAAC;QAElB,IAAIkE,uBAAuB,GAAGnB,OAAM,CAACjE,IAAI;;QAEzC;QACA,IACEiB,WAAW,CAACC,GAAG,CAAC,IAChBA,GAAG,CAACC,WAAW,KAAK,KAAK,IACzB8C,OAAM,CAAC9D,eAAe,IAAI,IAAI,EAC9B;UACAiF,uBAAuB,GAAGnB,OAAM,CAAC9D,eAAe;QAClD;QAEA,OAAOX,aAAa,CAAC6F,aAAa,CAChCP,KAAK,EACLM,uBAAuB,EACvBnB,OAAM,CAACnE,IAAI,EACXsE,OACF,CAAC;MACH;IACF;IAEA,OAAOU,KAAK,CAACQ,SAAS;EACxB;EAEAC,gBAAgBA,CAACxB,CAAa,EAAEC,CAAa,EAAmB;IAC9D,IAAMC,MAAM,GAAG,IAAI,CAACC,YAAY,CAACH,CAAC,EAAEC,CAAC,CAAC;IACtC,IAAM9C,GAAG,GAAG,IAAI,CAACA,GAAG,CAAC8C,CAAC,CAAC;IACvB7E,aAAa,CAAC+B,GAAG,CAAC;IAElB,IAAIsE,iBAAiB,GAAGvB,MAAM,CAACjE,IAAI;;IAEnC;IACA,IACEiB,WAAW,CAACC,GAAG,CAAC,IAChBA,GAAG,CAACC,WAAW,KAAK,KAAK,IACzB8C,MAAM,CAAC9D,eAAe,IAAI,IAAI,EAC9B;MACAqF,iBAAiB,GAAGvB,MAAM,CAAC9D,eAAe;IAC5C;IAEA,OAAOX,aAAa,CAACiG,iBAAiB,CAACD,iBAAiB,EAAEvB,MAAM,CAACnE,IAAI,CAAC;EACxE;EAEA4F,kBAAkBA,CAACxE,GAAmB,EAAEsB,OAAwB,EAAa;IAC3E,IAAM;MAAEpB,UAAU;MAAED,WAAW;MAAEE;IAAM,CAAC,GAAGH,GAAG;IAC9C,IAAMyE,YAAY,GAAG,KAAK,CAACD,kBAAkB,CAACxE,GAAG,EAAEsB,OAAO,CAAC;IAC3D,IAAMoD,YAAY,GAAG,IAAIC,GAAG,CAACF,YAAY,CAACZ,IAAI,CAAC;IAC/C,IAAI5D,WAAW,EAAE;MACf,KAAK,IAAI2E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACzD,cAAc,CAACH,MAAM,EAAE4D,CAAC,IAAI,CAAC,EAAE;QACtD,IAAMC,GAAG,GAAGD,CAAC,IAAIzE,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAACgB,cAAc,CAACH,MAAM,GAAG,CAAC,CAAC;QAC9D,IAAM8D,QAAQ,GAAGJ,YAAY,CAAC/E,GAAG,CAACkF,GAAG,CAAC;QACtC,IAAIC,QAAQ,IAAI,IAAI,EAAE;UACpBvG,GAAG,CAACwG,IAAI,CAAC,qCAAqC,EAAEH,CAAC,EAAEzE,KAAK,EAAE0E,GAAG,EAAE7E,GAAG,CAAC;QACrE,CAAC,MAAM;UACL0E,YAAY,CAACM,GAAG,CAACJ,CAAC,EAAEE,QAAQ,CAAC;QAC/B;MACF;IACF;IAEA,OAAAG,aAAA,CAAAA,aAAA,KACKR,YAAY;MACfZ,IAAI,EAAEa,YAAY;MAClBxE,UAAU;MACVD,WAAW;MACXE;IAAK;EAET;EAEM+E,QAAQA,CACZC,MAAmB,EACnBC,cAAwB,EAGF;IAAA,IAAAC,UAAA,GAAAtE,SAAA;MAAAuE,KAAA;IAAA,OAAAC,iBAAA;MAAA,IAAAC,qBAAA;MAAA,IAFtBC,WAA+D,GAAAJ,UAAA,CAAArE,MAAA,QAAAqE,UAAA,QAAA9E,SAAA,GAAA8E,UAAA,MAAGnC,KAAK,IACrEA,KAAK;MAEPjF,aAAa,CAACqH,KAAI,CAACI,QAAQ,CAAC;MAC5BzH,aAAa,CAACqH,KAAI,CAACK,YAAY,CAAC;MAChC,IAAMrE,OAAO,IAAAkE,qBAAA,GAAGF,KAAI,CAACI,QAAQ,CAACpE,OAAO,cAAAkE,qBAAA,cAAAA,qBAAA,GAAIF,KAAI,CAAChE,OAAO;MACrD,IAAMsE,MAAM,GAAG,EAAE;MAEjB,IAAIR,cAAc,IAAI,IAAI,IAAIA,cAAc,EAAE;QAC5CQ,MAAM,CAACC,IAAI,CAACvE,OAAO,CAACO,GAAG,CAACF,CAAC,IAAIA,CAAC,CAAC/C,IAAI,CAAC,CAAC;MACvC;MAEA,IAAMkH,aAAa,GAAG,IAAIjI,SAAS,CACjC,CAAC,EACDyH,KAAI,CAACK,YAAY,CAACI,MAAM,EACxBzE,OAAO,CAACN,MAAM,EACdsE,KAAI,CAACK,YAAY,CAACI,MAAM,GAAGT,KAAI,CAACK,YAAY,CAACK,IAAI,CAAChF,MAAM,GAAG,CAC7D,CAAC;MAED,KAAK,IAAI4D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGO,MAAM,CAACnE,MAAM,EAAE4D,CAAC,IAAI,CAAC,EAAE;QACzC,IAAMqB,YAAY,GAAGpI,SAAS,CAACoI,YAAY,CAACH,aAAa,EAAEX,MAAM,CAACP,CAAC,CAAC,CAAC;QAErE3G,aAAa,CAACgI,YAAY,CAAC;QAC3BhI,aAAa,CAACgI,YAAY,CAACC,QAAQ,CAAC;QACpCjI,aAAa,CAACgI,YAAY,CAACE,MAAM,CAAC;QAElC,KAAK,IAAIC,CAAC,GAAGH,YAAY,CAACC,QAAQ,EAAEE,CAAC,IAAIH,YAAY,CAACE,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;UACpE,IAAMC,SAAS,GAAG,EAAE;UACpB,IAAMC,WAAW,GACfhB,KAAI,CAACK,YAAY,CAACK,IAAI,CAACI,CAAC,GAAGd,KAAI,CAACK,YAAY,CAACI,MAAM,CAAC;UACtD9H,aAAa,CAACgI,YAAY,CAACM,WAAW,CAAC;UACvCtI,aAAa,CAACgI,YAAY,CAACO,SAAS,CAAC;UACrC,KACE,IAAI7E,CAAC,GAAGsE,YAAY,CAACM,WAAW,EAChC5E,CAAC,IAAIsE,YAAY,CAACO,SAAS,EAC3B7E,CAAC,IAAI,CAAC,EACN;YAAA,IAAA8E,qBAAA;YACAJ,SAAS,CAACR,IAAI,CACZJ,WAAW,EAAAgB,qBAAA,GAACH,WAAW,CAACzC,IAAI,CAAClE,GAAG,CAACgC,CAAC,CAAC,cAAA8E,qBAAA,uBAAvBA,qBAAA,CAAyBvD,KAAK,EAAEoC,KAAI,CAAChE,OAAO,CAACK,CAAC,CAAC,CAC7D,CAAC;UACH;UACAiE,MAAM,CAACC,IAAI,CAACQ,SAAS,CAAC;QACxB;MACF;MAEA,OAAOT,MAAM;IAAC;EAChB;EAEA,IAAItE,OAAOA,CAAA,EAAoB;IAC7B,OAAO,IAAI,CAACoF,gBAAgB,CAAC,IAAI,CAACvF,cAAc,EAAE,KAAK,CAACG,OAAO,CAAC;EAClE;EAEA,IAAIE,iBAAiBA,CAAA,EAA6B;IAChD,OAAO,IAAI,CAACD,4BAA4B,GACpC,IAAI,CAAClB,KAAK,CAACmB,iBAAiB,GAC5BtD,WAAW;EACjB;EAEA,IAAIuD,cAAcA,CAAA,EAA6B;IAC7C,OAAO,IAAI,CAACkF,qBAAqB,CAC/B,IAAI,CAACxF,cAAc,EACnB,IAAI,CAACd,KAAK,CAACoB,cACb,CAAC;EACH;EAEAmF,aAAaA,CAAC7D,MAAkB,EAAE/C,GAAe,EAAY;IAC3D,IAAI+C,MAAM,IAAI,IAAI,CAAC5B,cAAc,CAACH,MAAM,EAAE;MACxC,OAAO;QAAE+B,MAAM;QAAE/C;MAAI,CAAC;IACxB;IACA,IAAMG,KAAK,GAAG,IAAI,CAAC0G,WAAW,CAAC7G,GAAG,CAAC;IACnC,OAAO;MAAE+C,MAAM,EAAEA,MAAM,GAAG5C,KAAK;MAAEH;IAAI,CAAC;EACxC;EAEAgD,YAAYA,CAACD,MAAkB,EAAE/C,GAAe,EAAiB;IAC/D,IAAI+C,MAAM,IAAI,IAAI,CAAC5B,cAAc,CAACH,MAAM,EAAE;MACxC,OAAO,KAAK,CAACgC,YAAY,CAACD,MAAM,EAAE/C,GAAG,CAAC;IACxC;IAEA,IAAMG,KAAK,GAAG,IAAI,CAAC0G,WAAW,CAAC7G,GAAG,CAAC;IACnC,OAAO,IAAI,CAACsB,OAAO,CAACyB,MAAM,GAAG5C,KAAK,CAAC;EACrC;EAEA2G,mBAAmBA,CAAC/D,MAAkB,EAA2B;IAC/D,IAAIA,MAAM,IAAI,IAAI,CAAC5B,cAAc,CAACH,MAAM,EAAE;MACxC,OAAO,KAAK,CAAC8F,mBAAmB,CAAC/D,MAAM,CAAC;IAC1C;IACA;IACA;IACA,OAAO,CAAC,IAAI,CAAC5B,cAAc,CAACH,MAAM,EAAE,IAAI,CAACS,cAAc,CAACT,MAAM,CAAC;EACjE;EAEA,IAAIV,WAAWA,CAAA,EAA0C;IACvD,IAAIF,iBAAiB,CAAC,IAAI,CAACC,KAAK,CAAC,EAAE;MACjC,OAAO,IAAI,CAACA,KAAK,CAACC,WAAW;IAC/B;IACA,OAAOC,SAAS;EAClB;EAEA,IAAIwG,iBAAiBA,CAAA,EAAY;IAC/B,OAAO,IAAI;EACb;EAEA,IAAIxF,4BAA4BA,CAAA,EAAY;IAC1C;MACE;MACA;MACA,IAAI,CAAClB,KAAK,CAACmB,iBAAiB,KAAKjB;IAAS;EAE9C;EAEA,IAAIyG,oBAAoBA,CAAA,EAAY;IAClC,OAAO,IAAI,CAAC3G,KAAK,CAAC4G,SAAS,KAAK1G,SAAS;EAC3C;EAEA,IAAI2G,uBAAuBA,CAAA,EAAY;IACrC,OAAO,KAAK;EACd;EAEA,IAAIC,0BAA0BA,CAAA,EAAY;IACxC,OAAO,IAAI;EACb;EAEA,IAAIC,yBAAyBA,CAAA,EAAY;IACvC,OAAO,KAAK;EACd;EAEA,IAAIC,YAAYA,CAAA,EAAY;IAC1B,OAAO,KAAK;EACd;EAEAC,YAAYA,CAACC,WAAuB,EAAW;IAC7C,OAAO,IAAI,CAACC,4BAA4B,CACtC,IAAI,CAAClG,OAAO,EACZ,IAAI,CAACC,4BAA4B,EACjC,IAAI,CAACC,iBAAiB,EACtB,IAAI,CAACC,cAAc,EACnB,IAAI,CAACN,cACP,CAAC,CAACuC,GAAG,CAAC6D,WAAW,CAAC;EACpB;EAEAE,eAAeA,CAAC1E,MAAkB,EAAW;IAC3C,OAAOA,MAAM,IAAI,IAAI,CAACtB,cAAc,CAACT,MAAM;EAC7C;EAEA0G,eAAeA,CAAC5E,CAAa,EAAW;IAAA,IAAA6E,gBAAA;IACtC,IAAM3H,GAAG,GAAG,IAAI,CAACA,GAAG,CAAC8C,CAAC,CAAC;IACvB,QAAA6E,gBAAA,GAAO3H,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEC,WAAW,cAAA0H,gBAAA,cAAAA,gBAAA,GAAI,KAAK;EAClC;EAEAC,aAAaA,CAAC9E,CAAa,EAAW;IAAA,IAAA+E,eAAA;IACpC,IAAM7H,GAAG,GAAG,IAAI,CAACA,GAAG,CAAC8C,CAAC,CAAC;IACvB,QAAA+E,eAAA,GAAO7H,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEE,UAAU,cAAA2H,eAAA,cAAAA,eAAA,GAAI,KAAK;EACjC;EAEAC,cAAcA,CACZhF,CAAa,EACb5C,UAAmB,EAEb;IAAA,IADN6H,iBAAiB,GAAAhH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,KAAK;IAEzB,IAAI,IAAI,CAACiG,oBAAoB,EAAE;MAC7B,IAAI,CAAC3G,KAAK,CAAC2H,WAAW,CAAClF,CAAC,EAAE5C,UAAU,EAAE6H,iBAAiB,CAAC;IAC1D,CAAC,MAAM;MACL,IAAI,CAAC1H,KAAK,CAAC2H,WAAW,CAAClF,CAAC,EAAE5C,UAAU,CAAC;IACvC;EACF;EAEA+G,SAASA,CAAA,EAAS;IAChB,IAAI,IAAI,CAAC5G,KAAK,CAAC4G,SAAS,IAAI,IAAI,EAAE;MAChC,IAAI,CAAC5G,KAAK,CAAC4G,SAAS,CAAC,CAAC;IACxB;EACF;EAEAgB,WAAWA,CAAA,EAAS;IAClB,IAAI,IAAI,CAAC5H,KAAK,CAAC4H,WAAW,IAAI,IAAI,EAAE;MAClC,IAAI,CAAC5H,KAAK,CAAC4H,WAAW,CAAC,CAAC;IAC1B;EACF;EAEApB,WAAWA,CAAC/D,CAAa,EAAc;IAAA,IAAAoF,UAAA;IACrC,IAAMlI,GAAG,GAAG,IAAI,CAACA,GAAG,CAAC8C,CAAC,CAAC;IACvB,OAAO,EAAAoF,UAAA,GAAClI,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEG,KAAK,cAAA+H,UAAA,cAAAA,UAAA,GAAI,CAAC,IAAI,CAAC;EAC9B;EAsDAC,mBAAmBA,CAAC7G,OAAqB,EAAQ;IAC/C,IAAIA,OAAO,CAACN,MAAM,GAAG,CAAC,EAAE;MACtB,MAAM,IAAIxB,KAAK,CAAC,uCAAuC,CAAC;IAC1D;EACF;AACF;AAEA,eAAemB,sBAAsB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","Log","Formatter","TableUtils","assertNotNull","EMPTY_ARRAY","EventShimCustomEvent","IrisGridTableModelTemplate","IrisGridModel","IrisGridUtils","log","module","VirtualGroupColumn","Object","freeze","name","displayName","type","dataType","STRING","constituentType","isPartitionColumn","isSortable","isProxy","description","index","filter","Error","sort","formatColor","get","getFormat","formatNumber","formatDate","isUITreeRow","row","hasChildren","isExpanded","depth","isLayoutTreeTable","table","layoutHints","undefined","isIrisGridTreeTableModel","tableModel","showExtraGroupColumn","IrisGridTreeTableModel","constructor","dh","formatter","arguments","length","inputTable","_defineProperty","virtualColumns","tableColumns","tableGroupedColumns","columns","isAggregatedColumnsAvailable","aggregatedColumns","groupedColumns","Set","c","includes","map","c1","findIndex","c2","showExtraGroupCol","updateVirtualColumns","dispatchEvent","EVENT","COLUMNS_CHANGED","detail","applyBufferedViewport","viewportTop","viewportBottom","viewportColumns","setViewport","textForCell","x","y","column","sourceColumn","_this$columns$x","value","valueForCell","text","displayString","isTextType","showNullStrings","showEmptyStrings","getCachedGroupedColumnSet","has","colorForCell","theme","data","dataForCell","format","nullStringColor","color","columnTypeForFormatting","colorForValue","textColor","textAlignForCell","typeForFormatting","textAlignForValue","extractViewportRow","extractedRow","modifiedData","Map","i","key","cellData","warn","set","_objectSpread","snapshot","ranges","includeHeaders","_arguments","_this","_asyncToGenerator","_this$viewport$column","formatValue","viewport","viewportData","result","push","viewportRange","offset","rows","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","_viewportRow$data$get","getCachedColumns","getCachedGroupColumns","sourceForCell","depthForRow","getClearFilterRange","hasExpandableRows","isExpandAllAvailable","expandAll","isChartBuilderAvailable","isOrganizeColumnsAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","isColumnMovable","isRowExpandable","_row$hasChildren","isRowExpanded","_row$isExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","_row$depth","updateFrozenColumns"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport {\n type BoundedAxisRange,\n type GridCell,\n GridRange,\n type ModelIndex,\n} from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport {\n assertNotNull,\n EMPTY_ARRAY,\n EventShimCustomEvent,\n} from '@deephaven/utils';\nimport { type UIRow, type ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport IrisGridModel, { type DisplayColumn } from './IrisGridModel';\nimport { type IrisGridThemeType } from './IrisGridTheme';\nimport IrisGridUtils from './IrisGridUtils';\n\nconst log = Log.module('IrisGridTreeTableModel');\n\nconst VirtualGroupColumn = Object.freeze({\n name: '__DH_UI_GROUP__',\n displayName: 'Group',\n type: TableUtils.dataType.STRING,\n constituentType: TableUtils.dataType.STRING,\n isPartitionColumn: false,\n isSortable: false,\n isProxy: true,\n description: 'Key column',\n index: -1,\n filter: () => {\n throw new Error('Filter not implemented for virtual column');\n },\n sort: () => {\n throw new Error('Sort not implemented for virtual column');\n },\n formatColor: () => {\n throw new Error('Color not implemented for virtual column');\n },\n get: () => {\n throw new Error('get not implemented for virtual column');\n },\n getFormat: () => {\n throw new Error('getFormat not implemented for virtual column');\n },\n formatNumber: () => {\n throw new Error('formatNumber not implemented for virtual column');\n },\n formatDate: () => {\n throw new Error('formatDate not implemented for virtual column');\n },\n});\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\n\n/**\n * Check if a row is a UITreeRow\n * @param row The row to check\n * @returns True if the row is a UITreeRow and false otherwise\n */\nexport function isUITreeRow(row: unknown): row is UITreeRow {\n return (\n row != null &&\n typeof row === 'object' &&\n 'hasChildren' in row &&\n 'isExpanded' in row &&\n 'depth' in row &&\n typeof row.hasChildren === 'boolean' &&\n typeof row.isExpanded === 'boolean' &&\n typeof row.depth === 'number'\n );\n}\n\ntype LayoutTreeTable = DhType.TreeTable & {\n layoutHints?: null | DhType.LayoutHints;\n};\n\nfunction isLayoutTreeTable(table: DhType.TreeTable): table is LayoutTreeTable {\n return (table as LayoutTreeTable).layoutHints !== undefined;\n}\n\nexport function isIrisGridTreeTableModel(\n tableModel: IrisGridModel\n): tableModel is IrisGridTreeTableModel {\n return (tableModel as IrisGridTreeTableModel).showExtraGroupColumn != null;\n}\n\nclass IrisGridTreeTableModel extends IrisGridTableModelTemplate<\n DhType.TreeTable,\n UITreeRow\n> {\n /** We keep a virtual column at the front that tracks the \"group\" that is expanded */\n private virtualColumns: DisplayColumn[];\n\n private showExtraGroupCol = true;\n\n constructor(\n dh: typeof DhType,\n table: DhType.TreeTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh, table, formatter, inputTable);\n\n this.virtualColumns =\n this.showExtraGroupColumn && table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n }\n\n get showExtraGroupColumn(): boolean {\n return this.showExtraGroupCol;\n }\n\n set showExtraGroupColumn(showExtraGroupCol: boolean) {\n if (this.showExtraGroupCol === showExtraGroupCol) {\n return;\n }\n this.showExtraGroupCol = showExtraGroupCol;\n this.updateVirtualColumns();\n }\n\n updateVirtualColumns(): void {\n this.virtualColumns =\n this.showExtraGroupColumn && this.table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: this.columns,\n })\n );\n }\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: DhType.Column[]\n ): void {\n const viewportColumns = [\n // Need to always fetch the grouped columns so we always have key data for the rows\n // Used to display our virtual key column\n ...this.table.groupedColumns,\n ...columns.filter(\n c =>\n !this.virtualColumns.includes(c) && !this.groupedColumns.includes(c)\n ),\n ];\n this.table.setViewport(viewportTop, viewportBottom, viewportColumns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.sourceColumn(x, y);\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 const text = this.displayString(\n value,\n column.constituentType,\n column.name\n );\n\n if (TableUtils.isTextType(this.columns[x]?.type)) {\n if (value === null) {\n return this.formatter.showNullStrings ? 'null' : '';\n }\n\n if (text === '') {\n return this.formatter.showEmptyStrings ? 'empty' : '';\n }\n }\n\n return text;\n }\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 colorForCell(x: ModelIndex, y: ModelIndex, theme: IrisGridThemeType): string {\n const data = this.dataForCell(x, y);\n if (data) {\n const { format, value } = data;\n if (value == null || value === '') {\n assertNotNull(theme.nullStringColor);\n return theme.nullStringColor;\n }\n if (format?.color != null && format.color !== '') {\n return format.color;\n }\n\n // Fallback to formatting based on the value/type of the cell\n if (value != null) {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n assertNotNull(row);\n\n let columnTypeForFormatting = column.type;\n\n // For tree table leaf nodes, use the constituent type for formatting\n if (\n isUITreeRow(row) &&\n row.hasChildren === false &&\n column.constituentType != null\n ) {\n columnTypeForFormatting = column.constituentType;\n }\n\n return IrisGridUtils.colorForValue(\n theme,\n columnTypeForFormatting,\n column.name,\n value\n );\n }\n }\n\n return theme.textColor;\n }\n\n textAlignForCell(x: ModelIndex, y: ModelIndex): CanvasTextAlign {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n assertNotNull(row);\n\n let typeForFormatting = column.type;\n\n // For tree table leaf nodes, use the constituent type for formatting\n if (\n isUITreeRow(row) &&\n row.hasChildren === false &&\n column.constituentType != null\n ) {\n typeForFormatting = column.constituentType;\n }\n\n return IrisGridUtils.textAlignForValue(typeForFormatting, column.name);\n }\n\n extractViewportRow(row: DhType.TreeRow, columns: DhType.Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n const extractedRow = super.extractViewportRow(row, columns);\n const modifiedData = new Map(extractedRow.data);\n if (hasChildren) {\n for (let i = 0; i < this.virtualColumns.length; i += 1) {\n const key = i + (depth - 1) + (this.virtualColumns.length - 1);\n const cellData = modifiedData.get(key);\n if (cellData == null) {\n log.warn('Missing key data for virtual column', i, depth, key, row);\n } else {\n modifiedData.set(i, cellData);\n }\n }\n }\n\n return {\n ...extractedRow,\n data: modifiedData,\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue: (value: unknown, column: DhType.Column) => unknown = value =>\n value\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const columns = this.viewport.columns ?? this.columns;\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 - 1\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 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 columns(): DhType.Column[] {\n return this.getCachedColumns(this.virtualColumns, super.columns);\n }\n\n get aggregatedColumns(): readonly DhType.Column[] {\n return this.isAggregatedColumnsAvailable\n ? this.table.aggregatedColumns\n : EMPTY_ARRAY;\n }\n\n get groupedColumns(): readonly DhType.Column[] {\n return this.getCachedGroupColumns(\n this.virtualColumns,\n this.table.groupedColumns\n );\n }\n\n sourceForCell(column: ModelIndex, row: ModelIndex): GridCell {\n if (column >= this.virtualColumns.length) {\n return { column, row };\n }\n const depth = this.depthForRow(row);\n return { column: column + depth, row };\n }\n\n sourceColumn(column: ModelIndex, row: ModelIndex): DhType.Column {\n if (column >= this.virtualColumns.length) {\n return super.sourceColumn(column, row);\n }\n\n const depth = this.depthForRow(row);\n return this.columns[column + depth];\n }\n\n getClearFilterRange(column: ModelIndex): BoundedAxisRange | null {\n if (column >= this.virtualColumns.length) {\n return super.getClearFilterRange(column);\n }\n // Source for the proxied column could be any of the grouped columns.\n // Return the range of columns matching the grouped columns.\n return [this.virtualColumns.length, this.groupedColumns.length];\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n if (isLayoutTreeTable(this.table)) {\n return this.table.layoutHints;\n }\n return undefined;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isAggregatedColumnsAvailable(): boolean {\n return (\n // aggregatedColumns are not available in the Legacy API\n // and Core API before v0.39.4\n this.table.aggregatedColumns !== undefined\n );\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 isOrganizeColumnsAvailable(): boolean {\n return true;\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.isAggregatedColumnsAvailable,\n this.aggregatedColumns,\n this.groupedColumns,\n this.virtualColumns\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 != null) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll != null) {\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 getCachedColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableColumns]\n );\n\n getCachedGroupColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableGroupedColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableGroupedColumns]\n );\n\n getCachedFilterableColumnSet = memoize(\n (\n columns: readonly DhType.Column[],\n isAggregatedColumnsAvailable: boolean,\n aggregatedColumns: readonly DhType.Column[],\n groupedColumns: readonly DhType.Column[],\n virtualColumns: readonly DhType.Column[]\n ) => {\n if (isAggregatedColumnsAvailable) {\n return new Set(\n // Virtual and aggregated columns are not filterable\n columns\n .filter(\n c => !virtualColumns.includes(c) && !aggregatedColumns.includes(c)\n )\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n );\n }\n // For compatibility with the Enterprise JSAPI,\n // only groupedColumns are filterable on rollup tables\n // if aggregatedColumns API is not available.\n return new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns)\n .filter(c => !virtualColumns.includes(c))\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n );\n }\n );\n\n getCachedGroupedColumnSet = memoize(\n (groupedColumns: readonly DhType.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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"}
|