@grafana/plugin-ui 0.1.10 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CustomHeadersSettings/CustomHeadersSettings.js +129 -0
- package/dist/components/CustomHeadersSettings/CustomHeadersSettings.js.map +1 -0
- package/dist/components/QueryEditor/QueryHeader.js +2 -5
- package/dist/components/QueryEditor/QueryHeader.js.map +1 -1
- package/dist/components/QueryEditor/RunQueryButton.js +21 -0
- package/dist/components/QueryEditor/RunQueryButton.js.map +1 -0
- package/dist/components/index.js +3 -1
- package/dist/components/index.js.map +1 -1
- package/dist/src/components/CustomHeadersSettings/CustomHeadersSettings.d.ts +27 -0
- package/dist/src/components/DataLinks/DataLink.d.ts +0 -1
- package/dist/src/components/DataLinks/DataLinks.d.ts +0 -1
- package/dist/src/components/DatePickerWithInput/DatePickerWithInput.d.ts +0 -1
- package/dist/src/components/DebounceInput/DebounceInput.d.ts +0 -1
- package/dist/src/components/QueryEditor/ConfirmModal.d.ts +0 -1
- package/dist/src/components/QueryEditor/InlineSelect.d.ts +0 -1
- package/dist/src/components/QueryEditor/QueryEditor.d.ts +0 -1
- package/dist/src/components/QueryEditor/QueryHeader.d.ts +0 -1
- package/dist/src/components/QueryEditor/RunQueryButton.d.ts +13 -0
- package/dist/src/components/QueryEditor/Space.d.ts +0 -1
- package/dist/src/components/QueryEditor/query-editor-raw/QueryToolbox.d.ts +0 -1
- package/dist/src/components/QueryEditor/query-editor-raw/QueryValidator.d.ts +0 -1
- package/dist/src/components/QueryEditor/query-editor-raw/RawEditor.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/GroupByRow.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/OrderByRow.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/Preview.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/SQLGroupByRow.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/SQLOrderByRow.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/SQLSelectRow.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/SQLWhereRow.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/SelectRow.d.ts +0 -1
- package/dist/src/components/QueryEditor/visual-query-builder/WhereRow.d.ts +0 -1
- package/dist/src/components/Segment/Segment.d.ts +0 -1
- package/dist/src/components/index.d.ts +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomHeadersSettings = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const css_1 = require("@emotion/css");
|
|
7
|
+
const lodash_1 = require("lodash");
|
|
8
|
+
const ui_1 = require("@grafana/ui");
|
|
9
|
+
const getCustomHeaderRowStyles = (0, ui_1.stylesFactory)(() => {
|
|
10
|
+
return {
|
|
11
|
+
layout: (0, css_1.css) `
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
margin-bottom: 4px;
|
|
15
|
+
> * {
|
|
16
|
+
margin-left: 4px;
|
|
17
|
+
margin-bottom: 0;
|
|
18
|
+
height: 100%;
|
|
19
|
+
&:first-child,
|
|
20
|
+
&:last-child {
|
|
21
|
+
margin-left: 0;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`,
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
const CustomHeaderRow = ({ header, onBlur, onChange, onRemove, onReset, }) => {
|
|
28
|
+
const styles = getCustomHeaderRowStyles();
|
|
29
|
+
return (react_1.default.createElement("div", { className: styles.layout },
|
|
30
|
+
react_1.default.createElement(ui_1.LegacyForms.FormField, { label: "Header", name: "name", placeholder: "X-Custom-Header", labelWidth: 5, value: header.name || "", onChange: (e) => onChange(Object.assign(Object.assign({}, header), { name: e.target.value })), onBlur: onBlur }),
|
|
31
|
+
react_1.default.createElement(ui_1.LegacyForms.SecretFormField, { label: "Value", "aria-label": "Value", name: "value", isConfigured: header.configured, value: header.value, labelWidth: 5, inputWidth: header.configured ? 11 : 12, placeholder: "Header Value", onReset: () => onReset(header.id), onChange: (e) => onChange(Object.assign(Object.assign({}, header), { value: e.target.value })), onBlur: onBlur }),
|
|
32
|
+
react_1.default.createElement(ui_1.Button, { type: "button", "aria-label": "Remove header", variant: "secondary", size: "xs", onClick: (_e) => onRemove(header.id) },
|
|
33
|
+
react_1.default.createElement(ui_1.Icon, { name: "trash-alt" }))));
|
|
34
|
+
};
|
|
35
|
+
CustomHeaderRow.displayName = "CustomHeaderRow";
|
|
36
|
+
class CustomHeadersSettings extends react_1.PureComponent {
|
|
37
|
+
constructor(props) {
|
|
38
|
+
super(props);
|
|
39
|
+
this.state = {
|
|
40
|
+
headers: [],
|
|
41
|
+
};
|
|
42
|
+
this.updateSettings = () => {
|
|
43
|
+
const { headers } = this.state;
|
|
44
|
+
// we remove every httpHeaderName* field
|
|
45
|
+
const newJsonData = Object.fromEntries(Object.entries(this.props.dataSourceConfig.jsonData).filter(([key, val]) => !key.startsWith("httpHeaderName")));
|
|
46
|
+
// we remove every httpHeaderValue* field
|
|
47
|
+
const newSecureJsonData = Object.fromEntries(Object.entries(this.props.dataSourceConfig.secureJsonData || {}).filter(([key, val]) => !key.startsWith("httpHeaderValue")));
|
|
48
|
+
// then we add the current httpHeader-fields
|
|
49
|
+
for (const [index, header] of headers.entries()) {
|
|
50
|
+
newJsonData[`httpHeaderName${index + 1}`] = header.name;
|
|
51
|
+
if (!header.configured) {
|
|
52
|
+
newSecureJsonData[`httpHeaderValue${index + 1}`] = header.value;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
this.props.onChange(Object.assign(Object.assign({}, this.props.dataSourceConfig), { jsonData: newJsonData, secureJsonData: newSecureJsonData }));
|
|
56
|
+
};
|
|
57
|
+
this.onHeaderAdd = () => {
|
|
58
|
+
this.setState((prevState) => {
|
|
59
|
+
return {
|
|
60
|
+
headers: [
|
|
61
|
+
...prevState.headers,
|
|
62
|
+
{ id: (0, lodash_1.uniqueId)(), name: "", value: "", configured: false },
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
this.onHeaderChange = (headerIndex, value) => {
|
|
68
|
+
this.setState(({ headers }) => {
|
|
69
|
+
return {
|
|
70
|
+
headers: headers.map((item, index) => {
|
|
71
|
+
if (headerIndex !== index) {
|
|
72
|
+
return item;
|
|
73
|
+
}
|
|
74
|
+
return Object.assign({}, value);
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
this.onHeaderReset = (headerId) => {
|
|
80
|
+
this.setState(({ headers }) => {
|
|
81
|
+
return {
|
|
82
|
+
headers: headers.map((h, i) => {
|
|
83
|
+
if (h.id !== headerId) {
|
|
84
|
+
return h;
|
|
85
|
+
}
|
|
86
|
+
return Object.assign(Object.assign({}, h), { value: "", configured: false });
|
|
87
|
+
}),
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
this.onHeaderRemove = (headerId) => {
|
|
92
|
+
this.setState(({ headers }) => ({
|
|
93
|
+
headers: headers.filter((h) => h.id !== headerId),
|
|
94
|
+
}), this.updateSettings);
|
|
95
|
+
};
|
|
96
|
+
const { jsonData, secureJsonData, secureJsonFields, } = this.props.dataSourceConfig;
|
|
97
|
+
this.state = {
|
|
98
|
+
headers: Object.keys(jsonData)
|
|
99
|
+
.sort()
|
|
100
|
+
.filter((key) => key.startsWith("httpHeaderName"))
|
|
101
|
+
.map((key, index) => {
|
|
102
|
+
return {
|
|
103
|
+
id: (0, lodash_1.uniqueId)(),
|
|
104
|
+
name: jsonData[key],
|
|
105
|
+
value: secureJsonData !== undefined ? secureJsonData[key] : "",
|
|
106
|
+
configured: (secureJsonFields &&
|
|
107
|
+
secureJsonFields[`httpHeaderValue${index + 1}`]) ||
|
|
108
|
+
false,
|
|
109
|
+
};
|
|
110
|
+
}),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
render() {
|
|
114
|
+
const { headers } = this.state;
|
|
115
|
+
return (react_1.default.createElement("div", { className: "gf-form-group" },
|
|
116
|
+
react_1.default.createElement("div", { className: "gf-form" },
|
|
117
|
+
react_1.default.createElement("h6", null, "Custom HTTP Headers")),
|
|
118
|
+
react_1.default.createElement("div", null, headers.map((header, i) => (react_1.default.createElement(CustomHeaderRow, { key: header.id, header: header, onChange: (h) => {
|
|
119
|
+
this.onHeaderChange(i, h);
|
|
120
|
+
}, onBlur: this.updateSettings, onRemove: this.onHeaderRemove, onReset: this.onHeaderReset })))),
|
|
121
|
+
react_1.default.createElement("div", { className: "gf-form" },
|
|
122
|
+
react_1.default.createElement(ui_1.Button, { variant: "secondary", icon: "plus", type: "button", onClick: (e) => {
|
|
123
|
+
this.onHeaderAdd();
|
|
124
|
+
} }, "Add header"))));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.CustomHeadersSettings = CustomHeadersSettings;
|
|
128
|
+
exports.default = CustomHeadersSettings;
|
|
129
|
+
//# sourceMappingURL=CustomHeadersSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomHeadersSettings.js","sourceRoot":"","sources":["../../../src/components/CustomHeadersSettings/CustomHeadersSettings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ const EditorRow_1 = require("./EditorRow");
|
|
|
15
15
|
const FlexItem_1 = require("./FlexItem");
|
|
16
16
|
const InlineSelect_1 = require("./InlineSelect");
|
|
17
17
|
const Space_1 = require("./Space");
|
|
18
|
+
const RunQueryButton_1 = require("./RunQueryButton");
|
|
18
19
|
const types_1 = require("./types");
|
|
19
20
|
const sql_utils_1 = require("./utils/sql.utils");
|
|
20
21
|
const editorModes = [
|
|
@@ -66,11 +67,7 @@ function QueryHeader({ db, query, queryRowFilter, onChange, onRunQuery, onQueryR
|
|
|
66
67
|
react_1.default.createElement(ui_1.InlineSwitch, { id: "sql-preview", label: "Preview", transparent: true, showLabel: true, value: queryRowFilter.preview, onChange: (ev) => ev.target instanceof HTMLInputElement &&
|
|
67
68
|
onQueryRowChange(Object.assign(Object.assign({}, queryRowFilter), { preview: ev.target.checked })) }))),
|
|
68
69
|
react_1.default.createElement(FlexItem_1.FlexItem, { grow: 1 }),
|
|
69
|
-
|
|
70
|
-
"Your query is invalid. Check below for details. ",
|
|
71
|
-
react_1.default.createElement("br", null),
|
|
72
|
-
"However, you can still run this query."), placement: "top" },
|
|
73
|
-
react_1.default.createElement(ui_1.Button, { icon: "exclamation-triangle", variant: "secondary", size: "sm", onClick: () => onRunQuery() }, "Run query"))),
|
|
70
|
+
react_1.default.createElement(RunQueryButton_1.RunQueryButton, { queryInvalid: isQueryRunnable, onClick: () => onRunQuery() }),
|
|
74
71
|
react_1.default.createElement(ui_1.RadioButtonGroup, { options: editorModes, size: "sm", value: editorMode, onChange: onEditorModeChange }),
|
|
75
72
|
react_1.default.createElement(ConfirmModal_1.ConfirmModal, { isOpen: showConfirm, onCopy: () => {
|
|
76
73
|
setShowConfirm(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryHeader.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/QueryHeader.tsx"],"names":[],"mappings":";;;;AAAA,uDAAqD;AACrD,yCAA+C;AAI/C,iDAA8C;AAC9C,uDAAoD;AACpD,mDAAgD;AAChD,mDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"QueryHeader.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/QueryHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RunQueryButton = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const ui_1 = require("@grafana/ui");
|
|
7
|
+
const RunQueryButton = ({ ariaLabel = "Query editor Run button", queryRunning = false, queryInvalid = false, invalidQueryTooltip, disabled = false, onClick, dataTestId, }) => {
|
|
8
|
+
let icon = queryInvalid
|
|
9
|
+
? "exclamation-triangle"
|
|
10
|
+
: undefined;
|
|
11
|
+
if (queryRunning) {
|
|
12
|
+
icon = "fa fa-spinner";
|
|
13
|
+
}
|
|
14
|
+
const RunButton = (react_1.default.createElement(ui_1.Button, { "aria-label": ariaLabel, size: "sm", variant: "secondary", icon: icon, disabled: disabled || queryRunning, onClick: onClick, "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : false }, "Run query"));
|
|
15
|
+
return queryInvalid ? (react_1.default.createElement(ui_1.Tooltip, { theme: "error", placement: "top", content: invalidQueryTooltip !== null && invalidQueryTooltip !== void 0 ? invalidQueryTooltip : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
16
|
+
"Your query is invalid. Check below for details. ",
|
|
17
|
+
react_1.default.createElement("br", null),
|
|
18
|
+
"However, you can still run this query.")) }, RunButton)) : (RunButton);
|
|
19
|
+
};
|
|
20
|
+
exports.RunQueryButton = RunQueryButton;
|
|
21
|
+
//# sourceMappingURL=RunQueryButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunQueryButton.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/RunQueryButton.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,oCAAwE;AAYjE,MAAM,cAAc,GAAkC,CAAC,EAC5D,SAAS,GAAG,yBAAyB,EACrC,YAAY,GAAG,KAAK,EACpB,YAAY,GAAG,KAAK,EACpB,mBAAmB,EACnB,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,UAAU,GACX,EAAE,EAAE;IACH,IAAI,IAAI,GAAyB,YAAY;QAC3C,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,YAAY,EAAE;QAChB,IAAI,GAAG,eAAe,CAAC;KACxB;IAED,MAAM,SAAS,GAAG,CAChB,8BAAC,WAAM,kBACO,SAAS,EACrB,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,WAAW,EACnB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,IAAI,YAAY,EAClC,OAAO,EAAE,OAAO,iBACH,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,gBAGzB,CACV,CAAC;IAEF,OAAO,YAAY,CAAC,CAAC,CAAC,CACpB,8BAAC,YAAO,IACN,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,KAAK,EACf,OAAO,EACL,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,CACrB;;YACkD,yCAAM;qDAErD,CACJ,IAGF,SAAS,CACF,CACX,CAAC,CAAC,CAAC,CACF,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,cAAc,kBAgDzB"}
|
package/dist/components/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CertificationKey = exports.InlineSwitch = exports.formatDate = exports.DatePickerWithInput = exports.DatePicker = exports.Segment = exports.DebounceInput = exports.QueryEditorRow = exports.AsyncButtonCascader = void 0;
|
|
3
|
+
exports.CustomHeadersSettings = exports.CertificationKey = exports.InlineSwitch = exports.formatDate = exports.DatePickerWithInput = exports.DatePicker = exports.Segment = exports.DebounceInput = exports.QueryEditorRow = exports.AsyncButtonCascader = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
var AsyncButtonCascader_1 = require("./AsyncButtonCascader/AsyncButtonCascader");
|
|
6
6
|
Object.defineProperty(exports, "AsyncButtonCascader", { enumerable: true, get: function () { return AsyncButtonCascader_1.AsyncButtonCascader; } });
|
|
@@ -22,4 +22,6 @@ var ui_1 = require("@grafana/ui");
|
|
|
22
22
|
Object.defineProperty(exports, "InlineSwitch", { enumerable: true, get: function () { return ui_1.InlineSwitch; } });
|
|
23
23
|
Object.defineProperty(exports, "CertificationKey", { enumerable: true, get: function () { return ui_1.CertificationKey; } });
|
|
24
24
|
tslib_1.__exportStar(require("./QueryEditor"), exports);
|
|
25
|
+
var CustomHeadersSettings_1 = require("./CustomHeadersSettings/CustomHeadersSettings");
|
|
26
|
+
Object.defineProperty(exports, "CustomHeadersSettings", { enumerable: true, get: function () { return CustomHeadersSettings_1.CustomHeadersSettings; } });
|
|
25
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;AAAA,iFAAgF;AAAvE,0HAAA,mBAAmB,OAAA;AAC5B,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,+DAGuC;AAFrC,8GAAA,aAAa,OAAA;AAGf,6CAG2B;AAFzB,kGAAA,OAAO,OAAA;AAGT,sDAAsE;AAA7D,wGAAA,UAAU,OAAA;AACnB,iFAImD;AAHjD,0HAAA,mBAAmB,OAAA;AAEnB,iHAAA,UAAU,OAAA;AAEZ,8EAAoD;AACpD,sDAA4B;AAC5B,8DAAoC;AACpC,kCAA6D;AAApD,kGAAA,YAAY,OAAA;AAAE,sGAAA,gBAAgB,OAAA;AACvC,wDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;AAAA,iFAAgF;AAAvE,0HAAA,mBAAmB,OAAA;AAC5B,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,+DAGuC;AAFrC,8GAAA,aAAa,OAAA;AAGf,6CAG2B;AAFzB,kGAAA,OAAO,OAAA;AAGT,sDAAsE;AAA7D,wGAAA,UAAU,OAAA;AACnB,iFAImD;AAHjD,0HAAA,mBAAmB,OAAA;AAEnB,iHAAA,UAAU,OAAA;AAEZ,8EAAoD;AACpD,sDAA4B;AAC5B,8DAAoC;AACpC,kCAA6D;AAApD,kGAAA,YAAY,OAAA;AAAE,sGAAA,gBAAgB,OAAA;AACvC,wDAA8B;AAC9B,uFAAsF;AAA7E,8HAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PureComponent } from "react";
|
|
2
|
+
import { DataSourceSettings } from "@grafana/data";
|
|
3
|
+
export interface CustomHeader {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
value: string;
|
|
7
|
+
configured: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare type CustomHeaders = CustomHeader[];
|
|
10
|
+
export interface Props {
|
|
11
|
+
dataSourceConfig: DataSourceSettings<any, any>;
|
|
12
|
+
onChange: (config: DataSourceSettings) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface State {
|
|
15
|
+
headers: CustomHeaders;
|
|
16
|
+
}
|
|
17
|
+
export declare class CustomHeadersSettings extends PureComponent<Props, State> {
|
|
18
|
+
state: State;
|
|
19
|
+
constructor(props: Props);
|
|
20
|
+
updateSettings: () => void;
|
|
21
|
+
onHeaderAdd: () => void;
|
|
22
|
+
onHeaderChange: (headerIndex: number, value: CustomHeader) => void;
|
|
23
|
+
onHeaderReset: (headerId: string) => void;
|
|
24
|
+
onHeaderRemove: (headerId: string) => void;
|
|
25
|
+
render(): JSX.Element;
|
|
26
|
+
}
|
|
27
|
+
export default CustomHeadersSettings;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { PopoverContent } from "@grafana/ui";
|
|
3
|
+
declare type RunQueryButtonProps = {
|
|
4
|
+
ariaLabel?: string;
|
|
5
|
+
queryInvalid?: boolean;
|
|
6
|
+
invalidQueryTooltip?: PopoverContent;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
queryRunning?: boolean;
|
|
9
|
+
onClick: () => void;
|
|
10
|
+
dataTestId?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const RunQueryButton: React.FC<RunQueryButtonProps>;
|
|
13
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grafana/plugin-ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"repository": "git@github.com:grafana/plugin-ui.git",
|
|
5
5
|
"author": "Grafana Labs",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/src/index.d.ts",
|
|
7
8
|
"scripts": {
|
|
8
9
|
"build": "tsc -p tsconfig.build.json && yarn copy-files",
|
|
9
10
|
"copy-files": "copyfiles -u 1 src/**/*.css dist/",
|
|
@@ -48,7 +49,7 @@
|
|
|
48
49
|
"@testing-library/jest-dom": "^5.11.6",
|
|
49
50
|
"@testing-library/react": "^11.2.2",
|
|
50
51
|
"@testing-library/user-event": "^12.8.3",
|
|
51
|
-
"@types/react": "17.0.
|
|
52
|
+
"@types/react": "17.0.38",
|
|
52
53
|
"@types/testing-library__jest-dom": "^5.9.5",
|
|
53
54
|
"babel-loader": "^8.2.2",
|
|
54
55
|
"jest-fetch-mock": "^3.0.3",
|