@grafana/plugin-ui 0.1.10

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.
Files changed (249) hide show
  1. package/README.md +45 -0
  2. package/dist/8x/fixtures/index.js +7 -0
  3. package/dist/8x/fixtures/index.js.map +1 -0
  4. package/dist/8x/fixtures/select.js +43 -0
  5. package/dist/8x/fixtures/select.js.map +1 -0
  6. package/dist/8x/index.js +5 -0
  7. package/dist/8x/index.js.map +1 -0
  8. package/dist/components/AsyncButtonCascader/AsyncButtonCascader.js +34 -0
  9. package/dist/components/AsyncButtonCascader/AsyncButtonCascader.js.map +1 -0
  10. package/dist/components/Cascader/Cascader.js +6 -0
  11. package/dist/components/Cascader/Cascader.js.map +1 -0
  12. package/dist/components/DataLinks/DataLink.js +79 -0
  13. package/dist/components/DataLinks/DataLink.js.map +1 -0
  14. package/dist/components/DataLinks/DataLinks.js +59 -0
  15. package/dist/components/DataLinks/DataLinks.js.map +1 -0
  16. package/dist/components/DataLinks/index.js +7 -0
  17. package/dist/components/DataLinks/index.js.map +1 -0
  18. package/dist/components/DataLinks/types.js +3 -0
  19. package/dist/components/DataLinks/types.js.map +1 -0
  20. package/dist/components/DataSourcePicker/DataSourcePicker.js +90 -0
  21. package/dist/components/DataSourcePicker/DataSourcePicker.js.map +1 -0
  22. package/dist/components/DatePicker/DatePicker.js +29 -0
  23. package/dist/components/DatePicker/DatePicker.js.map +1 -0
  24. package/dist/components/DatePicker/styles.js +156 -0
  25. package/dist/components/DatePicker/styles.js.map +1 -0
  26. package/dist/components/DatePickerWithInput/DatePickerWithInput.js +19 -0
  27. package/dist/components/DatePickerWithInput/DatePickerWithInput.js.map +1 -0
  28. package/dist/components/DatePickerWithInput/style.css +6 -0
  29. package/dist/components/DebounceInput/DebounceInput.js +17 -0
  30. package/dist/components/DebounceInput/DebounceInput.js.map +1 -0
  31. package/dist/components/Plugins/PluginSignatureBadge.js +65 -0
  32. package/dist/components/Plugins/PluginSignatureBadge.js.map +1 -0
  33. package/dist/components/QueryEditor/AccessoryButton.js +21 -0
  34. package/dist/components/QueryEditor/AccessoryButton.js.map +1 -0
  35. package/dist/components/QueryEditor/ConfirmModal.js +28 -0
  36. package/dist/components/QueryEditor/ConfirmModal.js.map +1 -0
  37. package/dist/components/QueryEditor/DatasetSelector.js +36 -0
  38. package/dist/components/QueryEditor/DatasetSelector.js.map +1 -0
  39. package/dist/components/QueryEditor/EditorField.js +51 -0
  40. package/dist/components/QueryEditor/EditorField.js.map +1 -0
  41. package/dist/components/QueryEditor/EditorFieldGroup.js +11 -0
  42. package/dist/components/QueryEditor/EditorFieldGroup.js.map +1 -0
  43. package/dist/components/QueryEditor/EditorHeader.js +23 -0
  44. package/dist/components/QueryEditor/EditorHeader.js.map +1 -0
  45. package/dist/components/QueryEditor/EditorList.js +28 -0
  46. package/dist/components/QueryEditor/EditorList.js.map +1 -0
  47. package/dist/components/QueryEditor/EditorRow.js +24 -0
  48. package/dist/components/QueryEditor/EditorRow.js.map +1 -0
  49. package/dist/components/QueryEditor/EditorRows.js +11 -0
  50. package/dist/components/QueryEditor/EditorRows.js.map +1 -0
  51. package/dist/components/QueryEditor/EditorSwitch.js +24 -0
  52. package/dist/components/QueryEditor/EditorSwitch.js.map +1 -0
  53. package/dist/components/QueryEditor/ErrorBoundary.js +23 -0
  54. package/dist/components/QueryEditor/ErrorBoundary.js.map +1 -0
  55. package/dist/components/QueryEditor/FlexItem.js +10 -0
  56. package/dist/components/QueryEditor/FlexItem.js.map +1 -0
  57. package/dist/components/QueryEditor/InlineSelect.js +60 -0
  58. package/dist/components/QueryEditor/InlineSelect.js.map +1 -0
  59. package/dist/components/QueryEditor/InputGroup.js +46 -0
  60. package/dist/components/QueryEditor/InputGroup.js.map +1 -0
  61. package/dist/components/QueryEditor/QueryEditor.js +73 -0
  62. package/dist/components/QueryEditor/QueryEditor.js.map +1 -0
  63. package/dist/components/QueryEditor/QueryHeader.js +92 -0
  64. package/dist/components/QueryEditor/QueryHeader.js.map +1 -0
  65. package/dist/components/QueryEditor/Space.js +36 -0
  66. package/dist/components/QueryEditor/Space.js.map +1 -0
  67. package/dist/components/QueryEditor/Stack.js +27 -0
  68. package/dist/components/QueryEditor/Stack.js.map +1 -0
  69. package/dist/components/QueryEditor/TableSelector.js +20 -0
  70. package/dist/components/QueryEditor/TableSelector.js.map +1 -0
  71. package/dist/components/QueryEditor/defaults.js +20 -0
  72. package/dist/components/QueryEditor/defaults.js.map +1 -0
  73. package/dist/components/QueryEditor/expressions.js +18 -0
  74. package/dist/components/QueryEditor/expressions.js.map +1 -0
  75. package/dist/components/QueryEditor/index.js +35 -0
  76. package/dist/components/QueryEditor/index.js.map +1 -0
  77. package/dist/components/QueryEditor/query-editor-raw/QueryEditorRaw.js +21 -0
  78. package/dist/components/QueryEditor/query-editor-raw/QueryEditorRaw.js.map +1 -0
  79. package/dist/components/QueryEditor/query-editor-raw/QueryToolbox.js +59 -0
  80. package/dist/components/QueryEditor/query-editor-raw/QueryToolbox.js.map +1 -0
  81. package/dist/components/QueryEditor/query-editor-raw/QueryValidator.js +79 -0
  82. package/dist/components/QueryEditor/query-editor-raw/QueryValidator.js.map +1 -0
  83. package/dist/components/QueryEditor/query-editor-raw/RawEditor.js +60 -0
  84. package/dist/components/QueryEditor/query-editor-raw/RawEditor.js.map +1 -0
  85. package/dist/components/QueryEditor/types.js +21 -0
  86. package/dist/components/QueryEditor/types.js.map +1 -0
  87. package/dist/components/QueryEditor/utils/formatSQL.js +13 -0
  88. package/dist/components/QueryEditor/utils/formatSQL.js.map +1 -0
  89. package/dist/components/QueryEditor/utils/sql.utils.js +94 -0
  90. package/dist/components/QueryEditor/utils/sql.utils.js.map +1 -0
  91. package/dist/components/QueryEditor/utils/useSqlChange.js +16 -0
  92. package/dist/components/QueryEditor/utils/useSqlChange.js.map +1 -0
  93. package/dist/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js +109 -0
  94. package/dist/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js.map +1 -0
  95. package/dist/components/QueryEditor/visual-query-builder/EditorField.js +51 -0
  96. package/dist/components/QueryEditor/visual-query-builder/EditorField.js.map +1 -0
  97. package/dist/components/QueryEditor/visual-query-builder/EditorRow.js +24 -0
  98. package/dist/components/QueryEditor/visual-query-builder/EditorRow.js.map +1 -0
  99. package/dist/components/QueryEditor/visual-query-builder/EditorRows.js +11 -0
  100. package/dist/components/QueryEditor/visual-query-builder/EditorRows.js.map +1 -0
  101. package/dist/components/QueryEditor/visual-query-builder/GroupByRow.js +33 -0
  102. package/dist/components/QueryEditor/visual-query-builder/GroupByRow.js.map +1 -0
  103. package/dist/components/QueryEditor/visual-query-builder/OrderByRow.js +50 -0
  104. package/dist/components/QueryEditor/visual-query-builder/OrderByRow.js.map +1 -0
  105. package/dist/components/QueryEditor/visual-query-builder/Preview.js +28 -0
  106. package/dist/components/QueryEditor/visual-query-builder/Preview.js.map +1 -0
  107. package/dist/components/QueryEditor/visual-query-builder/SQLGroupByRow.js +13 -0
  108. package/dist/components/QueryEditor/visual-query-builder/SQLGroupByRow.js.map +1 -0
  109. package/dist/components/QueryEditor/visual-query-builder/SQLOrderByRow.js +34 -0
  110. package/dist/components/QueryEditor/visual-query-builder/SQLOrderByRow.js.map +1 -0
  111. package/dist/components/QueryEditor/visual-query-builder/SQLSelectRow.js +19 -0
  112. package/dist/components/QueryEditor/visual-query-builder/SQLSelectRow.js.map +1 -0
  113. package/dist/components/QueryEditor/visual-query-builder/SQLWhereRow.js +35 -0
  114. package/dist/components/QueryEditor/visual-query-builder/SQLWhereRow.js.map +1 -0
  115. package/dist/components/QueryEditor/visual-query-builder/SelectRow.js +68 -0
  116. package/dist/components/QueryEditor/visual-query-builder/SelectRow.js.map +1 -0
  117. package/dist/components/QueryEditor/visual-query-builder/Stack.js +27 -0
  118. package/dist/components/QueryEditor/visual-query-builder/Stack.js.map +1 -0
  119. package/dist/components/QueryEditor/visual-query-builder/VisualEditor.js +38 -0
  120. package/dist/components/QueryEditor/visual-query-builder/VisualEditor.js.map +1 -0
  121. package/dist/components/QueryEditor/visual-query-builder/WhereRow.js +67 -0
  122. package/dist/components/QueryEditor/visual-query-builder/WhereRow.js.map +1 -0
  123. package/dist/components/QueryEditor/visual-query-builder/index.js +6 -0
  124. package/dist/components/QueryEditor/visual-query-builder/index.js.map +1 -0
  125. package/dist/components/QueryEditorRow/QueryEditorRow.js +17 -0
  126. package/dist/components/QueryEditorRow/QueryEditorRow.js.map +1 -0
  127. package/dist/components/Segment/Segment.js +18 -0
  128. package/dist/components/Segment/Segment.js.map +1 -0
  129. package/dist/components/index.js +25 -0
  130. package/dist/components/index.js.map +1 -0
  131. package/dist/datasource/SqlDatasource.js +161 -0
  132. package/dist/datasource/SqlDatasource.js.map +1 -0
  133. package/dist/datasource/constants.js +19 -0
  134. package/dist/datasource/constants.js.map +1 -0
  135. package/dist/hooks/useDebounce.js +19 -0
  136. package/dist/hooks/useDebounce.js.map +1 -0
  137. package/dist/index.js +19 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/src/8x/fixtures/index.d.ts +1 -0
  140. package/dist/src/8x/fixtures/select.d.ts +11 -0
  141. package/dist/src/8x/index.d.ts +1 -0
  142. package/dist/src/components/AsyncButtonCascader/AsyncButtonCascader.d.ts +18 -0
  143. package/dist/src/components/Cascader/Cascader.d.ts +1 -0
  144. package/dist/src/components/DataLinks/DataLink.d.ts +13 -0
  145. package/dist/src/components/DataLinks/DataLinks.d.ts +8 -0
  146. package/dist/src/components/DataLinks/index.d.ts +3 -0
  147. package/dist/src/components/DataLinks/types.d.ts +7 -0
  148. package/dist/src/components/DataSourcePicker/DataSourcePicker.d.ts +34 -0
  149. package/dist/src/components/DatePicker/DatePicker.d.ts +8 -0
  150. package/dist/src/components/DatePicker/styles.d.ts +11 -0
  151. package/dist/src/components/DatePickerWithInput/DatePickerWithInput.d.ts +9 -0
  152. package/dist/src/components/DebounceInput/DebounceInput.d.ts +8 -0
  153. package/dist/src/components/Plugins/PluginSignatureBadge.d.ts +9 -0
  154. package/dist/src/components/QueryEditor/AccessoryButton.d.ts +6 -0
  155. package/dist/src/components/QueryEditor/ConfirmModal.d.ts +9 -0
  156. package/dist/src/components/QueryEditor/DatasetSelector.d.ts +12 -0
  157. package/dist/src/components/QueryEditor/EditorField.d.ts +11 -0
  158. package/dist/src/components/QueryEditor/EditorFieldGroup.d.ts +5 -0
  159. package/dist/src/components/QueryEditor/EditorHeader.d.ts +5 -0
  160. package/dist/src/components/QueryEditor/EditorList.d.ts +8 -0
  161. package/dist/src/components/QueryEditor/EditorRow.d.ts +5 -0
  162. package/dist/src/components/QueryEditor/EditorRows.d.ts +5 -0
  163. package/dist/src/components/QueryEditor/EditorSwitch.d.ts +3 -0
  164. package/dist/src/components/QueryEditor/ErrorBoundary.d.ts +14 -0
  165. package/dist/src/components/QueryEditor/FlexItem.d.ts +7 -0
  166. package/dist/src/components/QueryEditor/InlineSelect.d.ts +7 -0
  167. package/dist/src/components/QueryEditor/InputGroup.d.ts +5 -0
  168. package/dist/src/components/QueryEditor/QueryEditor.d.ts +7 -0
  169. package/dist/src/components/QueryEditor/QueryHeader.d.ts +15 -0
  170. package/dist/src/components/QueryEditor/Space.d.ts +14 -0
  171. package/dist/src/components/QueryEditor/Stack.d.ts +9 -0
  172. package/dist/src/components/QueryEditor/TableSelector.d.ts +12 -0
  173. package/dist/src/components/QueryEditor/defaults.d.ts +3 -0
  174. package/dist/src/components/QueryEditor/expressions.d.ts +50 -0
  175. package/dist/src/components/QueryEditor/index.d.ts +16 -0
  176. package/dist/src/components/QueryEditor/query-editor-raw/QueryEditorRaw.d.ts +15 -0
  177. package/dist/src/components/QueryEditor/query-editor-raw/QueryToolbox.d.ts +11 -0
  178. package/dist/src/components/QueryEditor/query-editor-raw/QueryValidator.d.ts +10 -0
  179. package/dist/src/components/QueryEditor/query-editor-raw/RawEditor.d.ts +10 -0
  180. package/dist/src/components/QueryEditor/types.d.ts +149 -0
  181. package/dist/src/components/QueryEditor/utils/formatSQL.d.ts +1 -0
  182. package/dist/src/components/QueryEditor/utils/sql.utils.d.ts +13 -0
  183. package/dist/src/components/QueryEditor/utils/useSqlChange.d.ts +10 -0
  184. package/dist/src/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.d.ts +7 -0
  185. package/dist/src/components/QueryEditor/visual-query-builder/EditorField.d.ts +11 -0
  186. package/dist/src/components/QueryEditor/visual-query-builder/EditorRow.d.ts +5 -0
  187. package/dist/src/components/QueryEditor/visual-query-builder/EditorRows.d.ts +5 -0
  188. package/dist/src/components/QueryEditor/visual-query-builder/GroupByRow.d.ts +10 -0
  189. package/dist/src/components/QueryEditor/visual-query-builder/OrderByRow.d.ts +11 -0
  190. package/dist/src/components/QueryEditor/visual-query-builder/Preview.d.ts +6 -0
  191. package/dist/src/components/QueryEditor/visual-query-builder/SQLGroupByRow.d.ts +12 -0
  192. package/dist/src/components/QueryEditor/visual-query-builder/SQLOrderByRow.d.ts +12 -0
  193. package/dist/src/components/QueryEditor/visual-query-builder/SQLSelectRow.d.ts +12 -0
  194. package/dist/src/components/QueryEditor/visual-query-builder/SQLWhereRow.d.ts +12 -0
  195. package/dist/src/components/QueryEditor/visual-query-builder/SelectRow.d.ts +11 -0
  196. package/dist/src/components/QueryEditor/visual-query-builder/Stack.d.ts +9 -0
  197. package/dist/src/components/QueryEditor/visual-query-builder/VisualEditor.d.ts +14 -0
  198. package/dist/src/components/QueryEditor/visual-query-builder/WhereRow.d.ts +10 -0
  199. package/dist/src/components/QueryEditor/visual-query-builder/index.d.ts +1 -0
  200. package/dist/src/components/QueryEditorRow/QueryEditorRow.d.ts +8 -0
  201. package/dist/src/components/Segment/Segment.d.ts +8 -0
  202. package/dist/src/components/index.d.ts +11 -0
  203. package/dist/src/datasource/SqlDatasource.d.ts +64 -0
  204. package/dist/src/datasource/constants.d.ts +1 -0
  205. package/dist/src/hooks/useDebounce.d.ts +2 -0
  206. package/dist/src/index.d.ts +11 -0
  207. package/dist/src/test/mocks/DataQuery.d.ts +2 -0
  208. package/dist/src/test/mocks/Datasource.d.ts +4 -0
  209. package/dist/src/test/mocks/Plugin.d.ts +10 -0
  210. package/dist/src/test/mocks/QueryEditorProps.d.ts +4 -0
  211. package/dist/src/test/mocks/TestDatasource.d.ts +6 -0
  212. package/dist/src/test/mocks/index.d.ts +5 -0
  213. package/dist/src/test/mocks/style.d.ts +1 -0
  214. package/dist/src/test/mocks/utils.d.ts +18 -0
  215. package/dist/src/test/setupTests.d.ts +1 -0
  216. package/dist/src/unreleasedComponents/index.d.ts +1 -0
  217. package/dist/src/utils/compatFeatures.d.ts +9 -0
  218. package/dist/src/utils/compatibility.d.ts +12 -0
  219. package/dist/src/utils/index.d.ts +3 -0
  220. package/dist/src/utils/testDatasource.d.ts +19 -0
  221. package/dist/test/mocks/DataQuery.js +14 -0
  222. package/dist/test/mocks/DataQuery.js.map +1 -0
  223. package/dist/test/mocks/Datasource.js +73 -0
  224. package/dist/test/mocks/Datasource.js.map +1 -0
  225. package/dist/test/mocks/Plugin.js +114 -0
  226. package/dist/test/mocks/Plugin.js.map +1 -0
  227. package/dist/test/mocks/QueryEditorProps.js +47 -0
  228. package/dist/test/mocks/QueryEditorProps.js.map +1 -0
  229. package/dist/test/mocks/TestDatasource.js +24 -0
  230. package/dist/test/mocks/TestDatasource.js.map +1 -0
  231. package/dist/test/mocks/index.js +9 -0
  232. package/dist/test/mocks/index.js.map +1 -0
  233. package/dist/test/mocks/style.js +5 -0
  234. package/dist/test/mocks/style.js.map +1 -0
  235. package/dist/test/mocks/utils.js +48 -0
  236. package/dist/test/mocks/utils.js.map +1 -0
  237. package/dist/test/setupTests.js +17 -0
  238. package/dist/test/setupTests.js.map +1 -0
  239. package/dist/unreleasedComponents/index.js +3 -0
  240. package/dist/unreleasedComponents/index.js.map +1 -0
  241. package/dist/utils/compatFeatures.js +20 -0
  242. package/dist/utils/compatFeatures.js.map +1 -0
  243. package/dist/utils/compatibility.js +28 -0
  244. package/dist/utils/compatibility.js.map +1 -0
  245. package/dist/utils/index.js +8 -0
  246. package/dist/utils/index.js.map +1 -0
  247. package/dist/utils/testDatasource.js +30 -0
  248. package/dist/utils/testDatasource.js.map +1 -0
  249. package/package.json +62 -0
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqlQueryEditor = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const react_use_1 = require("react-use");
7
+ const defaults_1 = require("./defaults");
8
+ const types_1 = require("./types");
9
+ const sql_utils_1 = require("./utils/sql.utils");
10
+ const QueryHeader_1 = require("./QueryHeader");
11
+ const RawEditor_1 = require("./query-editor-raw/RawEditor");
12
+ const VisualEditor_1 = require("./visual-query-builder/VisualEditor");
13
+ const Space_1 = require("./Space");
14
+ function SqlQueryEditor({ datasource, query, onChange, onRunQuery, range }) {
15
+ var _a, _b, _c, _d, _e, _f;
16
+ const [isQueryRunnable, setIsQueryRunnable] = (0, react_1.useState)(true);
17
+ const db = datasource.getDB();
18
+ const { loading, error } = (0, react_use_1.useAsync)(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
19
+ return () => {
20
+ if (datasource.getDB(datasource.id).init !== undefined) {
21
+ datasource.getDB(datasource.id).init();
22
+ }
23
+ };
24
+ }), [datasource]);
25
+ const queryWithDefaults = (0, defaults_1.applyQueryDefaults)(query);
26
+ const [queryRowFilter, setQueryRowFilter] = (0, react_1.useState)({
27
+ filter: !!((_a = queryWithDefaults.sql) === null || _a === void 0 ? void 0 : _a.whereString),
28
+ group: !!((_d = (_c = (_b = queryWithDefaults.sql) === null || _b === void 0 ? void 0 : _b.groupBy) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.property.name),
29
+ order: !!((_f = (_e = queryWithDefaults.sql) === null || _e === void 0 ? void 0 : _e.orderBy) === null || _f === void 0 ? void 0 : _f.property.name),
30
+ preview: true,
31
+ });
32
+ const [queryToValidate, setQueryToValidate] = (0, react_1.useState)(queryWithDefaults);
33
+ (0, react_1.useEffect)(() => {
34
+ return () => {
35
+ if (datasource.getDB(datasource.id).dispose !== undefined) {
36
+ datasource.getDB(datasource.id).dispose();
37
+ }
38
+ };
39
+ }, [datasource]);
40
+ const processQuery = (0, react_1.useCallback)((q) => {
41
+ if (isQueryValid(q) && onRunQuery) {
42
+ onRunQuery();
43
+ }
44
+ }, [onRunQuery]);
45
+ const onQueryChange = (q, process = true) => {
46
+ var _a, _b;
47
+ setQueryToValidate(q);
48
+ onChange(q);
49
+ if ((0, sql_utils_1.haveColumns)((_a = q.sql) === null || _a === void 0 ? void 0 : _a.columns) && ((_b = q.sql) === null || _b === void 0 ? void 0 : _b.columns.some((c) => c.name)) && !queryRowFilter.group) {
50
+ setQueryRowFilter(Object.assign(Object.assign({}, queryRowFilter), { group: true }));
51
+ }
52
+ if (process) {
53
+ processQuery(q);
54
+ }
55
+ };
56
+ const onQueryHeaderChange = (q) => {
57
+ setQueryToValidate(q);
58
+ onChange(q);
59
+ };
60
+ if (loading || error) {
61
+ return null;
62
+ }
63
+ return (react_1.default.createElement(react_1.default.Fragment, null,
64
+ react_1.default.createElement(QueryHeader_1.QueryHeader, { db: db, onChange: onQueryHeaderChange, onRunQuery: onRunQuery, onQueryRowChange: setQueryRowFilter, queryRowFilter: queryRowFilter, query: queryWithDefaults, isQueryRunnable: isQueryRunnable, labels: datasource.getDB(datasource.id).labels }),
65
+ react_1.default.createElement(Space_1.Space, { v: 0.5 }),
66
+ queryWithDefaults.editorMode !== types_1.EditorMode.Code && (react_1.default.createElement(VisualEditor_1.VisualEditor, { db: db, query: queryWithDefaults, onChange: (q) => onQueryChange(q, false), queryRowFilter: queryRowFilter, onValidate: setIsQueryRunnable, range: range })),
67
+ queryWithDefaults.editorMode === types_1.EditorMode.Code && (react_1.default.createElement(RawEditor_1.RawEditor, { db: db, query: queryWithDefaults, queryToValidate: queryToValidate, onChange: onQueryChange, onRunQuery: onRunQuery, onValidate: setIsQueryRunnable, range: range }))));
68
+ }
69
+ exports.SqlQueryEditor = SqlQueryEditor;
70
+ const isQueryValid = (q) => {
71
+ return Boolean(q.rawSql);
72
+ };
73
+ //# sourceMappingURL=QueryEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryEditor.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/QueryEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryHeader = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const react_use_1 = require("react-use");
7
+ const ConfirmModal_1 = require("./ConfirmModal");
8
+ const DatasetSelector_1 = require("./DatasetSelector");
9
+ const ErrorBoundary_1 = require("./ErrorBoundary");
10
+ const TableSelector_1 = require("./TableSelector");
11
+ const ui_1 = require("@grafana/ui");
12
+ const EditorField_1 = require("./EditorField");
13
+ const EditorHeader_1 = require("./EditorHeader");
14
+ const EditorRow_1 = require("./EditorRow");
15
+ const FlexItem_1 = require("./FlexItem");
16
+ const InlineSelect_1 = require("./InlineSelect");
17
+ const Space_1 = require("./Space");
18
+ const types_1 = require("./types");
19
+ const sql_utils_1 = require("./utils/sql.utils");
20
+ const editorModes = [
21
+ { label: 'Builder', value: types_1.EditorMode.Builder },
22
+ { label: 'Code', value: types_1.EditorMode.Code },
23
+ ];
24
+ function QueryHeader({ db, query, queryRowFilter, onChange, onRunQuery, onQueryRowChange, isQueryRunnable, labels = new Map([['dataset', 'Dataset']]), }) {
25
+ const { editorMode } = query;
26
+ const [_, copyToClipboard] = (0, react_use_1.useCopyToClipboard)();
27
+ const [showConfirm, setShowConfirm] = (0, react_1.useState)(false);
28
+ const toRawSql = db.toRawSql || sql_utils_1.defaultToRawSql;
29
+ const onEditorModeChange = (0, react_1.useCallback)((newEditorMode) => {
30
+ if (editorMode === types_1.EditorMode.Code) {
31
+ setShowConfirm(true);
32
+ return;
33
+ }
34
+ onChange(Object.assign(Object.assign({}, query), { editorMode: newEditorMode }));
35
+ }, [editorMode, onChange, query]);
36
+ const onFormatChange = (e) => {
37
+ const next = Object.assign(Object.assign({}, query), { format: e.value !== undefined ? e.value : types_1.QueryFormat.Table });
38
+ onChange(next);
39
+ };
40
+ const onDatasetChange = (e) => {
41
+ if (e.value === query.dataset) {
42
+ return;
43
+ }
44
+ const next = Object.assign(Object.assign({}, query), { dataset: e.value, table: undefined, sql: undefined, rawSql: '' });
45
+ onChange(next);
46
+ };
47
+ const onTableChange = (e) => {
48
+ if (e.value === query.table) {
49
+ return;
50
+ }
51
+ const next = Object.assign(Object.assign({}, query), { table: e.value, sql: undefined, rawSql: '' });
52
+ onChange(next);
53
+ };
54
+ return (react_1.default.createElement(react_1.default.Fragment, null,
55
+ react_1.default.createElement(EditorHeader_1.EditorHeader, null,
56
+ react_1.default.createElement(ErrorBoundary_1.ErrorBoundary, { fallBackComponent: react_1.default.createElement(ui_1.InlineField, { label: "Format", labelWidth: 15 },
57
+ react_1.default.createElement(ui_1.Select, { placeholder: "Select format", value: query.format, onChange: onFormatChange, options: types_1.QUERY_FORMAT_OPTIONS })) },
58
+ react_1.default.createElement(InlineSelect_1.InlineSelect, { label: "Format", value: query.format, placeholder: "Select format", menuShouldPortal: true, onChange: onFormatChange, options: types_1.QUERY_FORMAT_OPTIONS })),
59
+ editorMode === types_1.EditorMode.Builder && (react_1.default.createElement(react_1.default.Fragment, null,
60
+ react_1.default.createElement(ui_1.InlineSwitch, { id: "sql-filter", label: "Filter", transparent: true, showLabel: true, value: queryRowFilter.filter, onChange: (ev) => ev.target instanceof HTMLInputElement &&
61
+ onQueryRowChange(Object.assign(Object.assign({}, queryRowFilter), { filter: ev.target.checked })) }),
62
+ react_1.default.createElement(ui_1.InlineSwitch, { id: "sql-group", label: "Group", transparent: true, showLabel: true, value: queryRowFilter.group, onChange: (ev) => ev.target instanceof HTMLInputElement &&
63
+ onQueryRowChange(Object.assign(Object.assign({}, queryRowFilter), { group: ev.target.checked })) }),
64
+ react_1.default.createElement(ui_1.InlineSwitch, { id: "sql-order", label: "Order", transparent: true, showLabel: true, value: queryRowFilter.order, onChange: (ev) => ev.target instanceof HTMLInputElement &&
65
+ onQueryRowChange(Object.assign(Object.assign({}, queryRowFilter), { order: ev.target.checked })) }),
66
+ 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
+ onQueryRowChange(Object.assign(Object.assign({}, queryRowFilter), { preview: ev.target.checked })) }))),
68
+ react_1.default.createElement(FlexItem_1.FlexItem, { grow: 1 }),
69
+ isQueryRunnable ? (react_1.default.createElement(ui_1.Button, { icon: "play", variant: "primary", size: "sm", onClick: () => onRunQuery() }, "Run query")) : (react_1.default.createElement(ui_1.Tooltip, { theme: "error", content: react_1.default.createElement(react_1.default.Fragment, null,
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"))),
74
+ react_1.default.createElement(ui_1.RadioButtonGroup, { options: editorModes, size: "sm", value: editorMode, onChange: onEditorModeChange }),
75
+ react_1.default.createElement(ConfirmModal_1.ConfirmModal, { isOpen: showConfirm, onCopy: () => {
76
+ setShowConfirm(false);
77
+ copyToClipboard(query.rawSql);
78
+ onChange(Object.assign(Object.assign({}, query), { rawSql: toRawSql(query), editorMode: types_1.EditorMode.Builder }));
79
+ }, onDiscard: () => {
80
+ setShowConfirm(false);
81
+ onChange(Object.assign(Object.assign({}, query), { rawSql: toRawSql(query), editorMode: types_1.EditorMode.Builder }));
82
+ }, onCancel: () => setShowConfirm(false) })),
83
+ editorMode === types_1.EditorMode.Builder && (react_1.default.createElement(react_1.default.Fragment, null,
84
+ react_1.default.createElement(Space_1.Space, { v: 0.5 }),
85
+ react_1.default.createElement(EditorRow_1.EditorRow, null,
86
+ react_1.default.createElement(EditorField_1.EditorField, { label: labels.get('dataset') || 'Dataset', width: 25 },
87
+ react_1.default.createElement(DatasetSelector_1.DatasetSelector, { db: db, value: query.dataset === undefined ? null : query.dataset, onChange: onDatasetChange })),
88
+ react_1.default.createElement(EditorField_1.EditorField, { label: "Table", width: 25 },
89
+ react_1.default.createElement(TableSelector_1.TableSelector, { db: db, query: query, value: query.table === undefined ? null : query.table, onChange: onTableChange, applyDefault: true })))))));
90
+ }
91
+ exports.QueryHeader = QueryHeader;
92
+ //# sourceMappingURL=QueryHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryHeader.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/QueryHeader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Space = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const css_1 = require("@emotion/css");
6
+ const react_1 = tslib_1.__importDefault(require("react"));
7
+ const ui_1 = require("@grafana/ui");
8
+ const Space = (props) => {
9
+ const theme = (0, ui_1.useTheme2)();
10
+ const styles = getStyles(theme, props);
11
+ return react_1.default.createElement("span", { className: (0, css_1.cx)(styles.wrapper) });
12
+ };
13
+ exports.Space = Space;
14
+ exports.Space.defaultProps = {
15
+ v: 0,
16
+ h: 0,
17
+ layout: 'block',
18
+ };
19
+ const getStyles = (0, ui_1.stylesFactory)((theme, props) => {
20
+ var _a, _b;
21
+ return ({
22
+ wrapper: (0, css_1.css)([
23
+ {
24
+ paddingRight: theme.spacing((_a = props.h) !== null && _a !== void 0 ? _a : 0),
25
+ paddingBottom: theme.spacing((_b = props.v) !== null && _b !== void 0 ? _b : 0),
26
+ },
27
+ props.layout === 'inline' && {
28
+ display: 'inline-block',
29
+ },
30
+ props.layout === 'block' && {
31
+ display: 'block',
32
+ },
33
+ ]),
34
+ });
35
+ });
36
+ //# sourceMappingURL=Space.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Space.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/Space.tsx"],"names":[],"mappings":";;;;AAAA,sCAAuC;AACvC,0DAA0B;AAG1B,oCAAuD;AAQhD,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,IAAA,cAAS,GAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEvC,OAAO,wCAAM,SAAS,EAAE,IAAA,QAAE,EAAC,MAAM,CAAC,OAAO,CAAC,GAAI,CAAC;AACjD,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB;AAEF,aAAK,CAAC,YAAY,GAAG;IACnB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF,MAAM,SAAS,GAAG,IAAA,kBAAa,EAAC,CAAC,KAAoB,EAAE,KAAiB,EAAE,EAAE;;IAAC,OAAA,CAAC;QAC5E,OAAO,EAAE,IAAA,SAAG,EAAC;YACX;gBACE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,CAAC,mCAAI,CAAC,CAAC;gBACzC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,CAAC,mCAAI,CAAC,CAAC;aAC3C;YACD,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI;gBAC3B,OAAO,EAAE,cAAc;aACxB;YACD,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI;gBAC1B,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;KACH,CAAC,CAAA;CAAA,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Stack = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const css_1 = require("@emotion/css");
6
+ const react_1 = tslib_1.__importDefault(require("react"));
7
+ const ui_1 = require("@grafana/ui");
8
+ const Stack = (_a) => {
9
+ var { children } = _a, props = tslib_1.__rest(_a, ["children"]);
10
+ const theme = (0, ui_1.useTheme2)();
11
+ const styles = useStyles(theme, props);
12
+ return react_1.default.createElement("div", { className: styles.root }, children);
13
+ };
14
+ exports.Stack = Stack;
15
+ const useStyles = (0, ui_1.stylesFactory)((theme, props) => {
16
+ var _a, _b, _c;
17
+ return ({
18
+ root: (0, css_1.css)({
19
+ display: 'flex',
20
+ flexDirection: (_a = props.direction) !== null && _a !== void 0 ? _a : 'row',
21
+ flexWrap: ((_b = props.wrap) !== null && _b !== void 0 ? _b : true) ? 'wrap' : undefined,
22
+ alignItems: props.alignItems,
23
+ gap: theme.spacing((_c = props.gap) !== null && _c !== void 0 ? _c : 2),
24
+ }),
25
+ });
26
+ });
27
+ //# sourceMappingURL=Stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stack.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/Stack.tsx"],"names":[],"mappings":";;;;AAAA,sCAAmC;AACnC,0DAA6C;AAG7C,oCAAuD;AAShD,MAAM,KAAK,GAAyB,CAAC,EAAsB,EAAE,EAAE;QAA1B,EAAE,QAAQ,OAAY,EAAP,KAAK,sBAApB,YAAsB,CAAF;IAC9D,MAAM,KAAK,GAAG,IAAA,cAAS,GAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEvC,OAAO,uCAAK,SAAS,EAAE,MAAM,CAAC,IAAI,IAAG,QAAQ,CAAO,CAAC;AACvD,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB;AAEF,MAAM,SAAS,GAAG,IAAA,kBAAa,EAAC,CAAC,KAAoB,EAAE,KAAiB,EAAE,EAAE;;IAAC,OAAA,CAAC;QAC5E,IAAI,EAAE,IAAA,SAAG,EAAC;YACR,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,MAAA,KAAK,CAAC,SAAS,mCAAI,KAAK;YACvC,QAAQ,EAAE,CAAA,MAAA,KAAK,CAAC,IAAI,mCAAI,IAAI,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACjD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,MAAA,KAAK,CAAC,GAAG,mCAAI,CAAC,CAAC;SACnC,CAAC;KACH,CAAC,CAAA;CAAA,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableSelector = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const react_use_1 = require("react-use");
7
+ const data_1 = require("@grafana/data");
8
+ const ui_1 = require("@grafana/ui");
9
+ const TableSelector = ({ db, query, value, className, onChange }) => {
10
+ const state = (0, react_use_1.useAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
11
+ if (!query.dataset) {
12
+ return [];
13
+ }
14
+ const tables = yield db.tables(query.dataset);
15
+ return tables.map(data_1.toOption);
16
+ }), [query.dataset]);
17
+ return (react_1.default.createElement(ui_1.Select, { className: className, disabled: state.loading, "aria-label": "Table selector", value: value, options: state.value, onChange: onChange, isLoading: state.loading, menuShouldPortal: true, placeholder: state.loading ? 'Loading tables' : 'Select table' }));
18
+ };
19
+ exports.TableSelector = TableSelector;
20
+ //# sourceMappingURL=TableSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSelector.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/TableSelector.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,yCAAqC;AAErC,wCAA0D;AAC1D,oCAAqC;AAW9B,MAAM,aAAa,GAAiC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvG,MAAM,KAAK,GAAG,IAAA,oBAAQ,EAAC,GAAS,EAAE;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClB,OAAO,EAAE,CAAC;SACX;QACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,eAAQ,CAAC,CAAC;IAC9B,CAAC,CAAA,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpB,OAAO,CACL,8BAAC,WAAM,IACL,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,KAAK,CAAC,OAAO,gBACZ,gBAAgB,EAC3B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,KAAK,CAAC,KAAK,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,KAAK,CAAC,OAAO,EACxB,gBAAgB,EAAE,IAAI,EACtB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,GAC9D,CACH,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyQueryDefaults = void 0;
4
+ const types_1 = require("./types");
5
+ const sql_utils_1 = require("./utils/sql.utils");
6
+ function applyQueryDefaults(q) {
7
+ let editorMode = (q === null || q === void 0 ? void 0 : q.editorMode) || types_1.EditorMode.Builder;
8
+ // Switching to code editor if the query was created before visual query builder was introduced.
9
+ if ((q === null || q === void 0 ? void 0 : q.editorMode) === undefined && (q === null || q === void 0 ? void 0 : q.rawSql) !== undefined) {
10
+ editorMode = types_1.EditorMode.Code;
11
+ }
12
+ const result = Object.assign(Object.assign({}, q), { refId: (q === null || q === void 0 ? void 0 : q.refId) || 'A', format: (q === null || q === void 0 ? void 0 : q.format) !== undefined ? q.format : types_1.QueryFormat.Table, rawSql: (q === null || q === void 0 ? void 0 : q.rawSql) || '', editorMode, sql: (q === null || q === void 0 ? void 0 : q.sql) || {
13
+ columns: [(0, sql_utils_1.createFunctionField)()],
14
+ groupBy: [(0, sql_utils_1.setGroupByField)()],
15
+ limit: 50,
16
+ } });
17
+ return result;
18
+ }
19
+ exports.applyQueryDefaults = applyQueryDefaults;
20
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/defaults.ts"],"names":[],"mappings":";;;AAAA,mCAA4D;AAC5D,iDAAyE;AAEzE,SAAgB,kBAAkB,CAAC,CAAY;IAC7C,IAAI,UAAU,GAAG,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,KAAI,kBAAU,CAAC,OAAO,CAAC;IAErD,gGAAgG;IAChG,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,MAAK,SAAS,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,MAAK,SAAS,EAAE;QAC1D,UAAU,GAAG,kBAAU,CAAC,IAAI,CAAC;KAC9B;IAED,MAAM,MAAM,mCACP,CAAC,KACJ,KAAK,EAAE,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,KAAI,GAAG,EACtB,MAAM,EAAE,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,MAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAW,CAAC,KAAK,EAC9D,MAAM,EAAE,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,KAAI,EAAE,EACvB,UAAU,EACV,GAAG,EAAE,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,GAAG,KAAI;YACb,OAAO,EAAE,CAAC,IAAA,+BAAmB,GAAE,CAAC;YAChC,OAAO,EAAE,CAAC,IAAA,2BAAe,GAAE,CAAC;YAC5B,KAAK,EAAE,EAAE;SACV,GACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAtBD,gDAsBC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryEditorExpressionType = exports.QueryEditorPropertyType = void 0;
4
+ var QueryEditorPropertyType;
5
+ (function (QueryEditorPropertyType) {
6
+ QueryEditorPropertyType["String"] = "string";
7
+ })(QueryEditorPropertyType = exports.QueryEditorPropertyType || (exports.QueryEditorPropertyType = {}));
8
+ var QueryEditorExpressionType;
9
+ (function (QueryEditorExpressionType) {
10
+ QueryEditorExpressionType["Property"] = "property";
11
+ QueryEditorExpressionType["Operator"] = "operator";
12
+ QueryEditorExpressionType["Or"] = "or";
13
+ QueryEditorExpressionType["And"] = "and";
14
+ QueryEditorExpressionType["GroupBy"] = "groupBy";
15
+ QueryEditorExpressionType["Function"] = "function";
16
+ QueryEditorExpressionType["FunctionParameter"] = "functionParameter";
17
+ })(QueryEditorExpressionType = exports.QueryEditorExpressionType || (exports.QueryEditorExpressionType = {}));
18
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/expressions.ts"],"names":[],"mappings":";;;AAAA,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,4CAAiB,CAAA;AACnB,CAAC,EAFW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAElC;AA+BD,IAAY,yBAQX;AARD,WAAY,yBAAyB;IACnC,kDAAqB,CAAA;IACrB,kDAAqB,CAAA;IACrB,sCAAS,CAAA;IACT,wCAAW,CAAA;IACX,gDAAmB,CAAA;IACnB,kDAAqB,CAAA;IACrB,oEAAuC,CAAA;AACzC,CAAC,EARW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAQpC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqlQueryEditor = exports.Space = exports.InputGroup = exports.InlineSelect = exports.Stack = exports.FlexItem = exports.EditorSwitch = exports.EditorRows = exports.EditorList = exports.EditorRow = exports.EditorField = exports.EditorHeader = exports.EditorFieldGroup = exports.AccessoryButton = void 0;
4
+ const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./visual-query-builder"), exports);
6
+ var AccessoryButton_1 = require("./AccessoryButton");
7
+ Object.defineProperty(exports, "AccessoryButton", { enumerable: true, get: function () { return AccessoryButton_1.AccessoryButton; } });
8
+ var EditorFieldGroup_1 = require("./EditorFieldGroup");
9
+ Object.defineProperty(exports, "EditorFieldGroup", { enumerable: true, get: function () { return EditorFieldGroup_1.EditorFieldGroup; } });
10
+ var EditorHeader_1 = require("./EditorHeader");
11
+ Object.defineProperty(exports, "EditorHeader", { enumerable: true, get: function () { return EditorHeader_1.EditorHeader; } });
12
+ var EditorField_1 = require("./EditorField");
13
+ Object.defineProperty(exports, "EditorField", { enumerable: true, get: function () { return EditorField_1.EditorField; } });
14
+ var EditorRow_1 = require("./EditorRow");
15
+ Object.defineProperty(exports, "EditorRow", { enumerable: true, get: function () { return EditorRow_1.EditorRow; } });
16
+ var EditorList_1 = require("./EditorList");
17
+ Object.defineProperty(exports, "EditorList", { enumerable: true, get: function () { return EditorList_1.EditorList; } });
18
+ var EditorRows_1 = require("./EditorRows");
19
+ Object.defineProperty(exports, "EditorRows", { enumerable: true, get: function () { return EditorRows_1.EditorRows; } });
20
+ var EditorSwitch_1 = require("./EditorSwitch");
21
+ Object.defineProperty(exports, "EditorSwitch", { enumerable: true, get: function () { return EditorSwitch_1.EditorSwitch; } });
22
+ var FlexItem_1 = require("./FlexItem");
23
+ Object.defineProperty(exports, "FlexItem", { enumerable: true, get: function () { return FlexItem_1.FlexItem; } });
24
+ var Stack_1 = require("./Stack");
25
+ Object.defineProperty(exports, "Stack", { enumerable: true, get: function () { return Stack_1.Stack; } });
26
+ var InlineSelect_1 = require("./InlineSelect");
27
+ Object.defineProperty(exports, "InlineSelect", { enumerable: true, get: function () { return InlineSelect_1.InlineSelect; } });
28
+ var InputGroup_1 = require("./InputGroup");
29
+ Object.defineProperty(exports, "InputGroup", { enumerable: true, get: function () { return InputGroup_1.InputGroup; } });
30
+ var Space_1 = require("./Space");
31
+ Object.defineProperty(exports, "Space", { enumerable: true, get: function () { return Space_1.Space; } });
32
+ var QueryEditor_1 = require("./QueryEditor");
33
+ Object.defineProperty(exports, "SqlQueryEditor", { enumerable: true, get: function () { return QueryEditor_1.SqlQueryEditor; } });
34
+ tslib_1.__exportStar(require("./types"), exports);
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/QueryEditor/index.ts"],"names":[],"mappings":";;;;AAAA,iEAAuC;AAEvC,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AAEvB,kDAAwB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryEditorRaw = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const experimental_1 = require("@grafana/experimental");
7
+ const formatSQL_1 = require("../utils/formatSQL");
8
+ function QueryEditorRaw({ children, onChange, query, width, height, completionProvider }) {
9
+ // We need to pass query via ref to SQLEditor as onChange is executed via monacoEditor.onDidChangeModelContent callback, not onChange property
10
+ const queryRef = (0, react_1.useRef)(query);
11
+ (0, react_1.useEffect)(() => {
12
+ queryRef.current = query;
13
+ }, [query]);
14
+ const onRawQueryChange = (0, react_1.useCallback)((rawSql, processQuery) => {
15
+ const newQuery = Object.assign(Object.assign({}, queryRef.current), { rawQuery: true, rawSql });
16
+ onChange(newQuery, processQuery);
17
+ }, [onChange]);
18
+ return (react_1.default.createElement(experimental_1.SQLEditor, { width: width, height: height, query: query.rawSql, onChange: onRawQueryChange, language: { id: 'sql', completionProvider, formatter: formatSQL_1.formatSQL } }, children));
19
+ }
20
+ exports.QueryEditorRaw = QueryEditorRaw;
21
+ //# sourceMappingURL=QueryEditorRaw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryEditorRaw.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/query-editor-raw/QueryEditorRaw.tsx"],"names":[],"mappings":";;;;AAAA,uDAA8D;AAE9D,wDAA8E;AAG9E,kDAA+C;AAW/C,SAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAS;IACpG,8IAA8I;IAC9I,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAW,KAAK,CAAC,CAAC;IACzC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAClC,CAAC,MAAc,EAAE,YAAqB,EAAE,EAAE;QACxC,MAAM,QAAQ,mCACT,QAAQ,CAAC,OAAO,KACnB,QAAQ,EAAE,IAAI,EACd,MAAM,GACP,CAAC;QACF,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnC,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO,CACL,8BAAC,wBAAS,IACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,MAAO,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,qBAAS,EAAE,IAEhE,QAAQ,CACC,CACb,CAAC;AACJ,CAAC;AA9BD,wCA8BC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryToolbox = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const css_1 = require("@emotion/css");
6
+ const react_1 = tslib_1.__importStar(require("react"));
7
+ const ui_1 = require("@grafana/ui");
8
+ const QueryValidator_1 = require("./QueryValidator");
9
+ function QueryToolbox(_a) {
10
+ var { showTools, onFormatCode, onExpand, isExpanded } = _a, validatorProps = tslib_1.__rest(_a, ["showTools", "onFormatCode", "onExpand", "isExpanded"]);
11
+ const theme = (0, ui_1.useTheme2)();
12
+ const [validationResult, setValidationResult] = (0, react_1.useState)();
13
+ const styles = (0, react_1.useMemo)(() => {
14
+ return {
15
+ container: (0, css_1.css) `
16
+ border: 1px solid ${theme.colors.border.medium};
17
+ border-top: none;
18
+ padding: ${theme.spacing(0.5, 0.5, 0.5, 0.5)};
19
+ display: flex;
20
+ flex-grow: 1;
21
+ justify-content: space-between;
22
+ font-size: ${theme.typography.bodySmall.fontSize};
23
+ `,
24
+ error: (0, css_1.css) `
25
+ color: ${theme.colors.error.text};
26
+ font-size: ${theme.typography.bodySmall.fontSize};
27
+ font-family: ${theme.typography.fontFamilyMonospace};
28
+ `,
29
+ valid: (0, css_1.css) `
30
+ color: ${theme.colors.success.text};
31
+ `,
32
+ info: (0, css_1.css) `
33
+ color: ${theme.colors.text.secondary};
34
+ `,
35
+ hint: (0, css_1.css) `
36
+ color: ${theme.colors.text.disabled};
37
+ white-space: nowrap;
38
+ cursor: help;
39
+ `,
40
+ };
41
+ }, [theme]);
42
+ let style = {};
43
+ if (!showTools && validationResult === undefined) {
44
+ style = { height: 0, padding: 0, visibility: 'hidden' };
45
+ }
46
+ return (react_1.default.createElement("div", { className: styles.container, style: style },
47
+ react_1.default.createElement("div", null, validatorProps.onValidate && (react_1.default.createElement(QueryValidator_1.QueryValidator, Object.assign({}, validatorProps, { onValidate: (result) => {
48
+ setValidationResult(result);
49
+ validatorProps.onValidate(result);
50
+ } })))),
51
+ showTools && (react_1.default.createElement("div", null,
52
+ react_1.default.createElement(ui_1.HorizontalGroup, { spacing: "sm" },
53
+ onFormatCode && (react_1.default.createElement(ui_1.IconButton, { onClick: onFormatCode, name: "brackets-curly", size: "xs", tooltip: "Format query" })),
54
+ onExpand && (react_1.default.createElement(ui_1.IconButton, { onClick: () => onExpand(!isExpanded), name: isExpanded ? 'angle-up' : 'angle-down', size: "xs", tooltip: isExpanded ? 'Collapse editor' : 'Expand editor' })),
55
+ react_1.default.createElement(ui_1.Tooltip, { content: "Hit CTRL/CMD+Return to run query" },
56
+ react_1.default.createElement(ui_1.Icon, { className: styles.hint, name: "keyboard" })))))));
57
+ }
58
+ exports.QueryToolbox = QueryToolbox;
59
+ //# sourceMappingURL=QueryToolbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryToolbox.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/query-editor-raw/QueryToolbox.tsx"],"names":[],"mappings":";;;;AAAA,sCAAmC;AACnC,uDAAiD;AAEjD,oCAAoF;AAEpF,qDAAuE;AAUvE,SAAgB,YAAY,CAAC,EAAuF;QAAvF,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,OAAwC,EAAnC,cAAc,sBAAlE,uDAAoE,CAAF;IAC7F,MAAM,KAAK,GAAG,IAAA,cAAS,GAAE,CAAC;IAC1B,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,GAAW,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1B,OAAO;YACL,SAAS,EAAE,IAAA,SAAG,EAAA;4BACQ,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;;mBAEnC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;;;qBAI/B,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ;OACjD;YACD,KAAK,EAAE,IAAA,SAAG,EAAA;iBACC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;qBACnB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ;uBACjC,KAAK,CAAC,UAAU,CAAC,mBAAmB;OACpD;YACD,KAAK,EAAE,IAAA,SAAG,EAAA;iBACC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;OACnC;YACD,IAAI,EAAE,IAAA,SAAG,EAAA;iBACE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;OACrC;YACD,IAAI,EAAE,IAAA,SAAG,EAAA;iBACE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;;;OAGpC;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,IAAI,CAAC,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE;QAChD,KAAK,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;KACzD;IAED,OAAO,CACL,uCAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK;QAC5C,2CACG,cAAc,CAAC,UAAU,IAAI,CAC5B,8BAAC,+BAAc,oBACT,cAAc,IAClB,UAAU,EAAE,CAAC,MAAe,EAAE,EAAE;gBAC9B,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAC5B,cAAc,CAAC,UAAW,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC,IACD,CACH,CACG;QACL,SAAS,IAAI,CACZ;YACE,8BAAC,oBAAe,IAAC,OAAO,EAAC,IAAI;gBAC1B,YAAY,IAAI,CACf,8BAAC,eAAU,IAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAC,gBAAgB,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,cAAc,GAAG,CAC7F;gBACA,QAAQ,IAAI,CACX,8BAAC,eAAU,IACT,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EACpC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,EAC5C,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,GACzD,CACH;gBACD,8BAAC,YAAO,IAAC,OAAO,EAAC,kCAAkC;oBACjD,8BAAC,SAAI,IAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAC,UAAU,GAAG,CACxC,CACM,CACd,CACP,CACG,CACP,CAAC;AACJ,CAAC;AA3ED,oCA2EC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryValidator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const css_1 = require("@emotion/css");
6
+ const react_1 = tslib_1.__importStar(require("react"));
7
+ const react_use_1 = require("react-use");
8
+ const useDebounce_1 = tslib_1.__importDefault(require("react-use/lib/useDebounce"));
9
+ const data_1 = require("@grafana/data");
10
+ const ui_1 = require("@grafana/ui");
11
+ function QueryValidator({ db, query, onValidate, range }) {
12
+ var _a;
13
+ const [validationResult, setValidationResult] = (0, react_1.useState)();
14
+ const theme = (0, ui_1.useTheme2)();
15
+ const valueFormatter = (0, react_1.useMemo)(() => (0, data_1.getValueFormat)('bytes'), []);
16
+ const styles = (0, react_1.useMemo)(() => {
17
+ return {
18
+ error: (0, css_1.css) `
19
+ color: ${theme.colors.error.text};
20
+ font-size: ${theme.typography.bodySmall.fontSize};
21
+ font-family: ${theme.typography.fontFamilyMonospace};
22
+ `,
23
+ valid: (0, css_1.css) `
24
+ color: ${theme.colors.success.text};
25
+ `,
26
+ info: (0, css_1.css) `
27
+ color: ${theme.colors.text.secondary};
28
+ `,
29
+ };
30
+ }, [theme]);
31
+ const [state, validateQuery] = (0, react_use_1.useAsyncFn)((q) => tslib_1.__awaiter(this, void 0, void 0, function* () {
32
+ var _b;
33
+ if (((_b = q.rawSql) === null || _b === void 0 ? void 0 : _b.trim()) === '') {
34
+ return null;
35
+ }
36
+ return yield db.validateQuery(q, range);
37
+ }), [db]);
38
+ const [,] = (0, useDebounce_1.default)(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ const result = yield validateQuery(query);
40
+ if (result) {
41
+ setValidationResult(result);
42
+ }
43
+ return null;
44
+ }), 1000, [query, validateQuery]);
45
+ (0, react_1.useEffect)(() => {
46
+ if (validationResult === null || validationResult === void 0 ? void 0 : validationResult.isError) {
47
+ onValidate(false);
48
+ }
49
+ if (validationResult === null || validationResult === void 0 ? void 0 : validationResult.isValid) {
50
+ onValidate(true);
51
+ }
52
+ }, [validationResult, onValidate]);
53
+ if (!state.value && !state.loading) {
54
+ return null;
55
+ }
56
+ const error = ((_a = state.value) === null || _a === void 0 ? void 0 : _a.error) ? processErrorMessage(state.value.error) : '';
57
+ return (react_1.default.createElement(react_1.default.Fragment, null,
58
+ state.loading && (react_1.default.createElement("div", { className: styles.info },
59
+ react_1.default.createElement(ui_1.Spinner, { inline: true, size: 12 }),
60
+ " Validating query...")),
61
+ !state.loading && state.value && (react_1.default.createElement(react_1.default.Fragment, null,
62
+ react_1.default.createElement(react_1.default.Fragment, null, state.value.isValid && state.value.statistics && (react_1.default.createElement("div", { className: styles.valid },
63
+ react_1.default.createElement(ui_1.Icon, { name: "check" }),
64
+ " This query will process",
65
+ ' ',
66
+ react_1.default.createElement("strong", null, (0, data_1.formattedValueToString)(valueFormatter(state.value.statistics.TotalBytesProcessed))),
67
+ ' ',
68
+ "when run."))),
69
+ react_1.default.createElement(react_1.default.Fragment, null, state.value.isError && react_1.default.createElement("div", { className: styles.error }, error))))));
70
+ }
71
+ exports.QueryValidator = QueryValidator;
72
+ function processErrorMessage(error) {
73
+ const splat = error.split(':');
74
+ if (splat.length > 2) {
75
+ return splat.slice(2).join(':');
76
+ }
77
+ return error;
78
+ }
79
+ //# sourceMappingURL=QueryValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryValidator.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/query-editor-raw/QueryValidator.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RawEditor = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const css_1 = require("@emotion/css");
6
+ const react_1 = tslib_1.__importStar(require("react"));
7
+ const react_use_1 = require("react-use");
8
+ // @ts-ignore
9
+ const react_virtualized_auto_sizer_1 = tslib_1.__importDefault(require("react-virtualized-auto-sizer"));
10
+ const ui_1 = require("@grafana/ui");
11
+ const QueryEditorRaw_1 = require("./QueryEditorRaw");
12
+ const QueryToolbox_1 = require("./QueryToolbox");
13
+ function RawEditor({ db, query, onChange, onRunQuery, onValidate, queryToValidate, range }) {
14
+ const theme = (0, ui_1.useTheme2)();
15
+ const styles = (0, ui_1.useStyles2)(getStyles);
16
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
17
+ const [toolboxRef, toolboxMeasure] = (0, react_use_1.useMeasure)();
18
+ const [editorRef, editorMeasure] = (0, react_use_1.useMeasure)();
19
+ const completionProvider = (0, react_1.useMemo)(() => db.getSqlCompletionProvider(), [db]);
20
+ const renderQueryEditor = (width, height) => {
21
+ return (react_1.default.createElement(QueryEditorRaw_1.QueryEditorRaw, { completionProvider: completionProvider, query: query, width: width, height: height ? height - toolboxMeasure.height : undefined, onChange: onChange }, ({ formatQuery }) => {
22
+ return (react_1.default.createElement("div", { ref: toolboxRef },
23
+ react_1.default.createElement(QueryToolbox_1.QueryToolbox, { db: db, query: queryToValidate, onValidate: onValidate, onFormatCode: formatQuery, showTools: true, range: range, onExpand: setIsExpanded, isExpanded: isExpanded })));
24
+ }));
25
+ };
26
+ const renderEditor = (standalone = false) => {
27
+ return standalone ? (react_1.default.createElement(react_virtualized_auto_sizer_1.default, null, ({ width, height }) => {
28
+ return renderQueryEditor(width, height);
29
+ })) : (react_1.default.createElement("div", { ref: editorRef }, renderQueryEditor()));
30
+ };
31
+ const renderPlaceholder = () => {
32
+ return (react_1.default.createElement("div", { style: {
33
+ width: editorMeasure.width,
34
+ height: editorMeasure.height,
35
+ background: theme.colors.background.primary,
36
+ display: 'flex',
37
+ alignItems: 'center',
38
+ justifyContent: 'center',
39
+ } }, "Editing in expanded code editor"));
40
+ };
41
+ return (react_1.default.createElement(react_1.default.Fragment, null,
42
+ isExpanded ? renderPlaceholder() : renderEditor(),
43
+ isExpanded && (react_1.default.createElement(ui_1.Modal, { title: `Query ${query.refId}`, closeOnBackdropClick: false, closeOnEscape: false, className: styles.modal, contentClassName: styles.modalContent, isOpen: isExpanded, onDismiss: () => {
44
+ setIsExpanded(false);
45
+ } }, renderEditor(true)))));
46
+ }
47
+ exports.RawEditor = RawEditor;
48
+ function getStyles(theme) {
49
+ return {
50
+ modal: (0, css_1.css) `
51
+ width: 95vw;
52
+ height: 95vh;
53
+ `,
54
+ modalContent: (0, css_1.css) `
55
+ height: 100%;
56
+ padding-top: 0;
57
+ `,
58
+ };
59
+ }
60
+ //# sourceMappingURL=RawEditor.js.map