{"version":3,"file":"QueryBuilderHints.cjs","sources":["../../../../src/querybuilder/shared/QueryBuilderHints.tsx"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/querybuilder/shared/QueryBuilderHints.tsx\nimport { css } from '@emotion/css';\nimport { useEffect, useState } from 'react';\n\nimport { type GrafanaTheme2, type PanelData, type QueryHint } from '@grafana/data';\nimport { Trans } from '@grafana/i18n';\nimport { reportInteraction } from '@grafana/runtime';\nimport { Button, Tooltip, useStyles2 } from '@grafana/ui';\n\nimport { type PrometheusDatasource } from '../../datasource';\nimport { type PromQueryModellerInterface, type PromVisualQuery } from '../types';\n\ninterface Props {\n  query: PromVisualQuery;\n  datasource: PrometheusDatasource;\n  queryModeller: PromQueryModellerInterface;\n  buildVisualQueryFromString: (expr: string) => { query: PromVisualQuery };\n  onChange: (update: PromVisualQuery) => void;\n  data?: PanelData;\n}\n\nexport const QueryBuilderHints = ({\n  datasource,\n  query: visualQuery,\n  onChange,\n  data,\n  queryModeller,\n  buildVisualQueryFromString,\n}: Props) => {\n  const [hints, setHints] = useState<QueryHint[]>([]);\n  const styles = useStyles2(getStyles);\n\n  useEffect(() => {\n    const query = { expr: queryModeller.renderQuery(visualQuery), refId: '' };\n    // For now show only actionable hints\n    const hints = datasource.getQueryHints(query, data?.series || []).filter((hint) => hint.fix?.action);\n    setHints(hints);\n  }, [datasource, visualQuery, data, queryModeller]);\n\n  return (\n    <div className={styles.root}>\n      {hints.length > 0 && (\n        <div className={styles.container}>\n          {hints.map((hint) => {\n            return (\n              // eslint-disable-next-line @grafana/i18n/no-untranslated-strings\n              <Tooltip content={`${hint.label} ${hint.fix?.label}`} key={hint.type}>\n                <Button\n                  onClick={() => {\n                    reportInteraction('grafana_query_builder_hints_clicked', {\n                      hint: hint.type,\n                      datasourceType: datasource.type,\n                    });\n\n                    if (hint?.fix?.action) {\n                      const query = { expr: queryModeller.renderQuery(visualQuery), refId: '' };\n                      const newQuery = datasource.modifyQuery(query, hint.fix.action);\n                      const newVisualQuery = buildVisualQueryFromString(newQuery.expr);\n                      return onChange(newVisualQuery.query);\n                    }\n                  }}\n                  fill=\"outline\"\n                  size=\"sm\"\n                  className={styles.hint}\n                >\n                  <Trans\n                    i18nKey=\"grafana-prometheus.querybuilder.query-builder-hints.hint-details\"\n                    values={{ hintDetails: hint.fix?.title || hint.fix?.action?.type.toLowerCase().replace('_', ' ') }}\n                  >\n                    hint: {'{{hintDetails}}'}\n                  </Trans>\n                </Button>\n              </Tooltip>\n            );\n          })}\n        </div>\n      )}\n    </div>\n  );\n};\n\nQueryBuilderHints.displayName = 'QueryBuilderHints';\n\nconst getStyles = (theme: GrafanaTheme2) => {\n  return {\n    root: css({\n      padding: theme.spacing(0.5),\n    }),\n    container: css({\n      display: 'flex',\n      alignItems: 'start',\n    }),\n    hint: css({\n      marginRight: theme.spacing(1),\n      marginBottom: theme.spacing(1),\n    }),\n  };\n};\n"],"names":["useState","useStyles2","useEffect","hints","jsx","Tooltip","Button","_a","reportInteraction","jsxs","Trans","css"],"mappings":"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"}