{"version":3,"file":"ExemplarSetting.cjs","sources":["../../../src/configuration/ExemplarSetting.tsx"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/configuration/ExemplarSetting.tsx\nimport { useState } from 'react';\n\nimport { type DataSourceInstanceSettings } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { Trans, t } from '@grafana/i18n';\nimport { config, DataSourcePicker } from '@grafana/runtime';\nimport { Button, InlineField, Input, Switch, useTheme2 } from '@grafana/ui';\n\nimport { PROM_CONFIG_LABEL_WIDTH } from '../constants';\nimport { type ExemplarTraceIdDestination } from '../types';\n\nimport { docsTip, overhaulStyles } from './shared/utils';\n\ntype Props = {\n  value: ExemplarTraceIdDestination;\n  onChange: (value: ExemplarTraceIdDestination) => void;\n  onDelete: () => void;\n  disabled?: boolean;\n};\n\nexport function ExemplarSetting({ value, onChange, onDelete, disabled }: Props) {\n  const [isInternalLink, setIsInternalLink] = useState(Boolean(value.datasourceUid));\n\n  const theme = useTheme2();\n  const styles = overhaulStyles(theme);\n\n  return (\n    <div className=\"gf-form-group\">\n      <InlineField\n        label={t('grafana-prometheus.configuration.exemplar-setting.label-internal-link', 'Internal link')}\n        labelWidth={PROM_CONFIG_LABEL_WIDTH}\n        disabled={disabled}\n        tooltip={\n          <>\n            <Trans i18nKey=\"grafana-prometheus.configuration.exemplar-setting.tooltip-internal-link\">\n              Enable this option if you have an internal link. When enabled, this reveals the data source selector.\n              Select the backend tracing data store for your exemplar data.\n            </Trans>{' '}\n            {docsTip()}\n          </>\n        }\n        interactive={true}\n        className={styles.switchField}\n      >\n        <>\n          <Switch\n            value={isInternalLink}\n            data-testid={selectors.components.DataSource.Prometheus.configPage.internalLinkSwitch}\n            onChange={(ev) => setIsInternalLink(ev.currentTarget.checked)}\n          />\n        </>\n      </InlineField>\n\n      {isInternalLink ? (\n        <InlineField\n          label={t('grafana-prometheus.configuration.exemplar-setting.label-data-source', 'Data source')}\n          labelWidth={PROM_CONFIG_LABEL_WIDTH}\n          tooltip={\n            <>\n              <Trans i18nKey=\"grafana-prometheus.configuration.exemplar-setting.tooltip-data-source\">\n                The data source the exemplar is going to navigate to.\n              </Trans>{' '}\n              {docsTip()}\n            </>\n          }\n          disabled={disabled}\n          interactive={true}\n        >\n          <DataSourcePicker\n            filter={\n              config.featureToggles.azureMonitorPrometheusExemplars\n                ? undefined\n                : (ds) => ds.type !== 'grafana-azure-monitor-datasource'\n            }\n            tracing={true}\n            current={value.datasourceUid}\n            noDefault={true}\n            width={40}\n            onChange={(ds: DataSourceInstanceSettings) =>\n              onChange({\n                ...value,\n                datasourceUid: ds.uid,\n                url: undefined,\n              })\n            }\n          />\n        </InlineField>\n      ) : (\n        <InlineField\n          label={t('grafana-prometheus.configuration.exemplar-setting.label-url', 'URL')}\n          labelWidth={PROM_CONFIG_LABEL_WIDTH}\n          tooltip={\n            <>\n              <Trans i18nKey=\"grafana-prometheus.configuration.exemplar-setting.tooltip-url\">\n                The URL of the trace backend the user would go to see its trace\n              </Trans>{' '}\n              {docsTip()}\n            </>\n          }\n          disabled={disabled}\n          interactive={true}\n        >\n          <Input\n            placeholder={t(\n              'grafana-prometheus.configuration.exemplar-setting.placeholder-httpsexamplecomvalueraw',\n              'https://example.com/${__value.raw}'\n            )}\n            spellCheck={false}\n            width={40}\n            value={value.url}\n            onChange={(event) =>\n              onChange({\n                ...value,\n                datasourceUid: undefined,\n                url: event.currentTarget.value,\n              })\n            }\n          />\n        </InlineField>\n      )}\n\n      <InlineField\n        label={t('grafana-prometheus.configuration.exemplar-setting.label-url-label', 'URL Label')}\n        labelWidth={PROM_CONFIG_LABEL_WIDTH}\n        tooltip={\n          <>\n            <Trans i18nKey=\"grafana-prometheus.configuration.exemplar-setting.tooltip-url-label\">\n              Use to override the button label on the exemplar traceID field.\n            </Trans>{' '}\n            {docsTip()}\n          </>\n        }\n        disabled={disabled}\n        interactive={true}\n      >\n        <Input\n          placeholder={t(\n            'grafana-prometheus.configuration.exemplar-setting.placeholder-go-to-examplecom',\n            'Go to example.com'\n          )}\n          spellCheck={false}\n          width={40}\n          value={value.urlDisplayLabel}\n          onChange={(event) =>\n            onChange({\n              ...value,\n              urlDisplayLabel: event.currentTarget.value,\n            })\n          }\n        />\n      </InlineField>\n      <InlineField\n        label={t('grafana-prometheus.configuration.exemplar-setting.label-label-name', 'Label name')}\n        labelWidth={PROM_CONFIG_LABEL_WIDTH}\n        tooltip={\n          <>\n            <Trans i18nKey=\"grafana-prometheus.configuration.exemplar-setting.tooltip-label-name\">\n              The name of the field in the labels object that should be used to get the traceID.\n            </Trans>{' '}\n            {docsTip()}\n          </>\n        }\n        disabled={disabled}\n        interactive={true}\n      >\n        <Input\n          placeholder={t('grafana-prometheus.configuration.exemplar-setting.placeholder-trace-id', 'traceID')}\n          spellCheck={false}\n          width={40}\n          value={value.name}\n          onChange={(event) =>\n            onChange({\n              ...value,\n              name: event.currentTarget.value,\n            })\n          }\n        />\n      </InlineField>\n      {!disabled && (\n        <InlineField\n          label={t(\n            'grafana-prometheus.configuration.exemplar-setting.label-remove-exemplar-link',\n            'Remove exemplar link'\n          )}\n          labelWidth={PROM_CONFIG_LABEL_WIDTH}\n          disabled={disabled}\n        >\n          <Button\n            variant=\"destructive\"\n            aria-label={t(\n              'grafana-prometheus.configuration.exemplar-setting.title-remove-exemplar-link',\n              'Remove exemplar link'\n            )}\n            icon=\"times\"\n            onClick={(event) => {\n              event.preventDefault();\n              onDelete();\n            }}\n          />\n        </InlineField>\n      )}\n    </div>\n  );\n}\n"],"names":["useState","useTheme2","overhaulStyles","jsxs","jsx","InlineField","t","PROM_CONFIG_LABEL_WIDTH","Fragment","Trans","docsTip","Switch","selectors","DataSourcePicker","config","Input","Button"],"mappings":"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"}