-
-
+ />
{measurement && (
diff --git a/public/app/plugins/datasource/loki/components/LokiQueryFieldForm.tsx b/public/app/plugins/datasource/loki/components/LokiQueryFieldForm.tsx
index 040372434cc..1a0e68966e8 100644
--- a/public/app/plugins/datasource/loki/components/LokiQueryFieldForm.tsx
+++ b/public/app/plugins/datasource/loki/components/LokiQueryFieldForm.tsx
@@ -1,9 +1,16 @@
// Libraries
import React from 'react';
-// @ts-ignore
-import Cascader from 'rc-cascader';
-import { SlatePrism, TypeaheadOutput, SuggestionsState, QueryField, TypeaheadInput, BracesPlugin } from '@grafana/ui';
+import {
+ Cascader,
+ CascaderOption,
+ SlatePrism,
+ TypeaheadOutput,
+ SuggestionsState,
+ QueryField,
+ TypeaheadInput,
+ BracesPlugin,
+} from '@grafana/ui';
// Utils & Services
// dom also includes Element polyfills
@@ -54,17 +61,10 @@ function willApplySuggestion(suggestion: string, { typeaheadContext, typeaheadTe
return suggestion;
}
-export interface CascaderOption {
- label: string;
- value: string;
- children?: CascaderOption[];
- disabled?: boolean;
-}
-
export interface LokiQueryFieldFormProps extends ExploreQueryFieldProps {
history: LokiHistoryItem[];
syntax: Grammar;
- logLabelOptions: any[];
+ logLabelOptions: CascaderOption[];
syntaxLoaded: boolean;
absoluteRange: AbsoluteTimeRange;
onLoadOptions: (selectedOptions: CascaderOption[]) => void;
@@ -150,19 +150,13 @@ export class LokiQueryFieldForm extends React.PureComponent
{
- if (isVisible && onLabelsRefresh) {
- onLabelsRefresh();
- }
- }}
- >
-
-
+ onPopupVisibleChange={isVisible => isVisible && onLabelsRefresh && onLabelsRefresh()}
+ />
{
diff --git a/public/app/plugins/datasource/loki/components/useLokiSyntax.ts b/public/app/plugins/datasource/loki/components/useLokiSyntax.ts
index a8e92bde3ac..2285de5cf2e 100644
--- a/public/app/plugins/datasource/loki/components/useLokiSyntax.ts
+++ b/public/app/plugins/datasource/loki/components/useLokiSyntax.ts
@@ -1,9 +1,9 @@
import { useState, useEffect } from 'react';
import Prism from 'prismjs';
import { AbsoluteTimeRange } from '@grafana/data';
+import { CascaderOption } from '@grafana/ui';
import LokiLanguageProvider from 'app/plugins/datasource/loki/language_provider';
import { useLokiLabels } from 'app/plugins/datasource/loki/components/useLokiLabels';
-import { CascaderOption } from 'app/plugins/datasource/loki/components/LokiQueryFieldForm';
import { useRefMounted } from 'app/core/hooks/useRefMounted';
const PRISM_SYNTAX = 'promql';
diff --git a/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx b/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx
index 4d47a2aa7e1..9cb118019cc 100644
--- a/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx
+++ b/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx
@@ -1,10 +1,16 @@
import _ from 'lodash';
import React from 'react';
-// @ts-ignore
-import Cascader from 'rc-cascader';
import { Plugin } from 'slate';
-import { SlatePrism, TypeaheadInput, TypeaheadOutput, QueryField, BracesPlugin } from '@grafana/ui';
+import {
+ Cascader,
+ CascaderOption,
+ SlatePrism,
+ TypeaheadInput,
+ TypeaheadOutput,
+ QueryField,
+ BracesPlugin,
+} from '@grafana/ui';
import Prism from 'prismjs';
@@ -93,13 +99,6 @@ export function willApplySuggestion(suggestion: string, { typeaheadContext, type
return suggestion;
}
-interface CascaderOption {
- label: string;
- value: string;
- children?: CascaderOption[];
- disabled?: boolean;
-}
-
interface PromQueryFieldProps extends ExploreQueryFieldProps {
history: Array>;
}
@@ -284,11 +283,13 @@ class PromQueryField extends React.PureComponent
-
-
-
+
';
- font-size: 12px;
- color: $text-color-weak;
- position: absolute;
- right: 16px;
- line-height: 32px;
-}
-@keyframes SlideUpIn {
- 0% {
- opacity: 0;
- transform-origin: 0% 0%;
- transform: scaleY(0.8);
- }
- 100% {
- opacity: 1;
- transform-origin: 0% 0%;
- transform: scaleY(1);
- }
-}
-@keyframes SlideUpOut {
- 0% {
- opacity: 1;
- transform-origin: 0% 0%;
- transform: scaleY(1);
- }
- 100% {
- opacity: 0;
- transform-origin: 0% 0%;
- transform: scaleY(0.8);
- }
-}
-@keyframes SlideDownIn {
- 0% {
- opacity: 0;
- transform-origin: 0% 100%;
- transform: scaleY(0.8);
- }
- 100% {
- opacity: 1;
- transform-origin: 0% 100%;
- transform: scaleY(1);
- }
-}
-@keyframes SlideDownOut {
- 0% {
- opacity: 1;
- transform-origin: 0% 100%;
- transform: scaleY(1);
- }
- 100% {
- opacity: 0;
- transform-origin: 0% 100%;
- transform: scaleY(0.8);
- }
-}