/usr/share/grafana/public/app/plugins/datasource/loki/querybuilder
import { QueryEditorMode } from '@grafana/plugin-ui'; import { LokiQuery, LokiQueryType } from '../types'; const queryEditorModeDefaultLocalStorageKey = 'LokiQueryEditorModeDefault'; export function changeEditorMode(query: LokiQuery, editorMode: QueryEditorMode, onChange: (query: LokiQuery) => void) { // If empty query store new mode as default if (query.expr === '') { window.localStorage.setItem(queryEditorModeDefaultLocalStorageKey, editorMode); } onChange({ ...query, editorMode }); } export function getDefaultEditorMode(expr: string) { // If we already have an expression default to code view if (expr != null && expr !== '') { return QueryEditorMode.Code; } const value: string | null = window.localStorage.getItem(queryEditorModeDefaultLocalStorageKey); switch (value) { case 'code': return QueryEditorMode.Code; case 'builder': default: return QueryEditorMode.Builder; } } /** * Returns query with defaults, and boolean true/false depending on change was required */ export function getQueryWithDefaults(query: LokiQuery): LokiQuery { // If no expr (ie new query) then default to builder let result = query; if (!query.editorMode) { result = { ...query, editorMode: getDefaultEditorMode(query.expr) }; } if (query.expr == null) { result = { ...result, expr: '' }; } if (query.queryType == null) { // Default to range query result = { ...result, queryType: LokiQueryType.Range }; } return result; }
.
Edit
..
Edit
LokiQueryModeller.test.ts
Edit
LokiQueryModeller.ts
Edit
binaryScalarOperations.ts
Edit
components
Edit
operationUtils.test.ts
Edit
operationUtils.ts
Edit
operations.test.ts
Edit
operations.ts
Edit
parsing.test.ts
Edit
parsing.ts
Edit
parsingUtils.test.ts
Edit
parsingUtils.ts
Edit
state.test.ts
Edit
state.ts
Edit
types.ts
Edit