{"version":3,"file":"8881.b208037f6b1954dc031d.js","mappings":"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","sources":["webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/Field.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/LogsQueryEditor/FormatAsField.tsx","webpack://grafana/./public/app/core/utils/deferred.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/LogsQueryEditor/QueryField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ResourcePicker/EntryIcon.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ResourcePicker/styles.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ResourcePicker/NestedEntry.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ResourcePicker/NestedRow.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ResourcePicker/ResourcePicker.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/LogsQueryEditor/ResourceField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/LogsQueryEditor/useMigrations.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/LogsQueryEditor/LogsQueryEditor.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/LogsQueryEditor/setQueryValue.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/setQueryValue.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/SubscriptionField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ArgQueryEditor/QueryField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ArgQueryEditor/ArgQueryEditor.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/AggregationField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/DimensionFields.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/LegendFormatField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/MetricNameField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/MetricNamespaceField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/ResourceGroupsField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/ResourceNameField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/ResourceTypeField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/TimeGrainField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/TopField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/dataHooks.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/MetricsQueryEditor.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/NewMetricsQueryEditor/MetricsQueryEditor.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/deprecated/components/ApplicationInsightsEditor/index.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/deprecated/components/InsightsAnalyticsEditor/index.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/QueryEditor/QueryTypeField.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/QueryEditor/usePreparedQuery.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/QueryEditor/QueryEditor.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ResourcePicker/types.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/ResourcePicker/utils.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/Space.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/components/deprecated/utils.tsx","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/time_grain_converter.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/types/query.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/types/types.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/utils/common.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/utils/migrateQuery.ts","webpack://grafana/./public/app/plugins/datasource/grafana-azure-monitor-datasource/utils/useLastError.ts","webpack://grafana/../../opt/drone/yarncache/immer-npm-9.0.12-e8cd7358fa-bcbec6d76d.zip/node_modules/immer/dist/immer.esm.js"],"sourcesContent":["import React from 'react';\n\nimport { InlineField } from '@grafana/ui';\nimport { Props as InlineFieldProps } from '@grafana/ui/src/components/Forms/InlineField';\n\nconst DEFAULT_LABEL_WIDTH = 18;\n\nexport const Field = (props: InlineFieldProps) => {\n return ;\n};\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps } from '../../types';\nimport { Field } from '../Field';\n\nimport { setFormatAs } from './setQueryValue';\n\nconst FORMAT_OPTIONS: Array> = [\n { label: 'Time series', value: 'time_series' },\n { label: 'Table', value: 'table' },\n];\n\nconst FormatAsField: React.FC = ({ query, variableOptionGroup, onQueryChange }) => {\n const options = useMemo(() => [...FORMAT_OPTIONS, variableOptionGroup], [variableOptionGroup]);\n\n const handleChange = useCallback(\n (change: SelectableValue) => {\n const { value } = change;\n if (!value) {\n return;\n }\n\n const newQuery = setFormatAs(query, value);\n onQueryChange(newQuery);\n },\n [onQueryChange, query]\n );\n\n return (\n \n \n \n );\n};\n\nexport default FormatAsField;\n","export class Deferred {\n resolve?: (reason: T | PromiseLike) => void;\n reject?: (reason?: any) => void;\n promise: Promise;\n\n constructor() {\n this.resolve = undefined;\n this.reject = undefined;\n\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n Object.freeze(this);\n }\n}\n","import React, { useCallback, useEffect, useRef } from 'react';\n\nimport { CodeEditor, Monaco, MonacoEditor } from '@grafana/ui';\nimport { Deferred } from 'app/core/utils/deferred';\n\nimport { AzureQueryEditorFieldProps } from '../../types';\n\nimport { setKustoQuery } from './setQueryValue';\n\ninterface MonacoPromise {\n editor: MonacoEditor;\n monaco: Monaco;\n}\n\ninterface MonacoLanguages {\n kusto: {\n getKustoWorker: () => Promise<\n (url: any) => Promise<{\n setSchema: (schema: any, clusterUrl: string, name: string) => void;\n }>\n >;\n };\n}\n\nconst QueryField: React.FC = ({ query, datasource, onQueryChange }) => {\n const monacoPromiseRef = useRef>();\n function getPromise() {\n if (!monacoPromiseRef.current) {\n monacoPromiseRef.current = new Deferred();\n }\n\n return monacoPromiseRef.current.promise;\n }\n\n useEffect(() => {\n if (!query.azureLogAnalytics?.resource) {\n return;\n }\n\n const promises = [\n datasource.azureLogAnalyticsDatasource.getKustoSchema(query.azureLogAnalytics.resource),\n getPromise(),\n ] as const;\n\n // the kusto schema call might fail, but its okay for that to happen silently\n Promise.all(promises).then(([schema, { monaco, editor }]) => {\n const languages = monaco.languages as unknown as MonacoLanguages;\n\n languages.kusto\n .getKustoWorker()\n .then((kusto) => {\n const model = editor.getModel();\n return model && kusto(model.uri);\n })\n .then((worker) => {\n worker?.setSchema(schema, 'https://help.kusto.windows.net', 'Samples');\n });\n });\n }, [datasource.azureLogAnalyticsDatasource, query.azureLogAnalytics?.resource]);\n\n const handleEditorMount = useCallback((editor: MonacoEditor, monaco: Monaco) => {\n monacoPromiseRef.current?.resolve?.({ editor, monaco });\n }, []);\n\n const onChange = useCallback(\n (newQuery: string) => {\n onQueryChange(setKustoQuery(query, newQuery));\n },\n [onQueryChange, query]\n );\n\n return (\n \n );\n};\n\nexport default QueryField;\n","import React from 'react';\n\nimport { Icon } from '@grafana/ui';\n\nimport { ResourceRow, ResourceRowType } from './types';\n\ninterface EntryIconProps {\n entry: ResourceRow;\n isOpen: boolean;\n}\n\nexport const EntryIcon: React.FC = ({ isOpen, entry: { type } }) => {\n switch (type) {\n case ResourceRowType.Subscription:\n return ;\n\n case ResourceRowType.ResourceGroup:\n return ;\n\n case ResourceRowType.Resource:\n return ;\n\n case ResourceRowType.VariableGroup:\n return ;\n\n case ResourceRowType.Variable:\n return ;\n\n default:\n return null;\n }\n};\n","import { css } from '@emotion/css';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n table: css({\n width: '100%',\n tableLayout: 'fixed',\n }),\n\n tableScroller: css({\n maxHeight: '50vh',\n overflow: 'auto',\n }),\n\n header: css({\n background: theme.colors.background.secondary,\n }),\n\n row: css({\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n\n '&:last-of-type': {\n borderBottomColor: theme.colors.border.medium,\n },\n }),\n\n disabledRow: css({\n opacity: 0.5,\n }),\n\n cell: css({\n padding: theme.spacing(1, 1, 1, 0),\n width: '25%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n '&:first-of-type': {\n width: '50%',\n padding: theme.spacing(1, 1, 1, 2),\n },\n }),\n\n collapseButton: css({ margin: 0 }),\n\n loadingCell: css({\n textAlign: 'center',\n }),\n\n spinner: css({\n marginBottom: 0,\n }),\n\n nestedEntry: css({\n display: 'flex',\n alignItems: 'center',\n }),\n\n entryContentItem: css({\n margin: theme.spacing(0, 1, 0, 0),\n }),\n\n truncated: css({\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n\n nestedRowCheckbox: css({\n zIndex: 0,\n }),\n\n selectionFooter: css({\n position: 'sticky',\n bottom: 0,\n background: theme.colors.background.primary,\n paddingTop: theme.spacing(2),\n }),\n\n loadingWrapper: css({\n textAlign: 'center',\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n color: theme.colors.text.secondary,\n }),\n});\n\nexport default getStyles;\n","import { cx } from '@emotion/css';\nimport React, { useCallback, useEffect } from 'react';\n\nimport { Checkbox, IconButton, useStyles2, useTheme2 } from '@grafana/ui';\n\nimport { Space } from '../Space';\n\nimport { EntryIcon } from './EntryIcon';\nimport getStyles from './styles';\nimport { ResourceRow } from './types';\n\ninterface NestedEntryProps {\n level: number;\n entry: ResourceRow;\n isSelected: boolean;\n isSelectable: boolean;\n isOpen: boolean;\n isDisabled: boolean;\n scrollIntoView?: boolean;\n onToggleCollapse: (row: ResourceRow) => void;\n onSelectedChange: (row: ResourceRow, selected: boolean) => void;\n}\n\nexport const NestedEntry: React.FC = ({\n entry,\n isSelected,\n isDisabled,\n isOpen,\n isSelectable,\n scrollIntoView,\n level,\n onToggleCollapse,\n onSelectedChange,\n}) => {\n const theme = useTheme2();\n const styles = useStyles2(getStyles);\n const hasChildren = !!entry.children;\n\n const handleToggleCollapse = useCallback(() => {\n onToggleCollapse(entry);\n }, [onToggleCollapse, entry]);\n\n const handleSelectedChanged = useCallback(\n (ev: React.ChangeEvent) => {\n const isSelected = ev.target.checked;\n onSelectedChange(entry, isSelected);\n },\n [entry, onSelectedChange]\n );\n\n const checkboxId = `${scrollIntoView ? 'table' : 'summary'}_checkbox_${entry.uri}`;\n\n // Scroll to the selected element if it's not in the view\n // Only do it once, when the component is mounted\n useEffect(() => {\n if (isSelected && scrollIntoView) {\n document.getElementById(checkboxId)?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n
\n {hasChildren ? (\n \n ) : (\n \n )}\n\n \n\n {isSelectable && (\n <>\n \n \n \n )}\n\n \n \n\n \n
\n );\n};\n","import { cx } from '@emotion/css';\nimport React, { useEffect, useState } from 'react';\n\nimport { FadeTransition, LoadingPlaceholder, useStyles2 } from '@grafana/ui';\n\nimport { NestedEntry } from './NestedEntry';\nimport getStyles from './styles';\nimport { ResourceRow, ResourceRowGroup, ResourceRowType } from './types';\nimport { findRow } from './utils';\n\ninterface NestedRowProps {\n row: ResourceRow;\n level: number;\n selectedRows: ResourceRowGroup;\n requestNestedRows: (row: ResourceRow) => Promise;\n onRowSelectedChange: (row: ResourceRow, selected: boolean) => void;\n selectableEntryTypes: ResourceRowType[];\n scrollIntoView?: boolean;\n}\n\nconst NestedRow: React.FC = ({\n row,\n selectedRows,\n level,\n requestNestedRows,\n onRowSelectedChange,\n selectableEntryTypes,\n scrollIntoView,\n}) => {\n const styles = useStyles2(getStyles);\n const [rowStatus, setRowStatus] = useState<'open' | 'closed' | 'loading'>('closed');\n\n const isSelected = !!selectedRows.find((v) => v.uri === row.uri);\n const isDisabled = selectedRows.length > 0 && !isSelected;\n const isOpen = rowStatus === 'open';\n\n const onRowToggleCollapse = async () => {\n if (rowStatus === 'open') {\n setRowStatus('closed');\n return;\n }\n setRowStatus('loading');\n requestNestedRows(row)\n .then(() => setRowStatus('open'))\n .catch(() => setRowStatus('closed'));\n };\n\n // opens the resource group on load of component if there was a previously saved selection\n useEffect(() => {\n // Assuming we don't have multi-select yet\n const selectedRow = selectedRows[0];\n\n const containsChild = selectedRow && !!findRow(row.children ?? [], selectedRow.uri);\n\n if (containsChild) {\n setRowStatus('open');\n }\n }, [selectedRows, row]);\n\n return (\n <>\n \n \n type === row.type)}\n scrollIntoView={scrollIntoView}\n />\n \n\n {row.typeLabel}\n\n {row.location ?? '-'}\n \n\n {isOpen &&\n row.children &&\n Object.keys(row.children).length > 0 &&\n row.children.map((childRow) => (\n \n ))}\n\n \n \n \n \n \n \n \n \n );\n};\n\nexport default NestedRow;\n","import { cx } from '@emotion/css';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Alert, Button, Icon, Input, LoadingPlaceholder, Tooltip, useStyles2, Collapse, Label } from '@grafana/ui';\n\nimport ResourcePickerData from '../../resourcePicker/resourcePickerData';\nimport messageFromError from '../../utils/messageFromError';\nimport { Space } from '../Space';\n\nimport NestedRow from './NestedRow';\nimport getStyles from './styles';\nimport { ResourceRow, ResourceRowGroup, ResourceRowType } from './types';\nimport { addResources, findRow, parseResourceURI } from './utils';\n\ninterface ResourcePickerProps {\n resourcePickerData: ResourcePickerData;\n resourceURI: string | undefined;\n selectableEntryTypes: ResourceRowType[];\n\n onApply: (resourceURI: string | undefined) => void;\n onCancel: () => void;\n}\n\nconst ResourcePicker = ({\n resourcePickerData,\n resourceURI,\n onApply,\n onCancel,\n selectableEntryTypes,\n}: ResourcePickerProps) => {\n const styles = useStyles2(getStyles);\n\n type LoadingStatus = 'NotStarted' | 'Started' | 'Done';\n const [loadingStatus, setLoadingStatus] = useState('NotStarted');\n const [azureRows, setAzureRows] = useState([]);\n const [internalSelectedURI, setInternalSelectedURI] = useState(resourceURI);\n const [errorMessage, setErrorMessage] = useState(undefined);\n const [isAdvancedOpen, setIsAdvancedOpen] = useState(resourceURI?.includes('$'));\n // Sync the resourceURI prop to internal state\n useEffect(() => {\n setInternalSelectedURI(resourceURI);\n }, [resourceURI]);\n\n // Request initial data on first mount\n useEffect(() => {\n if (loadingStatus === 'NotStarted') {\n const loadInitialData = async () => {\n try {\n setLoadingStatus('Started');\n let resources = await resourcePickerData.getSubscriptions();\n if (!internalSelectedURI) {\n setAzureRows(resources);\n setLoadingStatus('Done');\n return;\n }\n\n const parsedURI = parseResourceURI(internalSelectedURI ?? '');\n if (parsedURI) {\n const resourceGroupURI = `/subscriptions/${parsedURI.subscriptionID}/resourceGroups/${parsedURI.resourceGroup}`;\n\n // if a resource group was previously selected, but the resource groups under the parent subscription have not been loaded yet\n if (parsedURI.resourceGroup && !findRow(resources, resourceGroupURI)) {\n const resourceGroups = await resourcePickerData.getResourceGroupsBySubscriptionId(\n parsedURI.subscriptionID\n );\n resources = addResources(resources, `/subscriptions/${parsedURI.subscriptionID}`, resourceGroups);\n }\n\n // if a resource was previously selected, but the resources under the parent resource group have not been loaded yet\n if (parsedURI.resource && !findRow(azureRows, parsedURI.resource ?? '')) {\n const resourcesForResourceGroup = await resourcePickerData.getResourcesForResourceGroup(resourceGroupURI);\n resources = addResources(resources, resourceGroupURI, resourcesForResourceGroup);\n }\n }\n setAzureRows(resources);\n setLoadingStatus('Done');\n } catch (error) {\n setLoadingStatus('Done');\n setErrorMessage(messageFromError(error));\n }\n };\n\n loadInitialData();\n }\n }, [resourcePickerData, internalSelectedURI, azureRows, loadingStatus]);\n\n // Map the selected item into an array of rows\n const selectedResourceRows = useMemo(() => {\n const found = internalSelectedURI && findRow(azureRows, internalSelectedURI);\n\n return found\n ? [\n {\n ...found,\n children: undefined,\n },\n ]\n : [];\n }, [internalSelectedURI, azureRows]);\n\n // Request resources for a expanded resource group\n const requestNestedRows = useCallback(\n async (resourceGroupOrSubscription: ResourceRow) => {\n // clear error message (also when loading cached resources)\n setErrorMessage(undefined);\n\n // If we already have children, we don't need to re-fetch them.\n if (resourceGroupOrSubscription.children?.length) {\n return;\n }\n\n try {\n const rows =\n resourceGroupOrSubscription.type === ResourceRowType.Subscription\n ? await resourcePickerData.getResourceGroupsBySubscriptionId(resourceGroupOrSubscription.id)\n : await resourcePickerData.getResourcesForResourceGroup(resourceGroupOrSubscription.id);\n\n const newRows = addResources(azureRows, resourceGroupOrSubscription.uri, rows);\n\n setAzureRows(newRows);\n } catch (error) {\n setErrorMessage(messageFromError(error));\n throw error;\n }\n },\n [resourcePickerData, azureRows]\n );\n\n const handleSelectionChanged = useCallback((row: ResourceRow, isSelected: boolean) => {\n isSelected ? setInternalSelectedURI(row.uri) : setInternalSelectedURI(undefined);\n }, []);\n\n const handleApply = useCallback(() => {\n onApply(internalSelectedURI);\n }, [internalSelectedURI, onApply]);\n\n return (\n
\n {loadingStatus === 'Started' ? (\n
\n \n
\n ) : (\n <>\n \n \n \n \n \n \n \n \n
ScopeTypeLocation
\n\n
\n \n \n {azureRows.map((row) => (\n \n ))}\n \n
\n
\n\n
\n {selectedResourceRows.length > 0 && (\n <>\n
Selection
\n\n
\n \n \n {selectedResourceRows.map((row) => (\n \n ))}\n \n
\n
\n \n \n )}\n\n setIsAdvancedOpen(!isAdvancedOpen)}\n >\n \n setInternalSelectedURI(event.currentTarget.value)}\n placeholder=\"ex: /subscriptions/$subId\"\n />\n \n \n\n \n\n \n\n \n
\n \n )}\n {errorMessage && (\n <>\n \n \n {errorMessage}\n \n \n )}\n
\n );\n};\n\nexport default ResourcePicker;\n","import { css } from '@emotion/css';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Button, Icon, Modal, useStyles2 } from '@grafana/ui';\n\nimport Datasource from '../../datasource';\nimport { AzureQueryEditorFieldProps, AzureResourceSummaryItem } from '../../types';\nimport { Field } from '../Field';\nimport ResourcePicker from '../ResourcePicker';\nimport { ResourceRowType } from '../ResourcePicker/types';\nimport { parseResourceURI } from '../ResourcePicker/utils';\nimport { Space } from '../Space';\n\nimport { setResource } from './setQueryValue';\n\nfunction parseResourceDetails(resourceURI: string) {\n const parsed = parseResourceURI(resourceURI);\n\n if (!parsed) {\n return undefined;\n }\n\n return {\n subscriptionName: parsed.subscriptionID,\n resourceGroupName: parsed.resourceGroup,\n resourceName: parsed.resource,\n };\n}\n\nconst ResourceField: React.FC = ({ query, datasource, onQueryChange }) => {\n const styles = useStyles2(getStyles);\n const { resource } = query.azureLogAnalytics ?? {};\n const [pickerIsOpen, setPickerIsOpen] = useState(false);\n\n const handleOpenPicker = useCallback(() => {\n setPickerIsOpen(true);\n }, []);\n\n const closePicker = useCallback(() => {\n setPickerIsOpen(false);\n }, []);\n\n const handleApply = useCallback(\n (resourceURI: string | undefined) => {\n onQueryChange(setResource(query, resourceURI));\n closePicker();\n },\n [closePicker, onQueryChange, query]\n );\n\n return (\n <>\n \n \n \n\n \n \n \n \n );\n};\n\ninterface ResourceLabelProps {\n resource: string | undefined;\n datasource: Datasource;\n}\n\nconst ResourceLabel = ({ resource, datasource }: ResourceLabelProps) => {\n const [resourceComponents, setResourceComponents] = useState(parseResourceDetails(resource ?? ''));\n\n useEffect(() => {\n if (resource && parseResourceDetails(resource)) {\n datasource.resourcePickerData.getResourceURIDisplayProperties(resource).then(setResourceComponents);\n } else {\n setResourceComponents(undefined);\n }\n }, [datasource.resourcePickerData, resource]);\n\n if (!resource) {\n return <>Select a resource;\n }\n\n if (resourceComponents) {\n return ;\n }\n\n if (resource.startsWith('$')) {\n return (\n \n {resource}\n \n );\n }\n\n return <>{resource};\n};\n\ninterface FormattedResourceProps {\n resource: AzureResourceSummaryItem;\n}\n\nconst FormattedResource = ({ resource }: FormattedResourceProps) => {\n return (\n \n {resource.subscriptionName}\n {resource.resourceGroupName && (\n <>\n \n {resource.resourceGroupName}\n \n )}\n {resource.resourceName && (\n <>\n \n {resource.resourceName}\n \n )}\n \n );\n};\n\nconst Separator = () => (\n <>\n \n {'/'}\n \n \n);\n\nexport default ResourceField;\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n modal: css({\n width: theme.breakpoints.values.lg,\n }),\n});\n","import { useEffect, useState } from 'react';\n\nimport Datasource from '../../datasource';\nimport { AzureMonitorQuery } from '../../types';\nimport { isGUIDish } from '../ResourcePicker/utils';\n\nasync function migrateWorkspaceQueryToResourceQuery(\n datasource: Datasource,\n query: AzureMonitorQuery,\n onChange: (newQuery: AzureMonitorQuery) => void\n) {\n if (query.azureLogAnalytics?.workspace !== undefined && !query.azureLogAnalytics.resource) {\n const isWorkspaceGUID = isGUIDish(query.azureLogAnalytics.workspace);\n let resource: string;\n\n if (isWorkspaceGUID) {\n resource = await datasource.resourcePickerData.getResourceURIFromWorkspace(query.azureLogAnalytics.workspace);\n } else {\n // The value of workspace is probably a template variable so we just migrate it over as-is\n resource = query.azureLogAnalytics.workspace;\n }\n\n const newQuery = {\n ...query,\n azureLogAnalytics: {\n ...query.azureLogAnalytics,\n resource: resource,\n workspace: undefined,\n },\n };\n\n delete newQuery.azureLogAnalytics.workspace;\n\n onChange(newQuery);\n }\n}\n\ninterface ErrorMessage {\n title: string;\n message: string;\n}\n\nexport default function useMigrations(\n datasource: Datasource,\n query: AzureMonitorQuery,\n onChange: (newQuery: AzureMonitorQuery) => void\n) {\n const [migrationError, setMigrationError] = useState();\n\n useEffect(() => {\n migrateWorkspaceQueryToResourceQuery(datasource, query, onChange).catch((err) =>\n setMigrationError({\n title: 'Unable to migrate workspace as a resource',\n message: err.message,\n })\n );\n }, [datasource, query, onChange]);\n\n return migrationError;\n}\n","import React from 'react';\n\nimport { Alert, InlineFieldRow } from '@grafana/ui';\n\nimport Datasource from '../../datasource';\nimport { AzureMonitorErrorish, AzureMonitorOption, AzureMonitorQuery } from '../../types';\n\nimport FormatAsField from './FormatAsField';\nimport QueryField from './QueryField';\nimport ResourceField from './ResourceField';\nimport useMigrations from './useMigrations';\n\ninterface LogsQueryEditorProps {\n query: AzureMonitorQuery;\n datasource: Datasource;\n subscriptionId?: string;\n onChange: (newQuery: AzureMonitorQuery) => void;\n variableOptionGroup: { label: string; options: AzureMonitorOption[] };\n setError: (source: string, error: AzureMonitorErrorish | undefined) => void;\n hideFormatAs?: boolean;\n}\n\nconst LogsQueryEditor: React.FC = ({\n query,\n datasource,\n subscriptionId,\n variableOptionGroup,\n onChange,\n setError,\n hideFormatAs,\n}) => {\n const migrationError = useMigrations(datasource, query, onChange);\n\n return (\n
\n \n \n \n\n \n\n {!hideFormatAs && (\n \n )}\n\n {migrationError && {migrationError.message}}\n
\n );\n};\n\nexport default LogsQueryEditor;\n","import { AzureMonitorQuery } from '../../types';\n\nexport function setKustoQuery(query: AzureMonitorQuery, kustoQuery: string): AzureMonitorQuery {\n return {\n ...query,\n azureLogAnalytics: {\n ...query.azureLogAnalytics,\n query: kustoQuery,\n },\n };\n}\n\nexport function setFormatAs(query: AzureMonitorQuery, formatAs: string): AzureMonitorQuery {\n return {\n ...query,\n azureLogAnalytics: {\n ...query.azureLogAnalytics,\n resultFormat: formatAs,\n },\n };\n}\n\nexport function setResource(query: AzureMonitorQuery, resourceURI: string | undefined): AzureMonitorQuery {\n return {\n ...query,\n azureLogAnalytics: {\n ...query.azureLogAnalytics,\n resource: resourceURI,\n },\n };\n}\n","import { AzureMetricDimension, AzureMonitorQuery } from '../../types';\n\nexport function setSubscriptionID(query: AzureMonitorQuery, subscriptionID: string): AzureMonitorQuery {\n if (query.subscription === subscriptionID) {\n return query;\n }\n\n return {\n ...query,\n subscription: subscriptionID,\n azureMonitor: {\n ...query.azureMonitor,\n resourceGroup: undefined,\n metricDefinition: undefined,\n metricNamespace: undefined,\n resourceName: undefined,\n metricName: undefined,\n aggregation: undefined,\n timeGrain: '',\n dimensionFilters: [],\n },\n };\n}\n\nexport function setResourceGroup(query: AzureMonitorQuery, resourceGroup: string | undefined): AzureMonitorQuery {\n if (query.azureMonitor?.resourceGroup === resourceGroup) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n resourceGroup: resourceGroup,\n metricDefinition: undefined,\n metricNamespace: undefined,\n resourceName: undefined,\n metricName: undefined,\n aggregation: undefined,\n timeGrain: '',\n dimensionFilters: [],\n },\n };\n}\n\n// In the query as \"metricDefinition\" for some reason\nexport function setResourceType(query: AzureMonitorQuery, resourceType: string | undefined): AzureMonitorQuery {\n if (query.azureMonitor?.metricDefinition === resourceType) {\n return query;\n }\n\n const newQuery = {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n metricDefinition: resourceType,\n resourceName: undefined,\n metricNamespace: undefined,\n metricName: undefined,\n aggregation: undefined,\n timeGrain: '',\n dimensionFilters: [],\n },\n };\n\n return newQuery;\n}\n\nexport function setResourceName(query: AzureMonitorQuery, resourceName: string | undefined): AzureMonitorQuery {\n if (query.azureMonitor?.resourceName === resourceName) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n resourceName: resourceName,\n metricNamespace: undefined,\n metricName: undefined,\n aggregation: undefined,\n timeGrain: '',\n dimensionFilters: [],\n },\n };\n}\n\nexport function setMetricNamespace(query: AzureMonitorQuery, metricNamespace: string | undefined): AzureMonitorQuery {\n if (query.azureMonitor?.metricNamespace === metricNamespace) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n metricNamespace: metricNamespace,\n metricName: undefined,\n aggregation: undefined,\n timeGrain: '',\n dimensionFilters: [],\n },\n };\n}\n\nexport function setMetricName(query: AzureMonitorQuery, metricName: string | undefined): AzureMonitorQuery {\n if (query.azureMonitor?.metricName === metricName) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n metricName: metricName,\n aggregation: undefined,\n timeGrain: '',\n dimensionFilters: [],\n },\n };\n}\n\nexport function setAggregation(query: AzureMonitorQuery, aggregation: string): AzureMonitorQuery {\n if (query.azureMonitor?.aggregation === aggregation) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n aggregation: aggregation,\n },\n };\n}\n\nexport function setTimeGrain(query: AzureMonitorQuery, timeGrain: string): AzureMonitorQuery {\n if (query.azureMonitor?.timeGrain === timeGrain) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n timeGrain: timeGrain,\n },\n };\n}\n\nexport function setDimensionFilters(query: AzureMonitorQuery, dimensions: AzureMetricDimension[]): AzureMonitorQuery {\n if (query.azureMonitor?.dimensionFilters === dimensions) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n dimensionFilters: dimensions,\n },\n };\n}\n\nexport function appendDimensionFilter(\n query: AzureMonitorQuery,\n dimension = '',\n operator = 'eq',\n filter = ''\n): AzureMonitorQuery {\n const existingFilters = query.azureMonitor?.dimensionFilters ?? [];\n\n return setDimensionFilters(query, [\n ...existingFilters,\n {\n dimension,\n operator,\n filter,\n },\n ]);\n}\n\nexport function removeDimensionFilter(query: AzureMonitorQuery, indexToRemove: number): AzureMonitorQuery {\n const existingFilters = query.azureMonitor?.dimensionFilters ?? [];\n const newFilters = [...existingFilters];\n newFilters.splice(indexToRemove, 1);\n return setDimensionFilters(query, newFilters);\n}\n\nexport function setDimensionFilterValue(\n query: AzureMonitorQuery,\n index: number,\n fieldName: Key,\n value: AzureMetricDimension[Key]\n): AzureMonitorQuery {\n const existingFilters = query.azureMonitor?.dimensionFilters ?? [];\n const newFilters = [...existingFilters];\n const newFilter = newFilters[index];\n newFilter[fieldName] = value;\n return setDimensionFilters(query, newFilters);\n}\n\nexport function setTop(query: AzureMonitorQuery, top: string): AzureMonitorQuery {\n if (query.azureMonitor?.top === top) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n top: top,\n },\n };\n}\n\nexport function setLegendAlias(query: AzureMonitorQuery, alias: string): AzureMonitorQuery {\n if (query.azureMonitor?.alias === alias) {\n return query;\n }\n\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n alias: alias,\n },\n };\n}\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select, MultiSelect } from '@grafana/ui';\n\nimport { AzureMonitorQuery, AzureQueryEditorFieldProps, AzureMonitorOption, AzureQueryType } from '../types';\nimport { findOptions } from '../utils/common';\n\nimport { Field } from './Field';\n\ninterface SubscriptionFieldProps extends AzureQueryEditorFieldProps {\n onQueryChange: (newQuery: AzureMonitorQuery) => void;\n subscriptions: AzureMonitorOption[];\n multiSelect?: boolean;\n}\n\nconst SubscriptionField: React.FC = ({\n query,\n subscriptions,\n variableOptionGroup,\n onQueryChange,\n multiSelect = false,\n}) => {\n const handleChange = useCallback(\n (change: SelectableValue) => {\n if (!change.value) {\n return;\n }\n\n let newQuery: AzureMonitorQuery = {\n ...query,\n subscription: change.value,\n };\n\n if (query.queryType === AzureQueryType.AzureMonitor) {\n newQuery.azureMonitor = {\n ...newQuery.azureMonitor,\n resourceGroup: undefined,\n metricDefinition: undefined,\n metricNamespace: undefined,\n resourceName: undefined,\n metricName: undefined,\n aggregation: undefined,\n timeGrain: '',\n dimensionFilters: [],\n };\n }\n\n onQueryChange(newQuery);\n },\n [query, onQueryChange]\n );\n\n const onSubscriptionsChange = useCallback(\n (change: Array>) => {\n if (!change) {\n return;\n }\n\n query.subscriptions = change.map((c) => c.value ?? '');\n\n onQueryChange(query);\n },\n [query, onQueryChange]\n );\n\n const options = useMemo(() => [...subscriptions, variableOptionGroup], [subscriptions, variableOptionGroup]);\n\n return multiSelect ? (\n \n \n \n ) : (\n \n \n \n );\n};\n\nexport default SubscriptionField;\n","import React, { useCallback } from 'react';\n\nimport { CodeEditor } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps } from '../../types';\n\nconst QueryField: React.FC = ({ query, onQueryChange }) => {\n const onChange = useCallback(\n (newQuery: string) => {\n onQueryChange({\n ...query,\n azureResourceGraph: {\n ...query.azureResourceGraph,\n query: newQuery,\n },\n });\n },\n [onQueryChange, query]\n );\n\n return (\n \n );\n};\n\nexport default QueryField;\n","import React, { useEffect, useState, useRef } from 'react';\n\nimport { InlineFieldRow } from '@grafana/ui';\n\nimport Datasource from '../../datasource';\nimport { AzureMonitorErrorish, AzureMonitorOption, AzureMonitorQuery } from '../../types';\nimport SubscriptionField from '../SubscriptionField';\n\nimport QueryField from './QueryField';\n\ninterface LogsQueryEditorProps {\n query: AzureMonitorQuery;\n datasource: Datasource;\n subscriptionId?: string;\n onChange: (newQuery: AzureMonitorQuery) => void;\n variableOptionGroup: { label: string; options: AzureMonitorOption[] };\n setError: (source: string, error: AzureMonitorErrorish | undefined) => void;\n}\n\nconst ERROR_SOURCE = 'arg-subscriptions';\nconst ArgQueryEditor: React.FC = ({\n query,\n datasource,\n subscriptionId,\n variableOptionGroup,\n onChange,\n setError,\n}) => {\n const fetchedRef = useRef(false);\n const [subscriptions, setSubscriptions] = useState([]);\n\n useEffect(() => {\n if (fetchedRef.current) {\n return;\n }\n\n fetchedRef.current = true;\n datasource.azureMonitorDatasource\n .getSubscriptions()\n .then((results) => {\n const fetchedSubscriptions = results.map((v) => ({ label: v.text, value: v.value, description: v.value }));\n setSubscriptions(fetchedSubscriptions);\n setError(ERROR_SOURCE, undefined);\n\n if (!query.subscriptions?.length && fetchedSubscriptions?.length) {\n onChange({\n ...query,\n subscriptions: [query.subscription ?? fetchedSubscriptions[0].value],\n });\n }\n })\n .catch((err) => setError(ERROR_SOURCE, err));\n }, [datasource, onChange, query, setError]);\n\n return (\n
\n \n \n \n\n \n
\n );\n};\n\nexport default ArgQueryEditor;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps, AzureMonitorOption } from '../../types';\nimport { Field } from '../Field';\n\nimport { setAggregation } from './setQueryValue';\n\ninterface AggregationFieldProps extends AzureQueryEditorFieldProps {\n aggregationOptions: AzureMonitorOption[];\n isLoading: boolean;\n}\n\nconst AggregationField: React.FC = ({\n query,\n variableOptionGroup,\n onQueryChange,\n aggregationOptions,\n isLoading,\n}) => {\n const handleChange = useCallback(\n (change: SelectableValue) => {\n if (!change.value) {\n return;\n }\n\n const newQuery = setAggregation(query, change.value);\n onQueryChange(newQuery);\n },\n [onQueryChange, query]\n );\n\n const options = useMemo(\n () => [...aggregationOptions, variableOptionGroup],\n [aggregationOptions, variableOptionGroup]\n );\n\n return (\n \n \n \n );\n};\n\nexport default AggregationField;\n","import React, { useMemo } from 'react';\n\nimport { Button, Select, Input, HorizontalGroup, VerticalGroup, InlineLabel } from '@grafana/ui';\n\nimport { AzureMetricDimension, AzureMonitorOption, AzureQueryEditorFieldProps } from '../../types';\nimport { Field } from '../Field';\n\nimport { appendDimensionFilter, removeDimensionFilter, setDimensionFilterValue } from './setQueryValue';\n\ninterface DimensionFieldsProps extends AzureQueryEditorFieldProps {\n dimensionOptions: AzureMonitorOption[];\n}\n\nconst DimensionFields: React.FC = ({ query, dimensionOptions, onQueryChange }) => {\n const dimensionFilters = useMemo(\n () => query.azureMonitor?.dimensionFilters ?? [],\n [query.azureMonitor?.dimensionFilters]\n );\n\n const addFilter = () => {\n onQueryChange(appendDimensionFilter(query));\n };\n\n const removeFilter = (index: number) => {\n onQueryChange(removeDimensionFilter(query, index));\n };\n\n const onFieldChange = (\n filterIndex: number,\n fieldName: Key,\n value: AzureMetricDimension[Key]\n ) => {\n onQueryChange(setDimensionFilterValue(query, filterIndex, fieldName, value));\n };\n\n const onFilterInputChange = (index: number, ev: React.FormEvent) => {\n if (ev.target instanceof HTMLInputElement) {\n onFieldChange(index, 'filter', ev.target.value);\n }\n };\n\n return (\n \n \n {dimensionFilters.map((filter, index) => (\n \n onFieldChange(index, 'dimension', v.value ?? '')}\n width={38}\n />\n ==\n onFilterInputChange(index, ev)} />\n removeFilter(index)}\n >\n \n ))}\n\n \n \n \n );\n};\n\nexport default DimensionFields;\n","import React, { useCallback, useState } from 'react';\n\nimport { Input } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps } from '../../types';\nimport { Field } from '../Field';\n\nimport { setLegendAlias } from './setQueryValue';\n\nconst LegendFormatField: React.FC = ({ onQueryChange, query }) => {\n const [value, setValue] = useState(query.azureMonitor?.alias ?? '');\n\n // As calling onQueryChange initiates a the datasource refresh, we only want to call it once\n // the field loses focus\n const handleChange = useCallback((ev: React.FormEvent) => {\n if (ev.target instanceof HTMLInputElement) {\n setValue(ev.target.value);\n }\n }, []);\n\n const handleBlur = useCallback(() => {\n const newQuery = setLegendAlias(query, value);\n onQueryChange(newQuery);\n }, [onQueryChange, query, value]);\n\n return (\n \n \n \n );\n};\n\nexport default LegendFormatField;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps, AzureMonitorOption } from '../../types';\nimport { Field } from '../Field';\n\nimport { setMetricName } from './setQueryValue';\n\ninterface MetricNameProps extends AzureQueryEditorFieldProps {\n metricNames: AzureMonitorOption[];\n}\n\nconst MetricNameField: React.FC = ({ metricNames, query, variableOptionGroup, onQueryChange }) => {\n const handleChange = useCallback(\n (change: SelectableValue) => {\n if (!change.value) {\n return;\n }\n\n const newQuery = setMetricName(query, change.value);\n onQueryChange(newQuery);\n },\n [onQueryChange, query]\n );\n\n const options = useMemo(() => [...metricNames, variableOptionGroup], [metricNames, variableOptionGroup]);\n\n return (\n \n \n \n );\n};\n\nexport default MetricNameField;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps, AzureMonitorOption } from '../../types';\nimport { Field } from '../Field';\n\nimport { setMetricNamespace } from './setQueryValue';\n\ninterface MetricNamespaceFieldProps extends AzureQueryEditorFieldProps {\n metricNamespaces: AzureMonitorOption[];\n}\n\nconst MetricNamespaceField: React.FC = ({\n metricNamespaces,\n query,\n variableOptionGroup,\n onQueryChange,\n}) => {\n const handleChange = useCallback(\n (change: SelectableValue) => {\n if (!change.value) {\n return;\n }\n\n const newQuery = setMetricNamespace(query, change.value);\n onQueryChange(newQuery);\n },\n [onQueryChange, query]\n );\n\n const options = useMemo(() => [...metricNamespaces, variableOptionGroup], [metricNamespaces, variableOptionGroup]);\n const optionValues = metricNamespaces.map((m) => m.value).concat(variableOptionGroup.options.map((p) => p.value));\n const value = query.azureMonitor?.metricNamespace;\n if (value && !optionValues.includes(value)) {\n options.push({ label: value, value });\n }\n\n return (\n \n \n \n );\n};\n\nexport default MetricNamespaceField;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps, AzureMonitorOption } from '../../types';\nimport { Field } from '../Field';\n\nimport { setResourceGroup } from './setQueryValue';\n\ninterface ResourceGroupsFieldProps extends AzureQueryEditorFieldProps {\n resourceGroups: AzureMonitorOption[];\n}\n\nconst ResourceGroupsField: React.FC = ({\n query,\n resourceGroups,\n variableOptionGroup,\n onQueryChange,\n setError,\n}) => {\n const handleChange = useCallback(\n (change: SelectableValue) => {\n const newQuery = setResourceGroup(query, change.value);\n onQueryChange(newQuery);\n },\n [onQueryChange, query]\n );\n\n const options = useMemo(() => [...resourceGroups, variableOptionGroup], [resourceGroups, variableOptionGroup]);\n\n return (\n \n \n \n );\n};\n\nexport default ResourceGroupsField;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps, AzureMonitorOption } from '../../types';\nimport { Field } from '../Field';\n\nimport { setResourceName } from './setQueryValue';\n\ninterface ResourceNameFieldProps extends AzureQueryEditorFieldProps {\n resourceNames: AzureMonitorOption[];\n}\n\nconst ResourceNameField: React.FC = ({\n resourceNames,\n query,\n variableOptionGroup,\n onQueryChange,\n}) => {\n const handleChange = useCallback(\n (change: SelectableValue) => {\n const newQuery = setResourceName(query, change.value);\n onQueryChange(newQuery);\n },\n [onQueryChange, query]\n );\n\n const options = useMemo(() => [...resourceNames, variableOptionGroup], [resourceNames, variableOptionGroup]);\n const value = query.azureMonitor?.resourceName ?? null;\n\n return (\n \n \n \n );\n};\n\nexport default ResourceNameField;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps, AzureMonitorOption } from '../../types';\nimport { Field } from '../Field';\n\nimport { setResourceType } from './setQueryValue';\n\ninterface NamespaceFieldProps extends AzureQueryEditorFieldProps {\n resourceTypes: AzureMonitorOption[];\n}\n\nconst NamespaceField: React.FC = ({\n resourceTypes,\n query,\n variableOptionGroup,\n onQueryChange,\n}) => {\n const handleChange = useCallback(\n (change: SelectableValue) => {\n if (!change.value) {\n return;\n }\n\n const newQuery = setResourceType(query, change.value);\n onQueryChange(newQuery);\n },\n [onQueryChange, query]\n );\n\n const options = useMemo(() => [...resourceTypes, variableOptionGroup], [resourceTypes, variableOptionGroup]);\n\n return (\n \n {/* It's expected that the label reads Resource type but the property is metricDefinition */}\n \n \n );\n};\n\nexport default NamespaceField;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport TimegrainConverter from '../../time_grain_converter';\nimport { AzureQueryEditorFieldProps, AzureMonitorOption } from '../../types';\nimport { Field } from '../Field';\n\nimport { setTimeGrain } from './setQueryValue';\n\ninterface TimeGrainFieldProps extends AzureQueryEditorFieldProps {\n timeGrainOptions: AzureMonitorOption[];\n}\n\nconst TimeGrainField: React.FC = ({\n query,\n timeGrainOptions,\n variableOptionGroup,\n onQueryChange,\n}) => {\n const handleChange = useCallback(\n (change: SelectableValue) => {\n if (!change.value) {\n return;\n }\n\n const newQuery = setTimeGrain(query, change.value);\n onQueryChange(newQuery);\n },\n [onQueryChange, query]\n );\n\n const timeGrains = useMemo(() => {\n const autoInterval = TimegrainConverter.findClosestTimeGrain(\n '1m',\n timeGrainOptions.map((o) => TimegrainConverter.createKbnUnitFromISO8601Duration(o.value)) || [\n '1m',\n '5m',\n '15m',\n '30m',\n '1h',\n '6h',\n '12h',\n '1d',\n ]\n );\n\n const baseTimeGrains = timeGrainOptions.map((v) => (v.value === 'auto' ? { ...v, description: autoInterval } : v));\n\n return [...baseTimeGrains, variableOptionGroup];\n }, [timeGrainOptions, variableOptionGroup]);\n\n return (\n \n \n \n );\n};\n\nexport default TimeGrainField;\n","import React, { useCallback, useState } from 'react';\n\nimport { Input } from '@grafana/ui';\n\nimport { AzureQueryEditorFieldProps } from '../../types';\nimport { Field } from '../Field';\n\nimport { setTop } from './setQueryValue';\n\nconst TopField: React.FC = ({ onQueryChange, query }) => {\n const [value, setValue] = useState(query.azureMonitor?.top ?? '');\n\n // As calling onQueryChange initiates a the datasource refresh, we only want to call it once\n // the field loses focus\n const handleChange = useCallback((ev: React.FormEvent) => {\n if (ev.target instanceof HTMLInputElement) {\n setValue(ev.target.value);\n }\n }, []);\n\n const handleBlur = useCallback(() => {\n const newQuery = setTop(query, value);\n onQueryChange(newQuery);\n }, [onQueryChange, query, value]);\n\n return (\n \n \n \n );\n};\n\nexport default TopField;\n","import { useEffect, useMemo, useState } from 'react';\n\nimport Datasource from '../../datasource';\nimport { AzureMonitorErrorish, AzureMonitorOption, AzureMonitorQuery } from '../../types';\nimport { hasOption, toOption } from '../../utils/common';\n\nimport { setMetricNamespace, setSubscriptionID } from './setQueryValue';\n\nexport interface MetricMetadata {\n aggOptions: AzureMonitorOption[];\n timeGrains: AzureMonitorOption[];\n dimensions: AzureMonitorOption[];\n isLoading: boolean;\n\n // These two properties are only used within the hook, and not elsewhere\n supportedAggTypes: string[];\n primaryAggType: string | undefined;\n}\n\ntype SetErrorFn = (source: string, error: AzureMonitorErrorish | undefined) => void;\ntype OnChangeFn = (newQuery: AzureMonitorQuery) => void;\n\nexport type DataHook = (\n query: AzureMonitorQuery,\n datasource: Datasource,\n onChange: OnChangeFn,\n setError: SetErrorFn\n) => AzureMonitorOption[];\n\nexport function useAsyncState(asyncFn: () => Promise, setError: Function, dependencies: unknown[]) {\n // Use the lazy initial state functionality of useState to assign a random ID to the API call\n // to track where errors come from. See useLastError.\n const [errorSource] = useState(() => Math.random());\n const [value, setValue] = useState();\n\n const finalValue = useMemo(() => value ?? [], [value]);\n\n useEffect(() => {\n asyncFn()\n .then((results) => {\n setValue(results);\n setError(errorSource, undefined);\n })\n .catch((err) => {\n setError(errorSource, err);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n\n return finalValue;\n}\n\nexport const updateSubscriptions = (\n query: AzureMonitorQuery,\n subscriptionOptions: AzureMonitorOption[],\n onChange: OnChangeFn,\n defaultSubscription?: string\n) => {\n const { subscription } = query;\n\n // Return early if subscriptions havent loaded, or if the query already has a subscription\n if (\n !subscriptionOptions.length ||\n (subscription && (hasOption(subscriptionOptions, subscription) || subscription.includes('$')))\n ) {\n return;\n }\n\n const defaultSub = defaultSubscription || subscriptionOptions[0].value;\n\n if (!subscription && defaultSub && hasOption(subscriptionOptions, defaultSub)) {\n onChange(setSubscriptionID(query, defaultSub));\n }\n\n // Check if the current subscription is in the list of subscriptions\n if (subscription && !hasOption(subscriptionOptions, subscription)) {\n if (hasOption(subscriptionOptions, defaultSub)) {\n // Use the default sub if is on theh list\n onChange(setSubscriptionID(query, defaultSub));\n } else {\n // Neither the current subscription nor the defaultSub is on the list, remove it\n onChange(setSubscriptionID(query, ''));\n }\n }\n};\n\nexport const useSubscriptions: DataHook = (query, datasource, onChange, setError) => {\n const defaultSubscription = datasource.azureMonitorDatasource.defaultSubscriptionId;\n const { subscription } = query;\n\n const subscriptionOptions = useAsyncState(\n async () => {\n const results = await datasource.azureMonitorDatasource.getSubscriptions();\n const options = formatOptions(results, subscription);\n\n return options;\n },\n setError,\n []\n );\n\n useEffect(() => {\n updateSubscriptions(query, subscriptionOptions, onChange, defaultSubscription);\n }, [subscriptionOptions, query, defaultSubscription, onChange]);\n\n return subscriptionOptions;\n};\n\nexport const useResourceGroups: DataHook = (query, datasource, onChange, setError) => {\n const { subscription } = query;\n const { resourceGroup } = query.azureMonitor ?? {};\n\n return useAsyncState(\n async () => {\n if (!subscription) {\n return;\n }\n\n const results = await datasource.getResourceGroups(subscription);\n const options = formatOptions(results, resourceGroup);\n\n return options;\n },\n setError,\n [subscription]\n );\n};\n\nexport const useResourceTypes: DataHook = (query, datasource, onChange, setError) => {\n const { subscription } = query;\n const { resourceGroup, metricDefinition } = query.azureMonitor ?? {};\n\n return useAsyncState(\n async () => {\n if (!(subscription && resourceGroup)) {\n return;\n }\n\n const results = await datasource.getMetricDefinitions(subscription, resourceGroup);\n const options = formatOptions(results, metricDefinition);\n\n return options;\n },\n setError,\n [subscription, resourceGroup]\n );\n};\n\nexport const useResourceNames: DataHook = (query, datasource, onChange, setError) => {\n const { subscription } = query;\n const { resourceGroup, metricDefinition, resourceName } = query.azureMonitor ?? {};\n\n return useAsyncState(\n async () => {\n if (!(subscription && resourceGroup && metricDefinition)) {\n return;\n }\n\n const results = await datasource.getResourceNames(subscription, resourceGroup, metricDefinition);\n const options = formatOptions(results, resourceName);\n\n return options;\n },\n setError,\n [subscription, resourceGroup, metricDefinition]\n );\n};\n\nexport const useMetricNamespaces: DataHook = (query, datasource, onChange, setError) => {\n const { subscription } = query;\n const { resourceGroup, metricDefinition, resourceName, metricNamespace } = query.azureMonitor ?? {};\n\n const metricNamespaces = useAsyncState(\n async () => {\n if (!(subscription && resourceGroup && metricDefinition && resourceName)) {\n return;\n }\n\n const results = await datasource.getMetricNamespaces(subscription, resourceGroup, metricDefinition, resourceName);\n const options = formatOptions(results, metricNamespace);\n\n // Do some cleanup of the query state if need be\n if (!metricNamespace && options.length) {\n onChange(setMetricNamespace(query, options[0].value));\n }\n\n return options;\n },\n setError,\n [subscription, resourceGroup, metricDefinition, resourceName]\n );\n\n return metricNamespaces;\n};\n\nexport const useMetricNames: DataHook = (query, datasource, onChange, setError) => {\n const { subscription } = query;\n const { resourceGroup, metricDefinition, resourceName, metricNamespace, metricName } = query.azureMonitor ?? {};\n\n return useAsyncState(\n async () => {\n if (!(subscription && resourceGroup && metricDefinition && resourceName && metricNamespace)) {\n return;\n }\n\n const results = await datasource.getMetricNames(\n subscription,\n resourceGroup,\n metricDefinition,\n resourceName,\n metricNamespace\n );\n\n const options = formatOptions(results, metricName);\n\n return options;\n },\n setError,\n [subscription, resourceGroup, metricDefinition, resourceName, metricNamespace]\n );\n};\n\nexport const useMetricMetadata = (query: AzureMonitorQuery, datasource: Datasource, onChange: OnChangeFn) => {\n const [metricMetadata, setMetricMetadata] = useState({\n aggOptions: [],\n timeGrains: [],\n dimensions: [],\n isLoading: false,\n supportedAggTypes: [],\n primaryAggType: undefined,\n });\n\n const { subscription } = query;\n const { resourceGroup, metricDefinition, resourceName, metricNamespace, metricName, aggregation, timeGrain } =\n query.azureMonitor ?? {};\n\n // Fetch new metric metadata when the fields change\n useEffect(() => {\n if (!(subscription && resourceGroup && metricDefinition && resourceName && metricNamespace && metricName)) {\n return;\n }\n\n datasource\n .getMetricMetadata(subscription, resourceGroup, metricDefinition, resourceName, metricNamespace, metricName)\n .then((metadata) => {\n // TODO: Move the aggregationTypes and timeGrain defaults into `getMetricMetadata`\n const aggregations = (metadata.supportedAggTypes || [metadata.primaryAggType]).map((v) => ({\n label: v,\n value: v,\n }));\n\n setMetricMetadata({\n aggOptions: aggregations,\n timeGrains: metadata.supportedTimeGrains,\n dimensions: metadata.dimensions,\n isLoading: false,\n supportedAggTypes: metadata.supportedAggTypes ?? [],\n primaryAggType: metadata.primaryAggType,\n });\n });\n }, [datasource, subscription, resourceGroup, metricDefinition, resourceName, metricNamespace, metricName]);\n\n // Update the query state in response to the meta data changing\n useEffect(() => {\n const newAggregation = aggregation || metricMetadata.primaryAggType;\n const newTimeGrain = timeGrain || 'auto';\n\n if (newAggregation !== aggregation || newTimeGrain !== timeGrain) {\n onChange({\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n aggregation: newAggregation,\n timeGrain: newTimeGrain,\n },\n });\n }\n }, [onChange, metricMetadata, aggregation, timeGrain, query]);\n\n return metricMetadata;\n};\n\nfunction formatOptions(\n rawResults: Array<{\n text: string;\n value: string;\n }>,\n selectedValue?: string\n) {\n const options = rawResults.map(toOption);\n\n // account for custom values that might have been set in json file like ones crafted with a template variable (ex: \"cloud-datasource-resource-$Environment\")\n if (selectedValue && !options.find((option) => option.value === selectedValue)) {\n options.push({ label: selectedValue, value: selectedValue });\n }\n\n return options;\n}\n","import React from 'react';\n\nimport { InlineFieldRow } from '@grafana/ui';\n\nimport Datasource from '../../datasource';\nimport { AzureMonitorQuery, AzureMonitorOption, AzureMonitorErrorish } from '../../types';\nimport SubscriptionField from '../SubscriptionField';\n\nimport AggregationField from './AggregationField';\nimport DimensionFields from './DimensionFields';\nimport LegendFormatField from './LegendFormatField';\nimport MetricNameField from './MetricNameField';\nimport MetricNamespaceField from './MetricNamespaceField';\nimport ResourceGroupsField from './ResourceGroupsField';\nimport ResourceNameField from './ResourceNameField';\nimport ResourceTypeField from './ResourceTypeField';\nimport TimeGrainField from './TimeGrainField';\nimport TopField from './TopField';\nimport {\n useMetricNames,\n useMetricNamespaces,\n useResourceGroups,\n useResourceNames,\n useResourceTypes,\n useSubscriptions,\n useMetricMetadata,\n} from './dataHooks';\n\ninterface MetricsQueryEditorProps {\n query: AzureMonitorQuery;\n datasource: Datasource;\n subscriptionId?: string;\n onChange: (newQuery: AzureMonitorQuery) => void;\n variableOptionGroup: { label: string; options: AzureMonitorOption[] };\n setError: (source: string, error: AzureMonitorErrorish | undefined) => void;\n}\n\nconst MetricsQueryEditor: React.FC = ({\n query,\n datasource,\n subscriptionId,\n variableOptionGroup,\n onChange,\n setError,\n}) => {\n const metricsMetadata = useMetricMetadata(query, datasource, onChange);\n const subscriptions = useSubscriptions(query, datasource, onChange, setError);\n const resourceGroups = useResourceGroups(query, datasource, onChange, setError);\n const resourceTypes = useResourceTypes(query, datasource, onChange, setError);\n const resourceNames = useResourceNames(query, datasource, onChange, setError);\n const metricNames = useMetricNames(query, datasource, onChange, setError);\n const metricNamespaces = useMetricNamespaces(query, datasource, onChange, setError);\n\n return (\n
\n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default MetricsQueryEditor;\n","import React from 'react';\n\ninterface MetricsQueryEditorProps {}\n\nconst MetricsQueryEditor: React.FC = ({}) => {\n return
New Query Editor
;\n};\n\nexport default MetricsQueryEditor;\n","import React from 'react';\n\nimport { Alert, Input } from '@grafana/ui';\n\nimport { Field } from '../../../Field';\nimport { DeprecatedAzureMonitorQuery } from '../../types';\n\nconst ReadOnlyTimeGrain = ({\n timeGrainCount,\n timeGrainType,\n timeGrainUnit,\n}: {\n timeGrainCount: string;\n timeGrainType: string;\n timeGrainUnit: string;\n}) => {\n const timeFields = timeGrainType === 'specific' ? ['specific', timeGrainCount, timeGrainUnit] : [timeGrainType];\n\n return (\n \n <>\n {timeFields.map((timeField) => (\n {}} key={timeField} width={10} />\n ))}\n \n \n );\n};\n\nconst ApplicationInsightsEditor = ({ query }: { query: DeprecatedAzureMonitorQuery }) => {\n const groupBy = query.appInsights?.dimension || [];\n\n return (\n
\n \n {}}\n id=\"azure-monitor-application-insights-metric\"\n />\n \n \n {}} />\n \n {groupBy.length > 0 && (\n \n <>\n {groupBy.map((dimension) => (\n {}} key={dimension} />\n ))}\n \n \n )}\n \n {}} />\n \n \n \n {}} disabled={true} />\n \n \n Application Insights is deprecated and is now read only. Migrate your queries to Metrics to make changes.\n \n
\n );\n};\n\nexport default ApplicationInsightsEditor;\n","import React from 'react';\n\nimport { Alert, CodeEditor, Select } from '@grafana/ui';\n\nimport { AzureMonitorOption } from '../../../../types';\nimport { Field } from '../../../Field';\nimport { Space } from '../../../Space';\nimport { DeprecatedAzureMonitorQuery } from '../../types';\n\ninterface InsightsAnalyticsEditorProps {\n query: DeprecatedAzureMonitorQuery;\n}\n\nconst FORMAT_OPTIONS: Array> = [\n { label: 'Time series', value: 'time_series' },\n { label: 'Table', value: 'table' },\n];\n\nconst InsightsAnalyticsEditor: React.FC = ({ query }) => {\n return (\n
\n \n\n \n {}}\n width={38}\n />\n \n\n \n\n \n Insights Analytics is deprecated and is now read only. Migrate your queries to Logs to make changes.\n \n
\n );\n};\n\nexport default InsightsAnalyticsEditor;\n","import React, { useCallback, useState } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { AzureMonitorQuery, AzureQueryType, DeprecatedAzureQueryType } from '../../types';\nimport { Field } from '../Field';\nimport { gtGrafana9 } from '../deprecated/utils';\n\ninterface QueryTypeFieldProps {\n query: AzureMonitorQuery;\n onQueryChange: (newQuery: AzureMonitorQuery) => void;\n}\n\nconst QueryTypeField: React.FC = ({ query, onQueryChange }) => {\n // Use useState to capture the initial value on first mount. We're not interested in when it changes\n // We only show App Insights and Insights Analytics if they were initially selected. Otherwise, hide them.\n const [initialQueryType] = useState(query.queryType);\n\n const queryTypes: Array<{ value: AzureQueryType | DeprecatedAzureQueryType; label: string }> = [\n { value: AzureQueryType.AzureMonitor, label: 'Metrics' },\n { value: AzureQueryType.LogAnalytics, label: 'Logs' },\n { value: AzureQueryType.AzureResourceGraph, label: 'Azure Resource Graph' },\n ];\n\n if (\n !gtGrafana9() &&\n (initialQueryType === DeprecatedAzureQueryType.ApplicationInsights ||\n initialQueryType === DeprecatedAzureQueryType.InsightsAnalytics)\n ) {\n queryTypes.push(\n { value: DeprecatedAzureQueryType.ApplicationInsights, label: 'Application Insights' },\n { value: DeprecatedAzureQueryType.InsightsAnalytics, label: 'Insights Analytics' }\n );\n }\n\n const handleChange = useCallback(\n (change: SelectableValue) => {\n change.value &&\n onQueryChange({\n ...query,\n queryType: change.value,\n });\n },\n [onQueryChange, query]\n );\n\n return (\n \n \n \n );\n};\n\nexport default QueryTypeField;\n","import deepEqual from 'fast-deep-equal';\nimport { defaults } from 'lodash';\nimport { useEffect, useMemo } from 'react';\n\nimport { AzureMonitorQuery, AzureQueryType } from '../../types';\nimport migrateQuery from '../../utils/migrateQuery';\n\nconst DEFAULT_QUERY = {\n queryType: AzureQueryType.AzureMonitor,\n};\n\nconst prepareQuery = (query: AzureMonitorQuery) => {\n // Note: _.defaults does not apply default values deeply.\n const withDefaults = defaults({}, query, DEFAULT_QUERY);\n const migratedQuery = migrateQuery(withDefaults);\n\n // If we didn't make any changes to the object, then return the original object to keep the\n // identity the same, and not trigger any other useEffects or anything.\n return deepEqual(migratedQuery, query) ? query : migratedQuery;\n};\n\n/**\n * Returns queries with some defaults + migrations, and calls onChange function to notify if it changes\n */\nconst usePreparedQuery = (query: AzureMonitorQuery, onChangeQuery: (newQuery: AzureMonitorQuery) => void) => {\n const preparedQuery = useMemo(() => prepareQuery(query), [query]);\n\n useEffect(() => {\n if (preparedQuery !== query) {\n onChangeQuery(preparedQuery);\n }\n }, [preparedQuery, query, onChangeQuery]);\n\n return preparedQuery;\n};\n\nexport default usePreparedQuery;\n","import { debounce } from 'lodash';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { QueryEditorProps } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { Alert } from '@grafana/ui';\n\nimport AzureMonitorDatasource from '../../datasource';\nimport {\n AzureDataSourceJsonData,\n AzureMonitorErrorish,\n AzureMonitorOption,\n AzureMonitorQuery,\n AzureQueryType,\n DeprecatedAzureQueryType,\n} from '../../types';\nimport useLastError from '../../utils/useLastError';\nimport ArgQueryEditor from '../ArgQueryEditor';\nimport LogsQueryEditor from '../LogsQueryEditor';\nimport MetricsQueryEditor from '../MetricsQueryEditor';\nimport NewMetricsQueryEditor from '../NewMetricsQueryEditor/MetricsQueryEditor';\nimport { Space } from '../Space';\nimport ApplicationInsightsEditor from '../deprecated/components/ApplicationInsightsEditor';\nimport InsightsAnalyticsEditor from '../deprecated/components/InsightsAnalyticsEditor';\nimport { gtGrafana9 } from '../deprecated/utils';\n\nimport QueryTypeField from './QueryTypeField';\nimport usePreparedQuery from './usePreparedQuery';\n\nexport type AzureMonitorQueryEditorProps = QueryEditorProps<\n AzureMonitorDatasource,\n AzureMonitorQuery,\n AzureDataSourceJsonData\n>;\n\nconst QueryEditor: React.FC = ({\n query: baseQuery,\n datasource,\n onChange,\n onRunQuery: baseOnRunQuery,\n}) => {\n const [errorMessage, setError] = useLastError();\n const onRunQuery = useMemo(() => debounce(baseOnRunQuery, 500), [baseOnRunQuery]);\n\n const onQueryChange = useCallback(\n (newQuery: AzureMonitorQuery) => {\n onChange(newQuery);\n onRunQuery();\n },\n [onChange, onRunQuery]\n );\n\n const query = usePreparedQuery(baseQuery, onQueryChange);\n\n const subscriptionId = query.subscription || datasource.azureMonitorDatasource.defaultSubscriptionId;\n const variableOptionGroup = {\n label: 'Template Variables',\n options: datasource.getVariables().map((v) => ({ label: v, value: v })),\n };\n\n return (\n
\n \n\n \n\n {errorMessage && (\n <>\n \n \n {errorMessage}\n \n \n )}\n
\n );\n};\n\ninterface EditorForQueryTypeProps extends Omit {\n subscriptionId?: string;\n variableOptionGroup: { label: string; options: AzureMonitorOption[] };\n setError: (source: string, error: AzureMonitorErrorish | undefined) => void;\n}\n\nconst EditorForQueryType: React.FC = ({\n subscriptionId,\n query,\n datasource,\n variableOptionGroup,\n onChange,\n setError,\n}) => {\n switch (query.queryType) {\n case AzureQueryType.AzureMonitor:\n if (config.featureToggles.azureMonitorResourcePickerForMetrics) {\n return ;\n }\n return (\n \n );\n\n case AzureQueryType.LogAnalytics:\n return (\n \n );\n\n case AzureQueryType.AzureResourceGraph:\n return (\n \n );\n\n /** Remove with Grafana 9 */\n case DeprecatedAzureQueryType.ApplicationInsights:\n if (gtGrafana9()) {\n return (\n \n Application Insights has been deprecated.{' '}\n \n Use the Metrics service instead\n \n .\n \n );\n }\n return ;\n\n case DeprecatedAzureQueryType.InsightsAnalytics:\n if (gtGrafana9()) {\n return (\n \n Insight Analytics has been deprecated.{' '}\n \n Queries can be written with Kusto in the Logs query type by selecting your Application Insights resource\n \n .\n \n );\n }\n return ;\n /** ===================== */\n\n default:\n return ;\n }\n\n return null;\n};\n\nexport default QueryEditor;\n","export enum ResourceRowType {\n Subscription = 'Subscription',\n ResourceGroup = 'ResourceGroup',\n Resource = 'Resource',\n VariableGroup = 'TemplateVariableGroup',\n Variable = 'TemplateVariable',\n}\n\nexport interface ResourceRow {\n id: string; // azure's raw data id usually passes along a uri (except in the case of subscriptions), to make things less confusing for ourselves we parse the id string out of the uri or vice versa\n uri: string; // ex: /subscriptions/subid123\n name: string;\n type: ResourceRowType;\n typeLabel: string;\n location?: string;\n children?: ResourceRowGroup;\n}\n\nexport type ResourceRowGroup = ResourceRow[];\n","import produce from 'immer';\n\nimport { ResourceRow, ResourceRowGroup } from './types';\n\n// This regex matches URIs representing:\n// - subscriptions: /subscriptions/44693801-6ee6-49de-9b2d-9106972f9572\n// - resource groups: /subscriptions/44693801-6ee6-49de-9b2d-9106972f9572/resourceGroups/cloud-datasources\n// - resources: /subscriptions/44693801-6ee6-49de-9b2d-9106972f9572/resourceGroups/cloud-datasources/providers/Microsoft.Compute/virtualMachines/GithubTestDataVM\nconst RESOURCE_URI_REGEX =\n /\\/subscriptions\\/(?[^/]+)(?:\\/resourceGroups\\/(?[^/]+)(?:\\/providers.+\\/(?[^/]+))?)?/;\n\ntype RegexGroups = Record;\n\nexport function parseResourceURI(resourceURI: string) {\n const matches = RESOURCE_URI_REGEX.exec(resourceURI);\n const groups: RegexGroups = matches?.groups ?? {};\n const { subscriptionID, resourceGroup, resource } = groups;\n\n if (!subscriptionID) {\n return undefined;\n }\n\n return { subscriptionID, resourceGroup, resource };\n}\n\nexport function isGUIDish(input: string) {\n return !!input.match(/^[A-Z0-9]+/i);\n}\n\nexport function findRow(rows: ResourceRowGroup, uri: string): ResourceRow | undefined {\n for (const row of rows) {\n if (row.uri.toLowerCase() === uri.toLowerCase()) {\n return row;\n }\n\n if (row.children) {\n const result = findRow(row.children, uri);\n\n if (result) {\n return result;\n }\n }\n }\n\n return undefined;\n}\n\nexport function addResources(rows: ResourceRowGroup, targetParentId: string, newResources: ResourceRowGroup) {\n return produce(rows, (draftState) => {\n const draftRow = findRow(draftState, targetParentId);\n\n // we can't find the selected resource in our list of resources,\n // probably means user has either mistyped in the input field\n // or is using template variables.\n // either way no need to throw, just show that none of the resources are checked\n if (!draftRow) {\n return;\n }\n\n draftRow.children = newResources;\n });\n}\n","import { css, cx } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { stylesFactory, useTheme2 } from '@grafana/ui';\n\nexport interface SpaceProps {\n v?: number;\n h?: number;\n layout?: 'block' | 'inline';\n}\n\nexport const Space = (props: SpaceProps) => {\n const theme = useTheme2();\n const styles = getStyles(theme, props);\n\n return ;\n};\n\nSpace.defaultProps = {\n v: 0,\n h: 0,\n layout: 'block',\n};\n\nconst getStyles = stylesFactory((theme: GrafanaTheme2, props: SpaceProps) => ({\n wrapper: css([\n {\n paddingRight: theme.spacing(props.h ?? 0),\n paddingBottom: theme.spacing(props.v ?? 0),\n },\n props.layout === 'inline' && {\n display: 'inline-block',\n },\n props.layout === 'block' && {\n display: 'block',\n },\n ]),\n}));\n","import { gt, valid } from 'semver';\n\nimport { config } from '@grafana/runtime';\n\nimport { AzureDataSourceSettings } from '../../types';\n\nexport function isAppInsightsConfigured(options: AzureDataSourceSettings) {\n return !!(options.jsonData.appInsightsAppId && options.secureJsonFields.appInsightsApiKey);\n}\n\nexport function gtGrafana9() {\n // AppInsights configuration will be removed with Grafana 9\n return valid(config.buildInfo.version) && gt(config.buildInfo.version, '9.0.0-beta1');\n}\n","import { includes, filter } from 'lodash';\n\nimport { rangeUtil } from '@grafana/data';\n\nexport default class TimeGrainConverter {\n static createISO8601Duration(timeGrain: string | number, timeGrainUnit: any) {\n const timeIntervals = ['hour', 'minute', 'h', 'm'];\n if (includes(timeIntervals, timeGrainUnit)) {\n return `PT${timeGrain}${timeGrainUnit[0].toUpperCase()}`;\n }\n\n return `P${timeGrain}${timeGrainUnit[0].toUpperCase()}`;\n }\n\n static createISO8601DurationFromInterval(interval: string) {\n const timeGrain = +interval.slice(0, interval.length - 1);\n const unit = interval[interval.length - 1];\n\n if (interval.indexOf('ms') > -1) {\n return TimeGrainConverter.createISO8601Duration(1, 'm');\n }\n\n if (interval[interval.length - 1] === 's') {\n let toMinutes = (timeGrain * 60) % 60;\n\n if (toMinutes < 1) {\n toMinutes = 1;\n }\n\n return TimeGrainConverter.createISO8601Duration(toMinutes, 'm');\n }\n\n return TimeGrainConverter.createISO8601Duration(timeGrain, unit);\n }\n\n static findClosestTimeGrain(interval: any, allowedTimeGrains: string[]) {\n const timeGrains = filter(allowedTimeGrains, (o) => o !== 'auto');\n\n let closest = timeGrains[0];\n const intervalMs = rangeUtil.intervalToMs(interval);\n\n for (let i = 0; i < timeGrains.length; i++) {\n // abs (num - val) < abs (num - curr):\n if (intervalMs > rangeUtil.intervalToMs(timeGrains[i])) {\n if (i + 1 < timeGrains.length) {\n closest = timeGrains[i + 1];\n } else {\n closest = timeGrains[i];\n }\n }\n }\n\n return closest;\n }\n\n static createTimeGrainFromISO8601Duration(duration: string) {\n let offset = 1;\n if (duration.substring(0, 2) === 'PT') {\n offset = 2;\n }\n\n const value = duration.substring(offset, duration.length - 1);\n const unit = duration.substring(duration.length - 1);\n\n return value + ' ' + TimeGrainConverter.timeUnitToText(+value, unit);\n }\n\n static timeUnitToText(value: number, unit: string) {\n let text = '';\n\n if (unit === 'S') {\n text = 'second';\n }\n if (unit === 'M') {\n text = 'minute';\n }\n if (unit === 'H') {\n text = 'hour';\n }\n if (unit === 'D') {\n text = 'day';\n }\n\n if (value > 1) {\n return text + 's';\n }\n\n return text;\n }\n\n static createKbnUnitFromISO8601Duration(duration: string) {\n if (duration === 'auto') {\n return 'auto';\n }\n\n let offset = 1;\n if (duration.substring(0, 2) === 'PT') {\n offset = 2;\n }\n\n const value = duration.substring(offset, duration.length - 1);\n const unit = duration.substring(duration.length - 1);\n\n return value + TimeGrainConverter.timeUnitToKbn(+value, unit);\n }\n\n static timeUnitToKbn(value: number, unit: string) {\n if (unit === 'S') {\n return 's';\n }\n if (unit === 'M') {\n return 'm';\n }\n if (unit === 'H') {\n return 'h';\n }\n if (unit === 'D') {\n return 'd';\n }\n\n return '';\n }\n}\n","import { DeprecatedAzureMonitorQuery } from '../components/deprecated/types';\n\nimport { GrafanaTemplateVariableQuery } from './templateVariables';\n\nexport enum AzureQueryType {\n AzureMonitor = 'Azure Monitor',\n LogAnalytics = 'Azure Log Analytics',\n AzureResourceGraph = 'Azure Resource Graph',\n GrafanaTemplateVariableFn = 'Grafana Template Variable Function',\n}\n\n// DeprecatedAzureQueryType won't be available after Grafana 9\nexport enum DeprecatedAzureQueryType {\n ApplicationInsights = 'Application Insights',\n InsightsAnalytics = 'Insights Analytics',\n}\n\n/**\n * Represents the query as it moves through the frontend query editor and datasource files.\n * It can represent new queries that are still being edited, so all properties are optional\n */\nexport interface AzureMonitorQuery extends DeprecatedAzureMonitorQuery {\n queryType?: AzureQueryType | DeprecatedAzureQueryType;\n\n subscription?: string;\n\n /** ARG uses multiple subscriptions */\n subscriptions?: string[];\n\n azureMonitor?: AzureMetricQuery;\n azureLogAnalytics?: AzureLogsQuery;\n azureResourceGraph?: AzureResourceGraphQuery;\n grafanaTemplateVariableFn?: GrafanaTemplateVariableQuery;\n}\n\n/**\n * Azure Monitor Metrics sub-query properties\n */\nexport interface AzureMetricQuery {\n resourceGroup?: string;\n\n /** Resource type */\n metricDefinition?: string;\n\n resourceName?: string;\n metricNamespace?: string;\n metricName?: string;\n timeGrain?: string;\n aggregation?: string;\n dimensionFilters?: AzureMetricDimension[];\n alias?: string;\n top?: string;\n\n /** @deprecated */\n timeGrainUnit?: string;\n\n /** @deprecated Remove this once angular is removed */\n allowedTimeGrainsMs?: number[];\n\n /** @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration */\n dimension?: string;\n\n /** @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration */\n dimensionFilter?: string;\n}\n\n/**\n * Azure Monitor Logs sub-query properties\n */\nexport interface AzureLogsQuery {\n query?: string;\n resultFormat?: string;\n resource?: string;\n\n workspace?: string;\n}\n\n/**\n * Azure Monitor ARG sub-query properties\n */\nexport interface AzureResourceGraphQuery {\n query?: string;\n resultFormat?: string;\n}\n\nexport interface AzureMetricDimension {\n dimension: string;\n operator: string;\n filter?: string;\n}\n","import { DataSourceInstanceSettings, DataSourceJsonData, DataSourceSettings, TableData } from '@grafana/data';\n\nimport Datasource from '../datasource';\n\nimport { AzureMonitorQuery } from './query';\n\nexport type AzureDataSourceSettings = DataSourceSettings;\nexport type AzureDataSourceInstanceSettings = DataSourceInstanceSettings;\n\nexport interface DatasourceValidationResult {\n status: 'success' | 'error';\n message: string;\n title?: string;\n}\n\n/**\n * Azure clouds known to Azure Monitor.\n */\nexport enum AzureCloud {\n Public = 'AzureCloud',\n China = 'AzureChinaCloud',\n USGovernment = 'AzureUSGovernment',\n Germany = 'AzureGermanCloud',\n None = '',\n}\n\nexport type AzureAuthType = 'msi' | 'clientsecret';\n\nexport type ConcealedSecret = symbol;\n\ninterface AzureCredentialsBase {\n authType: AzureAuthType;\n defaultSubscriptionId?: string;\n}\n\nexport interface AzureManagedIdentityCredentials extends AzureCredentialsBase {\n authType: 'msi';\n}\n\nexport interface AzureClientSecretCredentials extends AzureCredentialsBase {\n authType: 'clientsecret';\n azureCloud?: string;\n tenantId?: string;\n clientId?: string;\n clientSecret?: string | ConcealedSecret;\n}\n\nexport type AzureCredentials = AzureManagedIdentityCredentials | AzureClientSecretCredentials;\n\nexport interface AzureDataSourceJsonData extends DataSourceJsonData {\n cloudName: string;\n azureAuthType?: AzureAuthType;\n\n // monitor\n tenantId?: string;\n clientId?: string;\n subscriptionId?: string;\n\n // logs\n /** @deprecated Azure Logs credentials */\n azureLogAnalyticsSameAs?: boolean;\n /** @deprecated Azure Logs credentials */\n logAnalyticsTenantId?: string;\n /** @deprecated Azure Logs credentials */\n logAnalyticsClientId?: string;\n /** @deprecated Azure Logs credentials */\n logAnalyticsSubscriptionId?: string;\n /** @deprecated Azure Logs credentials */\n logAnalyticsDefaultWorkspace?: string;\n\n // App Insights\n appInsightsAppId?: string;\n}\n\nexport interface AzureDataSourceSecureJsonData {\n clientSecret?: string;\n appInsightsApiKey?: string;\n}\n\n// Represents an errors that come back from frontend requests.\n// Not totally sure how accurate this type is.\nexport type AzureMonitorErrorish = Error;\n\n// Azure Monitor API Types\nexport interface AzureMonitorMetricsMetadataResponse {\n value: AzureMonitorMetricMetadataItem[];\n}\n\nexport interface AzureMonitorMetricMetadataItem {\n id: string;\n resourceId: string;\n primaryAggregationType: string;\n supportedAggregationTypes: string[];\n name: AzureMonitorLocalizedValue;\n dimensions?: AzureMonitorLocalizedValue[];\n metricAvailabilities?: AzureMonitorMetricAvailabilityMetadata[];\n}\n\nexport interface AzureMonitorMetricAvailabilityMetadata {\n timeGrain: string;\n retention: string;\n}\n\nexport interface AzureMonitorLocalizedValue {\n value: string;\n localizedValue: string;\n}\n\nexport interface AzureMonitorMetricDefinitionsResponse {\n data: {\n value: Array<{ name: string; type: string; location?: string }>;\n };\n status: number;\n statusText: string;\n}\n\nexport interface AzureMonitorResourceGroupsResponse {\n data: {\n value: Array<{ name: string }>;\n };\n status: number;\n statusText: string;\n}\n\nexport interface AzureLogsVariable {\n text: string;\n value: string;\n}\n\nexport interface AzureLogsTableData extends TableData {\n columns: AzureLogsTableColumn[];\n rows: any[];\n type: string;\n}\n\nexport interface AzureLogsTableColumn {\n text: string;\n type: string;\n}\n\nexport interface AzureMonitorOption {\n label: string;\n value: T;\n options?: AzureMonitorOption[];\n}\n\nexport interface AzureQueryEditorFieldProps {\n query: AzureMonitorQuery;\n datasource: Datasource;\n subscriptionId?: string;\n variableOptionGroup: { label: string; options: AzureMonitorOption[] };\n\n onQueryChange: (newQuery: AzureMonitorQuery) => void;\n setError: (source: string, error: AzureMonitorErrorish | undefined) => void;\n}\n\nexport interface AzureResourceSummaryItem {\n subscriptionName: string;\n resourceGroupName: string | undefined;\n resourceName: string | undefined;\n}\n\nexport interface RawAzureSubscriptionItem {\n subscriptionName: string;\n subscriptionId: string;\n}\n\nexport interface RawAzureResourceGroupItem {\n resourceGroupURI: string;\n resourceGroupName: string;\n}\n\nexport interface RawAzureResourceItem {\n id: string;\n name: string;\n subscriptionId: string;\n resourceGroup: string;\n type: string;\n location: string;\n}\n\nexport interface AzureGraphResponse {\n data: T;\n // skipToken is used for pagination, to get the next page\n $skipToken?: string;\n}\n\n// https://docs.microsoft.com/en-us/rest/api/azureresourcegraph/resourcegraph(2021-03-01)/resources/resources#queryrequestoptions\nexport interface AzureResourceGraphOptions {\n $skip: number;\n $skipToken: string;\n $top: number;\n allowPartialScopes: boolean;\n resultFormat: 'objectArray' | 'table';\n}\n","import { map } from 'lodash';\n\nimport { rangeUtil } from '@grafana/data';\n\nimport TimegrainConverter from '../time_grain_converter';\nimport { AzureMonitorOption } from '../types';\n\nexport const hasOption = (options: AzureMonitorOption[], value: string): boolean =>\n options.some((v) => (v.options ? hasOption(v.options, value) : v.value === value));\n\nexport const findOptions = (options: AzureMonitorOption[], values: string[] = []) => {\n if (values.length === 0) {\n return [];\n }\n const set = values.reduce((accum, item) => {\n accum.add(item);\n return accum;\n }, new Set());\n return options.filter((option) => set.has(option.value));\n};\n\nexport const toOption = (v: { text: string; value: string }) => ({ value: v.value, label: v.text });\n\nexport function convertTimeGrainsToMs(timeGrains: T[]) {\n const allowedTimeGrainsMs: number[] = [];\n timeGrains.forEach((tg: any) => {\n if (tg.value !== 'auto') {\n allowedTimeGrainsMs.push(rangeUtil.intervalToMs(TimegrainConverter.createKbnUnitFromISO8601Duration(tg.value)));\n }\n });\n return allowedTimeGrainsMs;\n}\n\n// Route definitions shared with the backend.\n// Check: /pkg/tsdb/azuremonitor/azuremonitor-resource-handler.go \nexport const routeNames = {\n azureMonitor: 'azuremonitor',\n logAnalytics: 'loganalytics',\n appInsights: 'appinsights',\n resourceGraph: 'resourcegraph',\n};\n\nexport function interpolateVariable(value: any, variable: { multi: any; includeAll: any }) {\n if (typeof value === 'string') {\n if (variable.multi || variable.includeAll) {\n return \"'\" + value + \"'\";\n } else {\n return value;\n }\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const quotedValues = map(value, (val) => {\n if (typeof value === 'number') {\n return value;\n }\n\n return \"'\" + val + \"'\";\n });\n return quotedValues.join(',');\n}\n","import { setKustoQuery } from '../components/LogsQueryEditor/setQueryValue';\nimport {\n appendDimensionFilter,\n setTimeGrain as setMetricsTimeGrain,\n} from '../components/MetricsQueryEditor/setQueryValue';\nimport TimegrainConverter from '../time_grain_converter';\nimport { AzureMonitorQuery, AzureQueryType, DeprecatedAzureQueryType } from '../types';\n\nconst OLD_DEFAULT_DROPDOWN_VALUE = 'select';\n\nexport default function migrateQuery(query: AzureMonitorQuery): AzureMonitorQuery {\n let workingQuery = query;\n\n // The old angular controller also had a `migrateApplicationInsightsKeys` migraiton that\n // migrated old properties to other properties that still do not appear to be used anymore, so\n // we decided to not include that migration anymore\n // See https://github.com/grafana/grafana/blob/a6a09add/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_ctrl.ts#L269-L288\n\n workingQuery = migrateTimeGrains(workingQuery);\n workingQuery = migrateLogAnalyticsToFromTimes(workingQuery);\n workingQuery = migrateToDefaultNamespace(workingQuery);\n workingQuery = migrateApplicationInsightsDimensions(workingQuery);\n workingQuery = migrateMetricsDimensionFilters(workingQuery);\n\n return workingQuery;\n}\n\nfunction migrateTimeGrains(query: AzureMonitorQuery): AzureMonitorQuery {\n let workingQuery = query;\n\n if (workingQuery.azureMonitor?.timeGrainUnit && workingQuery.azureMonitor.timeGrain !== 'auto') {\n const newTimeGrain = TimegrainConverter.createISO8601Duration(\n workingQuery.azureMonitor.timeGrain ?? 'auto',\n workingQuery.azureMonitor.timeGrainUnit\n );\n workingQuery = setMetricsTimeGrain(workingQuery, newTimeGrain);\n\n delete workingQuery.azureMonitor?.timeGrainUnit;\n }\n\n if (workingQuery.appInsights?.timeGrainUnit && workingQuery.appInsights.timeGrain !== 'auto') {\n const appInsights = {\n ...workingQuery.appInsights,\n };\n\n if (workingQuery.appInsights.timeGrainCount) {\n appInsights.timeGrain = TimegrainConverter.createISO8601Duration(\n workingQuery.appInsights.timeGrainCount,\n workingQuery.appInsights.timeGrainUnit\n );\n } else {\n appInsights.timeGrainCount = workingQuery.appInsights.timeGrain;\n\n if (workingQuery.appInsights.timeGrain) {\n appInsights.timeGrain = TimegrainConverter.createISO8601Duration(\n workingQuery.appInsights.timeGrain,\n workingQuery.appInsights.timeGrainUnit\n );\n }\n }\n\n workingQuery = {\n ...workingQuery,\n appInsights: appInsights,\n };\n }\n\n return workingQuery;\n}\n\nfunction migrateLogAnalyticsToFromTimes(query: AzureMonitorQuery): AzureMonitorQuery {\n let workingQuery = query;\n\n if (workingQuery.azureLogAnalytics?.query?.match(/\\$__from\\s/gi)) {\n workingQuery = setKustoQuery(\n workingQuery,\n workingQuery.azureLogAnalytics.query.replace(/\\$__from\\s/gi, '$__timeFrom() ')\n );\n }\n\n if (workingQuery.azureLogAnalytics?.query?.match(/\\$__to\\s/gi)) {\n workingQuery = setKustoQuery(\n workingQuery,\n workingQuery.azureLogAnalytics.query.replace(/\\$__to\\s/gi, '$__timeTo() ')\n );\n }\n\n return workingQuery;\n}\n\nfunction migrateToDefaultNamespace(query: AzureMonitorQuery): AzureMonitorQuery {\n const haveMetricNamespace =\n query.azureMonitor?.metricNamespace && query.azureMonitor.metricNamespace !== OLD_DEFAULT_DROPDOWN_VALUE;\n\n if (!haveMetricNamespace && query.azureMonitor?.metricDefinition) {\n return {\n ...query,\n azureMonitor: {\n ...query.azureMonitor,\n metricNamespace: query.azureMonitor.metricDefinition,\n },\n };\n }\n\n return query;\n}\n\nfunction migrateApplicationInsightsDimensions(query: AzureMonitorQuery): AzureMonitorQuery {\n const dimension = query?.appInsights?.dimension as unknown;\n\n if (dimension && typeof dimension === 'string') {\n return {\n ...query,\n appInsights: {\n ...query.appInsights,\n dimension: [dimension],\n },\n };\n }\n\n return query;\n}\n\n// Exported because its also used directly in the datasource.ts for some reason\nfunction migrateMetricsDimensionFilters(query: AzureMonitorQuery): AzureMonitorQuery {\n let workingQuery = query;\n\n const oldDimension = workingQuery.azureMonitor?.dimension;\n if (oldDimension && oldDimension !== 'None') {\n workingQuery = appendDimensionFilter(workingQuery, oldDimension, 'eq', workingQuery.azureMonitor?.dimensionFilter);\n }\n\n return workingQuery;\n}\n\n// datasource.ts also contains some migrations, which have been moved to here. Unsure whether\n// they should also do all the other migrations...\nexport function datasourceMigrations(query: AzureMonitorQuery): AzureMonitorQuery {\n let workingQuery = query;\n\n if (workingQuery.queryType === DeprecatedAzureQueryType.ApplicationInsights && workingQuery.appInsights?.rawQuery) {\n workingQuery = {\n ...workingQuery,\n queryType: DeprecatedAzureQueryType.InsightsAnalytics,\n appInsights: undefined,\n insightsAnalytics: {\n query: workingQuery.appInsights.rawQuery,\n resultFormat: 'time_series',\n },\n };\n }\n\n if (!workingQuery.queryType) {\n workingQuery = {\n ...workingQuery,\n queryType: AzureQueryType.AzureMonitor,\n };\n }\n\n if (workingQuery.queryType === AzureQueryType.AzureMonitor && workingQuery.azureMonitor) {\n workingQuery = migrateMetricsDimensionFilters(workingQuery);\n }\n\n return workingQuery;\n}\n","import { useState, useCallback, useMemo } from 'react';\n\nimport { AzureMonitorErrorish } from '../types';\n\nimport messageFromError from './messageFromError';\n\ntype SourcedError = [string, AzureMonitorErrorish];\n\nexport default function useLastError() {\n const [errors, setErrors] = useState([]);\n\n // Handles errors from any child components that request data to display their options\n const addError = useCallback((errorSource: string, error: AzureMonitorErrorish | undefined) => {\n setErrors((errors) => {\n const errorsCopy = [...errors];\n const index = errors.findIndex(([vSource]) => vSource === errorSource);\n\n // If there's already an error, remove it. If we're setting a new error\n // below, we'll move it to the front\n if (index > -1) {\n errorsCopy.splice(index, 1);\n }\n\n // And then add the new error to the top of the array. If error is defined, it was already\n // removed above.\n if (error) {\n errorsCopy.unshift([errorSource, error]);\n }\n\n return errorsCopy;\n });\n }, []);\n\n const errorMessage = useMemo(() => {\n const recentError = errors[0];\n return recentError && messageFromError(recentError[1]);\n }, [errors]);\n\n return [errorMessage, addError] as const;\n}\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.O=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.g||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(O(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A(n,e,o,r,i,t)})),x(n,o,!1),t&&n.u&&b(\"Patches\").R(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!r(v))return;e.m=!1}if(t(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,r,t){var e=s(r)?b(\"MapSet\").N(r,t):v(r)?b(\"MapSet\").T(r,t):n.g?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function D(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e1?t-1:0),o=1;o1?t-1:0),o=1;o=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,D as current,J as enableAllPlugins,N as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n"],"names":["Field","props","InlineField","labelWidth","FORMAT_OPTIONS","label","value","query","variableOptionGroup","onQueryChange","options","useMemo","handleChange","useCallback","change","newQuery","setFormatAs","Select","menuShouldPortal","inputId","azureLogAnalytics","resultFormat","onChange","width","Deferred","constructor","this","resolve","undefined","reject","promise","Promise","Object","freeze","datasource","monacoPromiseRef","useRef","useEffect","resource","promises","azureLogAnalyticsDatasource","getKustoSchema","current","all","then","schema","monaco","editor","languages","kusto","getKustoWorker","model","getModel","uri","worker","setSchema","handleEditorMount","setKustoQuery","CodeEditor","language","height","showMiniMap","onBlur","onSave","onEditorDidMount","EntryIcon","isOpen","entry","type","ResourceRowType","Icon","name","theme","table","css","tableLayout","tableScroller","maxHeight","overflow","header","background","colors","secondary","row","borderBottom","border","weak","borderBottomColor","medium","disabledRow","opacity","cell","padding","spacing","textOverflow","collapseButton","margin","loadingCell","textAlign","spinner","marginBottom","nestedEntry","display","alignItems","entryContentItem","truncated","minWidth","whiteSpace","nestedRowCheckbox","zIndex","selectionFooter","position","bottom","primary","paddingTop","loadingWrapper","paddingBottom","color","text","NestedEntry","isSelected","isDisabled","isSelectable","scrollIntoView","level","onToggleCollapse","onSelectedChange","useTheme2","styles","useStyles2","getStyles","hasChildren","children","handleToggleCollapse","handleSelectedChanged","ev","target","checked","checkboxId","document","getElementById","behavior","block","className","style","marginLeft","gridSize","IconButton","onClick","id","Space","layout","h","Checkbox","disabled","htmlFor","cx","NestedRow","selectedRows","requestNestedRows","onRowSelectedChange","selectableEntryTypes","rowStatus","setRowStatus","useState","find","v","length","selectedRow","findRow","async","catch","some","typeLabel","location","keys","map","childRow","FadeTransition","visible","colSpan","LoadingPlaceholder","resourcePickerData","resourceURI","onApply","onCancel","loadingStatus","setLoadingStatus","azureRows","setAzureRows","internalSelectedURI","setInternalSelectedURI","errorMessage","setErrorMessage","isAdvancedOpen","setIsAdvancedOpen","includes","resources","getSubscriptions","parsedURI","parseResourceURI","resourceGroupURI","subscriptionID","resourceGroup","resourceGroups","getResourceGroupsBySubscriptionId","addResources","resourcesForResourceGroup","getResourcesForResourceGroup","error","messageFromError","loadInitialData","selectedResourceRows","found","resourceGroupOrSubscription","rows","newRows","handleSelectionChanged","handleApply","Collapse","collapsible","onToggle","Label","Tooltip","content","href","rel","placement","interactive","Input","event","currentTarget","placeholder","Button","variant","Alert","severity","title","parseResourceDetails","parsed","subscriptionName","resourceGroupName","resourceName","ResourceLabel","resourceComponents","setResourceComponents","getResourceURIDisplayProperties","FormattedResource","startsWith","Separator","pickerIsOpen","setPickerIsOpen","handleOpenPicker","closePicker","setResource","Modal","modal","onDismiss","trapFocus","breakpoints","values","lg","useMigrations","migrationError","setMigrationError","workspace","isGUIDish","getResourceURIFromWorkspace","migrateWorkspaceQueryToResourceQuery","err","message","subscriptionId","setError","hideFormatAs","InlineFieldRow","kustoQuery","formatAs","setSubscriptionID","subscription","azureMonitor","metricDefinition","metricNamespace","metricName","aggregation","timeGrain","dimensionFilters","setResourceGroup","setResourceType","resourceType","setResourceName","setMetricNamespace","setMetricName","setAggregation","setTimeGrain","setDimensionFilters","dimensions","appendDimensionFilter","dimension","operator","filter","existingFilters","removeDimensionFilter","indexToRemove","newFilters","splice","setDimensionFilterValue","index","fieldName","setTop","top","setLegendAlias","alias","subscriptions","multiSelect","queryType","AzureQueryType","onSubscriptionsChange","c","MultiSelect","isClearable","findOptions","allowCustomValue","azureResourceGraph","ERROR_SOURCE","fetchedRef","setSubscriptions","azureMonitorDatasource","results","fetchedSubscriptions","description","aggregationOptions","isLoading","dimensionOptions","onFieldChange","filterIndex","VerticalGroup","HorizontalGroup","InlineLabel","HTMLInputElement","onFilterInputChange","size","icon","removeFilter","setValue","handleBlur","metricNames","metricNamespaces","optionValues","m","concat","p","push","resourceNames","resourceTypes","timeGrainOptions","timeGrains","autoInterval","TimegrainConverter","o","useAsyncState","asyncFn","dependencies","errorSource","Math","random","finalValue","useSubscriptions","defaultSubscription","defaultSubscriptionId","subscriptionOptions","formatOptions","hasOption","defaultSub","updateSubscriptions","rawResults","selectedValue","toOption","option","metricsMetadata","metricMetadata","setMetricMetadata","aggOptions","supportedAggTypes","primaryAggType","getMetricMetadata","metadata","aggregations","supportedTimeGrains","newAggregation","newTimeGrain","useMetricMetadata","getResourceGroups","useResourceGroups","getMetricDefinitions","useResourceTypes","getResourceNames","useResourceNames","getMetricNames","useMetricNames","getMetricNamespaces","useMetricNamespaces","ResourceTypeField","ReadOnlyTimeGrain","timeGrainCount","timeGrainType","timeGrainUnit","timeFields","timeField","groupBy","appInsights","dimensionFilter","insightsAnalytics","readOnly","initialQueryType","queryTypes","gtGrafana9","DeprecatedAzureQueryType","DEFAULT_QUERY","onChangeQuery","preparedQuery","withDefaults","defaults","migratedQuery","migrateQuery","deepEqual","prepareQuery","EditorForQueryType","config","LogsQueryEditor","baseQuery","onRunQuery","baseOnRunQuery","useLastError","debounce","usePreparedQuery","getVariables","RESOURCE_URI_REGEX","matches","exec","groups","input","match","toLowerCase","result","targetParentId","newResources","produce","draftState","draftRow","wrapper","defaultProps","stylesFactory","paddingRight","isAppInsightsConfigured","jsonData","appInsightsAppId","secureJsonFields","appInsightsApiKey","valid","gt","TimeGrainConverter","toUpperCase","interval","slice","unit","indexOf","createISO8601Duration","toMinutes","allowedTimeGrains","closest","intervalMs","rangeUtil","i","duration","offset","substring","timeUnitToText","timeUnitToKbn","AzureCloud","set","reduce","accum","item","add","Set","has","routeNames","logAnalytics","resourceGraph","interpolateVariable","variable","multi","includeAll","val","join","OLD_DEFAULT_DROPDOWN_VALUE","workingQuery","setMetricsTimeGrain","migrateTimeGrains","replace","migrateLogAnalyticsToFromTimes","migrateToDefaultNamespace","migrateApplicationInsightsDimensions","migrateMetricsDimensionFilters","oldDimension","datasourceMigrations","rawQuery","errors","setErrors","addError","errorsCopy","findIndex","vSource","unshift","recentError","n","r","arguments","t","Array","e","Error","Q","getPrototypeOf","hasOwnProperty","call","Function","toString","Z","isArray","L","s","nn","forEach","u","prototype","a","get","f","delete","X","Map","q","l","rn","writable","configurable","enumerable","create","d","y","clear","isFrozen","b","tn","_","U","j","O","g","S","w","P","M","x","H","A","I","k","R","D","F","z","getOwnPropertyDescriptor","E","N","T","C","en","on","Proxy","revocable","revoke","proxy","J","K","from","G","W","Symbol","B","Reflect","for","iterator","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","getOwnPropertyDescriptors","deleteProperty","defineProperty","setPrototypeOf","apply","un","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","path","op","$","an","fn","bind"],"sourceRoot":""}