@deephaven/iris-grid 0.85.28-alpha.0 → 0.85.29
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/IrisGrid.d.ts +8 -28
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +20 -19
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridCacheUtils.d.ts +28 -0
- package/dist/IrisGridCacheUtils.d.ts.map +1 -0
- package/dist/IrisGridCacheUtils.js +85 -0
- package/dist/IrisGridCacheUtils.js.map +1 -0
- package/dist/IrisGridMetricCalculator.d.ts +1 -1
- package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
- package/dist/IrisGridMetricCalculator.js +2 -3
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +4 -4
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +3 -4
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridRenderer.d.ts +1 -2
- package/dist/IrisGridRenderer.d.ts.map +1 -1
- package/dist/IrisGridRenderer.js +4 -7
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +23 -27
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +18 -14
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/LazyIrisGrid.d.ts +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js +2 -7
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +5 -10
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridRenderer.js","names":["DEFAULT_FONT_WIDTH","GridRenderer","GridUtils","TableUtils","assertNotNull","getOrThrow","IrisGridTextCellRenderer","IrisGridDataBarCellRenderer","getIcon","ICON_NAMES","Object","freeze","SORT_UP","SORT_DOWN","CARET_DOWN","CARET_RIGHT","CELL_OVERFLOW","EXPAND_ICON_SIZE","IrisGridRenderer","constructor","arguments","_defineProperty","isFilterValid","advancedFilter","quickFilter","isAdvancedFilterValid","filter","isQuickFilterValid","getSortIcon","sort","size","direction","sortDirection","ascending","descending","drawCanvas","state","drawScrim","drawGrid","context","drawCellOverflowButton","drawGridLines","drawGroupedColumnLine","drawPendingRowLine","drawCellContent","column","row","metrics","model","modelColumns","modelRows","modelColumn","get","modelRow","undefined","renderType","renderTypeForCell","cellRenderer","getCellRenderer","getCellOverflowButtonPosition","_ref","mouseX","mouseY","theme","textCellRenderer","shouldRenderOverflowButton","left","buttonLeft","top","buttonTop","width","buttonWidth","height","buttonHeight","cellHorizontalPadding","overflowButtonColor","overflowButtonHoverColor","iconSize","save","fillStyle","icon","translate","fill","restore","groupedColumns","maxY","allColumnWidths","allColumnXs","length","groupedColumnDividerColor","lastVisibleGroupColumnIndex","columnX","columnWidth","x","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","allRowYs","maxX","pendingRowCount","firstPendingRow","rowCount","floatingBottomRowCount","y","setLineDash","pendingTextColor","drawMouseColumnHover","hoverSelectColumn","linkerColumnHoverBackgroundColor","fillRect","drawMouseRowHover","isSelectingColumn","loadingScrimProgress","gridY","scrimBlurSize","scrimColor","globalCompositeOperation","concat","rect","clip","drawColumnHeaders","reverseType","columnHeaderHeight","drawFilterHeaders","hasReverse","REVERSE_TYPE","NONE","color","headerReverseBarColor","headerSortBarColor","drawHeaderBar","reverseHeaderBarHeight","sortHeaderBarHeight","barHeight","interior","offset","headerBarCasingColor","columnHeaderMaxDepth","drawColumnHeadersAtDepth","range","boundsProp","depth","isMenuShown","bounds","_objectSpread","drawColumnHeaderAtIndex","index","_model$columns$modelC","_fontWidths$get","gridX","fontWidths","headerHorizontalPadding","themeIconSize","Math","round","columnName","columns","name","getSortForColumn","text","textForColumnHeader","fontWidth","font","textWidth","textRight","defaultX","min","isFilterBarShown","quickFilters","advancedFilters","drawExpandedFilterHeaders","drawCollapsedFilterHeaders","filterBarHeight","visibleColumns","filterBarFont","textAlign","filterBarExpandedActiveBackgroundColor","filterBarExpandedBackgroundColor","y1","filterBarSeparatorColor","i","isFilterable","x1","drawExpandedFilterHeader","filterBarExpandedActiveCellBackgroundColor","filterBarErrorColor","filterBarHorizontalPadding","headerColor","filterText","getFilterText","measureText","maxLength","substring","rectLeft","rectTop","rectWidth","rectHeight","strokeRect","textX","textY","fillText","headerSeparatorColor","filterBarCollapsedHeight","drawCollapsedFilterHeader","filterBarActiveColor","filterBarActiveBackgroundColor","drawRowFooters","floatingTopHeight","floatingBottomHeight","floatingRows","rowFooterWidth","horizontalBarHeight","verticalBarWidth","allRowHeights","floatingGridRowColor","floatingRowBackgroundColors","rowHoverBackgroundColor","mouseRow","getRowAtY","includes","rowHeight","rowY","textForRowFooter","getExpandButtonPosition","_ref2","NULL_POSITION","getCellInfoFromXY","max"],"sources":["../src/IrisGridRenderer.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport {\n BoundedAxisRange,\n Coordinate,\n DEFAULT_FONT_WIDTH,\n GridMetrics,\n GridRangeIndex,\n GridRenderer,\n GridRenderState,\n GridThemeType,\n GridUtils,\n VisibleIndex,\n} from '@deephaven/grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { TableUtils, ReverseType } from '@deephaven/jsapi-utils';\nimport { assertNotNull, getOrThrow } from '@deephaven/utils';\nimport {\n ReadonlyAdvancedFilterMap,\n ReadonlyQuickFilterMap,\n AdvancedFilter,\n QuickFilter,\n} from './CommonTypes';\nimport { IrisGridThemeType } from './IrisGridTheme';\nimport IrisGridModel from './IrisGridModel';\nimport IrisGridTextCellRenderer from './IrisGridTextCellRenderer';\nimport IrisGridDataBarCellRenderer from './IrisGridDataBarCellRenderer';\nimport { getIcon } from './IrisGridIcons';\n\nconst ICON_NAMES = Object.freeze({\n SORT_UP: 'sortUp',\n SORT_DOWN: 'sortDown',\n CARET_DOWN: 'caretDown',\n CARET_RIGHT: 'caretRight',\n CELL_OVERFLOW: 'cellOverflow',\n});\n\nconst EXPAND_ICON_SIZE = 10;\n\nexport type IrisGridRenderState = GridRenderState & {\n model: IrisGridModel;\n theme: IrisGridThemeType;\n hoverSelectColumn: GridRangeIndex;\n isSelectingColumn: boolean;\n loadingScrimProgress: number;\n reverseType: ReverseType;\n isFilterBarShown: boolean;\n advancedFilters: ReadonlyAdvancedFilterMap;\n quickFilters: ReadonlyQuickFilterMap;\n isMenuShown: boolean;\n};\n/**\n * Handles rendering some of the Iris specific features, such as sorting icons, sort bar display\n * */\nexport class IrisGridRenderer extends GridRenderer {\n static isFilterValid(\n advancedFilter: AdvancedFilter | undefined | null,\n quickFilter: QuickFilter | undefined | null\n ): boolean {\n const isAdvancedFilterValid =\n advancedFilter == null || advancedFilter.filter != null;\n const isQuickFilterValid =\n quickFilter == null || quickFilter.filter != null;\n return isAdvancedFilterValid && isQuickFilterValid;\n }\n\n protected textCellRenderer = new IrisGridTextCellRenderer();\n\n protected dataBarCellRenderer = new IrisGridDataBarCellRenderer();\n\n getSortIcon(sort: dh.Sort | null, size: number): Path2D | null {\n if (!sort) {\n return null;\n }\n if (sort.direction === TableUtils.sortDirection.ascending) {\n return getIcon(ICON_NAMES.SORT_UP, size);\n }\n if (sort.direction === TableUtils.sortDirection.descending) {\n return getIcon(ICON_NAMES.SORT_DOWN, size);\n }\n return null;\n }\n\n drawCanvas(state: IrisGridRenderState): void {\n super.drawCanvas(state);\n\n this.drawScrim(state);\n }\n\n drawGrid(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawGrid(context, state);\n this.drawCellOverflowButton(state);\n }\n\n drawGridLines(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawGridLines(context, state);\n\n this.drawGroupedColumnLine(context, state);\n\n this.drawPendingRowLine(context, state);\n }\n\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 modelColumn = modelColumns.get(column);\n const modelRow = getOrThrow(modelRows, row);\n if (modelColumn === undefined) {\n return;\n }\n\n const renderType = model.renderTypeForCell(modelColumn, modelRow);\n const cellRenderer = this.getCellRenderer(renderType);\n cellRenderer.drawCellContent(context, state, column, row);\n }\n\n getCellOverflowButtonPosition({\n mouseX,\n mouseY,\n metrics,\n theme,\n }: {\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 return this.textCellRenderer.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n return this.textCellRenderer.shouldRenderOverflowButton(state);\n }\n\n drawCellOverflowButton(state: IrisGridRenderState): void {\n const { context, mouseX, mouseY, theme } = state;\n if (mouseX == null || mouseY == null) return;\n\n if (!this.shouldRenderOverflowButton(state)) {\n return;\n }\n\n const {\n left: buttonLeft,\n top: buttonTop,\n width: buttonWidth,\n height: buttonHeight,\n } = this.getCellOverflowButtonPosition(state);\n\n const {\n cellHorizontalPadding,\n overflowButtonColor,\n overflowButtonHoverColor,\n iconSize,\n } = theme;\n\n context.save();\n if (\n overflowButtonHoverColor != null &&\n buttonLeft != null &&\n buttonWidth != null &&\n buttonTop != null &&\n buttonHeight != null &&\n mouseX >= buttonLeft &&\n mouseX <= buttonLeft + buttonWidth &&\n mouseY >= buttonTop &&\n mouseY <= buttonTop + buttonHeight\n ) {\n context.fillStyle = overflowButtonHoverColor;\n } else if (overflowButtonColor != null) {\n context.fillStyle = overflowButtonColor;\n }\n const icon = getIcon(ICON_NAMES.CELL_OVERFLOW, iconSize);\n if (buttonLeft != null && buttonTop != null && buttonHeight != null) {\n context.translate(\n buttonLeft + cellHorizontalPadding,\n buttonTop + (buttonHeight - iconSize) / 2\n );\n }\n context.fill(icon);\n\n context.restore();\n }\n\n drawGroupedColumnLine(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme } = state;\n const { groupedColumns } = model;\n const { maxY, allColumnWidths, allColumnXs } = metrics;\n if (\n groupedColumns.length === 0 ||\n theme.groupedColumnDividerColor == null\n ) {\n return;\n }\n\n // This assumes that the engine puts the grouped columns at the start of the\n // model, so model and visible index match for grouped columns. If we ever\n // add freeze support for tree tables or allow moving the grouped columns,\n // this assumption may no longer hold true. If such a change occurs, we'll\n // need to revisit this since a single vertical divider may no longer make\n // sense.\n const lastVisibleGroupColumnIndex = groupedColumns.length - 1;\n\n const columnX = allColumnXs.get(lastVisibleGroupColumnIndex);\n const columnWidth = allColumnWidths.get(lastVisibleGroupColumnIndex);\n if (columnX == null || columnWidth == null) {\n return;\n }\n\n const x = columnX + columnWidth + 0.5;\n\n context.strokeStyle = theme.groupedColumnDividerColor;\n context.lineWidth = 1;\n context.beginPath();\n context.moveTo(x, 0);\n context.lineTo(x, maxY);\n context.stroke();\n }\n\n drawPendingRowLine(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme } = state;\n const { allRowYs, maxX } = metrics;\n const { pendingRowCount } = model;\n if (pendingRowCount <= 0) {\n return;\n }\n\n const firstPendingRow =\n model.rowCount - model.pendingRowCount - model.floatingBottomRowCount;\n let y = allRowYs.get(firstPendingRow);\n if (y == null) {\n return;\n }\n\n y -= 0.5;\n context.save();\n context.setLineDash([4, 2]);\n context.strokeStyle = theme.pendingTextColor;\n\n context.lineWidth = 1;\n context.beginPath();\n context.moveTo(0, y);\n context.lineTo(maxX, y);\n context.stroke();\n context.restore();\n }\n\n drawMouseColumnHover(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { theme, metrics, hoverSelectColumn } = state;\n if (\n hoverSelectColumn == null ||\n theme.linkerColumnHoverBackgroundColor == null\n ) {\n return;\n }\n\n const { allColumnWidths, allColumnXs, maxY } = metrics;\n\n const x = getOrThrow(allColumnXs, hoverSelectColumn);\n const columnWidth = getOrThrow(allColumnWidths, hoverSelectColumn);\n\n context.fillStyle = theme.linkerColumnHoverBackgroundColor;\n context.fillRect(x, 0, columnWidth, maxY);\n }\n\n drawMouseRowHover(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { isSelectingColumn } = state;\n if (!isSelectingColumn) {\n super.drawMouseRowHover(context, state);\n }\n }\n\n drawScrim(state: IrisGridRenderState): void {\n const { context, loadingScrimProgress, metrics, theme } = state;\n if (loadingScrimProgress == null) {\n return;\n }\n\n const { width, height, gridY } = metrics;\n const { scrimBlurSize, scrimColor } = theme;\n\n context.save();\n\n // Use global composite so we can change the underlying layer to grayscale\n context.globalCompositeOperation = 'color';\n context.filter = `blur(${scrimBlurSize}px)`;\n if (scrimColor != null) {\n context.fillStyle = scrimColor;\n }\n\n // Clip the path so the top edge is hard edge, bottom edge is soft/blurry\n context.beginPath();\n context.rect(0, gridY, width, height - gridY);\n context.clip();\n\n // Extend the edges beyond the clip area so they're hard edges\n context.fillRect(\n -scrimBlurSize,\n -scrimBlurSize + gridY,\n scrimBlurSize * 2 + width,\n (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress\n );\n\n // add an overlay of the scrim color to darken things a bit\n context.globalCompositeOperation = 'source-over';\n context.filter = `blur(${scrimBlurSize}px) opacity(15%)`;\n context.fillRect(\n -scrimBlurSize,\n -scrimBlurSize + gridY,\n scrimBlurSize * 2 + width,\n (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress\n );\n\n context.restore();\n }\n\n drawColumnHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawColumnHeaders(context, state);\n\n const { theme, metrics, model, reverseType } = state;\n const { columnHeaderHeight } = metrics;\n\n this.drawFilterHeaders(context, state);\n\n if (columnHeaderHeight <= 0) {\n return;\n }\n\n const { sort } = model;\n // if there is only one sort bar, it is interior to the header to save space\n if (sort.length === 1) {\n const hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;\n\n let color;\n if (hasReverse) {\n color = theme.headerReverseBarColor;\n } else {\n color = theme.headerSortBarColor;\n }\n this.drawHeaderBar(\n context,\n state,\n color,\n hasReverse ? theme.reverseHeaderBarHeight : theme.sortHeaderBarHeight\n );\n } else if (sort.length > 1) {\n // if there's multiple bars, the sort is interior to header\n // and the reverse claims space in the table\n if (\n // has table reverse\n reverseType !== TableUtils.REVERSE_TYPE.NONE\n ) {\n this.drawHeaderBar(\n context,\n state,\n theme.headerReverseBarColor,\n theme.reverseHeaderBarHeight,\n false\n );\n }\n this.drawHeaderBar(\n context,\n state,\n theme.headerSortBarColor,\n theme.sortHeaderBarHeight\n );\n }\n }\n\n drawHeaderBar(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n color: string | CanvasGradient | CanvasPattern,\n barHeight: number,\n interior = true\n ): void {\n const { theme, metrics, model } = state;\n const { columnHeaderHeight, width } = metrics;\n // Draw casing with 1 pixel above and below the bar,\n // 1px falls on the existing split between grid/headers\n // so don't need to be accounnted for in math elsewhere\n let offset = 0;\n if (!interior) {\n offset = barHeight;\n }\n context.fillStyle = theme.headerBarCasingColor;\n context.fillRect(\n 0,\n model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 2 + offset,\n width,\n barHeight + 2\n );\n\n context.fillStyle = color;\n context.fillRect(\n 0,\n model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 1 + offset,\n width,\n barHeight\n );\n }\n\n drawColumnHeadersAtDepth(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n range: BoundedAxisRange,\n boundsProp: { minX: number; maxX: number },\n depth: number\n ): void {\n const { metrics, model, isMenuShown, theme } = state;\n const { columnHeaderMaxDepth } = model;\n const { width } = metrics;\n const { columnHeaderHeight } = theme;\n const bounds = {\n ...boundsProp,\n maxX:\n depth === columnHeaderMaxDepth - 1 && boundsProp.maxX === width\n ? width - (isMenuShown ? 0 : columnHeaderHeight) // Account for the menu button\n : boundsProp.maxX,\n };\n super.drawColumnHeadersAtDepth(context, state, range, bounds, depth);\n }\n\n drawColumnHeaderAtIndex(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n index: VisibleIndex,\n bounds: { minX: number; maxX: number }\n ): void {\n super.drawColumnHeaderAtIndex(context, state, index, bounds);\n const { metrics, model, theme } = state;\n const {\n modelColumns,\n allColumnWidths,\n allColumnXs,\n gridX,\n columnHeaderHeight,\n fontWidths,\n } = metrics;\n\n const { headerHorizontalPadding, iconSize: themeIconSize } = theme;\n const iconSize = Math.round(themeIconSize * 0.75); // The vsTriangle icons are a bit bigger than we want\n const columnWidth = getOrThrow(allColumnWidths, index, 0);\n const columnX = getOrThrow(allColumnXs, index) + gridX;\n const modelColumn = modelColumns.get(index);\n\n if (modelColumn == null) {\n return;\n }\n\n const columnName = model.columns[modelColumn]?.name;\n\n if (columnName == null) {\n return;\n }\n\n const sort = TableUtils.getSortForColumn(model.sort, columnName);\n\n if (!sort) {\n return;\n }\n\n const icon = this.getSortIcon(sort, iconSize);\n if (!icon) {\n return;\n }\n\n const text = model.textForColumnHeader(modelColumn);\n if (text === undefined) {\n return;\n }\n\n const fontWidth = fontWidths.get(context.font) ?? DEFAULT_FONT_WIDTH;\n assertNotNull(fontWidth);\n const textWidth = text.length * fontWidth;\n const textRight = gridX + columnX + textWidth + headerHorizontalPadding;\n let { maxX } = bounds;\n maxX -= headerHorizontalPadding; // Right visible edge of the headers\n // Right edge of the column. The icon has its own horizontal padding\n const defaultX = gridX + columnX + columnWidth - iconSize;\n\n // If the text is partially off the screen, put the icon to the right of the text\n // else put it at the right edge of the column/grid (whichever is smaller)\n const x = textRight > maxX ? textRight + 1 : Math.min(maxX, defaultX);\n const y = (columnHeaderHeight - iconSize) * 0.5;\n\n context.save();\n\n context.beginPath();\n context.rect(columnX, 0, columnWidth, columnHeaderHeight);\n context.clip();\n\n context.fillStyle = theme.headerSortBarColor;\n context.translate(x, y);\n context.fill(icon);\n\n context.restore();\n }\n\n drawFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { isFilterBarShown, quickFilters, advancedFilters } = state;\n\n if (isFilterBarShown) {\n this.drawExpandedFilterHeaders(context, state);\n } else if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n this.drawCollapsedFilterHeaders(context, state);\n }\n }\n\n drawExpandedFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme, quickFilters, advancedFilters } = state;\n const { filterBarHeight } = theme;\n\n if (filterBarHeight <= 0) {\n return;\n }\n\n const {\n gridX,\n gridY,\n maxX,\n modelColumns,\n visibleColumns,\n allColumnWidths,\n allColumnXs,\n } = metrics;\n\n const columnHeaderHeight = gridY - filterBarHeight;\n\n context.save();\n\n context.font = theme.filterBarFont;\n context.textAlign = 'left';\n\n if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n // fill style if a fiter is set on any column\n context.fillStyle = theme.filterBarExpandedActiveBackgroundColor;\n } else {\n // fill style with no filters set\n context.fillStyle = theme.filterBarExpandedBackgroundColor;\n }\n\n // Draw the background\n context.fillRect(gridX, columnHeaderHeight, maxX, filterBarHeight - 1);\n\n // Draw the bottom border\n context.fillStyle = theme.headerBarCasingColor;\n\n context.fillRect(gridX, columnHeaderHeight + filterBarHeight - 1, maxX, 1);\n\n // Draw the filter input boxes\n const y1 = columnHeaderHeight;\n context.strokeStyle = theme.filterBarSeparatorColor;\n context.beginPath();\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const modelColumn = getOrThrow(modelColumns, column);\n const columnX = getOrThrow(allColumnXs, column);\n const columnWidth = getOrThrow(allColumnWidths, column);\n if (model.isFilterable(modelColumn) && columnWidth > 0) {\n const x1 = gridX + (columnX ?? 0);\n context.rect(x1 + 0.5, y1 + 0.5, columnWidth, filterBarHeight - 2); // 1 for the border, 1 for the casing\n }\n }\n context.stroke();\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const columnWidth = getOrThrow(allColumnWidths, column);\n const columnX = getOrThrow(allColumnXs, column);\n const x = columnX + gridX;\n this.drawExpandedFilterHeader(context, state, column, x, columnWidth);\n }\n\n context.restore();\n }\n\n drawExpandedFilterHeader(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n columnX: Coordinate,\n columnWidth: number\n ): void {\n if (columnWidth <= 0) {\n return;\n }\n\n const { metrics, theme, quickFilters, advancedFilters } = state;\n const { modelColumns, gridY } = metrics;\n const {\n filterBarHeight,\n filterBarExpandedActiveCellBackgroundColor,\n filterBarErrorColor,\n filterBarHorizontalPadding,\n headerColor,\n } = theme;\n const columnHeaderHeight = gridY - filterBarHeight;\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) return;\n const quickFilter = quickFilters.get(modelColumn);\n const advancedFilter = advancedFilters.get(modelColumn);\n if (quickFilter == null && advancedFilter == null) {\n return;\n }\n\n let text = null;\n if (quickFilter != null) {\n const { text: filterText } = quickFilter;\n text = filterText;\n if (!text) {\n text = TableUtils.getFilterText(quickFilter.filter);\n }\n\n if (text != null) {\n const { fontWidths } = metrics;\n let fontWidth = fontWidths.get(context.font);\n if (fontWidth == null || fontWidth === 0) {\n fontWidth = context.measureText('8').width;\n if (!fontWidth) {\n fontWidth = 10;\n }\n }\n\n const maxLength =\n (columnWidth - filterBarHorizontalPadding * 2) / fontWidth;\n if (maxLength <= 0) {\n text = '';\n } else if (text.length > maxLength) {\n text = `${text.substring(0, maxLength - 1)}…`;\n }\n }\n }\n\n context.save();\n\n const isFilterValid = IrisGridRenderer.isFilterValid(\n advancedFilter,\n quickFilter\n );\n if (isFilterValid && filterBarExpandedActiveCellBackgroundColor != null) {\n // draw active filter background inside cell\n context.fillStyle = filterBarExpandedActiveCellBackgroundColor;\n context.fillRect(\n columnX + 1, // +1 left border\n columnHeaderHeight + 1, // +1 top border\n columnWidth - 1, // -1 right border\n filterBarHeight - 3 // -3 top, bottom border and bottom casing\n );\n } else if (filterBarErrorColor != null) {\n // draw error box inside cell\n context.fillStyle = filterBarErrorColor;\n context.lineWidth = 2;\n context.strokeStyle = filterBarErrorColor;\n // Because this is drawn with a strokeRect, we have to add/subtract half the,\n // linewidth from each side to make interior, in addition to accounting for any borders/casings\n const rectLeft = columnX + 2; // 1 for strokeRect, 1 for border\n const rectTop = columnHeaderHeight + 2; // 1 for strokeRect, 1 for border\n const rectWidth = columnWidth - 3; // for 2 border and 1 for strokeRect\n const rectHeight = filterBarHeight - 5; // -2 for strokeRect, -3 for top, bottom border and bottom casing\n context.strokeRect(rectLeft, rectTop, rectWidth, rectHeight);\n }\n\n if (text != null && text !== '') {\n const textX = columnX + filterBarHorizontalPadding;\n const textY = columnHeaderHeight + filterBarHeight * 0.5 + 1; // + 1 for border\n context.fillStyle = headerColor;\n context.fillText(text, textX, textY);\n }\n\n context.restore();\n }\n\n drawCollapsedFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, theme } = state;\n const { headerSeparatorColor, filterBarCollapsedHeight } = theme;\n\n if (filterBarCollapsedHeight <= 0) {\n return;\n }\n\n const { gridX, gridY, maxX, visibleColumns, allColumnWidths, allColumnXs } =\n metrics;\n const columnHeaderHeight = gridY - filterBarCollapsedHeight;\n\n context.save();\n\n // Draw the background of the collapsed filter bar\n context.fillStyle = headerSeparatorColor;\n context.fillRect(gridX, columnHeaderHeight, maxX, filterBarCollapsedHeight);\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const columnWidth = allColumnWidths.get(column);\n const columnX = allColumnXs.get(column);\n if (columnX != null && columnWidth != null) {\n const x = columnX + gridX;\n // draw the collapsed cells\n this.drawCollapsedFilterHeader(context, state, column, x, columnWidth);\n }\n }\n\n context.restore();\n }\n\n drawCollapsedFilterHeader(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n columnX: Coordinate,\n columnWidth: number\n ): void {\n if (columnWidth <= 0) {\n return;\n }\n\n const { metrics, theme, quickFilters, advancedFilters } = state;\n const { modelColumns, gridY } = metrics;\n const modelColumn = modelColumns.get(column);\n\n if (modelColumn === undefined) return;\n const quickFilter = quickFilters.get(modelColumn);\n const advancedFilter = advancedFilters.get(modelColumn);\n\n const {\n filterBarCollapsedHeight,\n filterBarActiveColor,\n filterBarActiveBackgroundColor,\n filterBarErrorColor,\n } = theme;\n\n context.save();\n\n const isFilterValid = IrisGridRenderer.isFilterValid(\n advancedFilter,\n quickFilter\n );\n\n if (\n filterBarActiveBackgroundColor != null &&\n quickFilter == null &&\n advancedFilter == null\n ) {\n context.fillStyle = filterBarActiveBackgroundColor;\n } else if (filterBarActiveColor != null && isFilterValid) {\n context.fillStyle = filterBarActiveColor;\n } else if (filterBarErrorColor != null) {\n context.fillStyle = filterBarErrorColor;\n }\n\n const x = columnX + 1; // for gap between columns\n const y = gridY - filterBarCollapsedHeight;\n const rectWidth = columnWidth - 1; // for gap between columns\n const rectHeight = filterBarCollapsedHeight - 1; // for casing bottom\n context.fillRect(x, y, rectWidth, rectHeight);\n\n context.restore();\n }\n\n drawRowFooters(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, mouseX, mouseY, theme } = state;\n const {\n gridY,\n gridX,\n maxX,\n modelRows,\n floatingTopHeight,\n floatingBottomHeight,\n floatingRows,\n rowFooterWidth,\n height,\n horizontalBarHeight,\n verticalBarWidth,\n allRowHeights,\n allRowYs,\n width,\n } = metrics;\n // Only draw the footers on the floating rows\n if (rowFooterWidth <= 0 || floatingRows.length === 0) {\n return;\n }\n\n const {\n cellHorizontalPadding,\n floatingGridRowColor,\n floatingRowBackgroundColors,\n headerColor,\n rowHoverBackgroundColor,\n } = theme;\n\n context.translate(gridX, gridY);\n\n context.beginPath();\n const x = Math.min(maxX, width - rowFooterWidth - verticalBarWidth - gridX);\n context.fillStyle = floatingRowBackgroundColors;\n if (floatingTopHeight > 0) {\n context.rect(x, 0, rowFooterWidth, floatingTopHeight);\n }\n if (floatingBottomHeight > 0) {\n context.rect(\n x,\n height - gridY - horizontalBarHeight - floatingBottomHeight,\n rowFooterWidth,\n floatingBottomHeight\n );\n }\n context.fill();\n\n const mouseRow =\n mouseX != null &&\n mouseY != null &&\n mouseX >= gridX &&\n mouseX <= maxX + rowFooterWidth\n ? GridUtils.getRowAtY(mouseY, metrics)\n : null;\n if (\n rowHoverBackgroundColor != null &&\n mouseRow !== null &&\n floatingRows.includes(mouseRow)\n ) {\n context.fillStyle = rowHoverBackgroundColor;\n const y = allRowYs.get(mouseRow);\n const rowHeight = allRowHeights.get(mouseRow);\n assertNotNull(y);\n assertNotNull(rowHeight);\n context.fillRect(x, y, rowFooterWidth, rowHeight);\n }\n\n context.beginPath();\n if (floatingGridRowColor != null) {\n context.strokeStyle = floatingGridRowColor;\n }\n if (floatingTopHeight > 0) {\n context.moveTo(x + 0.5, 0.5);\n context.lineTo(x + 0.5, floatingTopHeight - 0.5);\n }\n if (floatingBottomHeight > 0) {\n const y = height - gridY - horizontalBarHeight - floatingBottomHeight;\n context.moveTo(x - 0.5, y + 0.5);\n context.lineTo(x - 0.5, y + floatingBottomHeight - 0.5);\n }\n context.stroke();\n\n context.fillStyle = headerColor;\n context.textAlign = 'left';\n\n const textX = x + cellHorizontalPadding;\n for (let i = 0; i < floatingRows.length; i += 1) {\n const row = floatingRows[i];\n const rowHeight = allRowHeights.get(row);\n const rowY = allRowYs.get(row);\n const modelRow = modelRows.get(row);\n if (rowY != null && rowHeight != null && modelRow != null) {\n const textY = rowY + rowHeight * 0.5;\n context.fillText(model.textForRowFooter(modelRow), textX, textY);\n }\n }\n\n context.translate(-gridX, -gridY);\n }\n\n getExpandButtonPosition(\n {\n mouseX,\n mouseY,\n metrics,\n theme,\n }: {\n mouseX: Coordinate | null;\n mouseY: Coordinate | null;\n metrics: GridMetrics | undefined;\n theme: GridThemeType;\n },\n depth: number | null\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 || depth == null || !metrics) {\n return NULL_POSITION;\n }\n const { rowHeight, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n assertNotNull(left);\n assertNotNull(rowHeight);\n assertNotNull(top);\n const { cellHorizontalPadding } = theme;\n\n const width = EXPAND_ICON_SIZE + 2 * cellHorizontalPadding;\n\n const buttonLeft = Math.max(left + EXPAND_ICON_SIZE * depth, metrics.gridX);\n const buttonTop = metrics.gridY + top;\n\n return {\n left: buttonLeft,\n top: buttonTop,\n width,\n height: rowHeight,\n };\n }\n}\n\nexport default IrisGridRenderer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridRenderer.js","names":["DEFAULT_FONT_WIDTH","GridRenderer","GridUtils","TableUtils","assertNotNull","getOrThrow","IrisGridTextCellRenderer","IrisGridDataBarCellRenderer","getIcon","ICON_NAMES","Object","freeze","SORT_UP","SORT_DOWN","CARET_DOWN","CARET_RIGHT","CELL_OVERFLOW","EXPAND_ICON_SIZE","IrisGridRenderer","constructor","arguments","_defineProperty","isFilterValid","advancedFilter","quickFilter","isAdvancedFilterValid","filter","isQuickFilterValid","getSortIcon","sort","size","direction","sortDirection","ascending","descending","drawCanvas","state","drawScrim","drawGrid","context","drawCellOverflowButton","drawGridLines","drawGroupedColumnLine","drawPendingRowLine","drawCellContent","column","row","metrics","model","modelColumns","modelRows","modelColumn","get","modelRow","undefined","renderType","renderTypeForCell","cellRenderer","getCellRenderer","getCellOverflowButtonPosition","_ref","mouseX","mouseY","theme","textCellRenderer","shouldRenderOverflowButton","left","buttonLeft","top","buttonTop","width","buttonWidth","height","buttonHeight","cellHorizontalPadding","overflowButtonColor","overflowButtonHoverColor","iconSize","save","fillStyle","icon","translate","fill","restore","groupedColumns","maxY","allColumnWidths","allColumnXs","length","groupedColumnDividerColor","lastVisibleGroupColumnIndex","columnX","columnWidth","x","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","allRowYs","maxX","pendingRowCount","firstPendingRow","rowCount","floatingBottomRowCount","y","setLineDash","pendingTextColor","drawMouseColumnHover","hoverSelectColumn","linkerColumnHoverBackgroundColor","fillRect","drawMouseRowHover","isSelectingColumn","loadingScrimProgress","gridY","scrimBlurSize","scrimColor","globalCompositeOperation","concat","rect","clip","drawColumnHeaders","reverse","columnHeaderHeight","drawFilterHeaders","color","headerReverseBarColor","headerSortBarColor","drawHeaderBar","reverseHeaderBarHeight","sortHeaderBarHeight","barHeight","interior","offset","headerBarCasingColor","columnHeaderMaxDepth","drawColumnHeadersAtDepth","range","boundsProp","depth","isMenuShown","bounds","_objectSpread","drawColumnHeaderAtIndex","index","_model$columns$modelC","_fontWidths$get","gridX","fontWidths","headerHorizontalPadding","themeIconSize","Math","round","columnName","columns","name","getSortForColumn","text","textForColumnHeader","fontWidth","font","textWidth","textRight","defaultX","min","isFilterBarShown","quickFilters","advancedFilters","drawExpandedFilterHeaders","drawCollapsedFilterHeaders","filterBarHeight","visibleColumns","filterBarFont","textAlign","filterBarExpandedActiveBackgroundColor","filterBarExpandedBackgroundColor","y1","filterBarSeparatorColor","i","isFilterable","x1","drawExpandedFilterHeader","filterBarExpandedActiveCellBackgroundColor","filterBarErrorColor","filterBarHorizontalPadding","headerColor","filterText","getFilterText","measureText","maxLength","substring","rectLeft","rectTop","rectWidth","rectHeight","strokeRect","textX","textY","fillText","headerSeparatorColor","filterBarCollapsedHeight","drawCollapsedFilterHeader","filterBarActiveColor","filterBarActiveBackgroundColor","drawRowFooters","floatingTopHeight","floatingBottomHeight","floatingRows","rowFooterWidth","horizontalBarHeight","verticalBarWidth","allRowHeights","floatingGridRowColor","floatingRowBackgroundColors","rowHoverBackgroundColor","mouseRow","getRowAtY","includes","rowHeight","rowY","textForRowFooter","getExpandButtonPosition","_ref2","NULL_POSITION","getCellInfoFromXY","max"],"sources":["../src/IrisGridRenderer.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport {\n BoundedAxisRange,\n Coordinate,\n DEFAULT_FONT_WIDTH,\n GridMetrics,\n GridRangeIndex,\n GridRenderer,\n GridRenderState,\n GridThemeType,\n GridUtils,\n VisibleIndex,\n} from '@deephaven/grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { assertNotNull, getOrThrow } from '@deephaven/utils';\nimport {\n ReadonlyAdvancedFilterMap,\n ReadonlyQuickFilterMap,\n AdvancedFilter,\n QuickFilter,\n} from './CommonTypes';\nimport { IrisGridThemeType } from './IrisGridTheme';\nimport IrisGridModel from './IrisGridModel';\nimport IrisGridTextCellRenderer from './IrisGridTextCellRenderer';\nimport IrisGridDataBarCellRenderer from './IrisGridDataBarCellRenderer';\nimport { getIcon } from './IrisGridIcons';\n\nconst ICON_NAMES = Object.freeze({\n SORT_UP: 'sortUp',\n SORT_DOWN: 'sortDown',\n CARET_DOWN: 'caretDown',\n CARET_RIGHT: 'caretRight',\n CELL_OVERFLOW: 'cellOverflow',\n});\n\nconst EXPAND_ICON_SIZE = 10;\n\nexport type IrisGridRenderState = GridRenderState & {\n model: IrisGridModel;\n theme: IrisGridThemeType;\n hoverSelectColumn: GridRangeIndex;\n isSelectingColumn: boolean;\n loadingScrimProgress: number;\n reverse: boolean;\n isFilterBarShown: boolean;\n advancedFilters: ReadonlyAdvancedFilterMap;\n quickFilters: ReadonlyQuickFilterMap;\n isMenuShown: boolean;\n};\n/**\n * Handles rendering some of the Iris specific features, such as sorting icons, sort bar display\n * */\nexport class IrisGridRenderer extends GridRenderer {\n static isFilterValid(\n advancedFilter: AdvancedFilter | undefined | null,\n quickFilter: QuickFilter | undefined | null\n ): boolean {\n const isAdvancedFilterValid =\n advancedFilter == null || advancedFilter.filter != null;\n const isQuickFilterValid =\n quickFilter == null || quickFilter.filter != null;\n return isAdvancedFilterValid && isQuickFilterValid;\n }\n\n protected textCellRenderer = new IrisGridTextCellRenderer();\n\n protected dataBarCellRenderer = new IrisGridDataBarCellRenderer();\n\n getSortIcon(sort: dh.Sort | null, size: number): Path2D | null {\n if (!sort) {\n return null;\n }\n if (sort.direction === TableUtils.sortDirection.ascending) {\n return getIcon(ICON_NAMES.SORT_UP, size);\n }\n if (sort.direction === TableUtils.sortDirection.descending) {\n return getIcon(ICON_NAMES.SORT_DOWN, size);\n }\n return null;\n }\n\n drawCanvas(state: IrisGridRenderState): void {\n super.drawCanvas(state);\n\n this.drawScrim(state);\n }\n\n drawGrid(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawGrid(context, state);\n this.drawCellOverflowButton(state);\n }\n\n drawGridLines(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawGridLines(context, state);\n\n this.drawGroupedColumnLine(context, state);\n\n this.drawPendingRowLine(context, state);\n }\n\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 modelColumn = modelColumns.get(column);\n const modelRow = getOrThrow(modelRows, row);\n if (modelColumn === undefined) {\n return;\n }\n\n const renderType = model.renderTypeForCell(modelColumn, modelRow);\n const cellRenderer = this.getCellRenderer(renderType);\n cellRenderer.drawCellContent(context, state, column, row);\n }\n\n getCellOverflowButtonPosition({\n mouseX,\n mouseY,\n metrics,\n theme,\n }: {\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 return this.textCellRenderer.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n return this.textCellRenderer.shouldRenderOverflowButton(state);\n }\n\n drawCellOverflowButton(state: IrisGridRenderState): void {\n const { context, mouseX, mouseY, theme } = state;\n if (mouseX == null || mouseY == null) return;\n\n if (!this.shouldRenderOverflowButton(state)) {\n return;\n }\n\n const {\n left: buttonLeft,\n top: buttonTop,\n width: buttonWidth,\n height: buttonHeight,\n } = this.getCellOverflowButtonPosition(state);\n\n const {\n cellHorizontalPadding,\n overflowButtonColor,\n overflowButtonHoverColor,\n iconSize,\n } = theme;\n\n context.save();\n if (\n overflowButtonHoverColor != null &&\n buttonLeft != null &&\n buttonWidth != null &&\n buttonTop != null &&\n buttonHeight != null &&\n mouseX >= buttonLeft &&\n mouseX <= buttonLeft + buttonWidth &&\n mouseY >= buttonTop &&\n mouseY <= buttonTop + buttonHeight\n ) {\n context.fillStyle = overflowButtonHoverColor;\n } else if (overflowButtonColor != null) {\n context.fillStyle = overflowButtonColor;\n }\n const icon = getIcon(ICON_NAMES.CELL_OVERFLOW, iconSize);\n if (buttonLeft != null && buttonTop != null && buttonHeight != null) {\n context.translate(\n buttonLeft + cellHorizontalPadding,\n buttonTop + (buttonHeight - iconSize) / 2\n );\n }\n context.fill(icon);\n\n context.restore();\n }\n\n drawGroupedColumnLine(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme } = state;\n const { groupedColumns } = model;\n const { maxY, allColumnWidths, allColumnXs } = metrics;\n if (\n groupedColumns.length === 0 ||\n theme.groupedColumnDividerColor == null\n ) {\n return;\n }\n\n // This assumes that the engine puts the grouped columns at the start of the\n // model, so model and visible index match for grouped columns. If we ever\n // add freeze support for tree tables or allow moving the grouped columns,\n // this assumption may no longer hold true. If such a change occurs, we'll\n // need to revisit this since a single vertical divider may no longer make\n // sense.\n const lastVisibleGroupColumnIndex = groupedColumns.length - 1;\n\n const columnX = allColumnXs.get(lastVisibleGroupColumnIndex);\n const columnWidth = allColumnWidths.get(lastVisibleGroupColumnIndex);\n if (columnX == null || columnWidth == null) {\n return;\n }\n\n const x = columnX + columnWidth + 0.5;\n\n context.strokeStyle = theme.groupedColumnDividerColor;\n context.lineWidth = 1;\n context.beginPath();\n context.moveTo(x, 0);\n context.lineTo(x, maxY);\n context.stroke();\n }\n\n drawPendingRowLine(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme } = state;\n const { allRowYs, maxX } = metrics;\n const { pendingRowCount } = model;\n if (pendingRowCount <= 0) {\n return;\n }\n\n const firstPendingRow =\n model.rowCount - model.pendingRowCount - model.floatingBottomRowCount;\n let y = allRowYs.get(firstPendingRow);\n if (y == null) {\n return;\n }\n\n y -= 0.5;\n context.save();\n context.setLineDash([4, 2]);\n context.strokeStyle = theme.pendingTextColor;\n\n context.lineWidth = 1;\n context.beginPath();\n context.moveTo(0, y);\n context.lineTo(maxX, y);\n context.stroke();\n context.restore();\n }\n\n drawMouseColumnHover(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { theme, metrics, hoverSelectColumn } = state;\n if (\n hoverSelectColumn == null ||\n theme.linkerColumnHoverBackgroundColor == null\n ) {\n return;\n }\n\n const { allColumnWidths, allColumnXs, maxY } = metrics;\n\n const x = getOrThrow(allColumnXs, hoverSelectColumn);\n const columnWidth = getOrThrow(allColumnWidths, hoverSelectColumn);\n\n context.fillStyle = theme.linkerColumnHoverBackgroundColor;\n context.fillRect(x, 0, columnWidth, maxY);\n }\n\n drawMouseRowHover(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { isSelectingColumn } = state;\n if (!isSelectingColumn) {\n super.drawMouseRowHover(context, state);\n }\n }\n\n drawScrim(state: IrisGridRenderState): void {\n const { context, loadingScrimProgress, metrics, theme } = state;\n if (loadingScrimProgress == null) {\n return;\n }\n\n const { width, height, gridY } = metrics;\n const { scrimBlurSize, scrimColor } = theme;\n\n context.save();\n\n // Use global composite so we can change the underlying layer to grayscale\n context.globalCompositeOperation = 'color';\n context.filter = `blur(${scrimBlurSize}px)`;\n if (scrimColor != null) {\n context.fillStyle = scrimColor;\n }\n\n // Clip the path so the top edge is hard edge, bottom edge is soft/blurry\n context.beginPath();\n context.rect(0, gridY, width, height - gridY);\n context.clip();\n\n // Extend the edges beyond the clip area so they're hard edges\n context.fillRect(\n -scrimBlurSize,\n -scrimBlurSize + gridY,\n scrimBlurSize * 2 + width,\n (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress\n );\n\n // add an overlay of the scrim color to darken things a bit\n context.globalCompositeOperation = 'source-over';\n context.filter = `blur(${scrimBlurSize}px) opacity(15%)`;\n context.fillRect(\n -scrimBlurSize,\n -scrimBlurSize + gridY,\n scrimBlurSize * 2 + width,\n (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress\n );\n\n context.restore();\n }\n\n drawColumnHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawColumnHeaders(context, state);\n\n const { theme, metrics, model, reverse } = state;\n const { columnHeaderHeight } = metrics;\n\n this.drawFilterHeaders(context, state);\n\n if (columnHeaderHeight <= 0) {\n return;\n }\n\n const { sort } = model;\n // if there is only one sort bar, it is interior to the header to save space\n if (sort.length === 1) {\n let color;\n if (reverse) {\n color = theme.headerReverseBarColor;\n } else {\n color = theme.headerSortBarColor;\n }\n this.drawHeaderBar(\n context,\n state,\n color,\n reverse ? theme.reverseHeaderBarHeight : theme.sortHeaderBarHeight\n );\n } else if (sort.length > 1) {\n // if there's multiple bars, the sort is interior to header\n // and the reverse claims space in the table\n if (reverse) {\n this.drawHeaderBar(\n context,\n state,\n theme.headerReverseBarColor,\n theme.reverseHeaderBarHeight,\n false\n );\n }\n this.drawHeaderBar(\n context,\n state,\n theme.headerSortBarColor,\n theme.sortHeaderBarHeight\n );\n }\n }\n\n drawHeaderBar(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n color: string | CanvasGradient | CanvasPattern,\n barHeight: number,\n interior = true\n ): void {\n const { theme, metrics, model } = state;\n const { columnHeaderHeight, width } = metrics;\n // Draw casing with 1 pixel above and below the bar,\n // 1px falls on the existing split between grid/headers\n // so don't need to be accounnted for in math elsewhere\n let offset = 0;\n if (!interior) {\n offset = barHeight;\n }\n context.fillStyle = theme.headerBarCasingColor;\n context.fillRect(\n 0,\n model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 2 + offset,\n width,\n barHeight + 2\n );\n\n context.fillStyle = color;\n context.fillRect(\n 0,\n model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 1 + offset,\n width,\n barHeight\n );\n }\n\n drawColumnHeadersAtDepth(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n range: BoundedAxisRange,\n boundsProp: { minX: number; maxX: number },\n depth: number\n ): void {\n const { metrics, model, isMenuShown, theme } = state;\n const { columnHeaderMaxDepth } = model;\n const { width } = metrics;\n const { columnHeaderHeight } = theme;\n const bounds = {\n ...boundsProp,\n maxX:\n depth === columnHeaderMaxDepth - 1 && boundsProp.maxX === width\n ? width - (isMenuShown ? 0 : columnHeaderHeight) // Account for the menu button\n : boundsProp.maxX,\n };\n super.drawColumnHeadersAtDepth(context, state, range, bounds, depth);\n }\n\n drawColumnHeaderAtIndex(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n index: VisibleIndex,\n bounds: { minX: number; maxX: number }\n ): void {\n super.drawColumnHeaderAtIndex(context, state, index, bounds);\n const { metrics, model, theme } = state;\n const {\n modelColumns,\n allColumnWidths,\n allColumnXs,\n gridX,\n columnHeaderHeight,\n fontWidths,\n } = metrics;\n\n const { headerHorizontalPadding, iconSize: themeIconSize } = theme;\n const iconSize = Math.round(themeIconSize * 0.75); // The vsTriangle icons are a bit bigger than we want\n const columnWidth = getOrThrow(allColumnWidths, index, 0);\n const columnX = getOrThrow(allColumnXs, index) + gridX;\n const modelColumn = modelColumns.get(index);\n\n if (modelColumn == null) {\n return;\n }\n\n const columnName = model.columns[modelColumn]?.name;\n\n if (columnName == null) {\n return;\n }\n\n const sort = TableUtils.getSortForColumn(model.sort, columnName);\n\n if (!sort) {\n return;\n }\n\n const icon = this.getSortIcon(sort, iconSize);\n if (!icon) {\n return;\n }\n\n const text = model.textForColumnHeader(modelColumn);\n if (text === undefined) {\n return;\n }\n\n const fontWidth = fontWidths.get(context.font) ?? DEFAULT_FONT_WIDTH;\n assertNotNull(fontWidth);\n const textWidth = text.length * fontWidth;\n const textRight = gridX + columnX + textWidth + headerHorizontalPadding;\n let { maxX } = bounds;\n maxX -= headerHorizontalPadding; // Right visible edge of the headers\n // Right edge of the column. The icon has its own horizontal padding\n const defaultX = gridX + columnX + columnWidth - iconSize;\n\n // If the text is partially off the screen, put the icon to the right of the text\n // else put it at the right edge of the column/grid (whichever is smaller)\n const x = textRight > maxX ? textRight + 1 : Math.min(maxX, defaultX);\n const y = (columnHeaderHeight - iconSize) * 0.5;\n\n context.save();\n\n context.beginPath();\n context.rect(columnX, 0, columnWidth, columnHeaderHeight);\n context.clip();\n\n context.fillStyle = theme.headerSortBarColor;\n context.translate(x, y);\n context.fill(icon);\n\n context.restore();\n }\n\n drawFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { isFilterBarShown, quickFilters, advancedFilters } = state;\n\n if (isFilterBarShown) {\n this.drawExpandedFilterHeaders(context, state);\n } else if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n this.drawCollapsedFilterHeaders(context, state);\n }\n }\n\n drawExpandedFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme, quickFilters, advancedFilters } = state;\n const { filterBarHeight } = theme;\n\n if (filterBarHeight <= 0) {\n return;\n }\n\n const {\n gridX,\n gridY,\n maxX,\n modelColumns,\n visibleColumns,\n allColumnWidths,\n allColumnXs,\n } = metrics;\n\n const columnHeaderHeight = gridY - filterBarHeight;\n\n context.save();\n\n context.font = theme.filterBarFont;\n context.textAlign = 'left';\n\n if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n // fill style if a fiter is set on any column\n context.fillStyle = theme.filterBarExpandedActiveBackgroundColor;\n } else {\n // fill style with no filters set\n context.fillStyle = theme.filterBarExpandedBackgroundColor;\n }\n\n // Draw the background\n context.fillRect(gridX, columnHeaderHeight, maxX, filterBarHeight - 1);\n\n // Draw the bottom border\n context.fillStyle = theme.headerBarCasingColor;\n\n context.fillRect(gridX, columnHeaderHeight + filterBarHeight - 1, maxX, 1);\n\n // Draw the filter input boxes\n const y1 = columnHeaderHeight;\n context.strokeStyle = theme.filterBarSeparatorColor;\n context.beginPath();\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const modelColumn = getOrThrow(modelColumns, column);\n const columnX = getOrThrow(allColumnXs, column);\n const columnWidth = getOrThrow(allColumnWidths, column);\n if (model.isFilterable(modelColumn) && columnWidth > 0) {\n const x1 = gridX + (columnX ?? 0);\n context.rect(x1 + 0.5, y1 + 0.5, columnWidth, filterBarHeight - 2); // 1 for the border, 1 for the casing\n }\n }\n context.stroke();\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const columnWidth = getOrThrow(allColumnWidths, column);\n const columnX = getOrThrow(allColumnXs, column);\n const x = columnX + gridX;\n this.drawExpandedFilterHeader(context, state, column, x, columnWidth);\n }\n\n context.restore();\n }\n\n drawExpandedFilterHeader(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n columnX: Coordinate,\n columnWidth: number\n ): void {\n if (columnWidth <= 0) {\n return;\n }\n\n const { metrics, theme, quickFilters, advancedFilters } = state;\n const { modelColumns, gridY } = metrics;\n const {\n filterBarHeight,\n filterBarExpandedActiveCellBackgroundColor,\n filterBarErrorColor,\n filterBarHorizontalPadding,\n headerColor,\n } = theme;\n const columnHeaderHeight = gridY - filterBarHeight;\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) return;\n const quickFilter = quickFilters.get(modelColumn);\n const advancedFilter = advancedFilters.get(modelColumn);\n if (quickFilter == null && advancedFilter == null) {\n return;\n }\n\n let text = null;\n if (quickFilter != null) {\n const { text: filterText } = quickFilter;\n text = filterText;\n if (!text) {\n text = TableUtils.getFilterText(quickFilter.filter);\n }\n\n if (text != null) {\n const { fontWidths } = metrics;\n let fontWidth = fontWidths.get(context.font);\n if (fontWidth == null || fontWidth === 0) {\n fontWidth = context.measureText('8').width;\n if (!fontWidth) {\n fontWidth = 10;\n }\n }\n\n const maxLength =\n (columnWidth - filterBarHorizontalPadding * 2) / fontWidth;\n if (maxLength <= 0) {\n text = '';\n } else if (text.length > maxLength) {\n text = `${text.substring(0, maxLength - 1)}…`;\n }\n }\n }\n\n context.save();\n\n const isFilterValid = IrisGridRenderer.isFilterValid(\n advancedFilter,\n quickFilter\n );\n if (isFilterValid && filterBarExpandedActiveCellBackgroundColor != null) {\n // draw active filter background inside cell\n context.fillStyle = filterBarExpandedActiveCellBackgroundColor;\n context.fillRect(\n columnX + 1, // +1 left border\n columnHeaderHeight + 1, // +1 top border\n columnWidth - 1, // -1 right border\n filterBarHeight - 3 // -3 top, bottom border and bottom casing\n );\n } else if (filterBarErrorColor != null) {\n // draw error box inside cell\n context.fillStyle = filterBarErrorColor;\n context.lineWidth = 2;\n context.strokeStyle = filterBarErrorColor;\n // Because this is drawn with a strokeRect, we have to add/subtract half the,\n // linewidth from each side to make interior, in addition to accounting for any borders/casings\n const rectLeft = columnX + 2; // 1 for strokeRect, 1 for border\n const rectTop = columnHeaderHeight + 2; // 1 for strokeRect, 1 for border\n const rectWidth = columnWidth - 3; // for 2 border and 1 for strokeRect\n const rectHeight = filterBarHeight - 5; // -2 for strokeRect, -3 for top, bottom border and bottom casing\n context.strokeRect(rectLeft, rectTop, rectWidth, rectHeight);\n }\n\n if (text != null && text !== '') {\n const textX = columnX + filterBarHorizontalPadding;\n const textY = columnHeaderHeight + filterBarHeight * 0.5 + 1; // + 1 for border\n context.fillStyle = headerColor;\n context.fillText(text, textX, textY);\n }\n\n context.restore();\n }\n\n drawCollapsedFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, theme } = state;\n const { headerSeparatorColor, filterBarCollapsedHeight } = theme;\n\n if (filterBarCollapsedHeight <= 0) {\n return;\n }\n\n const { gridX, gridY, maxX, visibleColumns, allColumnWidths, allColumnXs } =\n metrics;\n const columnHeaderHeight = gridY - filterBarCollapsedHeight;\n\n context.save();\n\n // Draw the background of the collapsed filter bar\n context.fillStyle = headerSeparatorColor;\n context.fillRect(gridX, columnHeaderHeight, maxX, filterBarCollapsedHeight);\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const columnWidth = allColumnWidths.get(column);\n const columnX = allColumnXs.get(column);\n if (columnX != null && columnWidth != null) {\n const x = columnX + gridX;\n // draw the collapsed cells\n this.drawCollapsedFilterHeader(context, state, column, x, columnWidth);\n }\n }\n\n context.restore();\n }\n\n drawCollapsedFilterHeader(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n columnX: Coordinate,\n columnWidth: number\n ): void {\n if (columnWidth <= 0) {\n return;\n }\n\n const { metrics, theme, quickFilters, advancedFilters } = state;\n const { modelColumns, gridY } = metrics;\n const modelColumn = modelColumns.get(column);\n\n if (modelColumn === undefined) return;\n const quickFilter = quickFilters.get(modelColumn);\n const advancedFilter = advancedFilters.get(modelColumn);\n\n const {\n filterBarCollapsedHeight,\n filterBarActiveColor,\n filterBarActiveBackgroundColor,\n filterBarErrorColor,\n } = theme;\n\n context.save();\n\n const isFilterValid = IrisGridRenderer.isFilterValid(\n advancedFilter,\n quickFilter\n );\n\n if (\n filterBarActiveBackgroundColor != null &&\n quickFilter == null &&\n advancedFilter == null\n ) {\n context.fillStyle = filterBarActiveBackgroundColor;\n } else if (filterBarActiveColor != null && isFilterValid) {\n context.fillStyle = filterBarActiveColor;\n } else if (filterBarErrorColor != null) {\n context.fillStyle = filterBarErrorColor;\n }\n\n const x = columnX + 1; // for gap between columns\n const y = gridY - filterBarCollapsedHeight;\n const rectWidth = columnWidth - 1; // for gap between columns\n const rectHeight = filterBarCollapsedHeight - 1; // for casing bottom\n context.fillRect(x, y, rectWidth, rectHeight);\n\n context.restore();\n }\n\n drawRowFooters(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, mouseX, mouseY, theme } = state;\n const {\n gridY,\n gridX,\n maxX,\n modelRows,\n floatingTopHeight,\n floatingBottomHeight,\n floatingRows,\n rowFooterWidth,\n height,\n horizontalBarHeight,\n verticalBarWidth,\n allRowHeights,\n allRowYs,\n width,\n } = metrics;\n // Only draw the footers on the floating rows\n if (rowFooterWidth <= 0 || floatingRows.length === 0) {\n return;\n }\n\n const {\n cellHorizontalPadding,\n floatingGridRowColor,\n floatingRowBackgroundColors,\n headerColor,\n rowHoverBackgroundColor,\n } = theme;\n\n context.translate(gridX, gridY);\n\n context.beginPath();\n const x = Math.min(maxX, width - rowFooterWidth - verticalBarWidth - gridX);\n context.fillStyle = floatingRowBackgroundColors;\n if (floatingTopHeight > 0) {\n context.rect(x, 0, rowFooterWidth, floatingTopHeight);\n }\n if (floatingBottomHeight > 0) {\n context.rect(\n x,\n height - gridY - horizontalBarHeight - floatingBottomHeight,\n rowFooterWidth,\n floatingBottomHeight\n );\n }\n context.fill();\n\n const mouseRow =\n mouseX != null &&\n mouseY != null &&\n mouseX >= gridX &&\n mouseX <= maxX + rowFooterWidth\n ? GridUtils.getRowAtY(mouseY, metrics)\n : null;\n if (\n rowHoverBackgroundColor != null &&\n mouseRow !== null &&\n floatingRows.includes(mouseRow)\n ) {\n context.fillStyle = rowHoverBackgroundColor;\n const y = allRowYs.get(mouseRow);\n const rowHeight = allRowHeights.get(mouseRow);\n assertNotNull(y);\n assertNotNull(rowHeight);\n context.fillRect(x, y, rowFooterWidth, rowHeight);\n }\n\n context.beginPath();\n if (floatingGridRowColor != null) {\n context.strokeStyle = floatingGridRowColor;\n }\n if (floatingTopHeight > 0) {\n context.moveTo(x + 0.5, 0.5);\n context.lineTo(x + 0.5, floatingTopHeight - 0.5);\n }\n if (floatingBottomHeight > 0) {\n const y = height - gridY - horizontalBarHeight - floatingBottomHeight;\n context.moveTo(x - 0.5, y + 0.5);\n context.lineTo(x - 0.5, y + floatingBottomHeight - 0.5);\n }\n context.stroke();\n\n context.fillStyle = headerColor;\n context.textAlign = 'left';\n\n const textX = x + cellHorizontalPadding;\n for (let i = 0; i < floatingRows.length; i += 1) {\n const row = floatingRows[i];\n const rowHeight = allRowHeights.get(row);\n const rowY = allRowYs.get(row);\n const modelRow = modelRows.get(row);\n if (rowY != null && rowHeight != null && modelRow != null) {\n const textY = rowY + rowHeight * 0.5;\n context.fillText(model.textForRowFooter(modelRow), textX, textY);\n }\n }\n\n context.translate(-gridX, -gridY);\n }\n\n getExpandButtonPosition(\n {\n mouseX,\n mouseY,\n metrics,\n theme,\n }: {\n mouseX: Coordinate | null;\n mouseY: Coordinate | null;\n metrics: GridMetrics | undefined;\n theme: GridThemeType;\n },\n depth: number | null\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 || depth == null || !metrics) {\n return NULL_POSITION;\n }\n const { rowHeight, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n assertNotNull(left);\n assertNotNull(rowHeight);\n assertNotNull(top);\n const { cellHorizontalPadding } = theme;\n\n const width = EXPAND_ICON_SIZE + 2 * cellHorizontalPadding;\n\n const buttonLeft = Math.max(left + EXPAND_ICON_SIZE * depth, metrics.gridX);\n const buttonTop = metrics.gridY + top;\n\n return {\n left: buttonLeft,\n top: buttonTop,\n width,\n height: rowHeight,\n };\n }\n}\n\nexport default IrisGridRenderer;\n"],"mappings":"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"}
|
package/dist/IrisGridUtils.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type GridRange, type GridState, ModelIndex, ModelSizeMap, MoveOperation, VisibleIndex } from '@deephaven/grid';
|
|
2
2
|
import type { dh as DhType } from '@deephaven/jsapi-types';
|
|
3
3
|
import { ReverseType, SortDirection, FormattingRule } from '@deephaven/jsapi-utils';
|
|
4
|
-
import { FilterData,
|
|
5
|
-
import { ColumnName, ReadonlyAdvancedFilterMap, ReadonlyQuickFilterMap, InputFilter, CellData, UIRow, AdvancedFilterOptions } from './CommonTypes';
|
|
4
|
+
import { type FilterData, type IrisGridState } from './IrisGrid';
|
|
5
|
+
import { type ColumnName, type ReadonlyAdvancedFilterMap, type ReadonlyQuickFilterMap, type InputFilter, type CellData, type UIRow, type AdvancedFilterOptions } from './CommonTypes';
|
|
6
6
|
import { UIRollupConfig } from './sidebar/RollupRows';
|
|
7
7
|
import { AggregationSettings } from './sidebar/aggregations/Aggregations';
|
|
8
8
|
import { FormattingRule as SidebarFormattingRule } from './sidebar/conditional-formatting/ConditionalFormattingUtils';
|
|
@@ -10,9 +10,7 @@ import IrisGridModel from './IrisGridModel';
|
|
|
10
10
|
import type AdvancedSettingsType from './sidebar/AdvancedSettingsType';
|
|
11
11
|
import ColumnHeaderGroup from './ColumnHeaderGroup';
|
|
12
12
|
import { PartitionConfig } from './PartitionedGridModel';
|
|
13
|
-
type HydratedIrisGridState = Pick<IrisGridState, 'advancedFilters' | 'aggregationSettings' | 'customColumnFormatMap' | 'isFilterBarShown' | 'quickFilters' | 'customColumns' | '
|
|
14
|
-
metrics: Pick<GridMetrics, 'userColumnWidths' | 'userRowHeights'>;
|
|
15
|
-
};
|
|
13
|
+
export type HydratedIrisGridState = Pick<IrisGridState, 'advancedFilters' | 'aggregationSettings' | 'customColumnFormatMap' | 'isFilterBarShown' | 'quickFilters' | 'customColumns' | 'reverse' | 'rollupConfig' | 'showSearchBar' | 'searchValue' | 'selectDistinctColumns' | 'selectedSearchColumns' | 'sorts' | 'invertSearchColumns' | 'pendingDataMap' | 'frozenColumns' | 'conditionalFormats' | 'columnHeaderGroups' | 'partitionConfig' | 'metrics'>;
|
|
16
14
|
export type DehydratedPendingDataMap<T> = [number, {
|
|
17
15
|
data: [string, T][];
|
|
18
16
|
}][];
|
|
@@ -62,7 +60,9 @@ export interface DehydratedIrisGridState {
|
|
|
62
60
|
userRowHeights: readonly DehydratedUserRowHeight[];
|
|
63
61
|
customColumns: readonly ColumnName[];
|
|
64
62
|
conditionalFormats: readonly SidebarFormattingRule[];
|
|
65
|
-
|
|
63
|
+
/** @deprecated use `reverse` instead. Can be removed after DHE sanluis release */
|
|
64
|
+
reverseType?: ReverseType;
|
|
65
|
+
reverse: boolean;
|
|
66
66
|
rollupConfig?: UIRollupConfig;
|
|
67
67
|
showSearchBar: boolean;
|
|
68
68
|
searchValue: string;
|
|
@@ -87,37 +87,32 @@ export interface DehydratedIrisGridPanelStateV2 {
|
|
|
87
87
|
export type DehydratedIrisGridPanelState = DehydratedIrisGridPanelStateV1 | DehydratedIrisGridPanelStateV2;
|
|
88
88
|
export declare function isPanelStateV1(state: DehydratedIrisGridPanelState): state is DehydratedIrisGridPanelStateV1;
|
|
89
89
|
export declare function isPanelStateV2(state: DehydratedIrisGridPanelState): state is DehydratedIrisGridPanelStateV2;
|
|
90
|
+
export type HydratedGridState = Pick<GridState, 'isStuckToBottom' | 'isStuckToRight' | 'movedColumns' | 'movedRows'>;
|
|
91
|
+
export type DehydratedGridState = {
|
|
92
|
+
isStuckToBottom: boolean;
|
|
93
|
+
isStuckToRight: boolean;
|
|
94
|
+
movedColumns: readonly {
|
|
95
|
+
from: string | [string, string] | ModelIndex | [ModelIndex, ModelIndex];
|
|
96
|
+
to: string | ModelIndex;
|
|
97
|
+
}[];
|
|
98
|
+
movedRows: readonly MoveOperation[];
|
|
99
|
+
};
|
|
90
100
|
declare class IrisGridUtils {
|
|
91
101
|
/**
|
|
92
|
-
* Exports the state from Grid component to a JSON stringifiable object
|
|
102
|
+
* Exports the state from Grid component to a JSON stringifiable object.
|
|
103
|
+
* See IrisGridCacheUtil for memoization and comparing dehydrated states.
|
|
93
104
|
* @param model The table model to export the Grid state for
|
|
94
105
|
* @param gridState The state of the Grid to export
|
|
95
106
|
* @returns An object that can be stringified and imported with {{@link hydrateGridState}}
|
|
96
107
|
*/
|
|
97
|
-
static dehydrateGridState(model: IrisGridModel, gridState:
|
|
98
|
-
isStuckToBottom: boolean;
|
|
99
|
-
isStuckToRight: boolean;
|
|
100
|
-
movedColumns: {
|
|
101
|
-
from: string | [string, string];
|
|
102
|
-
to: string;
|
|
103
|
-
}[];
|
|
104
|
-
movedRows: MoveOperation[];
|
|
105
|
-
};
|
|
108
|
+
static dehydrateGridState(model: IrisGridModel, gridState: HydratedGridState): DehydratedGridState;
|
|
106
109
|
/**
|
|
107
110
|
* Import a state for Grid that was exported with {{@link dehydrateGridState}}
|
|
108
111
|
* @param model The table model to import the state for
|
|
109
112
|
* @param gridState The state of the panel that was saved
|
|
110
113
|
* @returns The gridState props to set on the Grid
|
|
111
114
|
*/
|
|
112
|
-
static hydrateGridState(model: IrisGridModel, gridState:
|
|
113
|
-
isStuckToBottom: boolean;
|
|
114
|
-
isStuckToRight: boolean;
|
|
115
|
-
movedColumns: readonly {
|
|
116
|
-
from: string | [string, string] | ModelIndex | [ModelIndex, ModelIndex];
|
|
117
|
-
to: string | ModelIndex;
|
|
118
|
-
}[];
|
|
119
|
-
movedRows: readonly MoveOperation[];
|
|
120
|
-
}, customColumns?: readonly string[]): Pick<IrisGridProps, 'isStuckToBottom' | 'isStuckToRight' | 'movedColumns' | 'movedRows'>;
|
|
115
|
+
static hydrateGridState(model: IrisGridModel, gridState: DehydratedGridState, customColumns?: readonly string[]): HydratedGridState;
|
|
121
116
|
/**
|
|
122
117
|
* Export the IrisGridPanel state.
|
|
123
118
|
* @param model The table model the state is being dehydrated with
|
|
@@ -281,7 +276,8 @@ declare class IrisGridUtils {
|
|
|
281
276
|
private tableUtils;
|
|
282
277
|
constructor(dh: typeof DhType);
|
|
283
278
|
/**
|
|
284
|
-
* Exports the state from IrisGrid to a JSON stringifiable object
|
|
279
|
+
* Exports the state from IrisGrid to a JSON stringifiable object.
|
|
280
|
+
* See IrisGridCacheUtil for memoization and comparing dehydrated states.
|
|
285
281
|
* @param model The table model to export the state for
|
|
286
282
|
* @param irisGridState The current state of the IrisGrid
|
|
287
283
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridUtils.d.ts","sourceRoot":"","sources":["../src/IrisGridUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridUtils.d.ts","sourceRoot":"","sources":["../src/IrisGridUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/IrisGridUtils.js
CHANGED
|
@@ -41,7 +41,8 @@ function isDateWrapper(value) {
|
|
|
41
41
|
}
|
|
42
42
|
class IrisGridUtils {
|
|
43
43
|
/**
|
|
44
|
-
* Exports the state from Grid component to a JSON stringifiable object
|
|
44
|
+
* Exports the state from Grid component to a JSON stringifiable object.
|
|
45
|
+
* See IrisGridCacheUtil for memoization and comparing dehydrated states.
|
|
45
46
|
* @param model The table model to export the Grid state for
|
|
46
47
|
* @param gridState The state of the Grid to export
|
|
47
48
|
* @returns An object that can be stringified and imported with {{@link hydrateGridState}}
|
|
@@ -837,7 +838,8 @@ class IrisGridUtils {
|
|
|
837
838
|
}
|
|
838
839
|
|
|
839
840
|
/**
|
|
840
|
-
* Exports the state from IrisGrid to a JSON stringifiable object
|
|
841
|
+
* Exports the state from IrisGrid to a JSON stringifiable object.
|
|
842
|
+
* See IrisGridCacheUtil for memoization and comparing dehydrated states.
|
|
841
843
|
* @param model The table model to export the state for
|
|
842
844
|
* @param irisGridState The current state of the IrisGrid
|
|
843
845
|
*/
|
|
@@ -850,12 +852,18 @@ class IrisGridUtils {
|
|
|
850
852
|
advancedFilters,
|
|
851
853
|
customColumnFormatMap,
|
|
852
854
|
isFilterBarShown,
|
|
853
|
-
metrics
|
|
855
|
+
metrics: {
|
|
856
|
+
userColumnWidths,
|
|
857
|
+
userRowHeights
|
|
858
|
+
} = {
|
|
859
|
+
userColumnWidths: EMPTY_MAP,
|
|
860
|
+
userRowHeights: EMPTY_MAP
|
|
861
|
+
},
|
|
854
862
|
quickFilters,
|
|
855
863
|
customColumns,
|
|
856
864
|
conditionalFormats = EMPTY_ARRAY,
|
|
857
|
-
|
|
858
|
-
rollupConfig
|
|
865
|
+
reverse,
|
|
866
|
+
rollupConfig,
|
|
859
867
|
showSearchBar,
|
|
860
868
|
searchValue,
|
|
861
869
|
selectDistinctColumns = EMPTY_ARRAY,
|
|
@@ -865,13 +873,8 @@ class IrisGridUtils {
|
|
|
865
873
|
pendingDataMap = EMPTY_MAP,
|
|
866
874
|
frozenColumns,
|
|
867
875
|
columnHeaderGroups,
|
|
868
|
-
partitionConfig
|
|
876
|
+
partitionConfig
|
|
869
877
|
} = irisGridState;
|
|
870
|
-
assertNotNull(metrics);
|
|
871
|
-
var {
|
|
872
|
-
userColumnWidths,
|
|
873
|
-
userRowHeights
|
|
874
|
-
} = metrics;
|
|
875
878
|
var {
|
|
876
879
|
columns
|
|
877
880
|
} = model;
|
|
@@ -895,7 +898,7 @@ class IrisGridUtils {
|
|
|
895
898
|
userRowHeights: [...userRowHeights],
|
|
896
899
|
customColumns: [...customColumns],
|
|
897
900
|
conditionalFormats: [...conditionalFormats],
|
|
898
|
-
|
|
901
|
+
reverse,
|
|
899
902
|
rollupConfig,
|
|
900
903
|
showSearchBar,
|
|
901
904
|
searchValue,
|
|
@@ -938,6 +941,7 @@ class IrisGridUtils {
|
|
|
938
941
|
userColumnWidths,
|
|
939
942
|
userRowHeights,
|
|
940
943
|
reverseType,
|
|
944
|
+
reverse,
|
|
941
945
|
rollupConfig = undefined,
|
|
942
946
|
showSearchBar,
|
|
943
947
|
searchValue,
|
|
@@ -979,7 +983,7 @@ class IrisGridUtils {
|
|
|
979
983
|
customColumns,
|
|
980
984
|
conditionalFormats,
|
|
981
985
|
userRowHeights: new Map(userRowHeights),
|
|
982
|
-
reverseType,
|
|
986
|
+
reverse: reverseType === TableUtils.REVERSE_TYPE.POST_SORT || reverse,
|
|
983
987
|
rollupConfig,
|
|
984
988
|
showSearchBar,
|
|
985
989
|
searchValue,
|
|
@@ -1223,7 +1227,7 @@ class IrisGridUtils {
|
|
|
1223
1227
|
return null;
|
|
1224
1228
|
})
|
|
1225
1229
|
// If we can't find the column any more, it's null, filter it out
|
|
1226
|
-
// If the item is a reverse sort item, filter it out - it will get applied with the `
|
|
1230
|
+
// If the item is a reverse sort item, filter it out - it will get applied with the `reverse` property
|
|
1227
1231
|
// This should only happen when loading a legacy dashboard
|
|
1228
1232
|
.filter(item => item != null && item.direction !== TableUtils.sortDirection.reverse);
|
|
1229
1233
|
}
|