@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,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLSelectRow = 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 SelectRow_1 = require("./SelectRow");
9
+ const useSqlChange_1 = require("../utils/useSqlChange");
10
+ function SQLSelectRow({ fields, query, onQueryChange, db }) {
11
+ const { onSqlChange } = (0, useSqlChange_1.useSqlChange)({ query, onQueryChange, db });
12
+ const state = (0, react_use_1.useAsync)(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ const functions = yield db.functions();
14
+ return functions.map((f) => (0, data_1.toOption)(f.name));
15
+ }), [db]);
16
+ return react_1.default.createElement(SelectRow_1.SelectRow, { columns: fields, sql: query.sql, functions: state.value, onSqlChange: onSqlChange });
17
+ }
18
+ exports.SQLSelectRow = SQLSelectRow;
19
+ //# sourceMappingURL=SQLSelectRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLSelectRow.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/visual-query-builder/SQLSelectRow.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,yCAAqC;AAErC,wCAA0D;AAE1D,2CAAwC;AAGxC,wDAAqD;AASrD,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAqB;IAClF,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,2BAAY,EAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG,IAAA,oBAAQ,EAAC,GAAS,EAAE;QAChC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,eAAQ,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC,CAAA,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,OAAO,8BAAC,qBAAS,IAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAI,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,GAAI,CAAC;AAC3G,CAAC;AATD,oCASC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLWhereRow = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const useAsync_1 = tslib_1.__importDefault(require("react-use/lib/useAsync"));
7
+ const WhereRow_1 = require("./WhereRow");
8
+ const useSqlChange_1 = require("../utils/useSqlChange");
9
+ function SQLWhereRow({ query, fields, onQueryChange, db }) {
10
+ const state = (0, useAsync_1.default)(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ return mapFieldsToTypes(fields);
12
+ }), [fields]);
13
+ const { onSqlChange } = (0, useSqlChange_1.useSqlChange)({ query, onQueryChange, db });
14
+ return (react_1.default.createElement(WhereRow_1.WhereRow
15
+ // TODO: fix key that's used to force clean render or SQLWhereRow - otherwise it doesn't render operators correctly
16
+ , {
17
+ // TODO: fix key that's used to force clean render or SQLWhereRow - otherwise it doesn't render operators correctly
18
+ key: JSON.stringify(state.value), config: { fields: state.value || {} }, sql: query.sql, onSqlChange: (val) => {
19
+ onSqlChange(val);
20
+ } }));
21
+ }
22
+ exports.SQLWhereRow = SQLWhereRow;
23
+ // needed for awesome query builder
24
+ function mapFieldsToTypes(columns) {
25
+ const fields = {};
26
+ for (const col of columns) {
27
+ fields[col.value] = {
28
+ type: col.raqbFieldType || 'text',
29
+ valueSources: ['value'],
30
+ mainWidgetProps: { customProps: { icon: col.icon } },
31
+ };
32
+ }
33
+ return fields;
34
+ }
35
+ //# sourceMappingURL=SQLWhereRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLWhereRow.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/visual-query-builder/SQLWhereRow.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,8EAA8C;AAK9C,yCAAsC;AAGtC,wDAAqD;AASrD,SAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAiB;IAC7E,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,GAAS,EAAE;QAChC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAA,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,2BAAY,EAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IAEnE,OAAO,CACL,8BAAC,mBAAQ;IACP,mHAAmH;;QAAnH,mHAAmH;QACnH,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAChC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,EACrC,GAAG,EAAE,KAAK,CAAC,GAAI,EACf,WAAW,EAAE,CAAC,GAAkB,EAAE,EAAE;YAClC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,GACD,CACH,CAAC;AACJ,CAAC;AAlBD,kCAkBC;AAED,mCAAmC;AACnC,SAAS,gBAAgB,CAAC,OAA6B;IACrD,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG;YAClB,IAAI,EAAE,GAAG,CAAC,aAAa,IAAI,MAAM;YACjC,YAAY,EAAE,CAAC,OAAO,CAAC;YACvB,eAAe,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE;SACrD,CAAC;KACH;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectRow = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const css_1 = require("@emotion/css");
6
+ const lodash_1 = require("lodash");
7
+ const react_1 = tslib_1.__importStar(require("react"));
8
+ const data_1 = require("@grafana/data");
9
+ const ui_1 = require("@grafana/ui");
10
+ const EditorField_1 = require("../EditorField");
11
+ const expressions_1 = require("../expressions");
12
+ const sql_utils_1 = require("../utils/sql.utils");
13
+ const Stack_1 = require("../Stack");
14
+ const asteriskValue = { label: '*', value: '*' };
15
+ function SelectRow({ sql, columns, onSqlChange, functions }) {
16
+ var _a;
17
+ const styles = (0, ui_1.useStyles2)(getStyles);
18
+ const columnsWithAsterisk = [asteriskValue, ...(columns || [])];
19
+ const onColumnChange = (0, react_1.useCallback)((item, index) => (column) => {
20
+ var _a, _b;
21
+ let modifiedItem = Object.assign({}, item);
22
+ if (!((_a = item.parameters) === null || _a === void 0 ? void 0 : _a.length)) {
23
+ modifiedItem.parameters = [{ type: expressions_1.QueryEditorExpressionType.FunctionParameter, name: column.value }];
24
+ }
25
+ else {
26
+ modifiedItem.parameters = item.parameters.map((p) => p.type === expressions_1.QueryEditorExpressionType.FunctionParameter ? Object.assign(Object.assign({}, p), { name: column.value }) : p);
27
+ }
28
+ const newSql = Object.assign(Object.assign({}, sql), { columns: (_b = sql.columns) === null || _b === void 0 ? void 0 : _b.map((c, i) => (i === index ? modifiedItem : c)) });
29
+ onSqlChange(newSql);
30
+ }, [onSqlChange, sql]);
31
+ const onAggregationChange = (0, react_1.useCallback)((item, index) => (aggregation) => {
32
+ var _a;
33
+ const newItem = Object.assign(Object.assign({}, item), { name: aggregation === null || aggregation === void 0 ? void 0 : aggregation.value });
34
+ const newSql = Object.assign(Object.assign({}, sql), { columns: (_a = sql.columns) === null || _a === void 0 ? void 0 : _a.map((c, i) => (i === index ? newItem : c)) });
35
+ onSqlChange(newSql);
36
+ }, [onSqlChange, sql]);
37
+ const removeColumn = (0, react_1.useCallback)((index) => () => {
38
+ const clone = [...sql.columns];
39
+ clone.splice(index, 1);
40
+ const newSql = Object.assign(Object.assign({}, sql), { columns: clone });
41
+ onSqlChange(newSql);
42
+ }, [onSqlChange, sql]);
43
+ const addColumn = (0, react_1.useCallback)(() => {
44
+ const newSql = Object.assign(Object.assign({}, sql), { columns: [...sql.columns, (0, sql_utils_1.createFunctionField)()] });
45
+ onSqlChange(newSql);
46
+ }, [onSqlChange, sql]);
47
+ return (react_1.default.createElement(Stack_1.Stack, { gap: 2, alignItems: "end", wrap: true, direction: "column" }, (_a = sql.columns) === null || _a === void 0 ? void 0 :
48
+ _a.map((item, index) => (react_1.default.createElement("div", { key: index },
49
+ react_1.default.createElement(Stack_1.Stack, { gap: 2, alignItems: "end" },
50
+ react_1.default.createElement(EditorField_1.EditorField, { label: "Column", width: 25 },
51
+ react_1.default.createElement(ui_1.Select, { value: getColumnValue(item), options: columnsWithAsterisk, inputId: `select-column-${index}-${(0, lodash_1.uniqueId)()}`, menuShouldPortal: true, allowCustomValue: true, onChange: onColumnChange(item, index) })),
52
+ react_1.default.createElement(EditorField_1.EditorField, { label: "Aggregation", optional: true, width: 25 },
53
+ react_1.default.createElement(ui_1.Select, { value: item.name ? (0, data_1.toOption)(item.name) : null, inputId: `select-aggregation-${index}-${(0, lodash_1.uniqueId)()}`, isClearable: true, menuShouldPortal: true, allowCustomValue: true, options: functions, onChange: onAggregationChange(item, index) })),
54
+ react_1.default.createElement(ui_1.Button, { "aria-label": "Remove", type: "button", icon: "trash-alt", variant: "secondary", size: "md", onClick: removeColumn(index) }))))),
55
+ react_1.default.createElement(ui_1.Button, { type: "button", onClick: addColumn, variant: "secondary", size: "md", icon: "plus", "aria-label": "Add", className: styles.addButton })));
56
+ }
57
+ exports.SelectRow = SelectRow;
58
+ const getStyles = () => {
59
+ return { addButton: (0, css_1.css)({ alignSelf: 'flex-start' }) };
60
+ };
61
+ function getColumnValue({ parameters }) {
62
+ const column = parameters === null || parameters === void 0 ? void 0 : parameters.find((p) => p.type === expressions_1.QueryEditorExpressionType.FunctionParameter);
63
+ if (column === null || column === void 0 ? void 0 : column.name) {
64
+ return (0, data_1.toOption)(column.name);
65
+ }
66
+ return null;
67
+ }
68
+ //# sourceMappingURL=SelectRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectRow.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/visual-query-builder/SelectRow.tsx"],"names":[],"mappings":"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"}
@@ -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/visual-query-builder/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,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VisualEditor = 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 QueryToolbox_1 = require("../query-editor-raw/QueryToolbox");
8
+ const Preview_1 = require("./Preview");
9
+ const SQLGroupByRow_1 = require("./SQLGroupByRow");
10
+ const SQLOrderByRow_1 = require("./SQLOrderByRow");
11
+ const SQLSelectRow_1 = require("./SQLSelectRow");
12
+ const SQLWhereRow_1 = require("./SQLWhereRow");
13
+ const EditorRow_1 = require("./EditorRow");
14
+ const EditorField_1 = require("./EditorField");
15
+ const EditorRows_1 = require("./EditorRows");
16
+ const VisualEditor = ({ query, db, queryRowFilter, onChange, onValidate, range, }) => {
17
+ const state = (0, react_use_1.useAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
18
+ const fields = yield db.fields(query);
19
+ return fields;
20
+ }), [db, query.dataset, query.table]);
21
+ return (react_1.default.createElement(react_1.default.Fragment, null,
22
+ react_1.default.createElement(EditorRows_1.EditorRows, null,
23
+ react_1.default.createElement(EditorRow_1.EditorRow, null,
24
+ react_1.default.createElement(SQLSelectRow_1.SQLSelectRow, { fields: state.value || [], query: query, onQueryChange: onChange, db: db })),
25
+ queryRowFilter.filter && (react_1.default.createElement(EditorRow_1.EditorRow, null,
26
+ react_1.default.createElement(EditorField_1.EditorField, { label: "Filter by column value", optional: true },
27
+ react_1.default.createElement(SQLWhereRow_1.SQLWhereRow, { fields: state.value || [], query: query, onQueryChange: onChange, db: db })))),
28
+ queryRowFilter.group && (react_1.default.createElement(EditorRow_1.EditorRow, null,
29
+ react_1.default.createElement(EditorField_1.EditorField, { label: "Group by column" },
30
+ react_1.default.createElement(SQLGroupByRow_1.SQLGroupByRow, { fields: state.value || [], query: query, onQueryChange: onChange, db: db })))),
31
+ queryRowFilter.order && (react_1.default.createElement(EditorRow_1.EditorRow, null,
32
+ react_1.default.createElement(SQLOrderByRow_1.SQLOrderByRow, { fields: state.value || [], query: query, onQueryChange: onChange, db: db }))),
33
+ queryRowFilter.preview && query.rawSql && (react_1.default.createElement(EditorRow_1.EditorRow, null,
34
+ react_1.default.createElement(Preview_1.Preview, { rawSql: query.rawSql })))),
35
+ react_1.default.createElement(QueryToolbox_1.QueryToolbox, { db: db, query: query, onValidate: onValidate, range: range })));
36
+ };
37
+ exports.VisualEditor = VisualEditor;
38
+ //# sourceMappingURL=VisualEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisualEditor.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/visual-query-builder/VisualEditor.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,yCAAqC;AAGrC,mEAAgE;AAEhE,uCAAoC;AACpC,mDAAgD;AAChD,mDAAgD;AAChD,iDAA8C;AAC9C,+CAA4C;AAG5C,2CAAwC;AACxC,+CAA4C;AAC5C,6CAAyC;AAWlC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,EACL,EAAE,EACF,cAAc,EACd,QAAQ,EACR,UAAU,EACV,KAAK,GACN,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,IAAA,oBAAQ,EAAC,GAAS,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAA,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAErC,OAAO,CACL;QACE,8BAAC,uBAAU;YACT,8BAAC,qBAAS;gBACR,8BAAC,2BAAY,IAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAI,CAChF;YACX,cAAc,CAAC,MAAM,IAAI,CACxB,8BAAC,qBAAS;gBACR,8BAAC,yBAAW,IAAC,KAAK,EAAC,wBAAwB,EAAC,QAAQ;oBAClD,8BAAC,yBAAW,IAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAI,CAC7E,CACJ,CACb;YACA,cAAc,CAAC,KAAK,IAAI,CACvB,8BAAC,qBAAS;gBACR,8BAAC,yBAAW,IAAC,KAAK,EAAC,iBAAiB;oBAClC,8BAAC,6BAAa,IAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAI,CAC/E,CACJ,CACb;YACA,cAAc,CAAC,KAAK,IAAI,CACvB,8BAAC,qBAAS;gBACR,8BAAC,6BAAa,IAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAI,CACjF,CACb;YACA,cAAc,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CACzC,8BAAC,qBAAS;gBACR,8BAAC,iBAAO,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,CACvB,CACb,CACU;QACb,8BAAC,2BAAY,IAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAI,CAC3E,CACJ,CAAC;AACJ,CAAC,CAAC;AA/CW,QAAA,YAAY,gBA+CvB"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhereRow = 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_awesome_query_builder_1 = require("react-awesome-query-builder");
8
+ const AwesomeQueryBuilder_1 = require("./AwesomeQueryBuilder");
9
+ function WhereRow({ sql, config, onSqlChange }) {
10
+ const [tree, setTree] = (0, react_1.useState)();
11
+ const configWithDefaults = (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, AwesomeQueryBuilder_1.raqbConfig), config)), [config]);
12
+ (0, react_1.useEffect)(() => {
13
+ var _a;
14
+ // Set the initial tree
15
+ if (!tree) {
16
+ const initTree = react_awesome_query_builder_1.Utils.checkTree(react_awesome_query_builder_1.Utils.loadTree((_a = sql.whereJsonTree) !== null && _a !== void 0 ? _a : AwesomeQueryBuilder_1.emptyInitTree), configWithDefaults);
17
+ setTree(initTree);
18
+ }
19
+ }, [configWithDefaults, sql.whereJsonTree, tree]);
20
+ (0, react_1.useEffect)(() => {
21
+ if (!sql.whereJsonTree) {
22
+ setTree(react_awesome_query_builder_1.Utils.checkTree(react_awesome_query_builder_1.Utils.loadTree(AwesomeQueryBuilder_1.emptyInitTree), configWithDefaults));
23
+ }
24
+ }, [configWithDefaults, sql.whereJsonTree]);
25
+ const onTreeChange = (0, react_1.useCallback)((changedTree, config) => {
26
+ setTree(changedTree);
27
+ const newSql = Object.assign(Object.assign({}, sql), { whereJsonTree: react_awesome_query_builder_1.Utils.getTree(changedTree), whereString: react_awesome_query_builder_1.Utils.sqlFormat(changedTree, config) });
28
+ onSqlChange(newSql);
29
+ }, [onSqlChange, sql]);
30
+ if (!tree) {
31
+ return null;
32
+ }
33
+ return (react_1.default.createElement(react_awesome_query_builder_1.Query, Object.assign({}, configWithDefaults, { value: tree, onChange: onTreeChange, renderBuilder: (props) => react_1.default.createElement(react_awesome_query_builder_1.Builder, Object.assign({}, props)) })));
34
+ }
35
+ exports.WhereRow = WhereRow;
36
+ function flex(direction) {
37
+ return `
38
+ display: flex;
39
+ gap: 8px;
40
+ flex-direction: ${direction};`;
41
+ }
42
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
43
+ (0, css_1.injectGlobal) `
44
+ .group--header {
45
+ ${flex('row')}
46
+ }
47
+
48
+ .group-or-rule {
49
+ ${flex('column')}
50
+ .rule {
51
+ flex-direction: row;
52
+ }
53
+ }
54
+
55
+ .rule--body {
56
+ ${flex('row')}
57
+ }
58
+
59
+ .group--children {
60
+ ${flex('column')}
61
+ }
62
+
63
+ .group--conjunctions:empty {
64
+ display: none;
65
+ }
66
+ `;
67
+ //# sourceMappingURL=WhereRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhereRow.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/visual-query-builder/WhereRow.tsx"],"names":[],"mappings":";;;;AAAA,sCAA4C;AAC5C,uDAAyE;AACzE,6EAA2F;AAE3F,+DAAkE;AAQlE,SAAgB,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAA2B;IAC5E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,GAAiB,CAAC;IAClD,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,iCAAM,gCAAU,GAAK,MAAM,EAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnF,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACb,uBAAuB;QACvB,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,mCAAK,CAAC,SAAS,CAAC,mCAAK,CAAC,QAAQ,CAAC,MAAA,GAAG,CAAC,aAAa,mCAAI,mCAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACzG,OAAO,CAAC,QAAQ,CAAC,CAAC;SACnB;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAElD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;YACtB,OAAO,CAAC,mCAAK,CAAC,SAAS,CAAC,mCAAK,CAAC,QAAQ,CAAC,mCAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;SAC7E;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,IAAA,mBAAW,EAC9B,CAAC,WAA0B,EAAE,MAAc,EAAE,EAAE;QAC7C,OAAO,CAAC,WAAW,CAAC,CAAC;QACrB,MAAM,MAAM,mCACP,GAAG,KACN,aAAa,EAAE,mCAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EACzC,WAAW,EAAE,mCAAK,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,GAClD,CAAC;QAEF,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,8BAAC,mCAAK,oBACA,kBAAkB,IACtB,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,8BAAC,qCAAO,oBAAK,KAAK,EAAI,IAChD,CACH,CAAC;AACJ,CAAC;AA5CD,4BA4CC;AAED,SAAS,IAAI,CAAC,SAAiB;IAC7B,OAAO;;;sBAGa,SAAS,GAAG,CAAC;AACnC,CAAC;AAED,oEAAoE;AACpE,IAAA,kBAAY,EAAA;;MAEN,IAAI,CAAC,KAAK,CAAC;;;;MAIX,IAAI,CAAC,QAAQ,CAAC;;;;;;;MAOd,IAAI,CAAC,KAAK,CAAC;;;;MAIX,IAAI,CAAC,QAAQ,CAAC;;;;;;CAMnB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GroupByRow = void 0;
4
+ var GroupByRow_1 = require("./GroupByRow");
5
+ Object.defineProperty(exports, "GroupByRow", { enumerable: true, get: function () { return GroupByRow_1.GroupByRow; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/QueryEditor/visual-query-builder/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryEditorRow = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ ;
7
+ const QueryEditorRow = (props) => {
8
+ var _a, _b;
9
+ const className = (_a = props.className) !== null && _a !== void 0 ? _a : 'width-8';
10
+ const noFillEnd = (_b = props.noFillEnd) !== null && _b !== void 0 ? _b : false;
11
+ return (react_1.default.createElement("div", { className: 'gf-form' },
12
+ props.label && (react_1.default.createElement("label", { className: `gf-form-label query-keyword ${className}` }, props.label)),
13
+ props.children,
14
+ react_1.default.createElement("div", { className: 'gf-form--grow' }, noFillEnd || (react_1.default.createElement("div", { className: 'gf-form-label gf-form-label--grow' })))));
15
+ };
16
+ exports.QueryEditorRow = QueryEditorRow;
17
+ //# sourceMappingURL=QueryEditorRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryEditorRow.js","sourceRoot":"","sources":["../../../src/components/QueryEditorRow/QueryEditorRow.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAOzB,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;;IAC3D,MAAM,SAAS,GAAW,MAAA,KAAK,CAAC,SAAS,mCAAI,SAAS,CAAC;IACvD,MAAM,SAAS,GAAY,MAAA,KAAK,CAAC,SAAS,mCAAI,KAAK,CAAC;IAEpD,OAAO,CACL,uCAAK,SAAS,EAAC,SAAS;QACrB,KAAK,CAAC,KAAK,IAAI,CACd,yCAAO,SAAS,EAAE,+BAA+B,SAAS,EAAE,IAAG,KAAK,CAAC,KAAK,CAAS,CACpF;QACA,KAAK,CAAC,QAAQ;QAEf,uCAAK,SAAS,EAAE,eAAe,IAC5B,SAAS,IAAI,CACZ,uCAAK,SAAS,EAAE,mCAAmC,GAAQ,CAC5D,CACG,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,cAAc,kBAkBzB"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Segment = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const ui_1 = require("@grafana/ui");
7
+ const useDebounce_1 = require("../../hooks/useDebounce");
8
+ function Segment(props) {
9
+ const { delay, onDebounce, value, options } = props, rest = tslib_1.__rest(props, ["delay", "onDebounce", "value", "options"]);
10
+ const [input, setInput] = react_1.default.useState(value);
11
+ const debouncedSegment = (0, useDebounce_1.useDebounce)(input, delay);
12
+ (0, react_1.useEffect)(() => onDebounce(debouncedSegment), [debouncedSegment]);
13
+ (0, react_1.useEffect)(() => setInput(value), [value]);
14
+ return (react_1.default.createElement(ui_1.Segment, Object.assign({ options: options, onChange: (ev) => setInput(ev.value), value: input }, rest)));
15
+ }
16
+ exports.Segment = Segment;
17
+ ;
18
+ //# sourceMappingURL=Segment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Segment.js","sourceRoot":"","sources":["../../../src/components/Segment/Segment.tsx"],"names":[],"mappings":";;;;AAAA,uDAAyC;AACzC,oCAAwD;AAGxD,yDAAsD;AAQtD,SAAgB,OAAO,CAAK,KAAsB;IAChD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,KAAc,KAAK,EAAd,IAAI,kBAAK,KAAK,EAAtD,2CAA8C,CAAQ,CAAC;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,gBAAgB,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEnD,IAAA,iBAAS,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAClE,IAAA,iBAAS,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1C,OAAO,CACL,8BAAC,YAAc,kBACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,EAAsB,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAM,CAAC,EACzD,KAAK,EAAE,KAAK,IACR,IAAI,EACR,CACH,CAAC;AACJ,CAAC;AAjBD,0BAiBC;AAAA,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
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;
4
+ const tslib_1 = require("tslib");
5
+ var AsyncButtonCascader_1 = require("./AsyncButtonCascader/AsyncButtonCascader");
6
+ Object.defineProperty(exports, "AsyncButtonCascader", { enumerable: true, get: function () { return AsyncButtonCascader_1.AsyncButtonCascader; } });
7
+ var QueryEditorRow_1 = require("./QueryEditorRow/QueryEditorRow");
8
+ Object.defineProperty(exports, "QueryEditorRow", { enumerable: true, get: function () { return QueryEditorRow_1.QueryEditorRow; } });
9
+ var DebounceInput_1 = require("./DebounceInput/DebounceInput");
10
+ Object.defineProperty(exports, "DebounceInput", { enumerable: true, get: function () { return DebounceInput_1.DebounceInput; } });
11
+ var Segment_1 = require("./Segment/Segment");
12
+ Object.defineProperty(exports, "Segment", { enumerable: true, get: function () { return Segment_1.Segment; } });
13
+ var DatePicker_1 = require("./DatePicker/DatePicker");
14
+ Object.defineProperty(exports, "DatePicker", { enumerable: true, get: function () { return DatePicker_1.DatePicker; } });
15
+ var DatePickerWithInput_1 = require("./DatePickerWithInput/DatePickerWithInput");
16
+ Object.defineProperty(exports, "DatePickerWithInput", { enumerable: true, get: function () { return DatePickerWithInput_1.DatePickerWithInput; } });
17
+ Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return DatePickerWithInput_1.formatDate; } });
18
+ tslib_1.__exportStar(require("./DataSourcePicker/DataSourcePicker"), exports);
19
+ tslib_1.__exportStar(require("./DataLinks"), exports);
20
+ tslib_1.__exportStar(require("./Cascader/Cascader"), exports);
21
+ var ui_1 = require("@grafana/ui");
22
+ Object.defineProperty(exports, "InlineSwitch", { enumerable: true, get: function () { return ui_1.InlineSwitch; } });
23
+ Object.defineProperty(exports, "CertificationKey", { enumerable: true, get: function () { return ui_1.CertificationKey; } });
24
+ tslib_1.__exportStar(require("./QueryEditor"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSearchFilterScopedVar = exports.containsSearchFilter = exports.SEARCH_FILTER_VARIABLE = exports.SqlDatasource = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const rxjs_1 = require("rxjs");
6
+ const operators_1 = require("rxjs/operators");
7
+ const data_1 = require("@grafana/data");
8
+ const runtime_1 = require("@grafana/runtime");
9
+ const constants_1 = require("./constants");
10
+ // import { toTestingStatus } from '@grafana/runtime/utils/queryResponse';
11
+ const types_1 = require("../components/QueryEditor/types");
12
+ class SqlDatasource extends runtime_1.DataSourceWithBackend {
13
+ constructor(instanceSettings, templateSrv = (0, runtime_1.getTemplateSrv)()) {
14
+ super(instanceSettings);
15
+ this.templateSrv = templateSrv;
16
+ this.annotations = {};
17
+ this.interpolateVariable = (value, variable) => {
18
+ if (typeof value === 'string') {
19
+ if (variable.multi || variable.includeAll) {
20
+ const result = this.getQueryModel().quoteLiteral(value);
21
+ return result;
22
+ }
23
+ else {
24
+ return value;
25
+ }
26
+ }
27
+ if (typeof value === 'number') {
28
+ return value;
29
+ }
30
+ if (Array.isArray(value)) {
31
+ const quotedValues = value.map((v) => this.getQueryModel().quoteLiteral(v));
32
+ return quotedValues.join(',');
33
+ }
34
+ return value;
35
+ };
36
+ this.name = instanceSettings.name;
37
+ this.id = instanceSettings.id;
38
+ const settingsData = instanceSettings.jsonData || {};
39
+ this.interval = settingsData.timeInterval || '1m';
40
+ this.db = this.getDB();
41
+ }
42
+ interpolateVariablesInQueries(queries, scopedVars) {
43
+ let expandedQueries = queries;
44
+ if (queries && queries.length > 0) {
45
+ expandedQueries = queries.map((query) => {
46
+ const expandedQuery = Object.assign(Object.assign({}, query), { datasource: this.getRef(), rawSql: this.templateSrv.replace(query.rawSql, scopedVars, this.interpolateVariable), rawQuery: true });
47
+ return expandedQuery;
48
+ });
49
+ }
50
+ return expandedQueries;
51
+ }
52
+ filterQuery(query) {
53
+ return !query.hide;
54
+ }
55
+ applyTemplateVariables(target, scopedVars) {
56
+ const queryModel = this.getQueryModel(target, this.templateSrv, scopedVars);
57
+ const rawSql = this.clean(queryModel.interpolate());
58
+ return {
59
+ refId: target.refId,
60
+ datasource: this.getRef(),
61
+ rawSql,
62
+ format: target.format,
63
+ };
64
+ }
65
+ clean(value) {
66
+ return value.replace(/''/g, "'");
67
+ }
68
+ metricFindQuery(query, optionalOptions) {
69
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
70
+ const rawSql = this.templateSrv.replace(query, (0, exports.getSearchFilterScopedVar)({ query, wildcardChar: '%', options: optionalOptions }), this.interpolateVariable);
71
+ const interpolatedQuery = {
72
+ refId: 'tempvar',
73
+ datasource: this.getRef(),
74
+ rawSql,
75
+ format: types_1.QueryFormat.Table,
76
+ };
77
+ const response = yield this.runMetaQuery(interpolatedQuery, optionalOptions);
78
+ return this.getResponseParser().transformMetricFindResponse(response);
79
+ });
80
+ }
81
+ runSql(query, options) {
82
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
83
+ const frame = yield this.runMetaQuery({ rawSql: query, format: types_1.QueryFormat.Table, refId: options === null || options === void 0 ? void 0 : options.refId }, options);
84
+ return new data_1.DataFrameView(frame);
85
+ });
86
+ }
87
+ runMetaQuery(request, options) {
88
+ var _a, _b;
89
+ const refId = request.refId || 'meta';
90
+ const queries = [Object.assign(Object.assign({}, request), { datasource: request.datasource || this.getRef(), refId })];
91
+ return (0, rxjs_1.lastValueFrom)((0, runtime_1.getBackendSrv)()
92
+ .fetch({
93
+ url: '/api/ds/query',
94
+ method: 'POST',
95
+ data: {
96
+ from: (_a = options === null || options === void 0 ? void 0 : options.range) === null || _a === void 0 ? void 0 : _a.from.valueOf().toString(),
97
+ to: (_b = options === null || options === void 0 ? void 0 : options.range) === null || _b === void 0 ? void 0 : _b.to.valueOf().toString(),
98
+ queries,
99
+ },
100
+ requestId: refId,
101
+ })
102
+ .pipe((0, operators_1.map)((res) => {
103
+ const rsp = (0, runtime_1.toDataQueryResponse)(res, queries);
104
+ return rsp.data[0];
105
+ })));
106
+ }
107
+ testDatasource() {
108
+ return (0, rxjs_1.lastValueFrom)((0, runtime_1.getBackendSrv)()
109
+ .fetch({
110
+ url: '/api/ds/query',
111
+ method: 'POST',
112
+ data: {
113
+ from: '5m',
114
+ to: 'now',
115
+ queries: [
116
+ {
117
+ refId: 'A',
118
+ intervalMs: 1,
119
+ maxDataPoints: 1,
120
+ datasource: this.getRef(),
121
+ datasourceId: this.id,
122
+ rawSql: 'SELECT 1',
123
+ format: 'table',
124
+ },
125
+ ],
126
+ },
127
+ })
128
+ .pipe((0, operators_1.map)(() => ({ status: 'success', message: 'Database Connection OK' })), (0, operators_1.catchError)((err) => {
129
+ // return of(toTestingStatus(err));
130
+ return (0, rxjs_1.of)(err);
131
+ })));
132
+ }
133
+ targetContainsTemplate(target) {
134
+ let queryWithoutMacros = target.rawSql;
135
+ constants_1.MACRO_NAMES.forEach((value) => {
136
+ queryWithoutMacros = (queryWithoutMacros === null || queryWithoutMacros === void 0 ? void 0 : queryWithoutMacros.replace(value, '')) || '';
137
+ });
138
+ return this.templateSrv.containsTemplate(queryWithoutMacros);
139
+ }
140
+ }
141
+ exports.SqlDatasource = SqlDatasource;
142
+ exports.SEARCH_FILTER_VARIABLE = '__searchFilter';
143
+ const containsSearchFilter = (query) => query && typeof query === 'string' ? query.indexOf(exports.SEARCH_FILTER_VARIABLE) !== -1 : false;
144
+ exports.containsSearchFilter = containsSearchFilter;
145
+ const getSearchFilterScopedVar = (args) => {
146
+ const { query, wildcardChar } = args;
147
+ if (!(0, exports.containsSearchFilter)(query)) {
148
+ return {};
149
+ }
150
+ let { options } = args;
151
+ options = options || { searchFilter: '' };
152
+ const value = options.searchFilter ? `${options.searchFilter}${wildcardChar}` : `${wildcardChar}`;
153
+ return {
154
+ __searchFilter: {
155
+ value,
156
+ text: '',
157
+ },
158
+ };
159
+ };
160
+ exports.getSearchFilterScopedVar = getSearchFilterScopedVar;
161
+ //# sourceMappingURL=SqlDatasource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlDatasource.js","sourceRoot":"","sources":["../../src/datasource/SqlDatasource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MACRO_NAMES = void 0;
4
+ exports.MACRO_NAMES = [
5
+ '$__time',
6
+ '$__timeEpoch',
7
+ '$__timeFilter',
8
+ '$__timeFrom',
9
+ '$__timeTo',
10
+ '$__timeGroup',
11
+ '$__timeGroupAlias',
12
+ '$__unixEpochFilter',
13
+ '$__unixEpochNanoFilter',
14
+ '$__unixEpochNanoFrom',
15
+ '$__unixEpochNanoTo',
16
+ '$__unixEpochGroup',
17
+ '$__unixEpochGroupAlias',
18
+ ];
19
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/datasource/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,SAAS;IACT,cAAc;IACd,eAAe;IACf,aAAa;IACb,WAAW;IACX,cAAc;IACd,mBAAmB;IACnB,oBAAoB;IACpB,wBAAwB;IACxB,sBAAsB;IACtB,oBAAoB;IACpB,mBAAmB;IACnB,wBAAwB;CACzB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDebounce = exports.DEFAULT_DELAY = void 0;
4
+ const react_1 = require("react");
5
+ exports.DEFAULT_DELAY = 275;
6
+ const useDebounce = (value, delay = exports.DEFAULT_DELAY) => {
7
+ const [debouncedValue, setDebouncedValue] = (0, react_1.useState)(value);
8
+ (0, react_1.useEffect)(() => {
9
+ const handler = setTimeout(() => {
10
+ setDebouncedValue(value);
11
+ }, delay);
12
+ return () => {
13
+ clearTimeout(handler);
14
+ };
15
+ }, [value]);
16
+ return debouncedValue;
17
+ };
18
+ exports.useDebounce = useDebounce;
19
+ //# sourceMappingURL=useDebounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounce.js","sourceRoot":"","sources":["../../src/hooks/useDebounce.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAE/B,QAAA,aAAa,GAAG,GAAG,CAAC;AAE1B,MAAM,WAAW,GAAG,CAAI,KAAQ,EAAE,QAAgB,qBAAa,EAAE,EAAE;IACxE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAdW,QAAA,WAAW,eActB"}