{"version":3,"file":"6359.f824c85233ec703f8cea.js","mappings":"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","sources":["webpack://grafana/./public/app/features/browse-dashboards/components/customFlexTableLayout.ts","webpack://grafana/./public/app/features/search/page/components/ExplainScorePopup.tsx","webpack://grafana/./public/app/features/search/page/components/columns.tsx","webpack://grafana/./public/app/features/search/page/components/SearchResultsTable.tsx"],"sourcesContent":["import { Hooks, UseTableColumnProps } from 'react-table';\n\n/**\n * Simplified flex layout module for react-table.\n * Uses the width of the column as the flex grow amount - the ratio of width between all columns\n *\n * Width of 0 for 'auto' width - useful for columns of fixed with that should shrink to the size\n * of content\n *\n * Originally based on https://github.com/TanStack/table/blob/v7/src/plugin-hooks/useFlexLayout.js\n */\nexport function useCustomFlexLayout(hooks: Hooks) {\n hooks.getRowProps.push((props) => [props, getRowStyles()]);\n hooks.getHeaderGroupProps.push((props) => [props, getRowStyles()]);\n hooks.getFooterGroupProps.push((props) => [props, getRowStyles()]);\n hooks.getHeaderProps.push((props, { column }) => [props, getColumnStyleProps(column)]);\n hooks.getCellProps.push((props, { cell }) => [props, getColumnStyleProps(cell.column)]);\n hooks.getFooterProps.push((props, { column }) => [props, getColumnStyleProps(column)]);\n}\n\nuseCustomFlexLayout.pluginName = 'useCustomFlexLayout';\n\nfunction getColumnStyleProps(column: UseTableColumnProps) {\n return {\n style: {\n flex:\n column.totalWidth === 0\n ? // if width: 0, prevent the column from growing (or shrinking), and set basis to auto to\n // fit column to the width of its content\n '0 0 auto'\n : // Otherwise, grow the content to a size in proportion to the other column widths\n `${column.totalWidth} 0 0`,\n },\n };\n}\n\nfunction getRowStyles() {\n return {\n style: {\n display: 'flex',\n flex: '1 0 auto',\n },\n };\n}\n","import React, { useState } from 'react';\n\nimport { DataFrame } from '@grafana/data';\nimport { CodeEditor, Modal, ModalTabsHeader, TabContent } from '@grafana/ui';\nimport { DataHoverView } from 'app/features/visualization/data-hover/DataHoverView';\n\nexport interface Props {\n name: string;\n explain: {};\n frame: DataFrame;\n row: number;\n}\n\nconst tabs = [\n { label: 'Score', value: 'score' },\n { label: 'Fields', value: 'fields' },\n { label: 'Allowed actions', value: 'allowed_actions' },\n];\n\nexport function ExplainScorePopup({ name, explain, frame, row }: Props) {\n const [isOpen, setOpen] = useState(true);\n const [activeTab, setActiveTab] = useState('score');\n\n const modalHeader = (\n {\n setActiveTab(t.value);\n }}\n />\n );\n\n return (\n setOpen(false)} closeOnBackdropClick closeOnEscape>\n \n {activeTab === tabs[0].value && (\n \n )}\n {activeTab === tabs[1].value && (\n
\n \n
\n )}\n {activeTab === tabs[2].value && (\n {\n const allowedActions = frame.fields.find((f) => f.name === 'allowed_actions')?.values?.[row];\n const dsUids = frame.fields.find((f) => f.name === 'ds_uid')?.values?.[row];\n return JSON.stringify({ dsUids: dsUids ?? [], allowedActions: allowedActions ?? [] }, null, 2);\n })()}\n readOnly={false}\n />\n )}\n
\n
\n );\n}\n","import { cx } from '@emotion/css';\nimport React from 'react';\nimport Skeleton from 'react-loading-skeleton';\n\nimport {\n DisplayProcessor,\n Field,\n FieldType,\n formattedValueToString,\n getDisplayProcessor,\n getFieldDisplayName,\n} from '@grafana/data';\nimport { config, getDataSourceSrv } from '@grafana/runtime';\nimport { Checkbox, Icon, IconName, TagList, Text } from '@grafana/ui';\nimport appEvents from 'app/core/app_events';\nimport { t } from 'app/core/internationalization';\nimport { PluginIconName } from 'app/features/plugins/admin/types';\nimport { ShowModalReactEvent } from 'app/types/events';\n\nimport { QueryResponse, SearchResultMeta } from '../../service';\nimport { getIconForKind } from '../../service/utils';\nimport { SelectionChecker, SelectionToggle } from '../selection';\n\nimport { ExplainScorePopup } from './ExplainScorePopup';\nimport { TableColumn } from './SearchResultsTable';\n\nconst TYPE_COLUMN_WIDTH = 175;\nconst DATASOURCE_COLUMN_WIDTH = 200;\n\nexport const generateColumns = (\n response: QueryResponse,\n availableWidth: number,\n selection: SelectionChecker | undefined,\n selectionToggle: SelectionToggle | undefined,\n clearSelection: () => void,\n styles: { [key: string]: string },\n onTagSelected: (tag: string) => void,\n onDatasourceChange?: (datasource?: string) => void,\n showingEverything?: boolean\n): TableColumn[] => {\n const columns: TableColumn[] = [];\n const access = response.view.fields;\n const uidField = access.uid;\n const kindField = access.kind;\n let sortFieldWith = 0;\n const sortField: Field = access[response.view.dataFrame.meta?.custom?.sortBy];\n if (sortField) {\n sortFieldWith = 175;\n if (sortField.type === FieldType.time) {\n sortFieldWith += 25;\n }\n availableWidth -= sortFieldWith; // pre-allocate the space for the last column\n }\n\n if (access.explain && access.score) {\n availableWidth -= 100; // pre-allocate the space for the last column\n }\n\n let width = 50;\n if (selection && selectionToggle) {\n width = 0;\n columns.push({\n id: `column-checkbox`,\n width,\n Header: () => {\n const { view } = response;\n const hasSelection = selection('*', '*');\n const allSelected = view.every((item) => selection(item.kind, item.uid));\n return (\n {\n if (hasSelection) {\n clearSelection();\n } else {\n for (let i = 0; i < view.length; i++) {\n const item = view.get(i);\n selectionToggle(item.kind, item.uid);\n }\n }\n }}\n />\n );\n },\n Cell: (p) => {\n const uid = uidField.values[p.row.index];\n const kind = kindField ? kindField.values[p.row.index] : 'dashboard'; // HACK for now\n const selected = selection(kind, uid);\n const hasUID = uid != null; // Panels don't have UID! Likely should not be shown on pages with manage options\n return (\n
\n {\n selectionToggle(kind, uid);\n }}\n />\n
\n );\n },\n field: uidField,\n });\n availableWidth -= width;\n }\n\n // Name column\n width = Math.max(availableWidth * 0.2, 300);\n columns.push({\n Cell: (p) => {\n let classNames = cx(styles.nameCellStyle);\n let name = access.name.values[p.row.index];\n if (!name?.length) {\n const loading = p.row.index >= response.view.dataFrame.length;\n name = loading ? 'Loading...' : 'Missing title'; // normal for panels\n classNames += ' ' + styles.missingTitleText;\n }\n return (\n
\n {!response.isItemLoaded(p.row.index) ? (\n \n ) : (\n \n {name}\n \n )}\n
\n );\n },\n id: `column-name`,\n field: access.name!,\n Header: () =>
{t('search.results-table.name-header', 'Name')}
,\n width,\n });\n availableWidth -= width;\n\n width = TYPE_COLUMN_WIDTH;\n columns.push(makeTypeColumn(response, access.kind, access.panel_type, width, styles));\n availableWidth -= width;\n\n // Show datasources if we have any\n if (access.ds_uid && onDatasourceChange) {\n width = Math.min(availableWidth / 2.5, DATASOURCE_COLUMN_WIDTH);\n columns.push(\n makeDataSourceColumn(\n access.ds_uid,\n width,\n styles.typeIcon,\n styles.datasourceItem,\n styles.invalidDatasourceItem,\n onDatasourceChange\n )\n );\n availableWidth -= width;\n }\n\n const showTags = !showingEverything || hasValue(response.view.fields.tags);\n const meta = response.view.dataFrame.meta?.custom as SearchResultMeta;\n if (meta?.locationInfo && availableWidth > 0) {\n width = showTags ? Math.max(availableWidth / 1.75, 300) : availableWidth;\n availableWidth -= width;\n columns.push({\n Cell: (p) => {\n const parts = (access.location?.values[p.row.index] ?? '').split('/');\n return (\n
\n {!response.isItemLoaded(p.row.index) ? (\n \n ) : (\n
\n {parts.map((p) => {\n let info = meta.locationInfo[p];\n if (!info && p === 'general') {\n info = { kind: 'folder', url: '/dashboards', name: 'General' };\n }\n return info ? (\n \n \n\n \n {info.name}\n \n \n ) : (\n {p}\n );\n })}\n
\n )}\n
\n );\n },\n id: `column-location`,\n field: access.location ?? access.url,\n Header: t('search.results-table.location-header', 'Location'),\n width,\n });\n }\n\n if (availableWidth > 0 && showTags) {\n columns.push(makeTagsColumn(response, access.tags, availableWidth, styles, onTagSelected));\n }\n\n if (sortField && sortFieldWith) {\n const disp = sortField.display ?? getDisplayProcessor({ field: sortField, theme: config.theme2 });\n\n columns.push({\n Header: getFieldDisplayName(sortField),\n Cell: (p) => {\n return (\n
\n {getDisplayValue({\n sortField,\n getDisplay: disp,\n index: p.row.index,\n kind: access.kind,\n })}\n
\n );\n },\n id: `column-sort-field`,\n field: sortField,\n width: sortFieldWith,\n });\n }\n\n if (access.explain && access.score) {\n const vals = access.score.values;\n const showExplainPopup = (row: number) => {\n appEvents.publish(\n new ShowModalReactEvent({\n component: ExplainScorePopup,\n props: {\n name: access.name.values[row],\n explain: access.explain.values[row],\n frame: response.view.dataFrame,\n row: row,\n },\n })\n );\n };\n\n columns.push({\n Header: () =>
Score
,\n Cell: (p) => {\n return (\n // TODO: fix keyboard a11y\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n showExplainPopup(p.row.index)}\n >\n {vals[p.row.index]}\n \n );\n },\n id: `column-score-field`,\n field: access.score,\n width: 100,\n });\n }\n\n return columns;\n};\n\nfunction hasValue(f: Field): boolean {\n for (let i = 0; i < f.values.length; i++) {\n if (f.values[i] != null) {\n return true;\n }\n }\n return false;\n}\n\nfunction makeDataSourceColumn(\n field: Field,\n width: number,\n iconClass: string,\n datasourceItemClass: string,\n invalidDatasourceItemClass: string,\n onDatasourceChange: (datasource?: string) => void\n): TableColumn {\n const srv = getDataSourceSrv();\n return {\n id: `column-datasource`,\n field,\n Header: t('search.results-table.datasource-header', 'Data source'),\n Cell: (p) => {\n const dslist = field.values[p.row.index];\n if (!dslist?.length) {\n return null;\n }\n return (\n
\n {dslist.map((v, i) => {\n const settings = srv.getInstanceSettings(v);\n const icon = settings?.meta?.info?.logos?.small;\n if (icon) {\n return (\n // TODO: fix keyboard a11y\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n {\n e.stopPropagation();\n e.preventDefault();\n onDatasourceChange(settings.uid);\n }}\n >\n \"\"\n {settings.name}\n \n );\n }\n return (\n \n {v}\n \n );\n })}\n
\n );\n },\n width,\n };\n}\n\nfunction makeTypeColumn(\n response: QueryResponse,\n kindField: Field,\n typeField: Field,\n width: number,\n styles: Record\n): TableColumn {\n return {\n id: `column-type`,\n field: kindField ?? typeField,\n Header: t('search.results-table.type-header', 'Type'),\n Cell: (p) => {\n const i = p.row.index;\n const kind = kindField?.values[i] ?? 'dashboard';\n let icon: IconName = 'apps';\n let txt = 'Dashboard';\n if (kind) {\n txt = kind;\n switch (txt) {\n case 'dashboard':\n txt = t('search.results-table.type-dashboard', 'Dashboard');\n break;\n\n case 'folder':\n icon = 'folder';\n txt = t('search.results-table.type-folder', 'Folder');\n break;\n\n case 'panel':\n icon = `${PluginIconName.panel}`;\n const type = typeField.values[i];\n if (type) {\n txt = type;\n const info = config.panels[txt];\n if (info?.name) {\n txt = info.name;\n } else {\n switch (type) {\n case 'row':\n txt = 'Row';\n icon = `bars`;\n break;\n case 'singlestat': // auto-migration\n txt = 'Singlestat';\n break;\n default:\n icon = `question-circle`; // plugin not found\n }\n }\n }\n break;\n }\n }\n return (\n
\n {!response.isItemLoaded(p.row.index) ? (\n \n ) : (\n <>\n \n {txt}\n \n )}\n
\n );\n },\n width,\n };\n}\n\nfunction makeTagsColumn(\n response: QueryResponse,\n field: Field,\n width: number,\n styles: Record,\n onTagSelected: (tag: string) => void\n): TableColumn {\n return {\n Cell: (p) => {\n const tags = field.values[p.row.index];\n return (\n
\n {!response.isItemLoaded(p.row.index) ? (\n \n ) : (\n <>{tags ? : null}\n )}\n
\n );\n },\n id: `column-tags`,\n field: field,\n Header: t('search.results-table.tags-header', 'Tags'),\n width,\n };\n}\n\nfunction getDisplayValue({\n kind,\n sortField,\n index,\n getDisplay,\n}: {\n kind: Field;\n sortField: Field;\n index: number;\n getDisplay: DisplayProcessor;\n}) {\n const value = sortField.values[index];\n if (['folder', 'panel'].includes(kind.values[index]) && value === 0) {\n return '-';\n }\n return formattedValueToString(getDisplay(value));\n}\n","import { css } from '@emotion/css';\nimport React, { useEffect, useMemo, useRef, useCallback, useState, CSSProperties } from 'react';\nimport { useTable, Column, TableOptions, Cell } from 'react-table';\nimport { FixedSizeList } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport { Observable } from 'rxjs';\n\nimport { Field, GrafanaTheme2 } from '@grafana/data';\nimport { TableCellHeight } from '@grafana/schema';\nimport { useStyles2, useTheme2 } from '@grafana/ui';\nimport { TableCell } from '@grafana/ui/src/components/Table/TableCell';\nimport { useTableStyles } from '@grafana/ui/src/components/Table/styles';\nimport { useCustomFlexLayout } from 'app/features/browse-dashboards/components/customFlexTableLayout';\n\nimport { useSearchKeyboardNavigation } from '../../hooks/useSearchKeyboardSelection';\nimport { QueryResponse } from '../../service';\nimport { SelectionChecker, SelectionToggle } from '../selection';\n\nimport { generateColumns } from './columns';\n\nexport type SearchResultsProps = {\n response: QueryResponse;\n width: number;\n height: number;\n selection?: SelectionChecker;\n selectionToggle?: SelectionToggle;\n clearSelection: () => void;\n onTagSelected: (tag: string) => void;\n onDatasourceChange?: (datasource?: string) => void;\n onClickItem?: (event: React.MouseEvent) => void;\n keyboardEvents: Observable;\n};\n\nexport type TableColumn = Column & {\n field?: Field;\n};\n\nconst ROW_HEIGHT = 36; // pixels\n\nexport const SearchResultsTable = React.memo(\n ({\n response,\n width,\n height,\n selection,\n selectionToggle,\n clearSelection,\n onTagSelected,\n onDatasourceChange,\n onClickItem,\n keyboardEvents,\n }: SearchResultsProps) => {\n const styles = useStyles2(getStyles);\n const columnStyles = useStyles2(getColumnStyles);\n const tableStyles = useTableStyles(useTheme2(), TableCellHeight.Sm);\n const infiniteLoaderRef = useRef(null);\n const [listEl, setListEl] = useState(null);\n const highlightIndex = useSearchKeyboardNavigation(keyboardEvents, 0, response);\n\n const memoizedData = useMemo(() => {\n if (!response?.view?.dataFrame.fields.length) {\n return [];\n }\n\n // as we only use this to fake the length of our data set for react-table we need to make sure we always return an array\n // filled with values at each index otherwise we'll end up trying to call accessRow for null|undefined value in\n // https://github.com/tannerlinsley/react-table/blob/7be2fc9d8b5e223fc998af88865ae86a88792fdb/src/hooks/useTable.js#L585\n return Array(response.totalRows).fill(0);\n }, [response]);\n\n // Scroll to the top and clear loader cache when the query results change\n useEffect(() => {\n if (infiniteLoaderRef.current) {\n infiniteLoaderRef.current.resetloadMoreItemsCache();\n }\n if (listEl) {\n listEl.scrollTo(0);\n }\n }, [memoizedData, listEl]);\n\n // React-table column definitions\n const memoizedColumns = useMemo(() => {\n return generateColumns(\n response,\n width,\n selection,\n selectionToggle,\n clearSelection,\n columnStyles,\n onTagSelected,\n onDatasourceChange,\n response.view?.length >= response.totalRows\n );\n }, [response, width, columnStyles, selection, selectionToggle, clearSelection, onTagSelected, onDatasourceChange]);\n\n const options: TableOptions<{}> = useMemo(\n () => ({\n columns: memoizedColumns,\n data: memoizedData,\n }),\n [memoizedColumns, memoizedData]\n );\n\n const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable(options, useCustomFlexLayout);\n\n const handleLoadMore = useCallback(\n async (startIndex: number, endIndex: number) => {\n await response.loadMoreItems(startIndex, endIndex);\n\n // After we load more items, select them if the \"select all\" checkbox\n // is selected\n const isAllSelected = selection?.('*', '*');\n if (!selectionToggle || !selection || !isAllSelected) {\n return;\n }\n\n for (let index = startIndex; index < response.view.length; index++) {\n const item = response.view.get(index);\n const itemIsSelected = selection(item.kind, item.uid);\n if (!itemIsSelected) {\n selectionToggle(item.kind, item.uid);\n }\n }\n },\n [response, selection, selectionToggle]\n );\n\n const RenderRow = useCallback(\n ({ index: rowIndex, style }: { index: number; style: CSSProperties }) => {\n const row = rows[rowIndex];\n prepareRow(row);\n\n const url = response.view.fields.url?.values[rowIndex];\n let className = styles.rowContainer;\n if (rowIndex === highlightIndex.y) {\n className += ' ' + styles.selectedRow;\n }\n\n return (\n
\n {row.cells.map((cell: Cell, index: number) => {\n return (\n \n );\n })}\n
\n );\n },\n [\n rows,\n prepareRow,\n response.view.fields.url?.values,\n highlightIndex,\n styles,\n tableStyles,\n onClickItem,\n response.view.dataFrame,\n ]\n );\n\n if (!rows.length) {\n return
No data
;\n }\n\n return (\n
\n {headerGroups.map((headerGroup) => {\n const { key, ...headerGroupProps } = headerGroup.getHeaderGroupProps({\n style: { width },\n });\n\n return (\n
\n {headerGroup.headers.map((column) => {\n const { key, ...headerProps } = column.getHeaderProps();\n return (\n
\n {column.render('Header')}\n
\n );\n })}\n
\n );\n })}\n\n
\n \n {({ onItemsRendered, ref }) => (\n {\n ref(innerRef);\n setListEl(innerRef);\n }}\n onItemsRendered={onItemsRendered}\n height={height - ROW_HEIGHT}\n itemCount={rows.length}\n itemSize={tableStyles.rowHeight}\n width={width}\n style={{ overflow: 'hidden auto' }}\n >\n {RenderRow}\n \n )}\n \n
\n
\n );\n }\n);\nSearchResultsTable.displayName = 'SearchResultsTable';\n\nconst getStyles = (theme: GrafanaTheme2) => {\n const rowHoverBg = theme.colors.emphasize(theme.colors.background.primary, 0.03);\n\n return {\n noData: css`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n `,\n headerCell: css`\n align-items: center;\n display: flex;\n overflo: hidden;\n padding: ${theme.spacing(1)};\n `,\n headerRow: css`\n background-color: ${theme.colors.background.secondary};\n display: flex;\n gap: ${theme.spacing(1)};\n height: ${ROW_HEIGHT}px;\n `,\n selectedRow: css`\n background-color: ${rowHoverBg};\n box-shadow: inset 3px 0px ${theme.colors.primary.border};\n `,\n rowContainer: css`\n display: flex;\n gap: ${theme.spacing(1)};\n height: ${ROW_HEIGHT}px;\n label: row;\n &:hover {\n background-color: ${rowHoverBg};\n }\n\n &:not(:hover) div[role='cell'] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n `,\n };\n};\n\n// CSS for columns from react table\nconst getColumnStyles = (theme: GrafanaTheme2) => {\n return {\n cell: css({\n padding: theme.spacing(1),\n overflow: 'hidden', // Required so flex children can do text-overflow: ellipsis\n display: 'flex',\n alignItems: 'center',\n }),\n nameCellStyle: css`\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: text;\n white-space: nowrap;\n `,\n typeCell: css({\n gap: theme.spacing(0.5),\n }),\n typeIcon: css`\n fill: ${theme.colors.text.secondary};\n `,\n datasourceItem: css`\n span {\n &:hover {\n color: ${theme.colors.text.link};\n }\n }\n `,\n missingTitleText: css`\n color: ${theme.colors.text.disabled};\n font-style: italic;\n `,\n invalidDatasourceItem: css`\n color: ${theme.colors.error.main};\n text-decoration: line-through;\n `,\n locationContainer: css({\n display: 'flex',\n flexWrap: 'nowrap',\n gap: theme.spacing(1),\n overflow: 'hidden',\n }),\n locationItem: css`\n align-items: center;\n color: ${theme.colors.text.secondary};\n display: flex;\n flex-wrap: nowrap;\n gap: 4px;\n overflow: hidden;\n `,\n explainItem: css`\n cursor: pointer;\n `,\n tagList: css`\n justify-content: flex-start;\n flex-wrap: nowrap;\n `,\n };\n};\n"],"names":["useCustomFlexLayout","hooks","props","getRowStyles","column","getColumnStyleProps","cell","tabs","ExplainScorePopup","name","explain","frame","row","isOpen","setOpen","activeTab","setActiveTab","modalHeader","ModalTabsHeader","t","Modal","TabContent","CodeEditor","DataHoverView","allowedActions","f","dsUids","TYPE_COLUMN_WIDTH","DATASOURCE_COLUMN_WIDTH","generateColumns","response","availableWidth","selection","selectionToggle","clearSelection","styles","onTagSelected","onDatasourceChange","showingEverything","columns","access","uidField","kindField","sortFieldWith","sortField","width","view","hasSelection","allSelected","item","Checkbox","e","i","p","uid","kind","selected","hasUID","classNames","makeTypeColumn","makeDataSourceColumn","showTags","hasValue","meta","parts","info","Icon","Text","makeTagsColumn","disp","config","getDisplayValue","vals","showExplainPopup","field","iconClass","datasourceItemClass","invalidDatasourceItemClass","srv","dslist","v","settings","icon","typeField","txt","type","tags","TagList","index","getDisplay","value","ROW_HEIGHT","SearchResultsTable","height","onClickItem","keyboardEvents","getStyles","columnStyles","getColumnStyles","tableStyles","infiniteLoaderRef","listEl","setListEl","highlightIndex","memoizedData","memoizedColumns","options","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","handleLoadMore","startIndex","endIndex","isAllSelected","RenderRow","rowIndex","style","url","className","TableCell","headerGroup","key","headerGroupProps","headerProps","onItemsRendered","ref","innerRef","theme","rowHoverBg"],"sourceRoot":""}