{"version":3,"file":"7377.1b1b1e2ad38b543dade0.js","mappings":"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","sources":["webpack://grafana/./public/app/core/components/PluginHelp/PluginHelp.tsx","webpack://grafana/./public/app/features/query/components/QueryGroupOptions.tsx","webpack://grafana/./public/app/features/query/components/QueryGroup.tsx","webpack://grafana/./public/app/features/query/state/updateQueries.ts"],"sourcesContent":["import React, { PureComponent } from 'react';\n\nimport { renderMarkdown } from '@grafana/data';\nimport { getBackendSrv } from '@grafana/runtime';\n\ninterface Props {\n plugin: {\n name: string;\n id: string;\n };\n type: string;\n}\n\ninterface State {\n isError: boolean;\n isLoading: boolean;\n help: string;\n}\n\nexport class PluginHelp extends PureComponent {\n state = {\n isError: false,\n isLoading: false,\n help: '',\n };\n\n componentDidMount(): void {\n this.loadHelp();\n }\n\n constructPlaceholderInfo() {\n return 'No plugin help or readme markdown file was found';\n }\n\n loadHelp = () => {\n const { plugin, type } = this.props;\n this.setState({ isLoading: true });\n\n getBackendSrv()\n .get(`/api/plugins/${plugin.id}/markdown/${type}`)\n .then((response: string) => {\n const helpHtml = renderMarkdown(response);\n\n if (response === '' && type === 'help') {\n this.setState({\n isError: false,\n isLoading: false,\n help: this.constructPlaceholderInfo(),\n });\n } else {\n this.setState({\n isError: false,\n isLoading: false,\n help: helpHtml,\n });\n }\n })\n .catch(() => {\n this.setState({\n isError: true,\n isLoading: false,\n });\n });\n };\n\n render() {\n const { type } = this.props;\n const { isError, isLoading, help } = this.state;\n\n if (isLoading) {\n return

Loading help...

;\n }\n\n if (isError) {\n return

'Error occurred when loading help'

;\n }\n\n if (type === 'panel_help' && help === '') {\n }\n\n return
;\n }\n}\n","import { css } from '@emotion/css';\nimport React, { PureComponent, ChangeEvent, FocusEvent } from 'react';\n\nimport { rangeUtil, PanelData, DataSourceApi } from '@grafana/data';\nimport { Switch, Input, InlineField, InlineFormLabel, stylesFactory } from '@grafana/ui';\nimport { QueryOperationRow } from 'app/core/components/QueryOperationRow/QueryOperationRow';\nimport { config } from 'app/core/config';\nimport { QueryGroupOptions } from 'app/types';\n\ninterface Props {\n options: QueryGroupOptions;\n dataSource: DataSourceApi;\n data: PanelData;\n onChange: (options: QueryGroupOptions) => void;\n}\n\ninterface State {\n timeRangeFrom: string;\n timeRangeShift: string;\n timeRangeHide: boolean;\n isOpen: boolean;\n relativeTimeIsValid: boolean;\n timeShiftIsValid: boolean;\n}\n\nexport class QueryGroupOptionsEditor extends PureComponent {\n constructor(props: Props) {\n super(props);\n\n const { options } = props;\n\n this.state = {\n timeRangeFrom: options.timeRange?.from || '',\n timeRangeShift: options.timeRange?.shift || '',\n timeRangeHide: options.timeRange?.hide ?? false,\n isOpen: false,\n relativeTimeIsValid: true,\n timeShiftIsValid: true,\n };\n }\n\n onRelativeTimeChange = (event: ChangeEvent) => {\n this.setState({\n timeRangeFrom: event.target.value,\n });\n };\n\n onTimeShiftChange = (event: ChangeEvent) => {\n this.setState({\n timeRangeShift: event.target.value,\n });\n };\n\n onOverrideTime = (event: FocusEvent) => {\n const { options, onChange } = this.props;\n\n const newValue = emptyToNull(event.target.value);\n const isValid = timeRangeValidation(newValue);\n\n if (isValid && options.timeRange?.from !== newValue) {\n onChange({\n ...options,\n timeRange: {\n ...(options.timeRange ?? {}),\n from: newValue,\n },\n });\n }\n\n this.setState({ relativeTimeIsValid: isValid });\n };\n\n onTimeShift = (event: FocusEvent) => {\n const { options, onChange } = this.props;\n\n const newValue = emptyToNull(event.target.value);\n const isValid = timeRangeValidation(newValue);\n\n if (isValid && options.timeRange?.shift !== newValue) {\n onChange({\n ...options,\n timeRange: {\n ...(options.timeRange ?? {}),\n shift: newValue,\n },\n });\n }\n\n this.setState({ timeShiftIsValid: isValid });\n };\n\n onToggleTimeOverride = () => {\n const { onChange, options } = this.props;\n\n this.setState({ timeRangeHide: !this.state.timeRangeHide }, () => {\n onChange({\n ...options,\n timeRange: {\n ...(options.timeRange ?? {}),\n hide: this.state.timeRangeHide,\n },\n });\n });\n };\n\n onCacheTimeoutBlur = (event: ChangeEvent) => {\n const { options, onChange } = this.props;\n onChange({\n ...options,\n cacheTimeout: emptyToNull(event.target.value),\n });\n };\n\n onMaxDataPointsBlur = (event: ChangeEvent) => {\n const { options, onChange } = this.props;\n\n let maxDataPoints: number | null = parseInt(event.target.value as string, 10);\n\n if (isNaN(maxDataPoints) || maxDataPoints === 0) {\n maxDataPoints = null;\n }\n\n if (maxDataPoints !== options.maxDataPoints) {\n onChange({\n ...options,\n maxDataPoints,\n });\n }\n };\n\n onMinIntervalBlur = (event: ChangeEvent) => {\n const { options, onChange } = this.props;\n const minInterval = emptyToNull(event.target.value);\n if (minInterval !== options.minInterval) {\n onChange({\n ...options,\n minInterval,\n });\n }\n };\n\n renderCacheTimeoutOption() {\n const { dataSource, options } = this.props;\n\n const tooltip = `If your time series store has a query cache this option can override the default cache timeout. Specify a\n numeric value in seconds.`;\n\n if (!dataSource.meta.queryOptions?.cacheTimeout) {\n return null;\n }\n\n return (\n
\n
\n \n Cache timeout\n \n \n
\n
\n );\n }\n\n renderMaxDataPointsOption() {\n const { data, options } = this.props;\n const realMd = data.request?.maxDataPoints;\n const value = options.maxDataPoints ?? '';\n const isAuto = value === '';\n\n return (\n
\n
\n \n The maximum data points per series. Used directly by some data sources and used in calculation of auto\n interval. With streaming data this value is used for the rolling buffer.\n \n }\n >\n Max data points\n \n \n {isAuto && (\n <>\n
=
\n
Width of panel
\n \n )}\n
\n
\n );\n }\n\n renderIntervalOption() {\n const { data, dataSource, options } = this.props;\n const realInterval = data.request?.interval;\n const minIntervalOnDs = dataSource.interval ?? 'No limit';\n\n return (\n <>\n
\n
\n \n A lower limit for the interval. Recommended to be set to write frequency, for example 1m{' '}\n if your data is written every minute. Default value can be set in data source settings for most data\n sources.\n \n }\n >\n Min interval\n \n \n
\n
\n
\n
\n \n The evaluated interval that is sent to data source and is used in $__interval and{' '}\n $__interval_ms\n \n }\n >\n Interval\n \n {realInterval}\n
=
\n
Time range / max data points
\n
\n
\n \n );\n }\n\n onOpenOptions = () => {\n this.setState({ isOpen: true });\n };\n\n onCloseOptions = () => {\n this.setState({ isOpen: false });\n };\n\n renderCollapsedText(styles: StylesType): React.ReactNode | undefined {\n const { data, options } = this.props;\n const { isOpen } = this.state;\n\n if (isOpen) {\n return undefined;\n }\n\n let mdDesc = options.maxDataPoints ?? '';\n if (mdDesc === '' && data.request) {\n mdDesc = `auto = ${data.request.maxDataPoints}`;\n }\n\n let intervalDesc = options.minInterval;\n if (data.request) {\n intervalDesc = `${data.request.interval}`;\n }\n\n return (\n <>\n {
MD = {mdDesc}
}\n {
Interval = {intervalDesc}
}\n \n );\n }\n\n render() {\n const { timeRangeHide: hideTimeOverride, relativeTimeIsValid, timeShiftIsValid } = this.state;\n const { timeRangeFrom: relativeTime, timeRangeShift: timeShift, isOpen } = this.state;\n const styles = getStyles();\n\n return (\n \n {this.renderMaxDataPointsOption()}\n {this.renderIntervalOption()}\n {this.renderCacheTimeoutOption()}\n\n
\n Relative time\n \n
\n\n
\n Time shift\n \n
\n {(timeShift || relativeTime) && (\n
\n \n \n \n
\n )}\n \n );\n }\n}\n\nconst timeRangeValidation = (value: string | null) => {\n if (!value) {\n return true;\n }\n\n return rangeUtil.isValidTimeSpan(value);\n};\n\nconst emptyToNull = (value: string) => {\n return value === '' ? null : value;\n};\n\nconst getStyles = stylesFactory(() => {\n const { theme } = config;\n\n return {\n collapsedText: css`\n margin-left: ${theme.spacing.md};\n font-size: ${theme.typography.size.sm};\n color: ${theme.colors.textWeak};\n `,\n };\n});\n\ntype StylesType = ReturnType;\n","import { css } from '@emotion/css';\nimport React, { PureComponent } from 'react';\nimport { Unsubscribable } from 'rxjs';\n\nimport {\n CoreApp,\n DataQuery,\n DataSourceApi,\n DataSourceInstanceSettings,\n getDefaultTimeRange,\n LoadingState,\n PanelData,\n} from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { DataSourcePicker, getDataSourceSrv } from '@grafana/runtime';\nimport { Button, CustomScrollbar, HorizontalGroup, InlineFormLabel, Modal, stylesFactory } from '@grafana/ui';\nimport { PluginHelp } from 'app/core/components/PluginHelp/PluginHelp';\nimport config from 'app/core/config';\nimport { backendSrv } from 'app/core/services/backend_srv';\nimport { addQuery, queryIsEmpty } from 'app/core/utils/query';\nimport { dataSource as expressionDatasource } from 'app/features/expressions/ExpressionDatasource';\nimport { DashboardQueryEditor, isSharedDashboardQuery } from 'app/plugins/datasource/dashboard';\nimport { QueryGroupOptions } from 'app/types';\n\nimport { PanelQueryRunner } from '../state/PanelQueryRunner';\nimport { updateQueries } from '../state/updateQueries';\n\nimport { GroupActionComponents } from './QueryActionComponent';\nimport { QueryEditorRows } from './QueryEditorRows';\nimport { QueryGroupOptionsEditor } from './QueryGroupOptions';\n\ninterface Props {\n queryRunner: PanelQueryRunner;\n options: QueryGroupOptions;\n onOpenQueryInspector?: () => void;\n onRunQueries: () => void;\n onOptionsChange: (options: QueryGroupOptions) => void;\n}\n\ninterface State {\n dataSource?: DataSourceApi;\n dsSettings?: DataSourceInstanceSettings;\n queries: DataQuery[];\n helpContent: React.ReactNode;\n isLoadingHelp: boolean;\n isPickerOpen: boolean;\n isAddingMixed: boolean;\n data: PanelData;\n isHelpOpen: boolean;\n defaultDataSource?: DataSourceApi;\n scrollElement?: HTMLDivElement;\n}\n\nexport class QueryGroup extends PureComponent {\n backendSrv = backendSrv;\n dataSourceSrv = getDataSourceSrv();\n querySubscription: Unsubscribable | null = null;\n\n state: State = {\n isLoadingHelp: false,\n helpContent: null,\n isPickerOpen: false,\n isAddingMixed: false,\n isHelpOpen: false,\n queries: [],\n data: {\n state: LoadingState.NotStarted,\n series: [],\n timeRange: getDefaultTimeRange(),\n },\n };\n\n async componentDidMount() {\n const { queryRunner, options } = this.props;\n\n this.querySubscription = queryRunner.getData({ withTransforms: false, withFieldConfig: false }).subscribe({\n next: (data: PanelData) => this.onPanelDataUpdate(data),\n });\n\n try {\n const ds = await this.dataSourceSrv.get(options.dataSource);\n const dsSettings = this.dataSourceSrv.getInstanceSettings(options.dataSource);\n const defaultDataSource = await this.dataSourceSrv.get();\n const datasource = ds.getRef();\n const queries = options.queries.map((q) => ({\n ...(queryIsEmpty(q) && ds?.getDefaultQuery?.(CoreApp.PanelEditor)),\n datasource,\n ...q,\n }));\n this.setState({ queries, dataSource: ds, dsSettings, defaultDataSource });\n } catch (error) {\n console.log('failed to load data source', error);\n }\n }\n\n componentWillUnmount() {\n if (this.querySubscription) {\n this.querySubscription.unsubscribe();\n this.querySubscription = null;\n }\n }\n\n onPanelDataUpdate(data: PanelData) {\n this.setState({ data });\n }\n\n onChangeDataSource = async (newSettings: DataSourceInstanceSettings) => {\n const { dsSettings } = this.state;\n const currentDS = dsSettings ? await getDataSourceSrv().get(dsSettings.uid) : undefined;\n const nextDS = await getDataSourceSrv().get(newSettings.uid);\n\n // We need to pass in newSettings.uid as well here as that can be a variable expression and we want to store that in the query model not the current ds variable value\n const queries = await updateQueries(nextDS, newSettings.uid, this.state.queries, currentDS);\n\n const dataSource = await this.dataSourceSrv.get(newSettings.name);\n this.onChange({\n queries,\n dataSource: {\n name: newSettings.name,\n uid: newSettings.uid,\n type: newSettings.meta.id,\n default: newSettings.isDefault,\n },\n });\n\n this.setState({\n queries,\n dataSource: dataSource,\n dsSettings: newSettings,\n });\n };\n\n onAddQueryClick = () => {\n const { queries } = this.state;\n this.onQueriesChange(addQuery(queries, this.newQuery()));\n this.onScrollBottom();\n };\n\n newQuery(): Partial {\n const { dsSettings, defaultDataSource } = this.state;\n\n const ds = !dsSettings?.meta.mixed ? dsSettings : defaultDataSource;\n\n return {\n ...this.state.dataSource?.getDefaultQuery?.(CoreApp.PanelEditor),\n datasource: { uid: ds?.uid, type: ds?.type },\n };\n }\n\n onChange(changedProps: Partial) {\n this.props.onOptionsChange({\n ...this.props.options,\n ...changedProps,\n });\n }\n\n onAddExpressionClick = () => {\n this.onQueriesChange(addQuery(this.state.queries, expressionDatasource.newQuery()));\n this.onScrollBottom();\n };\n\n onScrollBottom = () => {\n setTimeout(() => {\n if (this.state.scrollElement) {\n this.state.scrollElement.scrollTo({ top: 10000 });\n }\n }, 20);\n };\n\n onUpdateAndRun = (options: QueryGroupOptions) => {\n this.props.onOptionsChange(options);\n this.props.onRunQueries();\n };\n\n renderTopSection(styles: QueriesTabStyles) {\n const { onOpenQueryInspector, options } = this.props;\n const { dataSource, data } = this.state;\n\n return (\n
\n
\n \n Data source\n \n
\n \n
\n {dataSource && (\n <>\n
\n \n
\n
\n \n
\n {onOpenQueryInspector && (\n
\n \n Query inspector\n \n
\n )}\n \n )}\n
\n
\n );\n }\n\n onOpenHelp = () => {\n this.setState({ isHelpOpen: true });\n };\n\n onCloseHelp = () => {\n this.setState({ isHelpOpen: false });\n };\n\n renderMixedPicker = () => {\n return (\n \n );\n };\n\n onAddMixedQuery = (datasource: any) => {\n this.onAddQuery({ datasource: datasource.name });\n this.setState({ isAddingMixed: false });\n };\n\n onMixedPickerBlur = () => {\n this.setState({ isAddingMixed: false });\n };\n\n onAddQuery = (query: Partial) => {\n const { dsSettings, queries } = this.state;\n this.onQueriesChange(addQuery(queries, query, { type: dsSettings?.type, uid: dsSettings?.uid }));\n this.onScrollBottom();\n };\n\n onQueriesChange = (queries: DataQuery[]) => {\n this.onChange({ queries });\n this.setState({ queries });\n };\n\n renderQueries(dsSettings: DataSourceInstanceSettings) {\n const { onRunQueries } = this.props;\n const { data, queries } = this.state;\n\n if (isSharedDashboardQuery(dsSettings.name)) {\n return (\n \n );\n }\n\n return (\n
\n \n
\n );\n }\n\n isExpressionsSupported(dsSettings: DataSourceInstanceSettings): boolean {\n return (dsSettings.meta.alerting || dsSettings.meta.mixed) === true;\n }\n\n renderExtraActions() {\n return GroupActionComponents.getAllExtraRenderAction()\n .map((action, index) =>\n action({\n onAddQuery: this.onAddQuery,\n onChangeDataSource: this.onChangeDataSource,\n key: index,\n })\n )\n .filter(Boolean);\n }\n\n renderAddQueryRow(dsSettings: DataSourceInstanceSettings, styles: QueriesTabStyles) {\n const { isAddingMixed } = this.state;\n const showAddButton = !(isAddingMixed || isSharedDashboardQuery(dsSettings.name));\n\n return (\n \n {showAddButton && (\n \n Query\n \n )}\n {config.expressionsEnabled && this.isExpressionsSupported(dsSettings) && (\n \n Expression \n \n )}\n {this.renderExtraActions()}\n \n );\n }\n\n setScrollRef = (scrollElement: HTMLDivElement): void => {\n this.setState({ scrollElement });\n };\n\n render() {\n const { isHelpOpen, dsSettings } = this.state;\n const styles = getStyles();\n\n return (\n \n
\n {this.renderTopSection(styles)}\n {dsSettings && (\n <>\n
{this.renderQueries(dsSettings)}
\n {this.renderAddQueryRow(dsSettings, styles)}\n {isHelpOpen && (\n \n \n \n )}\n \n )}\n
\n
\n );\n }\n}\n\nconst getStyles = stylesFactory(() => {\n const { theme } = config;\n\n return {\n innerWrapper: css`\n display: flex;\n flex-direction: column;\n padding: ${theme.spacing.md};\n `,\n dataSourceRow: css`\n display: flex;\n margin-bottom: ${theme.spacing.md};\n `,\n dataSourceRowItem: css`\n margin-right: ${theme.spacing.inlineFormMargin};\n `,\n dataSourceRowItemOptions: css`\n flex-grow: 1;\n margin-right: ${theme.spacing.inlineFormMargin};\n `,\n queriesWrapper: css`\n padding-bottom: 16px;\n `,\n expressionWrapper: css``,\n expressionButton: css`\n margin-right: ${theme.spacing.sm};\n `,\n };\n});\n\ntype QueriesTabStyles = ReturnType;\n","import { CoreApp, DataQuery, DataSourceApi, hasQueryExportSupport, hasQueryImportSupport } from '@grafana/data';\nimport { isExpressionReference } from '@grafana/runtime/src/utils/DataSourceWithBackend';\n\nexport async function updateQueries(\n nextDS: DataSourceApi,\n nextDSUidOrVariableExpression: string,\n queries: DataQuery[],\n currentDS?: DataSourceApi\n): Promise {\n let nextQueries = queries;\n const datasource = { type: nextDS.type, uid: nextDSUidOrVariableExpression };\n const DEFAULT_QUERY = { ...nextDS?.getDefaultQuery?.(CoreApp.PanelEditor), datasource, refId: 'A' };\n\n // we are changing data source type\n if (currentDS?.meta.id !== nextDS.meta.id) {\n // If changing to mixed do nothing\n if (nextDS.meta.mixed) {\n return queries;\n }\n // when both data sources support abstract queries\n else if (hasQueryExportSupport(currentDS) && hasQueryImportSupport(nextDS)) {\n const abstractQueries = await currentDS.exportToAbstractQueries(queries);\n nextQueries = await nextDS.importFromAbstractQueries(abstractQueries);\n }\n // when datasource supports query import\n else if (currentDS && nextDS.importQueries) {\n nextQueries = await nextDS.importQueries(queries, currentDS);\n }\n // Otherwise clear queries\n else {\n return [DEFAULT_QUERY];\n }\n }\n\n if (nextQueries.length === 0) {\n return [DEFAULT_QUERY];\n }\n\n // Set data source on all queries except expression queries\n return nextQueries.map((query) => {\n if (!isExpressionReference(query.datasource) && !nextDS.meta.mixed) {\n query.datasource = datasource;\n }\n return query;\n });\n}\n"],"names":["PluginHelp","PureComponent","isError","isLoading","help","plugin","type","this","props","setState","getBackendSrv","get","id","then","response","helpHtml","renderMarkdown","constructPlaceholderInfo","catch","componentDidMount","loadHelp","render","state","className","dangerouslySetInnerHTML","__html","QueryGroupOptionsEditor","constructor","super","event","timeRangeFrom","target","value","timeRangeShift","options","onChange","newValue","emptyToNull","isValid","timeRangeValidation","timeRange","from","relativeTimeIsValid","shift","timeShiftIsValid","timeRangeHide","hide","cacheTimeout","maxDataPoints","parseInt","isNaN","minInterval","isOpen","renderCacheTimeoutOption","dataSource","meta","queryOptions","width","tooltip","Input","I","placeholder","spellCheck","onBlur","onCacheTimeoutBlur","defaultValue","renderMaxDataPointsOption","data","realMd","request","isAuto","onMaxDataPointsBlur","renderIntervalOption","realInterval","interval","minIntervalOnDs","onMinIntervalBlur","renderCollapsedText","styles","mdDesc","intervalDesc","collapsedText","hideTimeOverride","relativeTime","timeShift","getStyles","QueryOperationRow","index","title","headerElement","onOpen","onOpenOptions","onClose","onCloseOptions","onRelativeTimeChange","onOverrideTime","invalid","onTimeShiftChange","onTimeShift","InlineField","label","labelWidth","Switch","onToggleTimeOverride","rangeUtil","stylesFactory","theme","config","css","spacing","md","typography","size","sm","colors","textWeak","QueryGroup","backendSrv","getDataSourceSrv","isLoadingHelp","helpContent","isPickerOpen","isAddingMixed","isHelpOpen","queries","LoadingState","series","getDefaultTimeRange","async","dsSettings","currentDS","uid","undefined","nextDS","newSettings","nextDSUidOrVariableExpression","nextQueries","datasource","DEFAULT_QUERY","getDefaultQuery","CoreApp","refId","mixed","hasQueryExportSupport","hasQueryImportSupport","abstractQueries","exportToAbstractQueries","importFromAbstractQueries","importQueries","length","map","query","isExpressionReference","updateQueries","dataSourceSrv","name","default","isDefault","onQueriesChange","addQuery","newQuery","onScrollBottom","expressionDatasource","setTimeout","scrollElement","scrollTo","top","onOptionsChange","onRunQueries","DataSourcePicker","onAddMixedQuery","current","autoFocus","variables","onMixedPickerBlur","openMenuOnFocus","onAddQuery","queryRunner","querySubscription","getData","withTransforms","withFieldConfig","subscribe","next","onPanelDataUpdate","ds","getInstanceSettings","defaultDataSource","getRef","q","queryIsEmpty","error","console","log","componentWillUnmount","unsubscribe","changedProps","renderTopSection","onOpenQueryInspector","dataSourceRow","htmlFor","dataSourceRowItem","onChangeDataSource","metrics","dashboard","Button","variant","icon","onClick","onOpenHelp","dataSourceRowItemOptions","onUpdateAndRun","selectors","renderQueries","isSharedDashboardQuery","panelData","QueryEditorRows","isExpressionsSupported","alerting","renderExtraActions","GroupActionComponents","action","key","filter","Boolean","renderAddQueryRow","showAddButton","align","onAddQueryClick","onAddExpressionClick","expressionButton","CustomScrollbar","autoHeightMin","scrollRefCallback","setScrollRef","innerWrapper","queriesWrapper","Modal","onDismiss","onCloseHelp","inlineFormMargin","expressionWrapper"],"sourceRoot":""}