{"version":3,"file":"21.afca69f2d336e287a655.js","mappings":"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","sources":["webpack://grafana/./public/app/features/alerting/unified/components/rules/RuleDetailsFederatedSources.tsx","webpack://grafana/./public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.tsx","webpack://grafana/./public/app/features/alerting/unified/components/rule-viewer/RuleViewerLayout.tsx"],"sourcesContent":["import React from 'react';\n\nimport { CombinedRuleGroup } from 'app/types/unified-alerting';\n\nimport { DetailsField } from '../DetailsField';\n\ninterface Props {\n group: CombinedRuleGroup;\n}\n\nconst RuleDetailsFederatedSources = ({ group }: Props) => {\n const sourceTenants = group.source_tenants ?? [];\n\n return (\n \n <>\n {sourceTenants.map((tenant) => (\n
{tenant}
\n ))}\n \n
\n );\n};\n\nexport { RuleDetailsFederatedSources };\n","import { css } from '@emotion/css';\nimport React, { useMemo } from 'react';\nimport { useToggle } from 'react-use';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { isFetchError } from '@grafana/runtime';\nimport {\n Alert,\n Button,\n Collapse,\n Icon,\n IconButton,\n LoadingPlaceholder,\n useStyles2,\n VerticalGroup,\n Stack,\n Text,\n} from '@grafana/ui';\nimport { GrafanaRouteComponentProps } from 'app/core/navigation/types';\n\nimport { DEFAULT_PER_PAGE_PAGINATION } from '../../../../../core/constants';\nimport { GrafanaRuleDefinition } from '../../../../../types/unified-alerting-dto';\nimport { useCombinedRule } from '../../hooks/useCombinedRule';\nimport { useCleanAnnotations } from '../../utils/annotations';\nimport { getRulesSourceByName } from '../../utils/datasource';\nimport * as ruleId from '../../utils/rule-id';\nimport { isFederatedRuleGroup, isGrafanaRulerRule } from '../../utils/rules';\nimport { AlertLabels } from '../AlertLabels';\nimport { DetailsField } from '../DetailsField';\nimport { ProvisionedResource, ProvisioningAlert } from '../Provisioning';\nimport { decodeGrafanaNamespace } from '../expressions/util';\nimport { RuleViewerLayout } from '../rule-viewer/RuleViewerLayout';\nimport { RuleDetailsActionButtons } from '../rules/RuleDetailsActionButtons';\nimport { RuleDetailsAnnotations } from '../rules/RuleDetailsAnnotations';\nimport { RuleDetailsDataSources } from '../rules/RuleDetailsDataSources';\nimport { RuleDetailsExpression } from '../rules/RuleDetailsExpression';\nimport { RuleDetailsFederatedSources } from '../rules/RuleDetailsFederatedSources';\nimport { RuleDetailsMatchingInstances } from '../rules/RuleDetailsMatchingInstances';\nimport { RuleHealth } from '../rules/RuleHealth';\nimport { RuleState } from '../rules/RuleState';\n\nimport { QueryResults } from './tabs/Query';\n\ntype RuleViewerProps = GrafanaRouteComponentProps<{ id?: string; sourceName?: string }>;\n\nconst errorMessage = 'Could not find data source for rule';\nconst errorTitle = 'Could not view rule';\nconst pageTitle = 'View rule';\n\nexport function RuleViewer({ match }: RuleViewerProps) {\n const styles = useStyles2(getStyles);\n const [expandQuery, setExpandQuery] = useToggle(false);\n\n const identifier = useMemo(() => {\n const id = ruleId.getRuleIdFromPathname(match.params);\n if (!id) {\n throw new Error('Rule ID is required');\n }\n\n return ruleId.parse(id, true);\n }, [match.params]);\n\n const { loading, error, result: rule } = useCombinedRule({ ruleIdentifier: identifier });\n\n const annotations = useCleanAnnotations(rule?.annotations || {});\n\n if (!identifier?.ruleSourceName) {\n return (\n \n \n
{errorMessage}
\n
\n
\n );\n }\n\n const rulesSource = getRulesSourceByName(identifier.ruleSourceName);\n\n if (loading) {\n return (\n \n \n \n );\n }\n\n if (error || !rulesSource) {\n return (\n \n
\n {isFetchError(error) ? error.message : errorMessage}\n
\n {/* TODO Fix typescript */}\n {/* {error && error?.stack} */}\n
\n
\n );\n }\n\n if (!rule) {\n return (\n \n Rule could not be found.\n \n );\n }\n\n const isFederatedRule = isFederatedRuleGroup(rule.group);\n const isProvisioned = isGrafanaRulerRule(rule.rulerRule) && Boolean(rule.rulerRule.grafana_alert.provenance);\n\n return (\n (\n \n \n {rule.name}\n \n \n )}\n >\n {isFederatedRule && (\n \n \n Federated rule groups are currently an experimental feature.\n \n \n \n )}\n {isProvisioned && }\n <>\n \n
\n
\n {rule.promRule && (\n \n \n \n )}\n {!!rule.labels && !!Object.keys(rule.labels).length && (\n \n \n \n )}\n \n \n
\n
\n \n {isFederatedRule && }\n \n {decodeGrafanaNamespace(rule.namespace).name} / {rule.group.name}\n \n {isGrafanaRulerRule(rule.rulerRule) && }\n
\n
\n
\n \n \n \n
\n \n \n {expandQuery && }\n \n \n );\n}\n\nfunction GrafanaRuleUID({ rule }: { rule: GrafanaRuleDefinition }) {\n const styles = useStyles2(getStyles);\n const copyUID = () => navigator.clipboard && navigator.clipboard.writeText(rule.uid);\n\n return (\n \n {rule.uid} \n \n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n errorMessage: css`\n white-space: pre-wrap;\n `,\n queries: css`\n height: 100%;\n width: 100%;\n `,\n collapse: css`\n margin-top: ${theme.spacing(2)};\n border-color: ${theme.colors.border.weak};\n border-radius: ${theme.shape.radius.default};\n `,\n queriesTitle: css`\n padding: ${theme.spacing(2, 0.5)};\n font-size: ${theme.typography.h5.fontSize};\n font-weight: ${theme.typography.fontWeightBold};\n font-family: ${theme.typography.h5.fontFamily};\n `,\n query: css`\n border-bottom: 1px solid ${theme.colors.border.medium};\n padding: ${theme.spacing(2)};\n `,\n queryWarning: css`\n margin: ${theme.spacing(4, 0)};\n `,\n title: css`\n font-size: ${theme.typography.h4.fontSize};\n font-weight: ${theme.typography.fontWeightBold};\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n `,\n details: css`\n display: flex;\n flex-direction: row;\n gap: ${theme.spacing(4)};\n `,\n leftSide: css`\n flex: 1;\n overflow: hidden;\n `,\n rightSide: css`\n padding-right: ${theme.spacing(3)};\n\n max-width: 360px;\n word-break: break-all;\n overflow: hidden;\n `,\n rightSideDetails: css`\n & > div:first-child {\n width: auto;\n }\n `,\n labels: css`\n justify-content: flex-start;\n `,\n ruleUid: css`\n display: flex;\n align-items: center;\n gap: ${theme.spacing(1)};\n `,\n };\n};\n\nexport default RuleViewer;\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2, NavModelItem } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport { Page } from 'app/core/components/Page/Page';\nimport { PageProps } from 'app/core/components/Page/types';\n\ntype Props = {\n children: React.ReactNode | React.ReactNode[];\n title: string;\n renderTitle?: PageProps['renderTitle'];\n wrapInContent?: boolean;\n};\n\nconst defaultPageNav: Partial = {\n icon: 'bell',\n id: 'alert-rule-view',\n};\n\nexport function RuleViewerLayout(props: Props): JSX.Element | null {\n const { wrapInContent = true, children, title, renderTitle } = props;\n const styles = useStyles2(getPageStyles);\n\n return (\n \n \n
{wrapInContent ? : children}
\n
\n
\n );\n}\n\ntype ContentProps = {\n children: React.ReactNode | React.ReactNode[];\n padding?: number;\n};\n\nexport function RuleViewerLayoutContent({ children, padding = 2 }: ContentProps): JSX.Element | null {\n const styles = useStyles2(getContentStyles(padding));\n return
{children}
;\n}\n\nconst getPageStyles = (theme: GrafanaTheme2) => {\n return {\n content: css`\n max-width: ${theme.breakpoints.values.xxl}px;\n `,\n };\n};\n\nconst getContentStyles = (padding: number) => (theme: GrafanaTheme2) => {\n return {\n wrapper: css`\n background: ${theme.colors.background.primary};\n border: 1px solid ${theme.colors.border.weak};\n border-radius: ${theme.shape.radius.default};\n padding: ${theme.spacing(padding)};\n `,\n };\n};\n"],"names":["RuleDetailsFederatedSources","group","sourceTenants","DetailsField","tenant","errorMessage","errorTitle","pageTitle","RuleViewer","match","styles","getStyles","expandQuery","setExpandQuery","useToggle","identifier","id","loading","error","rule","useCombinedRule","annotations","RuleViewerLayout","Alert","rulesSource","LoadingPlaceholder","isFederatedRule","isProvisioned","Stack","Icon","Text","RuleState","Button","Provisioning","RuleDetailsActionButtons","RuleHealth","AlertLabels","RuleDetailsExpression","RuleDetailsAnnotations","RuleDetailsDataSources","GrafanaRuleUID","RuleDetailsMatchingInstances","Collapse","Query","copyUID","IconButton","theme","defaultPageNav","props","wrapInContent","children","title","renderTitle","getPageStyles","RuleViewerLayoutContent","padding","getContentStyles"],"sourceRoot":""}