{"version":3,"file":"210.84523306629c3f2358df.js","mappings":"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","sources":["webpack://grafana/./public/app/features/dashboard/containers/DashboardPageError.tsx","webpack://grafana/./public/app/features/dashboard-scene/saving/DashboardPrompt.tsx","webpack://grafana/./public/app/features/dashboard-scene/pages/DashboardScenePage.tsx","webpack://grafana/./public/app/core/navigation/kiosk.ts","webpack://grafana/./public/app/features/plugins/angularDeprecation/AngularMigrationNotice.tsx","webpack://grafana/./public/app/features/library-panels/components/SaveLibraryPanelModal/SaveLibraryPanelModal.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/actions.ts","webpack://grafana/./public/app/features/dashboard/components/SaveDashboard/UnsavedChangesModal.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardPrompt/DashboardPrompt.tsx","webpack://grafana/./public/app/features/variables/inspect/VariablesUnknownButton.tsx","webpack://grafana/./public/app/features/variables/inspect/VariablesUnknownTable.tsx","webpack://grafana/./public/app/features/variables/editor/ConfirmDeleteModal.tsx","webpack://grafana/./public/app/features/variables/editor/VariableTypeSelect.tsx","webpack://grafana/./public/app/features/variables/editor/actions.ts","webpack://grafana/./public/app/features/variables/editor/VariableEditorEditor.tsx","webpack://grafana/./public/app/features/variables/inspect/VariablesDependenciesButton.tsx","webpack://grafana/./public/app/features/variables/inspect/VariableUsagesButton.tsx","webpack://grafana/./public/app/features/variables/editor/VariableEditorListRow.tsx","webpack://grafana/./public/app/features/variables/editor/VariableEditorList.tsx","webpack://grafana/./public/app/features/variables/editor/VariableEditorContainer.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardPermissions/AccessControlDashboardPermissions.tsx","webpack://grafana/./public/app/features/dashboard/components/AnnotationSettings/AnnotationSettingsEdit.tsx","webpack://grafana/./public/app/features/dashboard/components/AnnotationSettings/AnnotationSettingsList.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardSettings/AnnotationsSettings.tsx","webpack://grafana/./public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx","webpack://grafana/./public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardButton.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardSettings/GeneralSettings.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardSettings/JsonEditorSettings.tsx","webpack://grafana/./public/app/features/dashboard/components/LinksSettings/LinkSettingsEdit.tsx","webpack://grafana/./public/app/features/dashboard/components/LinksSettings/LinkSettingsList.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardSettings/LinksSettings.tsx","webpack://grafana/./public/app/features/dashboard/components/VersionHistory/useDashboardRestore.tsx","webpack://grafana/./public/app/features/dashboard/components/VersionHistory/RevertDashboardModal.tsx","webpack://grafana/./public/app/features/dashboard/components/VersionHistory/VersionHistoryComparison.tsx","webpack://grafana/./public/app/features/dashboard/components/VersionHistory/VersionHistoryTable.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx","webpack://grafana/./public/app/features/dashboard/components/HelpWizard/SupportSnapshotService.ts","webpack://grafana/./public/app/features/dashboard/components/HelpWizard/HelpWizard.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/usePanelLatestData.ts","webpack://grafana/./public/app/features/inspector/InspectMetadataTab.tsx","webpack://grafana/./public/app/features/dashboard/components/Inspector/InspectContent.tsx","webpack://grafana/./public/app/features/dashboard/components/Inspector/PanelInspector.tsx","webpack://grafana/./public/app/features/variables/pickers/PickerRenderer.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/SubMenuItems.tsx","webpack://grafana/./public/app/features/dashboard/state/selectors.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/VisualizationButton.tsx","webpack://grafana/./public/app/features/library-panels/components/ChangeLibraryPanelModal/ChangeLibraryPanelModal.tsx","webpack://grafana/./public/app/features/library-panels/components/PanelLibraryOptionsGroup/PanelLibraryOptionsGroup.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/VisualizationSelectPane.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/OptionsPane.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelHeaderCorner.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.tsx","webpack://grafana/./public/app/features/alerting/unified/PanelAlertTab.tsx","webpack://grafana/./public/app/features/alerting/unified/components/panel-alerts-tab/NewRuleFromPanelButton.tsx","webpack://grafana/./public/app/features/alerting/unified/PanelAlertTabContent.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorQueries.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorTabs.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/selectors.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/AnnotationPicker.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/Annotations.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/DashboardLinks.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/SubMenu.tsx","webpack://grafana/./public/app/features/dashboard/containers/DashboardPage.tsx","webpack://grafana/./public/app/features/dashboard/containers/DashboardPageProxy.tsx","webpack://grafana/./public/app/features/dashboard/state/actions.ts"],"sourcesContent":["import { PageLayoutType } from '@grafana/data';\nimport { Alert, Box } from '@grafana/ui';\nimport { Page } from 'app/core/components/Page/Page';\nimport { EntityNotFound } from 'app/core/components/PageNotFound/EntityNotFound';\nimport { t } from 'app/core/internationalization';\nimport { getMessageFromError, getStatusFromError } from 'app/core/utils/errors';\n\nexport function DashboardPageError({ error, type }: { error: unknown; type?: string }) {\n const status = getStatusFromError(error);\n const message = getMessageFromError(error);\n const entity = type === 'snapshot' ? 'Snapshot' : 'Dashboard';\n\n return (\n \n \n {status === 404 ? (\n \n ) : (\n \n {message}\n \n )}\n \n \n );\n}\n","import { css } from '@emotion/css';\nimport * as H from 'history';\nimport { memo, useContext, useEffect, useMemo } from 'react';\n\nimport { locationService } from '@grafana/runtime';\nimport { ModalsContext, Modal, Button, useStyles2 } from '@grafana/ui';\nimport { Prompt } from 'app/core/components/FormPrompt/Prompt';\nimport { contextSrv } from 'app/core/services/context_srv';\n\nimport { SaveLibraryVizPanelModal } from '../panel-edit/SaveLibraryVizPanelModal';\nimport { DashboardScene } from '../scene/DashboardScene';\nimport { getLibraryPanelBehavior, isLibraryPanel } from '../utils/utils';\n\ninterface DashboardPromptProps {\n dashboard: DashboardScene;\n}\n\nexport const DashboardPrompt = memo(({ dashboard }: DashboardPromptProps) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const originalPath = useMemo(() => locationService.getLocation().pathname, [dashboard]);\n const { showModal, hideModal } = useContext(ModalsContext);\n\n useEffect(() => {\n const handleUnload = (event: BeforeUnloadEvent) => {\n if (ignoreChanges(dashboard)) {\n return;\n }\n\n if (dashboard.state.isDirty) {\n event.preventDefault();\n // No browser actually displays this message anymore.\n // But Chrome requires it to be defined else the popup won't show.\n event.returnValue = '';\n }\n };\n\n window.addEventListener('beforeunload', handleUnload);\n return () => window.removeEventListener('beforeunload', handleUnload);\n }, [dashboard]);\n\n const onHistoryBlock = (location: H.Location) => {\n const panelEditor = dashboard.state.editPanel;\n const vizPanel = panelEditor?.getPanel();\n const search = new URLSearchParams(location.search);\n\n // Are we leaving panel edit & library panel?\n if (panelEditor && vizPanel && isLibraryPanel(vizPanel) && panelEditor.state.isDirty && !search.has('editPanel')) {\n const libPanelBehavior = getLibraryPanelBehavior(vizPanel);\n\n showModal(SaveLibraryVizPanelModal, {\n dashboard,\n isUnsavedPrompt: true,\n libraryPanel: libPanelBehavior!,\n onConfirm: () => {\n panelEditor.onConfirmSaveLibraryPanel();\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDiscard: () => {\n panelEditor.onDiscard();\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDismiss: hideModal,\n });\n return false;\n }\n\n // Are we still on the same dashboard?\n if (originalPath === location.pathname) {\n return true;\n }\n\n if (ignoreChanges(dashboard)) {\n return true;\n }\n\n if (!dashboard.state.isDirty) {\n return true;\n }\n\n showModal(UnsavedChangesModal, {\n dashboard,\n onSaveDashboardClick: () => {\n hideModal();\n dashboard.openSaveDrawer({\n onSaveSuccess: () => {\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n });\n },\n\n onDiscard: () => {\n dashboard.exitEditMode({ skipConfirm: true });\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDismiss: hideModal,\n });\n\n return false;\n };\n\n return ;\n});\n\nDashboardPrompt.displayName = 'DashboardPrompt';\n\nfunction moveToBlockedLocationAfterReactStateUpdate(location?: H.Location | null) {\n if (location) {\n setTimeout(() => locationService.push(location), 10);\n }\n}\n\ninterface UnsavedChangesModalProps {\n onDiscard: () => void;\n onDismiss: () => void;\n onSaveDashboardClick?: () => void;\n}\n\nexport const UnsavedChangesModal = ({ onDiscard, onDismiss, onSaveDashboardClick }: UnsavedChangesModalProps) => {\n const styles = useStyles2(getStyles);\n\n return (\n \n
Do you want to save your changes?
\n \n \n \n \n \n \n );\n};\n\nconst getStyles = () => ({\n modal: css({\n width: '500px',\n }),\n});\n\n/**\n * For some dashboards and users changes should be ignored *\n */\nexport function ignoreChanges(scene: DashboardScene | null) {\n const original = scene?.getInitialSaveModel();\n\n if (!original) {\n return true;\n }\n\n // Ignore changes if original is unsaved\n if (scene?.state.meta.version === 0) {\n return true;\n }\n\n // Ignore changes if the user has been signed out\n if (!contextSrv.isSignedIn) {\n return true;\n }\n\n if (!scene) {\n return true;\n }\n\n const { canSave, fromScript, fromFile } = scene.state.meta;\n if (!contextSrv.isEditor && !canSave) {\n return true;\n }\n\n return !canSave || fromScript || fromFile;\n}\n","// Libraries\nimport { useEffect } from 'react';\nimport { useParams } from 'react-router-dom-v5-compat';\nimport { usePrevious } from 'react-use';\n\nimport { PageLayoutType } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { UrlSyncContextProvider } from '@grafana/scenes';\nimport { Box } from '@grafana/ui';\nimport { Page } from 'app/core/components/Page/Page';\nimport PageLoader from 'app/core/components/PageLoader/PageLoader';\nimport { GrafanaRouteComponentProps } from 'app/core/navigation/types';\nimport { DashboardPageError } from 'app/features/dashboard/containers/DashboardPageError';\nimport { DashboardPageRouteParams, DashboardPageRouteSearchParams } from 'app/features/dashboard/containers/types';\nimport { DashboardRoutes } from 'app/types';\n\nimport { DashboardPrompt } from '../saving/DashboardPrompt';\n\nimport { getDashboardScenePageStateManager } from './DashboardScenePageStateManager';\n\nexport interface Props\n extends Omit, 'match'> {}\n\nexport function DashboardScenePage({ route, queryParams, location }: Props) {\n const params = useParams();\n const { type, slug, uid } = params;\n const prevMatch = usePrevious({ params });\n const stateManager = config.featureToggles.useV2DashboardsAPI\n ? getDashboardScenePageStateManager('v2')\n : getDashboardScenePageStateManager();\n const { dashboard, isLoading, loadError } = stateManager.useState();\n // After scene migration is complete and we get rid of old dashboard we should refactor dashboardWatcher so this route reload is not need\n const routeReloadCounter = (location.state as any)?.routeReloadCounter;\n\n useEffect(() => {\n if (route.routeName === DashboardRoutes.Normal && type === 'snapshot') {\n stateManager.loadSnapshot(slug!);\n } else {\n stateManager.loadDashboard({\n type,\n slug,\n uid: uid ?? '',\n route: route.routeName as DashboardRoutes,\n urlFolderUid: queryParams.folderUid,\n });\n }\n\n return () => {\n stateManager.clearState();\n };\n }, [stateManager, uid, route.routeName, queryParams.folderUid, routeReloadCounter, slug, type]);\n\n if (!dashboard) {\n let errorElement;\n if (loadError) {\n errorElement = ;\n }\n\n return (\n errorElement || (\n \n \n {isLoading && }\n \n \n )\n );\n }\n\n // Do not render anything when transitioning from one dashboard to another\n // A bit tricky for transition to or from Home dashboard that does not have a uid in the url (but could have it in the dashboard model)\n // if prevMatch is undefined we are going from normal route to home route or vice versa\n if (type !== 'snapshot' && (!prevMatch || uid !== prevMatch?.params.uid)) {\n console.log('skipping rendering');\n return null;\n }\n\n return (\n \n \n \n \n );\n}\n\nexport default DashboardScenePage;\n","import { UrlQueryMap } from '@grafana/data';\n\nimport { KioskMode } from '../../types';\n\n// TODO Remove after topnav feature toggle is permanent and old NavBar is removed\nexport function getKioskMode(queryParams: UrlQueryMap): KioskMode | null {\n switch (queryParams.kiosk) {\n // legacy support\n case '1':\n case true:\n return KioskMode.Full;\n default:\n return null;\n }\n}\n","import { css } from '@emotion/css';\nimport { useState } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Alert, Button, useStyles2 } from '@grafana/ui';\n\nimport { migrationFeatureFlags } from './utils';\n\ninterface Props {\n dashboardUid: string;\n}\n\nconst revertAutoMigrateUrlFlag = () => {\n const url = new URL(window.location.toString());\n const urlParams = new URLSearchParams(url.search);\n\n urlParams.forEach((value, key) => {\n if (key.startsWith('__feature.')) {\n const featureName = key.substring(10);\n if (migrationFeatureFlags.has(featureName)) {\n urlParams.delete(key);\n }\n }\n });\n\n window.location.href = new URL(url.origin + url.pathname + '?' + urlParams.toString()).toString();\n};\n\nconst reportIssue = () => {\n window.open(\n 'https://github.com/grafana/grafana/issues/new?assignees=&labels=&projects=&template=0-bug-report.yaml&title=Product+Area%3A+Short+description+of+bug'\n );\n};\n\nexport function AngularMigrationNotice({ dashboardUid }: Props) {\n const styles = useStyles2(getStyles);\n\n const [showAlert, setShowAlert] = useState(true);\n\n if (showAlert) {\n return (\n setShowAlert(false)}\n >\n
\n \n \n
\n \n );\n }\n\n return null;\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n linkButton: css({\n marginRight: 10,\n }),\n});\n","import { useCallback, useState } from 'react';\nimport { useAsync, useDebounce } from 'react-use';\n\nimport { Button, Icon, Input, Modal, useStyles2 } from '@grafana/ui';\n\nimport { getConnectedDashboards } from '../../state/api';\nimport { getModalStyles } from '../../styles';\nimport { PanelModelWithLibraryPanel } from '../../types';\nimport { usePanelSave } from '../../utils/usePanelSave';\n\ninterface Props {\n panel: PanelModelWithLibraryPanel;\n folderUid: string;\n isUnsavedPrompt?: boolean;\n onConfirm: () => void;\n onDismiss: () => void;\n onDiscard: () => void;\n}\n\nexport const SaveLibraryPanelModal = ({\n panel,\n folderUid,\n isUnsavedPrompt,\n onDismiss,\n onConfirm,\n onDiscard,\n}: Props) => {\n const [searchString, setSearchString] = useState('');\n const dashState = useAsync(async () => {\n const searchHits = await getConnectedDashboards(panel.libraryPanel.uid);\n if (searchHits.length > 0) {\n return searchHits.map((dash) => dash.title);\n }\n\n return [];\n }, [panel.libraryPanel.uid]);\n\n const [filteredDashboards, setFilteredDashboards] = useState([]);\n useDebounce(\n () => {\n if (!dashState.value) {\n return setFilteredDashboards([]);\n }\n\n return setFilteredDashboards(\n dashState.value.filter((dashName) => dashName.toLowerCase().includes(searchString.toLowerCase()))\n );\n },\n 300,\n [dashState.value, searchString]\n );\n\n const { saveLibraryPanel } = usePanelSave();\n const styles = useStyles2(getModalStyles);\n const discardAndClose = useCallback(() => {\n onDiscard();\n }, [onDiscard]);\n\n const title = isUnsavedPrompt ? 'Unsaved library panel changes' : 'Save library panel';\n\n return (\n \n
\n

\n {'This update will affect '}\n \n {panel.libraryPanel.meta?.connectedDashboards}{' '}\n {panel.libraryPanel.meta?.connectedDashboards === 1 ? 'dashboard' : 'dashboards'}.\n \n The following dashboards using the panel will be affected:\n

\n }\n placeholder=\"Search affected dashboards\"\n value={searchString}\n onChange={(e) => setSearchString(e.currentTarget.value)}\n />\n {dashState.loading ? (\n

Loading connected dashboards...

\n ) : (\n \n \n \n \n \n \n \n {filteredDashboards.map((dashName, i) => (\n \n \n \n ))}\n \n
Dashboard name
{dashName}
\n )}\n \n \n {isUnsavedPrompt && (\n \n )}\n {\n saveLibraryPanel(panel, folderUid).then(() => {\n onConfirm();\n });\n }}\n >\n Update all\n \n \n
\n
\n );\n};\n","import { pick } from 'lodash';\n\nimport store from 'app/core/store';\nimport { removePanel } from 'app/features/dashboard/utils/panel';\nimport { cleanUpPanelState } from 'app/features/panel/state/actions';\nimport { panelModelAndPluginReady } from 'app/features/panel/state/reducers';\nimport { ThunkResult } from 'app/types';\n\nimport { DashboardModel } from '../../../state/DashboardModel';\nimport { PanelModel } from '../../../state/PanelModel';\n\nimport {\n closeEditor,\n PANEL_EDITOR_UI_STATE_STORAGE_KEY,\n PanelEditorUIState,\n setDiscardChanges,\n setPanelEditorUIState,\n updateEditorInitState,\n} from './reducers';\n\nexport function initPanelEditor(sourcePanel: PanelModel, dashboard: DashboardModel): ThunkResult {\n return async (dispatch) => {\n const panel = dashboard.initEditPanel(sourcePanel);\n\n dispatch(\n updateEditorInitState({\n panel,\n sourcePanel,\n })\n );\n };\n}\n\nexport function discardPanelChanges(): ThunkResult {\n return async (dispatch, getStore) => {\n const { getPanel } = getStore().panelEditor;\n getPanel().configRev = 0;\n dispatch(setDiscardChanges(true));\n };\n}\n\nexport function updateDuplicateLibraryPanels(\n modifiedPanel: PanelModel,\n dashboard: DashboardModel | null\n): ThunkResult {\n return (dispatch) => {\n if (modifiedPanel.libraryPanel?.uid === undefined || !dashboard) {\n return;\n }\n\n const modifiedSaveModel = modifiedPanel.getSaveModel();\n for (const panel of dashboard.panels) {\n if (skipPanelUpdate(modifiedPanel, panel)) {\n continue;\n }\n\n panel.restoreModel({\n ...modifiedSaveModel,\n ...pick(panel, 'gridPos', 'id'),\n });\n\n // Loaded plugin is not included in the persisted properties\n // So is not handled by restoreModel\n const pluginChanged = panel.plugin?.meta.id !== modifiedPanel.plugin?.meta.id;\n panel.plugin = modifiedPanel.plugin;\n panel.configRev++;\n\n if (pluginChanged) {\n panel.generateNewKey();\n\n dispatch(panelModelAndPluginReady({ key: panel.key, plugin: panel.plugin! }));\n }\n\n // Resend last query result on source panel query runner\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => {\n panel.getQueryRunner().useLastResultFrom(modifiedPanel.getQueryRunner());\n }, 20);\n }\n\n if (modifiedPanel.repeat) {\n // We skip any repeated library panels so we need to update them by calling processRepeats\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => dashboard.processRepeats(), 20);\n }\n };\n}\n\nexport function skipPanelUpdate(modifiedPanel: PanelModel, panelToUpdate: PanelModel): boolean {\n // don't update library panels that aren't of the same type\n if (panelToUpdate.libraryPanel?.uid !== modifiedPanel.libraryPanel!.uid) {\n return true;\n }\n\n // don't update the modifiedPanel twice\n if (panelToUpdate.id && panelToUpdate.id === modifiedPanel.id) {\n return true;\n }\n\n // don't update library panels that are repeated\n if (panelToUpdate.repeatPanelId) {\n return true;\n }\n\n return false;\n}\n\nexport function exitPanelEditor(): ThunkResult {\n return async (dispatch, getStore) => {\n const dashboard = getStore().dashboard.getModel();\n const { getPanel, getSourcePanel, shouldDiscardChanges } = getStore().panelEditor;\n const panel = getPanel();\n\n if (dashboard) {\n dashboard.exitPanelEditor();\n }\n\n const sourcePanel = getSourcePanel();\n if (hasPanelChangedInPanelEdit(panel) && !shouldDiscardChanges) {\n const modifiedSaveModel = panel.getSaveModel();\n const panelTypeChanged = sourcePanel.type !== panel.type;\n\n dispatch(updateDuplicateLibraryPanels(panel, dashboard));\n\n sourcePanel.restoreModel(modifiedSaveModel);\n sourcePanel.configRev++; // force check the configs\n\n if (panelTypeChanged) {\n // Loaded plugin is not included in the persisted properties so is not handled by restoreModel\n sourcePanel.plugin = panel.plugin;\n sourcePanel.generateNewKey();\n\n await dispatch(panelModelAndPluginReady({ key: sourcePanel.key, plugin: panel.plugin! }));\n }\n\n // Resend last query result on source panel query runner\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => {\n sourcePanel.getQueryRunner().useLastResultFrom(panel.getQueryRunner());\n sourcePanel.render();\n\n // If all changes where saved then reset configRev after applying changes\n if (panel.hasSavedPanelEditChange && !panel.hasChanged) {\n sourcePanel.configRev = 0;\n }\n }, 20);\n }\n\n // A new panel is only new until the first time we exit the panel editor\n if (sourcePanel.isNew) {\n if (!shouldDiscardChanges) {\n delete sourcePanel.isNew;\n } else {\n dashboard && removePanel(dashboard, sourcePanel, true);\n }\n }\n\n dispatch(cleanUpPanelState(panel.key));\n dispatch(closeEditor());\n };\n}\n\nfunction hasPanelChangedInPanelEdit(panel: PanelModel) {\n return panel.hasChanged || panel.hasSavedPanelEditChange || panel.isAngularPlugin();\n}\n\nexport function updatePanelEditorUIState(uiState: Partial): ThunkResult {\n return (dispatch, getStore) => {\n const nextState = { ...getStore().panelEditor.ui, ...uiState };\n dispatch(setPanelEditorUIState(nextState));\n try {\n store.setObject(PANEL_EDITOR_UI_STATE_STORAGE_KEY, nextState);\n } catch (error) {\n console.error(error);\n }\n };\n}\n","import { css } from '@emotion/css';\n\nimport { Button, Modal } from '@grafana/ui';\n\nimport { DashboardModel } from '../../state/DashboardModel';\n\nimport { SaveDashboardButton } from './SaveDashboardButton';\n\ninterface UnsavedChangesModalProps {\n dashboard: DashboardModel;\n onDiscard: () => void;\n onDismiss: () => void;\n onSaveSuccess?: () => void;\n}\n\nexport const UnsavedChangesModal = ({ dashboard, onSaveSuccess, onDiscard, onDismiss }: UnsavedChangesModalProps) => {\n return (\n \n
Do you want to save your changes?
\n \n \n \n \n \n \n );\n};\n","import * as H from 'history';\nimport { find } from 'lodash';\nimport { memo, useContext, useEffect, useState } from 'react';\n\nimport { locationService } from '@grafana/runtime';\nimport { Dashboard } from '@grafana/schema';\nimport { ModalsContext } from '@grafana/ui';\nimport { appEvents } from 'app/core/app_events';\nimport { Prompt } from 'app/core/components/FormPrompt/Prompt';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport { SaveLibraryPanelModal } from 'app/features/library-panels/components/SaveLibraryPanelModal/SaveLibraryPanelModal';\nimport { PanelModelWithLibraryPanel } from 'app/features/library-panels/types';\nimport { useDispatch } from 'app/types';\nimport { DashboardSavedEvent } from 'app/types/events';\n\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { discardPanelChanges, exitPanelEditor } from '../PanelEditor/state/actions';\nimport { UnsavedChangesModal } from '../SaveDashboard/UnsavedChangesModal';\n\nexport interface Props {\n dashboard: DashboardModel;\n}\n\ninterface State {\n original: object | null;\n originalPath?: string;\n}\n\nexport const DashboardPrompt = memo(({ dashboard }: Props) => {\n const [state, setState] = useState({ original: null });\n const dispatch = useDispatch();\n const { original, originalPath } = state;\n const { showModal, hideModal } = useContext(ModalsContext);\n\n useEffect(() => {\n // This timeout delay is to wait for panels to load and migrate scheme before capturing the original state\n // This is to minimize unsaved changes warnings due to automatic schema migrations\n const timeoutId = setTimeout(() => {\n const originalPath = locationService.getLocation().pathname;\n const original = dashboard.getSaveModelCloneOld();\n setState({ originalPath, original });\n }, 1000);\n\n const savedEventUnsub = appEvents.subscribe(DashboardSavedEvent, () => {\n const original = dashboard.getSaveModelCloneOld();\n setState({ originalPath, original });\n });\n\n return () => {\n clearTimeout(timeoutId);\n savedEventUnsub.unsubscribe();\n };\n }, [dashboard, originalPath]);\n\n useEffect(() => {\n const handleUnload = (event: BeforeUnloadEvent) => {\n if (ignoreChanges(dashboard, original)) {\n return;\n }\n if (hasChanges(dashboard, original)) {\n event.preventDefault();\n // No browser actually displays this message anymore.\n // But Chrome requires it to be defined else the popup won't show.\n event.returnValue = '';\n }\n };\n window.addEventListener('beforeunload', handleUnload);\n return () => window.removeEventListener('beforeunload', handleUnload);\n }, [dashboard, original]);\n\n const onHistoryBlock = (location: H.Location) => {\n const panelInEdit = dashboard.panelInEdit;\n const search = new URLSearchParams(location.search);\n\n // Are we leaving panel edit & library panel?\n if (panelInEdit && panelInEdit.libraryPanel && panelInEdit.hasChanged && !search.has('editPanel')) {\n showModal(SaveLibraryPanelModal, {\n isUnsavedPrompt: true,\n panel: dashboard.panelInEdit as PanelModelWithLibraryPanel,\n folderUid: dashboard.meta.folderUid ?? '',\n onConfirm: () => {\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDiscard: () => {\n dispatch(discardPanelChanges());\n moveToBlockedLocationAfterReactStateUpdate(location);\n hideModal();\n },\n onDismiss: hideModal,\n });\n return false;\n }\n\n // Are we still on the same dashboard?\n if (originalPath === location.pathname || !original) {\n // This is here due to timing reasons we want the exit panel editor state changes to happen before router update\n if (panelInEdit && !search.has('editPanel')) {\n dispatch(exitPanelEditor());\n }\n\n return true;\n }\n\n if (ignoreChanges(dashboard, original)) {\n return true;\n }\n\n if (!hasChanges(dashboard, original)) {\n return true;\n }\n\n showModal(UnsavedChangesModal, {\n dashboard: dashboard,\n onSaveSuccess: () => {\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDiscard: () => {\n setState({ ...state, original: null });\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDismiss: hideModal,\n });\n\n return false;\n };\n\n return ;\n});\n\nDashboardPrompt.displayName = 'DashboardPrompt';\n\nfunction moveToBlockedLocationAfterReactStateUpdate(location?: H.Location | null) {\n if (location) {\n setTimeout(() => locationService.push(location), 10);\n }\n}\n\n/**\n * For some dashboards and users changes should be ignored *\n */\nexport function ignoreChanges(current: DashboardModel | null, original: object | null) {\n if (!original) {\n return true;\n }\n\n // Ignore changes if original is unsaved\n if ((original as DashboardModel).version === 0) {\n return true;\n }\n\n // Ignore changes if the user has been signed out\n if (!contextSrv.isSignedIn) {\n return true;\n }\n\n if (!current) {\n return true;\n }\n\n const { canSave, fromScript, fromFile } = current.meta;\n if (!contextSrv.isEditor && !canSave) {\n return true;\n }\n\n return !canSave || fromScript || fromFile;\n}\n\n/**\n * Remove stuff that should not count in diff\n */\nfunction cleanDashboardFromIgnoredChanges(dashData: Dashboard) {\n // need to new up the domain model class to get access to expand / collapse row logic\n const model = new DashboardModel(dashData);\n\n // Expand all rows before making comparison. This is required because row expand / collapse\n // change order of panel array and panel positions.\n model.expandRows();\n\n const dash = model.getSaveModelClone();\n\n // ignore time and refresh\n delete dash.time;\n delete dash.refresh;\n dash.schemaVersion = 0;\n delete dash.timezone;\n\n dash.panels = [];\n\n // ignore template variable values\n if (dash.templating?.list) {\n for (const variable of dash.templating.list) {\n delete variable.current;\n delete variable.options;\n // @ts-expect-error\n delete variable.filters;\n }\n }\n\n return dash;\n}\n\n// TODO: Adapt original to be Dashboard type instead\nexport function hasChanges(current: DashboardModel, original: unknown) {\n if (current.hasUnsavedChanges()) {\n return true;\n }\n\n // TODO: Make getSaveModelClone return Dashboard type instead\n const currentClean = cleanDashboardFromIgnoredChanges(current.getSaveModelCloneOld() as unknown as Dashboard);\n const originalClean = cleanDashboardFromIgnoredChanges(original as Dashboard);\n\n const currentTimepicker = find((currentClean as any).nav, { type: 'timepicker' });\n const originalTimepicker = find((originalClean as any).nav, { type: 'timepicker' });\n\n if (currentTimepicker && originalTimepicker) {\n currentTimepicker.now = originalTimepicker.now;\n }\n\n const currentJson = JSON.stringify(currentClean, null);\n const originalJson = JSON.stringify(originalClean, null);\n\n return currentJson !== originalJson;\n}\n","import { useMemo } from 'react';\n\nimport { IconButton } from '@grafana/ui';\n\nimport { NetworkGraphModal } from './NetworkGraphModal';\nimport { UsagesToNetwork } from './utils';\n\ninterface Props {\n id: string;\n usages: UsagesToNetwork[];\n}\n\nexport const VariablesUnknownButton = ({ id, usages }: Props) => {\n const network = useMemo(() => usages.find((n) => n.variable.id === id), [id, usages]);\n\n if (!network) {\n return null;\n }\n\n const nodes = network.nodes.map((n) => {\n if (n.label.includes(`$${id}`)) {\n return { ...n, color: '#FB7E81' };\n }\n return n;\n });\n\n return (\n \n {({ showModal }) => {\n return (\n showModal()}\n name=\"code-branch\"\n tooltip=\"Show usages\"\n data-testid=\"VariablesUnknownButton\"\n />\n );\n }}\n \n );\n};\n","import { css } from '@emotion/css';\nimport { ReactElement, useEffect, useState } from 'react';\nimport { useAsync } from 'react-use';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { reportInteraction } from '@grafana/runtime';\nimport { CollapsableSection, HorizontalGroup, Icon, Spinner, Tooltip, useStyles2, VerticalGroup } from '@grafana/ui';\n\nimport { DashboardModel } from '../../dashboard/state/DashboardModel';\nimport { VariableModel } from '../types';\n\nimport { VariablesUnknownButton } from './VariablesUnknownButton';\nimport { getUnknownsNetwork, UsagesToNetwork } from './utils';\n\nexport const SLOW_VARIABLES_EXPANSION_THRESHOLD = 1000;\n\nexport interface VariablesUnknownTableProps {\n variables: VariableModel[];\n dashboard: DashboardModel | null;\n}\n\nexport function VariablesUnknownTable({ variables, dashboard }: VariablesUnknownTableProps): ReactElement {\n const [open, setOpen] = useState(false);\n const [changed, setChanged] = useState(0);\n const [usages, setUsages] = useState([]);\n const style = useStyles2(getStyles);\n useEffect(() => setChanged((prevState) => prevState + 1), [variables, dashboard]);\n const { loading } = useAsync(async () => {\n if (open && changed > 0) {\n // make sure we only fetch when opened and variables or dashboard have changed\n const start = Date.now();\n const unknownsNetwork = await getUnknownsNetwork(variables, dashboard);\n const stop = Date.now();\n const elapsed = stop - start;\n if (elapsed >= SLOW_VARIABLES_EXPANSION_THRESHOLD) {\n reportInteraction('Slow unknown variables expansion', { elapsed });\n }\n setChanged(0);\n setUsages(unknownsNetwork);\n return unknownsNetwork;\n }\n\n return [];\n }, [variables, dashboard, open, changed]);\n\n const onToggle = (isOpen: boolean) => {\n if (isOpen) {\n reportInteraction('Unknown variables section expanded');\n }\n\n setOpen(isOpen);\n };\n\n return (\n
\n } isOpen={open} onToggle={onToggle}>\n {loading && (\n \n \n Loading...\n \n \n \n )}\n {!loading && usages && (\n <>\n {usages.length === 0 && }\n {usages.length > 0 && }\n \n )}\n \n
\n );\n}\n\nfunction CollapseLabel(): ReactElement {\n const style = useStyles2(getStyles);\n return (\n
\n Renamed or missing variables\n \n \n \n
\n );\n}\n\nfunction NoUnknowns(): ReactElement {\n return No renamed or missing variables found.;\n}\n\nfunction UnknownTable({ usages }: { usages: UsagesToNetwork[] }): ReactElement {\n const style = useStyles2(getStyles);\n return (\n \n \n \n \n \n \n \n {usages.map((usage) => {\n const { variable } = usage;\n const { id, name } = variable;\n return (\n \n \n \n \n );\n })}\n \n
Variable\n
\n {name}\n \n \n \n \n \n
\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n container: css({\n marginTop: theme.spacing(4),\n paddingTop: theme.spacing(4),\n }),\n infoIcon: css({\n marginLeft: theme.spacing(1),\n }),\n defaultColumn: css({\n width: '1%',\n }),\n firstColumn: css({\n width: '1%',\n verticalAlign: 'top',\n color: theme.colors.text.maxContrast,\n }),\n lastColumn: css({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n width: '100%',\n textAlign: 'right',\n }),\n});\n","import { css } from '@emotion/css';\n\nimport { ConfirmModal } from '@grafana/ui';\n\ninterface Props {\n varName: string;\n isOpen: boolean;\n onConfirm: () => void;\n onDismiss: () => void;\n}\n\nexport function ConfirmDeleteModal({ varName, isOpen = false, onConfirm, onDismiss }: Props) {\n return (\n \n );\n}\n\nconst styles = {\n modal: css({\n width: 'max-content',\n maxWidth: '80vw',\n }),\n};\n","import { PropsWithChildren, useMemo } from 'react';\n\nimport { SelectableValue, VariableType } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\n\nimport { VariableSelectField } from '../../dashboard-scene/settings/variables/components/VariableSelectField';\nimport { getVariableTypes } from '../utils';\n\ninterface Props {\n onChange: (option: SelectableValue) => void;\n type: VariableType;\n}\n\nexport function VariableTypeSelect({ onChange, type }: PropsWithChildren) {\n const options = useMemo(() => getVariableTypes(), []);\n const value = useMemo(() => options.find((o) => o.value === type) ?? options[0], [options, type]);\n\n return (\n \n );\n}\n","import { cloneDeep } from 'lodash';\n\nimport { TypedVariableModel, VariableType } from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\n\nimport { ThunkResult } from '../../../types';\nimport { variableAdapters } from '../adapters';\nimport { initInspect } from '../inspect/reducer';\nimport { createUsagesNetwork, transformUsagesToNetwork } from '../inspect/utils';\nimport { toKeyedAction } from '../state/keyedVariablesReducer';\nimport { getEditorVariables, getNewVariableIndex, getVariable, getVariablesByKey } from '../state/selectors';\nimport { addVariable, removeVariable } from '../state/sharedReducer';\nimport { AddVariable, KeyedVariableIdentifier, VariableIdentifier } from '../state/types';\nimport { toKeyedVariableIdentifier, toStateKey, toVariablePayload } from '../utils';\n\nimport {\n changeVariableNameFailed,\n changeVariableNameSucceeded,\n variableEditorMounted,\n variableEditorUnMounted,\n} from './reducer';\n\nexport const variableEditorMount = (identifier: KeyedVariableIdentifier): ThunkResult => {\n return async (dispatch) => {\n const { rootStateKey } = identifier;\n dispatch(\n toKeyedAction(rootStateKey, variableEditorMounted({ name: getVariable(identifier).name, id: identifier.id }))\n );\n };\n};\n\nexport const variableEditorUnMount = (identifier: KeyedVariableIdentifier): ThunkResult => {\n return async (dispatch, getState) => {\n const { rootStateKey } = identifier;\n dispatch(toKeyedAction(rootStateKey, variableEditorUnMounted(toVariablePayload(identifier))));\n };\n};\n\nexport const changeVariableName = (identifier: KeyedVariableIdentifier, newName: string): ThunkResult => {\n return (dispatch, getState) => {\n const { id, rootStateKey: uid } = identifier;\n let errorText = null;\n if (!newName.match(/^(?!__).*$/)) {\n errorText = \"Template names cannot begin with '__', that's reserved for Grafana's global variables\";\n }\n\n if (!newName.match(/^\\w+$/)) {\n errorText = 'Only word characters are allowed in variable names';\n }\n\n const variables = getVariablesByKey(uid, getState());\n const foundVariables = variables.filter((v) => v.name === newName && v.id !== id);\n\n if (foundVariables.length) {\n errorText = 'Variable with the same name already exists';\n }\n\n if (errorText) {\n dispatch(toKeyedAction(uid, changeVariableNameFailed({ newName, errorText })));\n return;\n }\n\n dispatch(completeChangeVariableName(identifier, newName));\n };\n};\n\nexport const completeChangeVariableName =\n (identifier: KeyedVariableIdentifier, newName: string): ThunkResult =>\n (dispatch, getState) => {\n const { rootStateKey } = identifier;\n const originalVariable = getVariable(identifier, getState());\n if (originalVariable.name === newName) {\n dispatch(toKeyedAction(rootStateKey, changeVariableNameSucceeded(toVariablePayload(identifier, { newName }))));\n return;\n }\n const model = { ...cloneDeep(originalVariable), name: newName, id: newName };\n const global = originalVariable.global;\n const index = originalVariable.index;\n const renamedIdentifier = toKeyedVariableIdentifier(model);\n\n dispatch(toKeyedAction(rootStateKey, addVariable(toVariablePayload(renamedIdentifier, { global, index, model }))));\n dispatch(\n toKeyedAction(rootStateKey, changeVariableNameSucceeded(toVariablePayload(renamedIdentifier, { newName })))\n );\n dispatch(toKeyedAction(rootStateKey, removeVariable(toVariablePayload(identifier, { reIndex: false }))));\n };\n\nexport const createNewVariable =\n (key: string | null | undefined, type: VariableType = 'query'): ThunkResult =>\n (dispatch, getState) => {\n const rootStateKey = toStateKey(key);\n const varsByKey = getVariablesByKey(rootStateKey, getState());\n const id = getNextAvailableId(type, varsByKey);\n const identifier: VariableIdentifier = { type, id };\n const global = false;\n const index = getNewVariableIndex(rootStateKey, getState());\n const model: TypedVariableModel = cloneDeep(variableAdapters.get(type).initialState);\n model.id = id;\n model.name = id;\n model.rootStateKey = rootStateKey;\n dispatch(\n toKeyedAction(rootStateKey, addVariable(toVariablePayload(identifier, { global, model, index })))\n );\n\n locationService.partial({ editIndex: varsByKey.length });\n };\n\nexport const initListMode =\n (key: string | null | undefined): ThunkResult =>\n (dispatch, getState) => {\n const rootStateKey = toStateKey(key);\n const state = getState();\n const variables = getEditorVariables(rootStateKey, state);\n const dashboard = state.dashboard.getModel();\n const { usages } = createUsagesNetwork(variables, dashboard);\n const usagesNetwork = transformUsagesToNetwork(usages);\n\n dispatch(toKeyedAction(rootStateKey, initInspect({ usages, usagesNetwork })));\n };\n\nexport function getNextAvailableId(type: VariableType, variables: TypedVariableModel[]): string {\n let counter = 0;\n let nextId = `${type}${counter}`;\n\n while (variables.find((variable) => variable.id === nextId)) {\n nextId = `${type}${++counter}`;\n }\n\n return nextId;\n}\n","import { css, keyframes } from '@emotion/css';\nimport { FormEvent, PureComponent } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport { bindActionCreators } from 'redux';\n\nimport { GrafanaTheme2, LoadingState, SelectableValue, VariableHide, VariableType } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { locationService } from '@grafana/runtime';\nimport { Button, HorizontalGroup, Icon, Themeable2, withTheme2 } from '@grafana/ui';\n\nimport { StoreState, ThunkDispatch } from '../../../types';\nimport { VariableHideSelect } from '../../dashboard-scene/settings/variables/components/VariableHideSelect';\nimport { VariableLegend } from '../../dashboard-scene/settings/variables/components/VariableLegend';\nimport { VariableTextAreaField } from '../../dashboard-scene/settings/variables/components/VariableTextAreaField';\nimport { VariableTextField } from '../../dashboard-scene/settings/variables/components/VariableTextField';\nimport { VariableValuesPreview } from '../../dashboard-scene/settings/variables/components/VariableValuesPreview';\nimport { variableAdapters } from '../adapters';\nimport { hasOptions } from '../guard';\nimport { updateOptions } from '../state/actions';\nimport { toKeyedAction } from '../state/keyedVariablesReducer';\nimport { getVariable, getVariablesState } from '../state/selectors';\nimport { changeVariableProp, changeVariableType, removeVariable } from '../state/sharedReducer';\nimport { KeyedVariableIdentifier } from '../state/types';\nimport { toKeyedVariableIdentifier, toVariablePayload } from '../utils';\n\nimport { ConfirmDeleteModal } from './ConfirmDeleteModal';\nimport { VariableTypeSelect } from './VariableTypeSelect';\nimport { changeVariableName, variableEditorMount, variableEditorUnMount } from './actions';\nimport { OnPropChangeArguments, VariableNameConstraints } from './types';\n\nconst mapStateToProps = (state: StoreState, ownProps: OwnProps) => ({\n editor: getVariablesState(ownProps.identifier.rootStateKey, state).editor,\n variable: getVariable(ownProps.identifier, state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => {\n return {\n ...bindActionCreators({ variableEditorMount, variableEditorUnMount, changeVariableName, updateOptions }, dispatch),\n changeVariableProp: (identifier: KeyedVariableIdentifier, propName: string, propValue: any) =>\n dispatch(\n toKeyedAction(\n identifier.rootStateKey,\n changeVariableProp(toVariablePayload(identifier, { propName, propValue }))\n )\n ),\n changeVariableType: (identifier: KeyedVariableIdentifier, newType: VariableType) =>\n dispatch(toKeyedAction(identifier.rootStateKey, changeVariableType(toVariablePayload(identifier, { newType })))),\n removeVariable: (identifier: KeyedVariableIdentifier) => {\n dispatch(\n toKeyedAction(identifier.rootStateKey, removeVariable(toVariablePayload(identifier, { reIndex: true })))\n );\n },\n };\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport interface OwnProps extends Themeable2 {\n identifier: KeyedVariableIdentifier;\n}\n\ntype Props = OwnProps & ConnectedProps;\n\ninterface State {\n showDeleteModal: boolean;\n}\n\nexport class VariableEditorEditorUnConnected extends PureComponent {\n state: State = {\n showDeleteModal: false,\n };\n\n componentDidMount(): void {\n this.props.variableEditorMount(this.props.identifier);\n }\n\n componentWillUnmount(): void {\n this.props.variableEditorUnMount(this.props.identifier);\n }\n\n onNameChange = (event: FormEvent) => {\n event.preventDefault();\n this.props.changeVariableName(this.props.identifier, event.currentTarget.value);\n };\n\n onTypeChange = (option: SelectableValue) => {\n if (!option.value) {\n return;\n }\n this.props.changeVariableType(this.props.identifier, option.value);\n };\n\n onLabelChange = (event: FormEvent) => {\n event.preventDefault();\n this.props.changeVariableProp(this.props.identifier, 'label', event.currentTarget.value);\n };\n\n onDescriptionChange = (event: FormEvent) => {\n this.props.changeVariableProp(this.props.identifier, 'description', event.currentTarget.value);\n };\n\n onHideChange = (option: VariableHide) => {\n this.props.changeVariableProp(this.props.identifier, 'hide', option);\n };\n\n onPropChanged = ({ propName, propValue, updateOptions = false }: OnPropChangeArguments) => {\n this.props.changeVariableProp(this.props.identifier, propName, propValue);\n\n if (updateOptions) {\n this.props.updateOptions(toKeyedVariableIdentifier(this.props.variable));\n }\n };\n\n onHandleSubmit = async (event: FormEvent) => {\n event.preventDefault();\n if (!this.props.editor.isValid) {\n return;\n }\n\n this.props.updateOptions(toKeyedVariableIdentifier(this.props.variable));\n };\n\n onModalOpen = () => {\n this.setState({ showDeleteModal: true });\n };\n\n onModalClose = () => {\n this.setState({ showDeleteModal: false });\n };\n\n onDelete = () => {\n this.props.removeVariable(this.props.identifier);\n this.onModalClose();\n locationService.partial({ editIndex: null });\n };\n\n onApply = () => {\n locationService.partial({ editIndex: null });\n };\n\n getVariableOptions = () => {\n const { variable } = this.props;\n if (!hasOptions(variable)) {\n return [];\n }\n return variable.options.map((option) => ({ label: String(option.text), value: String(option.value) }));\n };\n\n render() {\n const { theme, variable } = this.props;\n const EditorToRender = variableAdapters.get(this.props.variable.type).editor;\n if (!EditorToRender) {\n return null;\n }\n const loading = variable.state === LoadingState.Loading;\n const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n const styles = getStyles(theme);\n\n return (\n <>\n
\n \n\n General\n \n\n \n \n \n\n {EditorToRender && }\n\n {hasOptions(this.props.variable) ? : null}\n\n
\n \n \n \n Run query\n {loading && (\n \n )}\n \n \n Apply\n \n \n
\n \n \n \n );\n }\n}\n\nexport const VariableEditorEditor = withTheme2(connector(VariableEditorEditorUnConnected));\n\nconst spin = keyframes({\n '0%': {\n transform: 'rotate(0deg) scaleX(-1)', // scaleX flips the `sync` icon so arrows point the correct way\n },\n '100%': {\n transform: 'rotate(359deg) scaleX(-1)',\n },\n});\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n spin: css({\n [theme.transitions.handleMotion('no-preference')]: {\n animation: `${spin} 3s linear infinite`,\n },\n }),\n };\n};\n","import { useMemo } from 'react';\n\nimport { TypedVariableModel } from '@grafana/data';\nimport { reportInteraction } from '@grafana/runtime';\nimport { Button } from '@grafana/ui';\n\nimport { NetworkGraphModal } from './NetworkGraphModal';\nimport { createDependencyEdges, createDependencyNodes, filterNodesWithDependencies } from './utils';\n\ninterface Props {\n variables: TypedVariableModel[];\n}\n\nexport const VariablesDependenciesButton = ({ variables }: Props) => {\n const nodes = useMemo(() => createDependencyNodes(variables), [variables]);\n const edges = useMemo(() => createDependencyEdges(variables), [variables]);\n\n if (!edges.length) {\n return null;\n }\n\n return (\n \n {({ showModal }) => {\n return (\n {\n reportInteraction('Show variable dependencies');\n showModal();\n }}\n icon=\"channel-add\"\n variant=\"secondary\"\n >\n Show dependencies\n \n );\n }}\n \n );\n};\n","import { useMemo } from 'react';\n\nimport { reportInteraction } from '@grafana/runtime';\nimport { IconButton } from '@grafana/ui';\n\nimport { NetworkGraphModal } from './NetworkGraphModal';\nimport { UsagesToNetwork } from './utils';\n\ninterface Props {\n id: string;\n usages: UsagesToNetwork[];\n isAdhoc: boolean;\n}\n\nexport const VariableUsagesButton = ({ id, usages, isAdhoc }: Props) => {\n const network = useMemo(() => usages.find((n) => n.variable.id === id), [usages, id]);\n if (usages.length === 0 || isAdhoc || !network) {\n return null;\n }\n\n const nodes = network.nodes.map((n) => {\n if (n.label.includes(`$${id}`)) {\n return { ...n, color: '#FB7E81' };\n }\n return n;\n });\n\n return (\n \n {({ showModal }) => {\n return (\n {\n reportInteraction('Show variable usages');\n showModal();\n }}\n name=\"code-branch\"\n tooltip=\"Show usages\"\n />\n );\n }}\n \n );\n};\n","import { css } from '@emotion/css';\nimport { Draggable } from '@hello-pangea/dnd';\nimport { ReactElement } from 'react';\n\nimport { GrafanaTheme2, TypedVariableModel } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { reportInteraction } from '@grafana/runtime';\nimport { Button, Icon, IconButton, useStyles2, useTheme2 } from '@grafana/ui';\n\nimport { hasOptions } from '../guard';\nimport { VariableUsagesButton } from '../inspect/VariableUsagesButton';\nimport { getVariableUsages, UsagesToNetwork, VariableUsageTree } from '../inspect/utils';\nimport { KeyedVariableIdentifier } from '../state/types';\nimport { toKeyedVariableIdentifier } from '../utils';\n\nexport interface VariableEditorListRowProps {\n index: number;\n variable: TypedVariableModel;\n usageTree: VariableUsageTree[];\n usagesNetwork: UsagesToNetwork[];\n onEdit: (identifier: KeyedVariableIdentifier) => void;\n onDuplicate: (identifier: KeyedVariableIdentifier) => void;\n onDelete: (identifier: KeyedVariableIdentifier) => void;\n}\n\nexport function VariableEditorListRow({\n index,\n variable,\n usageTree,\n usagesNetwork,\n onEdit: propsOnEdit,\n onDuplicate: propsOnDuplicate,\n onDelete: propsOnDelete,\n}: VariableEditorListRowProps): ReactElement {\n const theme = useTheme2();\n const styles = useStyles2(getStyles);\n const definition = getDefinition(variable);\n const usages = getVariableUsages(variable.id, usageTree);\n const passed = usages > 0 || variable.type === 'adhoc';\n const identifier = toKeyedVariableIdentifier(variable);\n\n return (\n \n {(provided, snapshot) => (\n \n \n {\n event.preventDefault();\n propsOnEdit(identifier);\n }}\n className={styles.nameLink}\n aria-label={selectors.pages.Dashboard.Settings.Variables.List.tableRowNameFields(variable.name)}\n >\n {variable.name}\n \n \n {\n event.preventDefault();\n propsOnEdit(identifier);\n }}\n aria-label={selectors.pages.Dashboard.Settings.Variables.List.tableRowDefinitionFields(variable.name)}\n >\n {definition}\n \n\n \n
\n \n \n {\n event.preventDefault();\n reportInteraction('Duplicate variable');\n propsOnDuplicate(identifier);\n }}\n name=\"copy\"\n tooltip=\"Duplicate variable\"\n aria-label={selectors.pages.Dashboard.Settings.Variables.List.tableRowDuplicateButtons(variable.name)}\n />\n {\n event.preventDefault();\n reportInteraction('Delete variable');\n propsOnDelete(identifier);\n }}\n name=\"trash-alt\"\n tooltip=\"Remove variable\"\n aria-label={selectors.pages.Dashboard.Settings.Variables.List.tableRowRemoveButtons(variable.name)}\n />\n
\n \n
\n
\n \n \n )}\n
\n );\n}\n\nfunction getDefinition(model: TypedVariableModel): string {\n let definition = '';\n if (model.type === 'query') {\n if (model.definition) {\n definition = model.definition;\n } else if (typeof model.query === 'string') {\n definition = model.query;\n }\n } else if (hasOptions(model)) {\n definition = model.query;\n }\n\n return definition;\n}\n\ninterface VariableCheckIndicatorProps {\n passed: boolean;\n}\n\nfunction VariableCheckIndicator({ passed }: VariableCheckIndicatorProps): ReactElement {\n const styles = useStyles2(getStyles);\n if (passed) {\n return (\n \n );\n }\n\n return (\n \n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n dragHandle: css({\n cursor: 'grab',\n marginLeft: theme.spacing(1),\n }),\n column: css({\n width: '1%',\n }),\n nameLink: css({\n cursor: 'pointer',\n color: theme.colors.primary.text,\n }),\n definitionColumn: css({\n width: '100%',\n maxWidth: '200px',\n cursor: 'pointer',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n OTextOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n iconPassed: css({\n color: theme.v1.palette.greenBase,\n marginRight: theme.spacing(2),\n }),\n iconFailed: css({\n color: theme.v1.palette.orange,\n marginRight: theme.spacing(2),\n }),\n icons: css({\n display: 'flex',\n gap: theme.spacing(2),\n alignItems: 'center',\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DragDropContext, Droppable, DropResult } from '@hello-pangea/dnd';\nimport { ReactElement } from 'react';\n\nimport { TypedVariableModel } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { reportInteraction } from '@grafana/runtime';\nimport { Button, useStyles2, Stack, EmptyState, TextLink } from '@grafana/ui';\nimport { t, Trans } from 'app/core/internationalization';\n\nimport { VariablesDependenciesButton } from '../inspect/VariablesDependenciesButton';\nimport { UsagesToNetwork, VariableUsageTree } from '../inspect/utils';\nimport { KeyedVariableIdentifier } from '../state/types';\n\nimport { VariableEditorListRow } from './VariableEditorListRow';\n\nexport interface Props {\n variables: TypedVariableModel[];\n usages: VariableUsageTree[];\n usagesNetwork: UsagesToNetwork[];\n onAdd: () => void;\n onEdit: (identifier: KeyedVariableIdentifier) => void;\n onChangeOrder: (identifier: KeyedVariableIdentifier, fromIndex: number, toIndex: number) => void;\n onDuplicate: (identifier: KeyedVariableIdentifier) => void;\n onDelete: (identifier: KeyedVariableIdentifier) => void;\n}\n\nexport function VariableEditorList({\n variables,\n usages,\n usagesNetwork,\n onChangeOrder,\n onAdd,\n onEdit,\n onDelete,\n onDuplicate,\n}: Props): ReactElement {\n const styles = useStyles2(getStyles);\n const onDragEnd = (result: DropResult) => {\n if (!result.destination || !result.source) {\n return;\n }\n reportInteraction('Variable drag and drop');\n const identifier = JSON.parse(result.draggableId);\n onChangeOrder(identifier, variables[result.source.index].index, variables[result.destination.index].index);\n };\n\n return (\n
\n
\n {variables.length === 0 && }\n\n {variables.length > 0 && (\n \n
\n \n \n \n Variable\n Definition\n \n \n \n \n \n {(provided) => (\n \n {variables.map((variable, index) => (\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n \n
\n \n \n \n New variable\n \n \n
\n )}\n
\n
\n );\n}\n\nfunction EmptyVariablesList({ onAdd }: { onAdd: () => void }): ReactElement {\n return (\n \n \n Add variable\n \n }\n message={t('variables.empty-state.title', 'There are no variables added yet')}\n >\n

\n \n Variables enable more interactive and dynamic dashboards. Instead of hard-coding things like server or\n sensor names in your metric queries you can use variables in their place. Variables are shown as list boxes\n at the top of the dashboard. These drop-down lists make it easy to change the data being displayed in your\n dashboard.\n \n

\n \n Check out the{' '}\n \n Templates and variables documentation\n {' '}\n for more information.\n \n \n
\n );\n}\n\nconst getStyles = () => ({\n tableContainer: css({\n overflow: 'scroll',\n width: '100%',\n }),\n});\n","import { PureComponent } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport { bindActionCreators } from 'redux';\n\nimport { locationService } from '@grafana/runtime';\nimport { Page } from 'app/core/components/Page/Page';\nimport { SettingsPageProps } from 'app/features/dashboard/components/DashboardSettings/types';\n\nimport { StoreState, ThunkDispatch } from '../../../types';\nimport { VariablesUnknownTable } from '../inspect/VariablesUnknownTable';\nimport { toKeyedAction } from '../state/keyedVariablesReducer';\nimport { getEditorVariables, getVariablesState } from '../state/selectors';\nimport { changeVariableOrder, duplicateVariable, removeVariable } from '../state/sharedReducer';\nimport { KeyedVariableIdentifier } from '../state/types';\nimport { toKeyedVariableIdentifier, toVariablePayload } from '../utils';\n\nimport { ConfirmDeleteModal } from './ConfirmDeleteModal';\nimport { VariableEditorEditor } from './VariableEditorEditor';\nimport { VariableEditorList } from './VariableEditorList';\nimport { createNewVariable, initListMode } from './actions';\n\nconst mapStateToProps = (state: StoreState, ownProps: OwnProps) => {\n const { uid } = ownProps.dashboard;\n const templatingState = getVariablesState(uid, state);\n return {\n variables: getEditorVariables(uid, state),\n idInEditor: templatingState.editor.id,\n usagesNetwork: templatingState.inspect.usagesNetwork,\n usages: templatingState.inspect.usages,\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => {\n return {\n ...bindActionCreators({ createNewVariable, initListMode }, dispatch),\n changeVariableOrder: (identifier: KeyedVariableIdentifier, fromIndex: number, toIndex: number) =>\n dispatch(\n toKeyedAction(\n identifier.rootStateKey,\n changeVariableOrder(toVariablePayload(identifier, { fromIndex, toIndex }))\n )\n ),\n duplicateVariable: (identifier: KeyedVariableIdentifier) =>\n dispatch(\n toKeyedAction(\n identifier.rootStateKey,\n duplicateVariable(toVariablePayload(identifier, { newId: undefined as unknown as string }))\n )\n ),\n removeVariable: (identifier: KeyedVariableIdentifier) => {\n dispatch(\n toKeyedAction(identifier.rootStateKey, removeVariable(toVariablePayload(identifier, { reIndex: true })))\n );\n },\n };\n};\n\ninterface OwnProps extends SettingsPageProps {}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\ntype Props = OwnProps & ConnectedProps;\n\ninterface State {\n variableId?: KeyedVariableIdentifier;\n}\n\nclass VariableEditorContainerUnconnected extends PureComponent {\n state: State = {\n variableId: undefined,\n };\n\n componentDidMount() {\n this.props.initListMode(this.props.dashboard.uid);\n }\n\n onEditVariable = (identifier: KeyedVariableIdentifier) => {\n const index = this.props.variables.findIndex((x) => x.id === identifier.id);\n locationService.partial({ editIndex: index });\n };\n\n onNewVariable = () => {\n this.props.createNewVariable(this.props.dashboard.uid);\n };\n\n onChangeVariableOrder = (identifier: KeyedVariableIdentifier, fromIndex: number, toIndex: number) => {\n this.props.changeVariableOrder(identifier, fromIndex, toIndex);\n };\n\n onDuplicateVariable = (identifier: KeyedVariableIdentifier) => {\n this.props.duplicateVariable(identifier);\n };\n\n onModalOpen = (identifier: KeyedVariableIdentifier) => {\n this.setState({ variableId: identifier });\n };\n\n onModalClose = () => {\n this.setState({ variableId: undefined });\n };\n\n onRemoveVariable = () => {\n this.props.removeVariable(this.state.variableId!);\n this.onModalClose();\n };\n\n render() {\n const { editIndex, variables, sectionNav } = this.props;\n const variableToEdit = editIndex != null ? variables[editIndex] : undefined;\n const node = sectionNav.node;\n const parentItem = node.parentItem;\n const subPageNav = variableToEdit ? { text: variableToEdit.name, parentItem } : parentItem;\n\n return (\n \n {!variableToEdit && (\n \n )}\n {!variableToEdit && this.props.variables.length > 0 && (\n \n )}\n {variableToEdit && }\n \n \n );\n }\n}\n\nexport const VariableEditorContainer = connector(VariableEditorContainerUnconnected);\n","import { Permissions } from 'app/core/components/AccessControl';\nimport { Page } from 'app/core/components/Page/Page';\nimport { contextSrv } from 'app/core/core';\nimport { AccessControlAction } from 'app/types';\n\nimport { SettingsPageProps } from '../DashboardSettings/types';\n\nexport const AccessControlDashboardPermissions = ({ dashboard, sectionNav }: SettingsPageProps) => {\n const canSetPermissions = contextSrv.hasPermission(AccessControlAction.DashboardsPermissionsWrite);\n const pageNav = sectionNav.node.parentItem;\n\n return (\n \n \n \n );\n};\n","import { css } from '@emotion/css';\nimport { useMemo, useState } from 'react';\nimport * as React from 'react';\nimport { useAsync } from 'react-use';\n\nimport {\n AnnotationQuery,\n DataSourceInstanceSettings,\n getDataSourceRef,\n GrafanaTheme2,\n SelectableValue,\n} from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { getDataSourceSrv, locationService } from '@grafana/runtime';\nimport { AnnotationPanelFilter } from '@grafana/schema/src/raw/dashboard/x/dashboard_types.gen';\nimport {\n Button,\n Checkbox,\n Field,\n FieldSet,\n HorizontalGroup,\n Input,\n MultiSelect,\n Select,\n useStyles2,\n Stack,\n Alert,\n} from '@grafana/ui';\nimport { ColorValueEditor } from 'app/core/components/OptionsUI/color';\nimport config from 'app/core/config';\nimport { Trans } from 'app/core/internationalization';\nimport StandardAnnotationQueryEditor from 'app/features/annotations/components/StandardAnnotationQueryEditor';\nimport { AngularEditorLoader } from 'app/features/dashboard-scene/settings/annotations/AngularEditorLoader';\nimport { DataSourcePicker } from 'app/features/datasources/components/picker/DataSourcePicker';\n\nimport { DashboardModel } from '../../state/DashboardModel';\n\ntype Props = {\n editIdx: number;\n dashboard: DashboardModel;\n};\n\nexport const newAnnotationName = 'New annotation';\n\nexport const AnnotationSettingsEdit = ({ editIdx, dashboard }: Props) => {\n const styles = useStyles2(getStyles);\n const [annotation, setAnnotation] = useState(dashboard.annotations.list[editIdx]);\n\n const panelFilter = useMemo(() => {\n if (!annotation.filter) {\n return PanelFilterType.AllPanels;\n }\n return annotation.filter.exclude ? PanelFilterType.ExcludePanels : PanelFilterType.IncludePanels;\n }, [annotation.filter]);\n\n const { value: ds } = useAsync(() => {\n return getDataSourceSrv().get(annotation.datasource);\n }, [annotation.datasource]);\n\n const dsi = getDataSourceSrv().getInstanceSettings(annotation.datasource);\n\n const onUpdate = (annotation: AnnotationQuery) => {\n const list = [...dashboard.annotations.list];\n list.splice(editIdx, 1, annotation);\n setAnnotation(annotation);\n dashboard.annotations.list = list;\n };\n\n const onNameChange = (ev: React.FocusEvent) => {\n onUpdate({\n ...annotation,\n name: ev.currentTarget.value,\n });\n };\n\n const onDataSourceChange = (ds: DataSourceInstanceSettings) => {\n const dsRef = getDataSourceRef(ds);\n\n if (annotation.datasource?.type !== dsRef.type) {\n onUpdate({\n datasource: dsRef,\n builtIn: annotation.builtIn,\n enable: annotation.enable,\n iconColor: annotation.iconColor,\n name: annotation.name,\n hide: annotation.hide,\n filter: annotation.filter,\n mappings: annotation.mappings,\n type: annotation.type,\n });\n } else {\n onUpdate({\n ...annotation,\n datasource: dsRef,\n });\n }\n };\n\n const onChange = (ev: React.FocusEvent) => {\n const target = ev.currentTarget;\n onUpdate({\n ...annotation,\n [target.name]: target.type === 'checkbox' ? target.checked : target.value,\n });\n };\n\n const onColorChange = (color?: string) => {\n onUpdate({\n ...annotation,\n iconColor: color!,\n });\n };\n\n const onFilterTypeChange = (v: SelectableValue) => {\n let filter =\n v.value === PanelFilterType.AllPanels\n ? undefined\n : {\n exclude: v.value === PanelFilterType.ExcludePanels,\n ids: annotation.filter?.ids ?? [],\n };\n onUpdate({ ...annotation, filter });\n };\n\n const onAddFilterPanelID = (selections: Array>) => {\n if (!Array.isArray(selections)) {\n return;\n }\n\n const filter: AnnotationPanelFilter = {\n exclude: panelFilter === PanelFilterType.ExcludePanels,\n ids: [],\n };\n\n selections.forEach((selection) => selection.value && filter.ids.push(selection.value));\n onUpdate({ ...annotation, filter });\n };\n\n const onApply = goBackToList;\n\n const onPreview = () => {\n locationService.partial({ editview: null, editIndex: null });\n };\n\n const onDelete = () => {\n const annotations = dashboard.annotations.list;\n dashboard.annotations.list = [...annotations.slice(0, editIdx), ...annotations.slice(editIdx + 1)];\n goBackToList();\n };\n\n const isNewAnnotation = annotation.name === newAnnotationName;\n\n const sortFn = (a: SelectableValue, b: SelectableValue) => {\n if (a.label && b.label) {\n return a.label.toLowerCase().localeCompare(b.label.toLowerCase());\n }\n\n return -1;\n };\n\n const panels: Array> = useMemo(\n () =>\n dashboard?.panels\n // Filtering out rows at the moment, revisit to only include panels that support annotations\n // However the information to know if a panel supports annotations requires it to be already loaded\n // panel.plugin?.dataSupport?.annotations\n .filter((panel) => config.panels[panel.type])\n .map((panel) => ({\n value: panel.id,\n label: panel.title ?? `Panel ${panel.id}`,\n description: panel.description,\n imgUrl: config.panels[panel.type].info.logos.small,\n }))\n .sort(sortFn) ?? [],\n [dashboard]\n );\n\n return (\n
\n
\n \n \n \n \n \n \n {!ds?.meta.annotations && (\n \n \n The selected data source does not support annotations. Please select a different data source.\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n <>\n \n {panelFilter !== PanelFilterType.AllPanels && (\n annotation.filter?.ids.includes(panel.value!))}\n onChange={onAddFilterPanelID}\n isClearable={true}\n placeholder=\"Choose panels\"\n width={100}\n closeMenuOnSelect={false}\n className={styles.select}\n data-testid={selectors.components.Annotations.annotationsChoosePanelInput}\n />\n )}\n \n \n
\n
\n

Query

\n {ds?.annotations && dsi && (\n \n )}\n {ds && !ds.annotations && }\n
\n \n {!annotation.builtIn && (\n \n )}\n \n Preview in dashboard\n \n \n \n
\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n settingsForm: css({\n maxWidth: theme.spacing(60),\n marginBottom: theme.spacing(2),\n }),\n select: css({\n marginTop: '8px',\n }),\n };\n};\n\nfunction goBackToList() {\n locationService.partial({ editIndex: null });\n}\n\n// Synthetic type\nenum PanelFilterType {\n AllPanels,\n IncludePanels,\n ExcludePanels,\n}\n\nconst panelFilters = [\n {\n label: 'All panels',\n value: PanelFilterType.AllPanels,\n description: 'Send the annotation data to all panels that support annotations',\n },\n {\n label: 'Selected panels',\n value: PanelFilterType.IncludePanels,\n description: 'Send the annotations to the explicitly listed panels',\n },\n {\n label: 'All panels except',\n value: PanelFilterType.ExcludePanels,\n description: 'Do not send annotation data to the following panels',\n },\n];\n","import { css } from '@emotion/css';\nimport { useState } from 'react';\n\nimport { arrayUtils, AnnotationQuery } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { getDataSourceSrv } from '@grafana/runtime';\nimport { Button, DeleteButton, EmptyState, IconButton, Stack, TextLink, useStyles2 } from '@grafana/ui';\nimport { Trans, t } from 'app/core/internationalization';\n\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { ListNewButton } from '../DashboardSettings/ListNewButton';\n\ntype Props = {\n dashboard: DashboardModel;\n onNew: () => void;\n onEdit: (idx: number) => void;\n};\n\nexport const AnnotationSettingsList = ({ dashboard, onNew, onEdit }: Props) => {\n const styles = useStyles2(getStyles);\n const [annotations, updateAnnotations] = useState(dashboard.annotations.list);\n\n const onMove = (idx: number, direction: number) => {\n dashboard.annotations.list = arrayUtils.moveItemImmutably(annotations, idx, idx + direction);\n updateAnnotations(dashboard.annotations.list);\n };\n\n const onDelete = (idx: number) => {\n dashboard.annotations.list = [...annotations.slice(0, idx), ...annotations.slice(idx + 1)];\n updateAnnotations(dashboard.annotations.list);\n };\n\n const showEmptyListCTA = annotations.length === 0 || (annotations.length === 1 && annotations[0].builtIn);\n\n const getAnnotationName = (anno: AnnotationQuery) => {\n if (anno.enable === false) {\n return (\n <>\n (Disabled)   {anno.name}\n \n );\n }\n\n if (anno.builtIn) {\n return (\n <>\n {anno.name}   (Built-in)\n \n );\n }\n\n return <>{anno.name};\n };\n\n const dataSourceSrv = getDataSourceSrv();\n return (\n \n {annotations.length > 0 && (\n
\n \n \n \n \n \n \n \n \n \n {dashboard.annotations.list.map((annotation, idx) => (\n \n {annotation.builtIn ? (\n \n ) : (\n \n )}\n \n \n \n \n \n ))}\n \n
Query nameData source
onEdit(idx)}>\n \n onEdit(idx)}>\n \n onEdit(idx)}>\n {dataSourceSrv.getInstanceSettings(annotation.datasource)?.name || annotation.datasource?.uid}\n \n {idx !== 0 && onMove(idx, -1)} tooltip=\"Move up\" />}\n \n {dashboard.annotations.list.length > 1 && idx !== dashboard.annotations.list.length - 1 ? (\n onMove(idx, 1)} tooltip=\"Move down\" />\n ) : null}\n \n {!annotation.builtIn && (\n onDelete(idx)}\n aria-label={`Delete query with title \"${annotation.name}\"`}\n />\n )}\n
\n
\n )}\n {showEmptyListCTA && (\n \n \n Add annotation query\n \n }\n message={t('annotations.empty-state.title', 'There are no custom annotation queries added yet')}\n >\n \n

\n Annotations provide a way to integrate event data into your graphs. They are visualized as vertical\n lines and icons on all graph panels. When you hover over an annotation icon you can get event text &\n tags for the event. You can add annotation events directly from grafana by holding CTRL or CMD + click\n on graph (or drag region). These will be stored in Grafana's annotation database.\n

\n
\n \n Checkout the{' '}\n \n Annotations documentation\n {' '}\n for more information.\n \n \n
\n )}\n {!showEmptyListCTA && (\n \n New query\n \n )}\n
\n );\n};\n\nconst getStyles = () => ({\n table: css({\n width: '100%',\n overflowX: 'scroll',\n }),\n});\n","import { AnnotationQuery, getDataSourceRef, NavModelItem } from '@grafana/data';\nimport { getDataSourceSrv, locationService } from '@grafana/runtime';\nimport { Page } from 'app/core/components/Page/Page';\n\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { AnnotationSettingsEdit, AnnotationSettingsList, newAnnotationName } from '../AnnotationSettings';\n\nimport { SettingsPageProps } from './types';\n\nexport function AnnotationsSettings({ dashboard, editIndex, sectionNav }: SettingsPageProps) {\n const onNew = () => {\n const newAnnotation: AnnotationQuery = {\n name: newAnnotationName,\n enable: true,\n datasource: getDataSourceRef(getDataSourceSrv().getInstanceSettings(null)!),\n iconColor: 'red',\n };\n\n dashboard.annotations.list = [...dashboard.annotations.list, { ...newAnnotation }];\n locationService.partial({ editIndex: dashboard.annotations.list.length - 1 });\n };\n\n const onEdit = (idx: number) => {\n locationService.partial({ editIndex: idx });\n };\n\n const isEditing = editIndex != null && editIndex < dashboard.annotations.list.length;\n\n return (\n \n {!isEditing && }\n {isEditing && }\n \n );\n}\n\nfunction getSubPageNav(\n dashboard: DashboardModel,\n editIndex: number | undefined,\n node: NavModelItem\n): NavModelItem | undefined {\n const parentItem = node.parentItem;\n if (editIndex == null) {\n return parentItem;\n }\n\n const editItem = dashboard.annotations.list[editIndex];\n if (editItem) {\n return {\n text: editItem.name,\n parentItem,\n };\n }\n\n return undefined;\n}\n","import { css } from '@emotion/css';\nimport { connect, ConnectedProps } from 'react-redux';\nimport useAsyncFn from 'react-use/lib/useAsyncFn';\n\nimport { locationService, config, reportInteraction } from '@grafana/runtime';\nimport { Modal, Button, Text, Space, TextLink } from '@grafana/ui';\nimport { DashboardModel } from 'app/features/dashboard/state/DashboardModel';\nimport { cleanUpDashboardAndVariables } from 'app/features/dashboard/state/actions';\n\nimport { Trans, t } from '../../../../core/internationalization';\nimport { useDeleteItemsMutation } from '../../../browse-dashboards/api/browseDashboardsAPI';\nimport { DeleteDashboardModal as DeleteModal } from '../../../dashboard-scene/settings/DeleteDashboardButton';\n\ntype DeleteDashboardModalProps = {\n hideModal(): void;\n dashboard: DashboardModel;\n};\n\nconst mapDispatchToProps = {\n cleanUpDashboardAndVariables,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\ntype Props = DeleteDashboardModalProps & ConnectedProps;\n\nconst DeleteDashboardModalUnconnected = ({ hideModal, cleanUpDashboardAndVariables, dashboard }: Props) => {\n const isProvisioned = dashboard.meta.provisioned;\n const [deleteItems] = useDeleteItemsMutation();\n\n const [, onConfirm] = useAsyncFn(async () => {\n reportInteraction('grafana_manage_dashboards_delete_clicked', {\n item_counts: {\n dashboard: 1,\n },\n source: 'dashboard_settings',\n restore_enabled: Boolean(config.featureToggles.dashboardRestore),\n });\n await deleteItems({\n selectedItems: {\n dashboard: {\n [dashboard.uid]: true,\n },\n folder: {},\n },\n });\n cleanUpDashboardAndVariables();\n hideModal();\n locationService.replace('/');\n }, [hideModal]);\n\n if (isProvisioned) {\n return ;\n }\n\n return ;\n};\n\nconst ProvisionedDeleteModal = ({ hideModal, provisionedId }: { hideModal(): void; provisionedId: string }) => (\n \n \n \n This dashboard is managed by Grafana provisioning and cannot be deleted. Remove the dashboard from the config\n file to delete it.\n \n \n \n \n \n See grafana documentation for more information about provisioning. \n \n \n {t('dashboard-settings.provisioned-delete-modal.text-link', 'Go to docs page')}\n \n \n \n \n File path: {{ provisionedId }}\n \n \n \n \n \n);\n\nexport const DeleteDashboardModal = connector(DeleteDashboardModalUnconnected);\n","import { selectors } from '@grafana/e2e-selectors';\nimport { Button, ModalsController } from '@grafana/ui';\nimport { Trans } from 'app/core/internationalization';\n\nimport { getDashboardSrv } from '../../services/DashboardSrv';\n\nimport { DeleteDashboardModal } from './DeleteDashboardModal';\n\nexport const DeleteDashboardButton = () => {\n const dashboard = getDashboardSrv().getCurrent()!;\n return (\n \n {({ showModal, hideModal }) => (\n {\n showModal(DeleteDashboardModal, {\n dashboard,\n hideModal,\n });\n }}\n data-testid={selectors.pages.Dashboard.Settings.General.deleteDashBoard}\n >\n Delete dashboard\n \n )}\n \n );\n};\n","import { useCallback, ChangeEvent, useState } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\n\nimport { TimeZone } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport {\n CollapsableSection,\n Field,\n Input,\n RadioButtonGroup,\n TagsInput,\n Label,\n TextArea,\n Box,\n Stack,\n WeekStart,\n} from '@grafana/ui';\nimport { Page } from 'app/core/components/Page/Page';\nimport { FolderPicker } from 'app/core/components/Select/FolderPicker';\nimport { t, Trans } from 'app/core/internationalization';\nimport { updateTimeZoneDashboard, updateWeekStartDashboard } from 'app/features/dashboard/state/actions';\n\nimport { DeleteDashboardButton } from '../DeleteDashboard/DeleteDashboardButton';\nimport { GenAIDashDescriptionButton } from '../GenAI/GenAIDashDescriptionButton';\nimport { GenAIDashTitleButton } from '../GenAI/GenAIDashTitleButton';\n\nimport { TimePickerSettings } from './TimePickerSettings';\nimport { SettingsPageProps } from './types';\n\nexport type Props = SettingsPageProps & ConnectedProps;\n\nconst GRAPH_TOOLTIP_OPTIONS = [\n { value: 0, label: 'Default' },\n { value: 1, label: 'Shared crosshair' },\n { value: 2, label: 'Shared Tooltip' },\n];\n\nexport function GeneralSettingsUnconnected({\n dashboard,\n updateTimeZone,\n updateWeekStart,\n sectionNav,\n}: Props): JSX.Element {\n const [renderCounter, setRenderCounter] = useState(0);\n const [dashboardTitle, setDashboardTitle] = useState(dashboard.title);\n const [dashboardDescription, setDashboardDescription] = useState(dashboard.description);\n const pageNav = sectionNav.node.parentItem;\n\n const onFolderChange = (newUID: string | undefined, newTitle: string | undefined) => {\n dashboard.meta.folderUid = newUID;\n dashboard.meta.folderTitle = newTitle;\n dashboard.meta.hasUnsavedFolderChange = true;\n setRenderCounter(renderCounter + 1);\n };\n\n const onTitleChange = useCallback(\n (title: string) => {\n dashboard.title = title;\n setDashboardTitle(title);\n },\n [setDashboardTitle, dashboard]\n );\n\n const onDescriptionChange = useCallback(\n (description: string) => {\n dashboard.description = description;\n setDashboardDescription(description);\n },\n [setDashboardDescription, dashboard]\n );\n\n const onTooltipChange = (graphTooltip: number) => {\n dashboard.graphTooltip = graphTooltip;\n setRenderCounter(renderCounter + 1);\n };\n\n const onRefreshIntervalChange = (intervals: string[]) => {\n dashboard.timepicker.refresh_intervals = intervals.filter((i) => i.trim() !== '');\n };\n\n const onNowDelayChange = (nowDelay: string) => {\n dashboard.timepicker.nowDelay = nowDelay;\n };\n\n const onHideTimePickerChange = (hide: boolean) => {\n dashboard.timepicker.hidden = hide;\n setRenderCounter(renderCounter + 1);\n };\n\n const onLiveNowChange = (v: boolean) => {\n dashboard.liveNow = v;\n setRenderCounter(renderCounter + 1);\n };\n\n const onTimeZoneChange = (timeZone: TimeZone) => {\n dashboard.timezone = timeZone;\n setRenderCounter(renderCounter + 1);\n updateTimeZone(timeZone);\n };\n\n const onWeekStartChange = (weekStart?: WeekStart) => {\n dashboard.weekStart = weekStart;\n setRenderCounter(renderCounter + 1);\n updateWeekStart(weekStart);\n };\n\n const onTagsChange = (tags: string[]) => {\n dashboard.tags = tags;\n setRenderCounter(renderCounter + 1);\n };\n\n const onEditableChange = (value: boolean) => {\n dashboard.editable = value;\n setRenderCounter(renderCounter + 1);\n };\n\n const editableOptions = [\n { label: 'Editable', value: true },\n { label: 'Read-only', value: false },\n ];\n\n return (\n \n
\n \n \n \n\n {config.featureToggles.dashgpt && }\n \n }\n >\n ) => onTitleChange(e.target.value)}\n />\n \n \n \n\n {config.featureToggles.dashgpt && }\n \n }\n >\n ) => onDescriptionChange(e.target.value)}\n />\n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n\n {/* @todo: Update \"Graph tooltip\" description to remove prompt about reloading when resolving #46581 */}\n \n \n \n \n \n\n {dashboard.meta.canDelete && }\n
\n
\n );\n}\n\nconst mapDispatchToProps = {\n updateTimeZone: updateTimeZoneDashboard,\n updateWeekStart: updateWeekStartDashboard,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport const GeneralSettings = connector(GeneralSettingsUnconnected);\n","import { css } from '@emotion/css';\nimport { useState } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Button, CodeEditor, useStyles2 } from '@grafana/ui';\nimport { Page } from 'app/core/components/Page/Page';\nimport { Trans } from 'app/core/internationalization';\nimport { dashboardWatcher } from 'app/features/live/dashboard/dashboardWatcher';\n\nimport { getDashboardSrv } from '../../services/DashboardSrv';\n\nimport { SettingsPageProps } from './types';\n\nexport function JsonEditorSettings({ dashboard, sectionNav }: SettingsPageProps) {\n const dashboardSaveModel = dashboard.getSaveModelClone();\n const [dashboardJson, setDashboardJson] = useState(JSON.stringify(dashboardSaveModel, null, 2));\n const pageNav = sectionNav.node.parentItem;\n\n const onClick = async () => {\n await getDashboardSrv().saveJSONDashboard(dashboardJson);\n dashboardWatcher.reloadPage();\n };\n\n const styles = useStyles2(getStyles);\n\n return (\n \n
\n \n The JSON model below is the data structure that defines the dashboard. This includes dashboard settings, panel\n settings, layout, queries, and so on.\n \n \n {dashboard.meta.canSave && (\n
\n \n
\n )}\n
\n
\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n wrapper: css({\n display: 'flex',\n height: '100%',\n flexDirection: 'column',\n gap: theme.spacing(2),\n }),\n codeEditor: css({\n flexGrow: 1,\n }),\n});\n","import { useState } from 'react';\n\nimport { DashboardLink } from '@grafana/schema';\nimport { DashboardLinkForm } from 'app/features/dashboard-scene/settings/links/DashboardLinkForm';\nimport { NEW_LINK } from 'app/features/dashboard-scene/settings/links/utils';\n\nimport { DashboardModel } from '../../state/DashboardModel';\n\ntype LinkSettingsEditProps = {\n editLinkIdx: number;\n dashboard: DashboardModel;\n onGoBack: () => void;\n};\n\nexport const LinkSettingsEdit = ({ editLinkIdx, dashboard, onGoBack }: LinkSettingsEditProps) => {\n const [linkSettings, setLinkSettings] = useState(editLinkIdx !== null ? dashboard.links[editLinkIdx] : NEW_LINK);\n\n const onUpdate = (link: DashboardLink) => {\n const links = [...dashboard.links];\n links.splice(editLinkIdx, 1, link);\n dashboard.links = links;\n setLinkSettings(link);\n };\n\n return ;\n};\n","import { useState } from 'react';\n\nimport { arrayUtils } from '@grafana/data';\nimport { DashboardLink } from '@grafana/schema';\nimport { DashboardLinkList } from 'app/features/dashboard-scene/settings/links/DashboardLinkList';\n\nimport { DashboardModel } from '../../state/DashboardModel';\n\ntype LinkSettingsListProps = {\n dashboard: DashboardModel;\n onNew: () => void;\n onEdit: (idx: number) => void;\n};\n\n/**\n * Used in DashboardSettings to display the list of links.\n * It updates the DashboardModel instance when links are added, edited, duplicated or deleted.\n */\nexport const LinkSettingsList = ({ dashboard, onNew, onEdit }: LinkSettingsListProps) => {\n const [links, setLinks] = useState(dashboard.links);\n\n const moveLink = (idx: number, direction: number) => {\n dashboard.links = arrayUtils.moveItemImmutably(links, idx, idx + direction);\n setLinks(dashboard.links);\n };\n\n const duplicateLink = (link: DashboardLink) => {\n dashboard.links = [...links, { ...link }];\n setLinks(dashboard.links);\n };\n\n const deleteLink = (idx: number) => {\n dashboard.links = [...links.slice(0, idx), ...links.slice(idx + 1)];\n setLinks(dashboard.links);\n };\n\n return (\n \n );\n};\n","import { useState } from 'react';\n\nimport { locationService } from '@grafana/runtime';\nimport { Page } from 'app/core/components/Page/Page';\nimport { NEW_LINK } from 'app/features/dashboard-scene/settings/links/utils';\n\nimport { LinkSettingsEdit, LinkSettingsList } from '../LinksSettings';\n\nimport { SettingsPageProps } from './types';\n\nexport type LinkSettingsMode = 'list' | 'new' | 'edit';\n\nexport function LinksSettings({ dashboard, sectionNav, editIndex }: SettingsPageProps) {\n const [isNew, setIsNew] = useState(false);\n\n const onGoBack = () => {\n setIsNew(false);\n locationService.partial({ editIndex: undefined });\n };\n\n const onNew = () => {\n dashboard.links = [...dashboard.links, { ...NEW_LINK }];\n setIsNew(true);\n locationService.partial({ editIndex: dashboard.links.length - 1 });\n };\n\n const onEdit = (idx: number) => {\n setIsNew(false);\n locationService.partial({ editIndex: idx });\n };\n\n const isEditing = editIndex !== undefined;\n\n let pageNav = sectionNav.node.parentItem;\n\n if (isEditing) {\n const title = isNew ? 'New link' : 'Edit link';\n const description = isNew ? 'Create a new link on your dashboard' : 'Edit a specific link of your dashboard';\n pageNav = {\n text: title,\n subTitle: description,\n parentItem: sectionNav.node.parentItem,\n };\n }\n\n return (\n \n {!isEditing && }\n {isEditing && }\n \n );\n}\n","import { useEffect } from 'react';\nimport { useAsyncFn } from 'react-use';\n\nimport { locationUtil } from '@grafana/data';\nimport { config, locationService } from '@grafana/runtime';\nimport { useAppNotification } from 'app/core/copy/appNotification';\nimport { historySrv } from 'app/features/dashboard-scene/settings/version-history';\nimport { useSelector } from 'app/types';\n\nimport { dashboardWatcher } from '../../../live/dashboard/dashboardWatcher';\nimport { DashboardModel } from '../../state/DashboardModel';\n\nconst restoreDashboard = async (version: number, dashboard: DashboardModel) => {\n // Skip the watcher logic for this save since it's handled by the hook\n dashboardWatcher.ignoreNextSave();\n return await historySrv.restoreDashboard(dashboard.uid, version);\n};\n\nexport const useDashboardRestore = (id: number, version: number) => {\n const dashboard = useSelector((state) => state.dashboard.getModel());\n const [state, onRestoreDashboard] = useAsyncFn(\n async () =>\n await restoreDashboard(config.featureToggles.kubernetesClientDashboardsFolders ? id : version, dashboard!),\n []\n );\n const notifyApp = useAppNotification();\n\n useEffect(() => {\n if (state.value) {\n const location = locationService.getLocation();\n const newUrl = locationUtil.stripBaseFromUrl(state.value.url);\n const prevState = (location.state as any)?.routeReloadCounter;\n locationService.replace({\n ...location,\n pathname: newUrl,\n state: { routeReloadCounter: prevState ? prevState + 1 : 1 },\n });\n notifyApp.success('Dashboard restored', `Restored from version ${version}`);\n }\n }, [state, version, notifyApp]);\n return { state, onRestoreDashboard };\n};\n","import { useEffect } from 'react';\n\nimport { ConfirmModal } from '@grafana/ui';\n\nimport { useDashboardRestore } from './useDashboardRestore';\nexport interface RevertDashboardModalProps {\n hideModal: () => void;\n id: number;\n version: number;\n}\n\nexport const RevertDashboardModal = ({ hideModal, id, version }: RevertDashboardModalProps) => {\n // TODO: how should state.error be handled?\n const { state, onRestoreDashboard } = useDashboardRestore(id, version);\n\n useEffect(() => {\n if (!state.loading && state.value) {\n hideModal();\n }\n }, [state, hideModal]);\n\n return (\n Are you sure you want to restore the dashboard to version {version}? All unsaved changes will be lost.

\n }\n confirmText={`Yes, restore to version ${version}`}\n />\n );\n};\n","import { css, cx } from '@emotion/css';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Button, ModalsController, CollapsableSection, useStyles2, Stack, Icon, Box } from '@grafana/ui';\nimport { DiffGroup } from 'app/features/dashboard-scene/settings/version-history/DiffGroup';\nimport { DiffViewer } from 'app/features/dashboard-scene/settings/version-history/DiffViewer';\nimport { jsonDiff } from 'app/features/dashboard-scene/settings/version-history/utils';\n\nimport { DecoratedRevisionModel } from '../DashboardSettings/VersionsSettings';\n\nimport { RevertDashboardModal } from './RevertDashboardModal';\n\ntype DiffViewProps = {\n isNewLatest: boolean;\n newInfo: DecoratedRevisionModel;\n baseInfo: DecoratedRevisionModel;\n diffData: { lhs: string; rhs: string };\n};\n\nexport const VersionHistoryComparison = ({ baseInfo, newInfo, diffData, isNewLatest }: DiffViewProps) => {\n const diff = jsonDiff(diffData.lhs, diffData.rhs);\n const styles = useStyles2(getStyles);\n\n return (\n \n \n \n \n Version {baseInfo.version} updated by {baseInfo.createdBy} {baseInfo.ageString}\n {baseInfo.message}\n \n \n \n Version {newInfo.version} updated by {newInfo.createdBy} {newInfo.ageString}\n {newInfo.message}\n \n \n {isNewLatest && (\n \n {({ showModal, hideModal }) => (\n {\n showModal(RevertDashboardModal, {\n id: baseInfo.id,\n version: baseInfo.version,\n hideModal,\n });\n }}\n >\n Restore to version {baseInfo.version}\n \n )}\n \n )}\n \n\n {Object.entries(diff).map(([key, diffs]) => (\n \n ))}\n\n \n \n \n \n \n \n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n versionInfo: css({\n color: theme.colors.text.secondary,\n fontSize: theme.typography.bodySmall.fontSize,\n }),\n noMarginBottom: css({\n marginBottom: 0,\n }),\n});\n","import { css } from '@emotion/css';\nimport * as React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Checkbox, Button, Tag, ModalsController, useStyles2 } from '@grafana/ui';\n\nimport { DecoratedRevisionModel } from '../DashboardSettings/VersionsSettings';\n\nimport { RevertDashboardModal } from './RevertDashboardModal';\n\ntype VersionsTableProps = {\n versions: DecoratedRevisionModel[];\n canCompare: boolean;\n onCheck: (ev: React.FormEvent, versionId: number) => void;\n};\n\nexport const VersionHistoryTable = ({ versions, canCompare, onCheck }: VersionsTableProps) => {\n const styles = useStyles2(getStyles);\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n {versions.map((version, idx) => (\n \n \n \n \n \n \n \n \n ))}\n \n
VersionDateUpdated byNotes
\n onCheck(ev, version.id)}\n disabled={!version.checked && canCompare}\n />\n {version.version}{version.createdDateString}{version.createdBy}{version.message}\n {idx === 0 ? (\n \n ) : (\n \n {({ showModal, hideModal }) => (\n {\n showModal(RevertDashboardModal, {\n id: version.id,\n version: version.version,\n hideModal,\n });\n }}\n >\n Restore\n \n )}\n \n )}\n
\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n margin: css({\n marginBottom: theme.spacing(4),\n }),\n };\n}\n","import { PureComponent } from 'react';\nimport * as React from 'react';\n\nimport { config } from '@grafana/runtime';\nimport { Spinner, HorizontalGroup } from '@grafana/ui';\nimport { Page } from 'app/core/components/Page/Page';\nimport {\n historySrv,\n RevisionsModel,\n VersionHistoryHeader,\n VersionsHistoryButtons,\n} from 'app/features/dashboard-scene/settings/version-history';\n\nimport { VersionHistoryComparison } from '../VersionHistory/VersionHistoryComparison';\nimport { VersionHistoryTable } from '../VersionHistory/VersionHistoryTable';\n\nimport { SettingsPageProps } from './types';\n\ninterface Props extends SettingsPageProps {}\n\ntype State = {\n isLoading: boolean;\n isAppending: boolean;\n versions: DecoratedRevisionModel[];\n viewMode: 'list' | 'compare';\n diffData: { lhs: string; rhs: string };\n newInfo?: DecoratedRevisionModel;\n baseInfo?: DecoratedRevisionModel;\n isNewLatest: boolean;\n};\n\nexport type DecoratedRevisionModel = RevisionsModel & {\n createdDateString: string;\n ageString: string;\n};\n\nexport const VERSIONS_FETCH_LIMIT = 10;\n\nexport class VersionsSettings extends PureComponent {\n limit: number;\n start: number;\n continueToken: string;\n\n constructor(props: Props) {\n super(props);\n this.limit = VERSIONS_FETCH_LIMIT;\n this.start = 0;\n this.continueToken = '';\n this.state = {\n isAppending: true,\n isLoading: true,\n versions: [],\n viewMode: 'list',\n isNewLatest: false,\n diffData: {\n lhs: '',\n rhs: '',\n },\n };\n }\n\n componentDidMount() {\n this.getVersions();\n }\n\n getVersions = (append = false) => {\n this.setState({ isAppending: append });\n const requestOptions = this.continueToken\n ? { limit: this.limit, start: this.start, continueToken: this.continueToken }\n : { limit: this.limit, start: this.start };\n\n historySrv\n .getHistoryList(this.props.dashboard.uid, requestOptions)\n .then((res) => {\n this.setState({\n isLoading: false,\n versions: [...(this.state.versions ?? []), ...this.decorateVersions(res.versions)],\n });\n this.start += this.limit;\n // Update the continueToken for the next request, if available\n this.continueToken = res.continueToken ?? '';\n })\n .catch((err) => console.log(err))\n .finally(() => this.setState({ isAppending: false }));\n };\n\n getDiff = async () => {\n const selectedVersions = this.state.versions.filter((version) => version.checked);\n const [newInfo, baseInfo] = selectedVersions;\n const isNewLatest = newInfo.version === this.props.dashboard.version;\n\n this.setState({\n isLoading: true,\n });\n\n let lhs, rhs;\n if (config.featureToggles.kubernetesClientDashboardsFolders) {\n // the id here is the resource version in k8s, use this instead to get the specific version\n lhs = await historySrv.getDashboardVersion(this.props.dashboard.uid, baseInfo.id);\n rhs = await historySrv.getDashboardVersion(this.props.dashboard.uid, newInfo.id);\n } else {\n lhs = await historySrv.getDashboardVersion(this.props.dashboard.uid, baseInfo.version);\n rhs = await historySrv.getDashboardVersion(this.props.dashboard.uid, newInfo.version);\n }\n\n this.setState({\n baseInfo,\n isLoading: false,\n isNewLatest,\n newInfo,\n viewMode: 'compare',\n diffData: {\n lhs: lhs.data,\n rhs: rhs.data,\n },\n });\n };\n\n decorateVersions = (versions: RevisionsModel[]) =>\n versions.map((version) => ({\n ...version,\n createdDateString: this.props.dashboard.formatDate(version.created),\n ageString: this.props.dashboard.getRelativeTime(version.created),\n checked: false,\n }));\n\n isLastPage() {\n return this.state.versions.find((rev) => rev.version === 1);\n }\n\n onCheck = (ev: React.FormEvent, versionId: number) => {\n this.setState({\n versions: this.state.versions.map((version) =>\n version.id === versionId ? { ...version, checked: ev.currentTarget.checked } : version\n ),\n });\n };\n\n reset = () => {\n this.continueToken = '';\n this.setState({\n baseInfo: undefined,\n diffData: {\n lhs: '',\n rhs: '',\n },\n isNewLatest: false,\n newInfo: undefined,\n versions: this.state.versions.map((version) => ({ ...version, checked: false })),\n viewMode: 'list',\n });\n };\n\n render() {\n const { versions, viewMode, baseInfo, newInfo, isNewLatest, isLoading, diffData } = this.state;\n const canCompare = versions.filter((version) => version.checked).length === 2;\n const showButtons = versions.length > 1;\n const hasMore = versions.length >= this.limit;\n const pageNav = this.props.sectionNav.node.parentItem;\n\n if (viewMode === 'compare') {\n return (\n \n \n {isLoading ? (\n \n ) : (\n \n )}\n \n );\n }\n\n return (\n \n {isLoading ? (\n \n ) : (\n \n )}\n {this.state.isAppending && }\n {showButtons && (\n \n )}\n \n );\n }\n}\n\nexport const VersionsHistorySpinner = ({ msg }: { msg: string }) => (\n \n \n {msg}\n \n);\n","import * as H from 'history';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useLocation } from 'react-router-dom-v5-compat';\n\nimport { locationUtil, NavModel, NavModelItem } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { locationService } from '@grafana/runtime';\nimport { Button, Stack, Text, ToolbarButtonRow } from '@grafana/ui';\nimport { AppChromeUpdate } from 'app/core/components/AppChrome/AppChromeUpdate';\nimport { Page } from 'app/core/components/Page/Page';\nimport { t } from 'app/core/internationalization';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport { AccessControlAction } from 'app/types';\nimport { DashboardMetaChangedEvent } from 'app/types/events';\n\nimport { VariableEditorContainer } from '../../../variables/editor/VariableEditorContainer';\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { AccessControlDashboardPermissions } from '../DashboardPermissions/AccessControlDashboardPermissions';\nimport { SaveDashboardAsButton, SaveDashboardButton } from '../SaveDashboard/SaveDashboardButton';\n\nimport { AnnotationsSettings } from './AnnotationsSettings';\nimport { GeneralSettings } from './GeneralSettings';\nimport { JsonEditorSettings } from './JsonEditorSettings';\nimport { LinksSettings } from './LinksSettings';\nimport { VersionsSettings } from './VersionsSettings';\nimport { SettingsPage, SettingsPageProps } from './types';\n\nexport interface Props {\n dashboard: DashboardModel;\n sectionNav: NavModel;\n pageNav: NavModelItem;\n editview: string;\n}\n\nconst onClose = () => locationService.partial({ editview: null, editIndex: null });\n\nexport function DashboardSettings({ dashboard, editview, pageNav, sectionNav }: Props) {\n const [updateId, setUpdateId] = useState(0);\n useEffect(() => {\n dashboard.events.subscribe(DashboardMetaChangedEvent, () => setUpdateId((v) => v + 1));\n }, [dashboard]);\n\n // updateId in deps so we can revaluate when dashboard is mutated\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const pages = useMemo(() => getSettingsPages(dashboard), [dashboard, updateId]);\n\n const onPostSave = () => {\n dashboard.meta.hasUnsavedFolderChange = false;\n };\n\n const currentPage = pages.find((page) => page.id === editview) ?? pages[0];\n const canSaveAs = contextSrv.hasEditPermissionInFolders;\n const canSave = dashboard.meta.canSave;\n const location = useLocation();\n const editIndex = getEditIndex(location);\n const subSectionNav = getSectionNav(pageNav, sectionNav, pages, currentPage, location, dashboard.uid);\n const size = 'sm';\n\n const actions = [\n \n Close\n ,\n canSaveAs && (\n \n ),\n canSave && ,\n ];\n\n return (\n <>\n {actions}} />\n \n \n );\n}\n\nfunction getSettingsPages(dashboard: DashboardModel) {\n const pages: SettingsPage[] = [];\n\n const generalTitle = t('dashboard-settings.general.title', 'General');\n\n if (dashboard.meta.canEdit) {\n pages.push({\n title: generalTitle,\n id: 'settings',\n icon: 'sliders-v-alt',\n component: GeneralSettings,\n });\n\n pages.push({\n title: t('dashboard-settings.annotations.title', 'Annotations'),\n id: 'annotations',\n icon: 'comment-alt',\n component: AnnotationsSettings,\n subTitle:\n 'Annotation queries return events that can be visualized as event markers in graphs across the dashboard.',\n });\n\n pages.push({\n title: t('dashboard-settings.variables.title', 'Variables'),\n id: 'templating',\n icon: 'calculator-alt',\n component: VariableEditorContainer,\n subTitle: 'Variables can make your dashboard more dynamic and act as global filters.',\n });\n\n pages.push({\n title: t('dashboard-settings.links.title', 'Links'),\n id: 'links',\n icon: 'link',\n component: LinksSettings,\n });\n }\n\n if (dashboard.meta.canMakeEditable) {\n pages.push({\n title: generalTitle,\n icon: 'sliders-v-alt',\n id: 'settings',\n component: MakeEditable,\n });\n }\n\n if (dashboard.uid && dashboard.meta.canSave) {\n pages.push({\n title: t('dashboard-settings.versions.title', 'Versions'),\n id: 'versions',\n icon: 'history',\n component: VersionsSettings,\n });\n }\n\n const permissionsTitle = t('dashboard-settings.permissions.title', 'Permissions');\n\n if (dashboard.uid && dashboard.meta.canAdmin) {\n if (contextSrv.hasPermission(AccessControlAction.DashboardsPermissionsRead)) {\n pages.push({\n title: permissionsTitle,\n id: 'permissions',\n icon: 'lock',\n component: AccessControlDashboardPermissions,\n });\n }\n }\n\n pages.push({\n title: t('dashboard-settings.json-editor.title', 'JSON Model'),\n id: 'dashboard_json',\n icon: 'arrow',\n component: JsonEditorSettings,\n });\n\n return pages;\n}\n\nfunction applySectionAsParent(node: NavModelItem, parent: NavModelItem): NavModelItem {\n return {\n ...node,\n parentItem: node.parentItem ? applySectionAsParent(node.parentItem, parent) : parent,\n };\n}\n\nfunction getSectionNav(\n pageNav: NavModelItem,\n sectionNav: NavModel,\n pages: SettingsPage[],\n currentPage: SettingsPage,\n location: H.Location,\n dashboardUid: string\n): NavModel {\n const main: NavModelItem = {\n text: t('dashboard-settings.settings.title', 'Settings'),\n children: [],\n icon: 'apps',\n hideFromBreadcrumbs: false,\n url: locationUtil.getUrlForPartial(location, { editview: 'settings', editIndex: null }),\n };\n\n main.children = pages.map((page) => ({\n text: page.title,\n icon: page.icon,\n id: `${dashboardUid}/${page.id}`,\n url: locationUtil.getUrlForPartial(location, { editview: page.id, editIndex: null }),\n active: page === currentPage,\n parentItem: main,\n subTitle: page.subTitle,\n }));\n\n const pageNavWithSectionParent = applySectionAsParent(pageNav, sectionNav.main);\n\n main.parentItem = pageNavWithSectionParent;\n\n return {\n main,\n node: main.children.find((x) => x.active)!,\n };\n}\n\nfunction MakeEditable({ dashboard, sectionNav }: SettingsPageProps) {\n return (\n \n \n Dashboard not editable\n \n \n \n );\n}\n\nfunction getEditIndex(location: H.Location): number | undefined {\n const editIndex = new URLSearchParams(location.search).get('editIndex');\n if (editIndex != null) {\n return parseInt(editIndex, 10);\n }\n return undefined;\n}\n","import saveAs from 'file-saver';\n\nimport { dateTimeFormat, formattedValueToString, getValueFormat, SelectableValue } from '@grafana/data';\nimport { SceneObject } from '@grafana/scenes';\nimport { StateManagerBase } from 'app/core/services/StateManagerBase';\nimport { Randomize } from 'app/features/dashboard-scene/inspect/HelpWizard/randomizer';\nimport { createDashboardSceneFromDashboardModel } from 'app/features/dashboard-scene/serialization/transformSaveModelToScene';\n\nimport { getTimeSrv } from '../../services/TimeSrv';\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { PanelModel } from '../../state/PanelModel';\n\nimport { getDebugDashboard, getGithubMarkdown } from './utils';\n\ninterface SupportSnapshotState {\n currentTab: SnapshotTab;\n showMessage: ShowMessage;\n options: Array>;\n snapshotText: string;\n markdownText: string;\n snapshotSize?: string;\n randomize: Randomize;\n loading?: boolean;\n error?: {\n title: string;\n message: string;\n };\n panel: PanelModel;\n panelTitle: string;\n\n // eslint-disable-next-line\n snapshot?: any;\n snapshotUpdate: number;\n scene?: SceneObject;\n}\n\nexport enum SnapshotTab {\n Support,\n Data,\n}\n\nexport enum ShowMessage {\n PanelSnapshot,\n GithubComment,\n}\n\nexport class SupportSnapshotService extends StateManagerBase {\n constructor(panel: PanelModel) {\n super({\n panel,\n panelTitle: panel.replaceVariables(panel.title, undefined, 'text') || 'Panel',\n currentTab: SnapshotTab.Support,\n showMessage: ShowMessage.GithubComment,\n snapshotText: '',\n markdownText: '',\n randomize: {},\n snapshotUpdate: 0,\n options: [\n {\n label: 'GitHub comment',\n description: 'Copy and paste this message into a GitHub issue or comment',\n value: ShowMessage.GithubComment,\n },\n {\n label: 'Panel support snapshot',\n description: 'Dashboard JSON used to help troubleshoot visualization issues',\n value: ShowMessage.PanelSnapshot,\n },\n ],\n });\n }\n\n async buildDebugDashboard() {\n const { panel, randomize, snapshotUpdate } = this.state;\n const snapshot = await getDebugDashboard(panel, randomize, getTimeSrv().timeRange());\n const snapshotText = JSON.stringify(snapshot, null, 2);\n const markdownText = getGithubMarkdown(panel, snapshotText);\n const snapshotSize = formattedValueToString(getValueFormat('bytes')(snapshotText?.length ?? 0));\n\n let scene: SceneObject | undefined = undefined;\n\n if (!panel.isAngularPlugin()) {\n try {\n const oldModel = new DashboardModel(snapshot, { isEmbedded: true });\n const dash = createDashboardSceneFromDashboardModel(oldModel, snapshot);\n scene = dash.state.body; // skip the wrappers\n } catch (ex) {\n console.log('Error creating scene:', ex);\n }\n }\n\n this.setState({ snapshot, snapshotText, markdownText, snapshotSize, snapshotUpdate: snapshotUpdate + 1, scene });\n }\n\n onCurrentTabChange = (value: SnapshotTab) => {\n this.setState({ currentTab: value });\n };\n\n onShowMessageChange = (value: SelectableValue) => {\n this.setState({ showMessage: value.value! });\n };\n\n onGetMarkdownForClipboard = () => {\n const { markdownText } = this.state;\n const maxLen = Math.pow(1024, 2) * 1.5; // 1.5MB\n\n if (markdownText.length > maxLen) {\n this.setState({\n error: {\n title: 'Copy to clipboard failed',\n message: 'Snapshot is too large, consider download and attaching a file instead',\n },\n });\n\n return '';\n }\n\n return markdownText;\n };\n\n onDownloadDashboard = () => {\n const { snapshotText, panelTitle } = this.state;\n const blob = new Blob([snapshotText], {\n type: 'text/plain',\n });\n const fileName = `debug-${panelTitle}-${dateTimeFormat(new Date())}.json.txt`;\n saveAs(blob, fileName);\n };\n\n onSetSnapshotText = (snapshotText: string) => {\n this.setState({ snapshotText });\n };\n\n onToggleRandomize = (k: keyof Randomize) => {\n const { randomize } = this.state;\n this.setState({ randomize: { ...randomize, [k]: !randomize[k] } });\n };\n}\n","import { css } from '@emotion/css';\nimport { useMemo, useEffect } from 'react';\nimport AutoSizer from 'react-virtualized-auto-sizer';\n\nimport { PanelPlugin, GrafanaTheme2 } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport {\n Drawer,\n Tab,\n TabsBar,\n CodeEditor,\n useStyles2,\n Field,\n InlineSwitch,\n Button,\n Spinner,\n Alert,\n Select,\n ClipboardButton,\n Icon,\n Stack,\n} from '@grafana/ui';\nimport { Trans } from 'app/core/internationalization';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport { PanelModel } from 'app/features/dashboard/state/PanelModel';\nimport { AccessControlAction } from 'app/types';\n\nimport { ShowMessage, SnapshotTab, SupportSnapshotService } from './SupportSnapshotService';\n\ninterface Props {\n panel: PanelModel;\n plugin?: PanelPlugin | null;\n onClose: () => void;\n}\n\nexport function HelpWizard({ panel, plugin, onClose }: Props) {\n const styles = useStyles2(getStyles);\n const service = useMemo(() => new SupportSnapshotService(panel), [panel]);\n\n const {\n currentTab,\n loading,\n error,\n options,\n showMessage,\n snapshotSize,\n markdownText,\n snapshotText,\n randomize,\n panelTitle,\n scene,\n } = service.useState();\n\n useEffect(() => {\n service.buildDebugDashboard();\n }, [service, plugin, randomize]);\n\n if (!plugin) {\n return null;\n }\n\n const tabs = [\n { label: 'Snapshot', value: SnapshotTab.Support },\n { label: 'Data', value: SnapshotTab.Data },\n ];\n\n const hasSupportBundleAccess =\n config.supportBundlesEnabled && contextSrv.hasPermission(AccessControlAction.ActionSupportBundlesCreate);\n\n return (\n \n \n \n Troubleshooting docs \n \n \n \n \n To request troubleshooting help, send a snapshot of this panel to Grafana Labs Technical Support. The\n snapshot contains query response data and panel settings.\n \n \n {hasSupportBundleAccess && (\n \n \n You can also retrieve a support bundle containing information concerning your Grafana instance and\n configured datasources in the support bundles section.\n \n \n )}\n \n }\n tabs={\n \n {tabs.map((t, index) => (\n service.onCurrentTabChange(t.value!)}\n />\n ))}\n \n }\n >\n {loading && }\n {error && {error.message}}\n\n {currentTab === SnapshotTab.Data && (\n
\n
\n \n