@grafana/sql 0.0.0 → 13.0.0-23483592685

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 (323) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/README.md +10 -0
  3. package/dist/cjs/ResponseParser.cjs +29 -0
  4. package/dist/cjs/ResponseParser.cjs.map +1 -0
  5. package/dist/cjs/SQLVariableEditor.cjs +86 -0
  6. package/dist/cjs/SQLVariableEditor.cjs.map +1 -0
  7. package/dist/cjs/SQLVariableSupport.cjs +40 -0
  8. package/dist/cjs/SQLVariableSupport.cjs.map +1 -0
  9. package/dist/cjs/SQLVariableUtils.cjs +75 -0
  10. package/dist/cjs/SQLVariableUtils.cjs.map +1 -0
  11. package/dist/cjs/components/ConfirmModal.cjs +56 -0
  12. package/dist/cjs/components/ConfirmModal.cjs.map +1 -0
  13. package/dist/cjs/components/DatasetSelector.cjs +48 -0
  14. package/dist/cjs/components/DatasetSelector.cjs.map +1 -0
  15. package/dist/cjs/components/QueryEditor.cjs +124 -0
  16. package/dist/cjs/components/QueryEditor.cjs.map +1 -0
  17. package/dist/cjs/components/QueryEditorLazy.cjs +44 -0
  18. package/dist/cjs/components/QueryEditorLazy.cjs.map +1 -0
  19. package/dist/cjs/components/QueryHeader.cjs +294 -0
  20. package/dist/cjs/components/QueryHeader.cjs.map +1 -0
  21. package/dist/cjs/components/TableSelector.cjs +41 -0
  22. package/dist/cjs/components/TableSelector.cjs.map +1 -0
  23. package/dist/cjs/components/configuration/ConnectionLimits.cjs +162 -0
  24. package/dist/cjs/components/configuration/ConnectionLimits.cjs.map +1 -0
  25. package/dist/cjs/components/configuration/Divider.cjs +25 -0
  26. package/dist/cjs/components/configuration/Divider.cjs.map +1 -0
  27. package/dist/cjs/components/configuration/MaxLifetimeField.cjs +41 -0
  28. package/dist/cjs/components/configuration/MaxLifetimeField.cjs.map +1 -0
  29. package/dist/cjs/components/configuration/MaxOpenConnectionsField.cjs +53 -0
  30. package/dist/cjs/components/configuration/MaxOpenConnectionsField.cjs.map +1 -0
  31. package/dist/cjs/components/configuration/NumberInput.cjs +37 -0
  32. package/dist/cjs/components/configuration/NumberInput.cjs.map +1 -0
  33. package/dist/cjs/components/configuration/TLSSecretsConfig.cjs +106 -0
  34. package/dist/cjs/components/configuration/TLSSecretsConfig.cjs.map +1 -0
  35. package/dist/cjs/components/configuration/useMigrateDatabaseFields.cjs +52 -0
  36. package/dist/cjs/components/configuration/useMigrateDatabaseFields.cjs.map +1 -0
  37. package/dist/cjs/components/query-editor-raw/QueryEditorRaw.cjs +40 -0
  38. package/dist/cjs/components/query-editor-raw/QueryEditorRaw.cjs.map +1 -0
  39. package/dist/cjs/components/query-editor-raw/QueryToolbox.cjs +108 -0
  40. package/dist/cjs/components/query-editor-raw/QueryToolbox.cjs.map +1 -0
  41. package/dist/cjs/components/query-editor-raw/QueryValidator.cjs +100 -0
  42. package/dist/cjs/components/query-editor-raw/QueryValidator.cjs.map +1 -0
  43. package/dist/cjs/components/query-editor-raw/RawEditor.cjs +116 -0
  44. package/dist/cjs/components/query-editor-raw/RawEditor.cjs.map +1 -0
  45. package/dist/cjs/components/visual-query-builder/AwesomeQueryBuilder.cjs +273 -0
  46. package/dist/cjs/components/visual-query-builder/AwesomeQueryBuilder.cjs.map +1 -0
  47. package/dist/cjs/components/visual-query-builder/GroupByRow.cjs +69 -0
  48. package/dist/cjs/components/visual-query-builder/GroupByRow.cjs.map +1 -0
  49. package/dist/cjs/components/visual-query-builder/OrderByRow.cjs +82 -0
  50. package/dist/cjs/components/visual-query-builder/OrderByRow.cjs.map +1 -0
  51. package/dist/cjs/components/visual-query-builder/Preview.cjs +55 -0
  52. package/dist/cjs/components/visual-query-builder/Preview.cjs.map +1 -0
  53. package/dist/cjs/components/visual-query-builder/SQLGroupByRow.cjs +18 -0
  54. package/dist/cjs/components/visual-query-builder/SQLGroupByRow.cjs.map +1 -0
  55. package/dist/cjs/components/visual-query-builder/SQLOrderByRow.cjs +18 -0
  56. package/dist/cjs/components/visual-query-builder/SQLOrderByRow.cjs.map +1 -0
  57. package/dist/cjs/components/visual-query-builder/SQLWhereRow.cjs +56 -0
  58. package/dist/cjs/components/visual-query-builder/SQLWhereRow.cjs.map +1 -0
  59. package/dist/cjs/components/visual-query-builder/SelectColumn.cjs +30 -0
  60. package/dist/cjs/components/visual-query-builder/SelectColumn.cjs.map +1 -0
  61. package/dist/cjs/components/visual-query-builder/SelectCustomFunctionParameters.cjs +135 -0
  62. package/dist/cjs/components/visual-query-builder/SelectCustomFunctionParameters.cjs.map +1 -0
  63. package/dist/cjs/components/visual-query-builder/SelectFunctionParameters.cjs +142 -0
  64. package/dist/cjs/components/visual-query-builder/SelectFunctionParameters.cjs.map +1 -0
  65. package/dist/cjs/components/visual-query-builder/SelectRow.cjs +184 -0
  66. package/dist/cjs/components/visual-query-builder/SelectRow.cjs.map +1 -0
  67. package/dist/cjs/components/visual-query-builder/VisualEditor.cjs +43 -0
  68. package/dist/cjs/components/visual-query-builder/VisualEditor.cjs.map +1 -0
  69. package/dist/cjs/components/visual-query-builder/WhereRow.cjs +84 -0
  70. package/dist/cjs/components/visual-query-builder/WhereRow.cjs.map +1 -0
  71. package/dist/cjs/constants.cjs +77 -0
  72. package/dist/cjs/constants.cjs.map +1 -0
  73. package/dist/cjs/datasource/SqlDatasource.cjs +188 -0
  74. package/dist/cjs/datasource/SqlDatasource.cjs.map +1 -0
  75. package/dist/cjs/defaults.cjs +32 -0
  76. package/dist/cjs/defaults.cjs.map +1 -0
  77. package/dist/cjs/expressions.cjs +23 -0
  78. package/dist/cjs/expressions.cjs.map +1 -0
  79. package/dist/cjs/index.cjs +48 -0
  80. package/dist/cjs/index.cjs.map +1 -0
  81. package/dist/cjs/loadResources.cjs +49 -0
  82. package/dist/cjs/loadResources.cjs.map +1 -0
  83. package/dist/cjs/locales/cs-CZ/grafana-sql.json.cjs +165 -0
  84. package/dist/cjs/locales/cs-CZ/grafana-sql.json.cjs.map +1 -0
  85. package/dist/cjs/locales/de-DE/grafana-sql.json.cjs +165 -0
  86. package/dist/cjs/locales/de-DE/grafana-sql.json.cjs.map +1 -0
  87. package/dist/cjs/locales/en-US/grafana-sql.json.cjs +165 -0
  88. package/dist/cjs/locales/en-US/grafana-sql.json.cjs.map +1 -0
  89. package/dist/cjs/locales/es-ES/grafana-sql.json.cjs +165 -0
  90. package/dist/cjs/locales/es-ES/grafana-sql.json.cjs.map +1 -0
  91. package/dist/cjs/locales/fr-FR/grafana-sql.json.cjs +165 -0
  92. package/dist/cjs/locales/fr-FR/grafana-sql.json.cjs.map +1 -0
  93. package/dist/cjs/locales/hu-HU/grafana-sql.json.cjs +165 -0
  94. package/dist/cjs/locales/hu-HU/grafana-sql.json.cjs.map +1 -0
  95. package/dist/cjs/locales/id-ID/grafana-sql.json.cjs +165 -0
  96. package/dist/cjs/locales/id-ID/grafana-sql.json.cjs.map +1 -0
  97. package/dist/cjs/locales/it-IT/grafana-sql.json.cjs +165 -0
  98. package/dist/cjs/locales/it-IT/grafana-sql.json.cjs.map +1 -0
  99. package/dist/cjs/locales/ja-JP/grafana-sql.json.cjs +165 -0
  100. package/dist/cjs/locales/ja-JP/grafana-sql.json.cjs.map +1 -0
  101. package/dist/cjs/locales/ko-KR/grafana-sql.json.cjs +165 -0
  102. package/dist/cjs/locales/ko-KR/grafana-sql.json.cjs.map +1 -0
  103. package/dist/cjs/locales/nl-NL/grafana-sql.json.cjs +165 -0
  104. package/dist/cjs/locales/nl-NL/grafana-sql.json.cjs.map +1 -0
  105. package/dist/cjs/locales/pl-PL/grafana-sql.json.cjs +165 -0
  106. package/dist/cjs/locales/pl-PL/grafana-sql.json.cjs.map +1 -0
  107. package/dist/cjs/locales/pt-BR/grafana-sql.json.cjs +165 -0
  108. package/dist/cjs/locales/pt-BR/grafana-sql.json.cjs.map +1 -0
  109. package/dist/cjs/locales/pt-PT/grafana-sql.json.cjs +165 -0
  110. package/dist/cjs/locales/pt-PT/grafana-sql.json.cjs.map +1 -0
  111. package/dist/cjs/locales/ru-RU/grafana-sql.json.cjs +165 -0
  112. package/dist/cjs/locales/ru-RU/grafana-sql.json.cjs.map +1 -0
  113. package/dist/cjs/locales/sv-SE/grafana-sql.json.cjs +165 -0
  114. package/dist/cjs/locales/sv-SE/grafana-sql.json.cjs.map +1 -0
  115. package/dist/cjs/locales/tr-TR/grafana-sql.json.cjs +165 -0
  116. package/dist/cjs/locales/tr-TR/grafana-sql.json.cjs.map +1 -0
  117. package/dist/cjs/locales/zh-Hans/grafana-sql.json.cjs +165 -0
  118. package/dist/cjs/locales/zh-Hans/grafana-sql.json.cjs.map +1 -0
  119. package/dist/cjs/locales/zh-Hant/grafana-sql.json.cjs +165 -0
  120. package/dist/cjs/locales/zh-Hant/grafana-sql.json.cjs.map +1 -0
  121. package/dist/cjs/types.cjs +24 -0
  122. package/dist/cjs/types.cjs.map +1 -0
  123. package/dist/cjs/utils/formatSQL.cjs +19 -0
  124. package/dist/cjs/utils/formatSQL.cjs.map +1 -0
  125. package/dist/cjs/utils/getColumnsWithIndices.cjs +33 -0
  126. package/dist/cjs/utils/getColumnsWithIndices.cjs.map +1 -0
  127. package/dist/cjs/utils/logging.cjs +11 -0
  128. package/dist/cjs/utils/logging.cjs.map +1 -0
  129. package/dist/cjs/utils/migration.cjs +24 -0
  130. package/dist/cjs/utils/migration.cjs.map +1 -0
  131. package/dist/cjs/utils/sql.utils.cjs +75 -0
  132. package/dist/cjs/utils/sql.utils.cjs.map +1 -0
  133. package/dist/cjs/utils/testHelpers.cjs +31 -0
  134. package/dist/cjs/utils/testHelpers.cjs.map +1 -0
  135. package/dist/cjs/utils/useSqlChange.cjs +22 -0
  136. package/dist/cjs/utils/useSqlChange.cjs.map +1 -0
  137. package/dist/esm/ResponseParser.mjs +25 -0
  138. package/dist/esm/ResponseParser.mjs.map +1 -0
  139. package/dist/esm/SQLVariableEditor.mjs +82 -0
  140. package/dist/esm/SQLVariableEditor.mjs.map +1 -0
  141. package/dist/esm/SQLVariableSupport.mjs +36 -0
  142. package/dist/esm/SQLVariableSupport.mjs.map +1 -0
  143. package/dist/esm/SQLVariableUtils.mjs +68 -0
  144. package/dist/esm/SQLVariableUtils.mjs.map +1 -0
  145. package/dist/esm/components/ConfirmModal.mjs +52 -0
  146. package/dist/esm/components/ConfirmModal.mjs.map +1 -0
  147. package/dist/esm/components/DatasetSelector.mjs +44 -0
  148. package/dist/esm/components/DatasetSelector.mjs.map +1 -0
  149. package/dist/esm/components/QueryEditor.mjs +122 -0
  150. package/dist/esm/components/QueryEditor.mjs.map +1 -0
  151. package/dist/esm/components/QueryEditorLazy.mjs +38 -0
  152. package/dist/esm/components/QueryEditorLazy.mjs.map +1 -0
  153. package/dist/esm/components/QueryHeader.mjs +290 -0
  154. package/dist/esm/components/QueryHeader.mjs.map +1 -0
  155. package/dist/esm/components/TableSelector.mjs +37 -0
  156. package/dist/esm/components/TableSelector.mjs.map +1 -0
  157. package/dist/esm/components/configuration/ConnectionLimits.mjs +158 -0
  158. package/dist/esm/components/configuration/ConnectionLimits.mjs.map +1 -0
  159. package/dist/esm/components/configuration/Divider.mjs +21 -0
  160. package/dist/esm/components/configuration/Divider.mjs.map +1 -0
  161. package/dist/esm/components/configuration/MaxLifetimeField.mjs +37 -0
  162. package/dist/esm/components/configuration/MaxLifetimeField.mjs.map +1 -0
  163. package/dist/esm/components/configuration/MaxOpenConnectionsField.mjs +49 -0
  164. package/dist/esm/components/configuration/MaxOpenConnectionsField.mjs.map +1 -0
  165. package/dist/esm/components/configuration/NumberInput.mjs +33 -0
  166. package/dist/esm/components/configuration/NumberInput.mjs.map +1 -0
  167. package/dist/esm/components/configuration/TLSSecretsConfig.mjs +102 -0
  168. package/dist/esm/components/configuration/TLSSecretsConfig.mjs.map +1 -0
  169. package/dist/esm/components/configuration/useMigrateDatabaseFields.mjs +48 -0
  170. package/dist/esm/components/configuration/useMigrateDatabaseFields.mjs.map +1 -0
  171. package/dist/esm/components/query-editor-raw/QueryEditorRaw.mjs +36 -0
  172. package/dist/esm/components/query-editor-raw/QueryEditorRaw.mjs.map +1 -0
  173. package/dist/esm/components/query-editor-raw/QueryToolbox.mjs +104 -0
  174. package/dist/esm/components/query-editor-raw/QueryToolbox.mjs.map +1 -0
  175. package/dist/esm/components/query-editor-raw/QueryValidator.mjs +96 -0
  176. package/dist/esm/components/query-editor-raw/QueryValidator.mjs.map +1 -0
  177. package/dist/esm/components/query-editor-raw/RawEditor.mjs +108 -0
  178. package/dist/esm/components/query-editor-raw/RawEditor.mjs.map +1 -0
  179. package/dist/esm/components/visual-query-builder/AwesomeQueryBuilder.mjs +266 -0
  180. package/dist/esm/components/visual-query-builder/AwesomeQueryBuilder.mjs.map +1 -0
  181. package/dist/esm/components/visual-query-builder/GroupByRow.mjs +65 -0
  182. package/dist/esm/components/visual-query-builder/GroupByRow.mjs.map +1 -0
  183. package/dist/esm/components/visual-query-builder/OrderByRow.mjs +78 -0
  184. package/dist/esm/components/visual-query-builder/OrderByRow.mjs.map +1 -0
  185. package/dist/esm/components/visual-query-builder/Preview.mjs +51 -0
  186. package/dist/esm/components/visual-query-builder/Preview.mjs.map +1 -0
  187. package/dist/esm/components/visual-query-builder/SQLGroupByRow.mjs +14 -0
  188. package/dist/esm/components/visual-query-builder/SQLGroupByRow.mjs.map +1 -0
  189. package/dist/esm/components/visual-query-builder/SQLOrderByRow.mjs +14 -0
  190. package/dist/esm/components/visual-query-builder/SQLOrderByRow.mjs.map +1 -0
  191. package/dist/esm/components/visual-query-builder/SQLWhereRow.mjs +51 -0
  192. package/dist/esm/components/visual-query-builder/SQLWhereRow.mjs.map +1 -0
  193. package/dist/esm/components/visual-query-builder/SelectColumn.mjs +26 -0
  194. package/dist/esm/components/visual-query-builder/SelectColumn.mjs.map +1 -0
  195. package/dist/esm/components/visual-query-builder/SelectCustomFunctionParameters.mjs +131 -0
  196. package/dist/esm/components/visual-query-builder/SelectCustomFunctionParameters.mjs.map +1 -0
  197. package/dist/esm/components/visual-query-builder/SelectFunctionParameters.mjs +138 -0
  198. package/dist/esm/components/visual-query-builder/SelectFunctionParameters.mjs.map +1 -0
  199. package/dist/esm/components/visual-query-builder/SelectRow.mjs +180 -0
  200. package/dist/esm/components/visual-query-builder/SelectRow.mjs.map +1 -0
  201. package/dist/esm/components/visual-query-builder/VisualEditor.mjs +39 -0
  202. package/dist/esm/components/visual-query-builder/VisualEditor.mjs.map +1 -0
  203. package/dist/esm/components/visual-query-builder/WhereRow.mjs +80 -0
  204. package/dist/esm/components/visual-query-builder/WhereRow.mjs.map +1 -0
  205. package/dist/esm/constants.mjs +71 -0
  206. package/dist/esm/constants.mjs.map +1 -0
  207. package/dist/esm/datasource/SqlDatasource.mjs +184 -0
  208. package/dist/esm/datasource/SqlDatasource.mjs.map +1 -0
  209. package/dist/esm/defaults.mjs +28 -0
  210. package/dist/esm/defaults.mjs.map +1 -0
  211. package/dist/esm/expressions.mjs +18 -0
  212. package/dist/esm/expressions.mjs.map +1 -0
  213. package/dist/esm/index.mjs +22 -0
  214. package/dist/esm/index.mjs.map +1 -0
  215. package/dist/esm/loadResources.mjs +43 -0
  216. package/dist/esm/loadResources.mjs.map +1 -0
  217. package/dist/esm/locales/cs-CZ/grafana-sql.json.mjs +163 -0
  218. package/dist/esm/locales/cs-CZ/grafana-sql.json.mjs.map +1 -0
  219. package/dist/esm/locales/de-DE/grafana-sql.json.mjs +163 -0
  220. package/dist/esm/locales/de-DE/grafana-sql.json.mjs.map +1 -0
  221. package/dist/esm/locales/en-US/grafana-sql.json.mjs +163 -0
  222. package/dist/esm/locales/en-US/grafana-sql.json.mjs.map +1 -0
  223. package/dist/esm/locales/es-ES/grafana-sql.json.mjs +163 -0
  224. package/dist/esm/locales/es-ES/grafana-sql.json.mjs.map +1 -0
  225. package/dist/esm/locales/fr-FR/grafana-sql.json.mjs +163 -0
  226. package/dist/esm/locales/fr-FR/grafana-sql.json.mjs.map +1 -0
  227. package/dist/esm/locales/hu-HU/grafana-sql.json.mjs +163 -0
  228. package/dist/esm/locales/hu-HU/grafana-sql.json.mjs.map +1 -0
  229. package/dist/esm/locales/id-ID/grafana-sql.json.mjs +163 -0
  230. package/dist/esm/locales/id-ID/grafana-sql.json.mjs.map +1 -0
  231. package/dist/esm/locales/it-IT/grafana-sql.json.mjs +163 -0
  232. package/dist/esm/locales/it-IT/grafana-sql.json.mjs.map +1 -0
  233. package/dist/esm/locales/ja-JP/grafana-sql.json.mjs +163 -0
  234. package/dist/esm/locales/ja-JP/grafana-sql.json.mjs.map +1 -0
  235. package/dist/esm/locales/ko-KR/grafana-sql.json.mjs +163 -0
  236. package/dist/esm/locales/ko-KR/grafana-sql.json.mjs.map +1 -0
  237. package/dist/esm/locales/nl-NL/grafana-sql.json.mjs +163 -0
  238. package/dist/esm/locales/nl-NL/grafana-sql.json.mjs.map +1 -0
  239. package/dist/esm/locales/pl-PL/grafana-sql.json.mjs +163 -0
  240. package/dist/esm/locales/pl-PL/grafana-sql.json.mjs.map +1 -0
  241. package/dist/esm/locales/pt-BR/grafana-sql.json.mjs +163 -0
  242. package/dist/esm/locales/pt-BR/grafana-sql.json.mjs.map +1 -0
  243. package/dist/esm/locales/pt-PT/grafana-sql.json.mjs +163 -0
  244. package/dist/esm/locales/pt-PT/grafana-sql.json.mjs.map +1 -0
  245. package/dist/esm/locales/ru-RU/grafana-sql.json.mjs +163 -0
  246. package/dist/esm/locales/ru-RU/grafana-sql.json.mjs.map +1 -0
  247. package/dist/esm/locales/sv-SE/grafana-sql.json.mjs +163 -0
  248. package/dist/esm/locales/sv-SE/grafana-sql.json.mjs.map +1 -0
  249. package/dist/esm/locales/tr-TR/grafana-sql.json.mjs +163 -0
  250. package/dist/esm/locales/tr-TR/grafana-sql.json.mjs.map +1 -0
  251. package/dist/esm/locales/zh-Hans/grafana-sql.json.mjs +163 -0
  252. package/dist/esm/locales/zh-Hans/grafana-sql.json.mjs.map +1 -0
  253. package/dist/esm/locales/zh-Hant/grafana-sql.json.mjs +163 -0
  254. package/dist/esm/locales/zh-Hant/grafana-sql.json.mjs.map +1 -0
  255. package/dist/esm/types.mjs +18 -0
  256. package/dist/esm/types.mjs.map +1 -0
  257. package/dist/esm/utils/formatSQL.mjs +11 -0
  258. package/dist/esm/utils/formatSQL.mjs.map +1 -0
  259. package/dist/esm/utils/getColumnsWithIndices.mjs +29 -0
  260. package/dist/esm/utils/getColumnsWithIndices.mjs.map +1 -0
  261. package/dist/esm/utils/logging.mjs +7 -0
  262. package/dist/esm/utils/logging.mjs.map +1 -0
  263. package/dist/esm/utils/migration.mjs +22 -0
  264. package/dist/esm/utils/migration.mjs.map +1 -0
  265. package/dist/esm/utils/sql.utils.mjs +66 -0
  266. package/dist/esm/utils/sql.utils.mjs.map +1 -0
  267. package/dist/esm/utils/testHelpers.mjs +27 -0
  268. package/dist/esm/utils/testHelpers.mjs.map +1 -0
  269. package/dist/esm/utils/useSqlChange.mjs +18 -0
  270. package/dist/esm/utils/useSqlChange.mjs.map +1 -0
  271. package/dist/types/ResponseParser.d.ts +5 -0
  272. package/dist/types/SQLVariableEditor.d.ts +5 -0
  273. package/dist/types/SQLVariableSupport.d.ts +11 -0
  274. package/dist/types/SQLVariableUtils.d.ts +6 -0
  275. package/dist/types/components/ConfirmModal.d.ts +8 -0
  276. package/dist/types/components/DatasetSelector.d.ts +11 -0
  277. package/dist/types/components/ErrorBoundary.d.ts +12 -0
  278. package/dist/types/components/QueryEditor.d.ts +8 -0
  279. package/dist/types/components/QueryEditorLazy.d.ts +2 -0
  280. package/dist/types/components/QueryHeader.d.ts +16 -0
  281. package/dist/types/components/SqlComponents.testHelpers.d.ts +65 -0
  282. package/dist/types/components/TableSelector.d.ts +10 -0
  283. package/dist/types/components/configuration/ConnectionLimits.d.ts +8 -0
  284. package/dist/types/components/configuration/Divider.d.ts +1 -0
  285. package/dist/types/components/configuration/MaxLifetimeField.d.ts +8 -0
  286. package/dist/types/components/configuration/MaxOpenConnectionsField.d.ts +8 -0
  287. package/dist/types/components/configuration/NumberInput.d.ts +8 -0
  288. package/dist/types/components/configuration/TLSSecretsConfig.d.ts +9 -0
  289. package/dist/types/components/configuration/useMigrateDatabaseFields.d.ts +7 -0
  290. package/dist/types/components/index.d.ts +1 -0
  291. package/dist/types/components/query-editor-raw/QueryEditorRaw.d.ts +15 -0
  292. package/dist/types/components/query-editor-raw/QueryToolbox.d.ts +10 -0
  293. package/dist/types/components/query-editor-raw/QueryValidator.d.ts +9 -0
  294. package/dist/types/components/query-editor-raw/RawEditor.d.ts +9 -0
  295. package/dist/types/components/visual-query-builder/AwesomeQueryBuilder.d.ts +6 -0
  296. package/dist/types/components/visual-query-builder/GroupByRow.d.ts +9 -0
  297. package/dist/types/components/visual-query-builder/OrderByRow.d.ts +10 -0
  298. package/dist/types/components/visual-query-builder/Preview.d.ts +6 -0
  299. package/dist/types/components/visual-query-builder/SQLGroupByRow.d.ts +11 -0
  300. package/dist/types/components/visual-query-builder/SQLOrderByRow.d.ts +11 -0
  301. package/dist/types/components/visual-query-builder/SQLWhereRow.d.ts +12 -0
  302. package/dist/types/components/visual-query-builder/SelectColumn.d.ts +8 -0
  303. package/dist/types/components/visual-query-builder/SelectCustomFunctionParameters.d.ts +11 -0
  304. package/dist/types/components/visual-query-builder/SelectFunctionParameters.d.ts +11 -0
  305. package/dist/types/components/visual-query-builder/SelectRow.d.ts +10 -0
  306. package/dist/types/components/visual-query-builder/VisualEditor.d.ts +8 -0
  307. package/dist/types/components/visual-query-builder/WhereRow.d.ts +9 -0
  308. package/dist/types/components/visual-query-builder/index.d.ts +1 -0
  309. package/dist/types/constants.d.ts +12 -0
  310. package/dist/types/datasource/SqlDatasource.d.ts +38 -0
  311. package/dist/types/defaults.d.ts +3 -0
  312. package/dist/types/expressions.d.ts +51 -0
  313. package/dist/types/index.d.ts +21 -0
  314. package/dist/types/loadResources.d.ts +2 -0
  315. package/dist/types/types.d.ts +152 -0
  316. package/dist/types/utils/formatSQL.d.ts +1 -0
  317. package/dist/types/utils/getColumnsWithIndices.d.ts +3 -0
  318. package/dist/types/utils/logging.d.ts +2 -0
  319. package/dist/types/utils/migration.d.ts +3 -0
  320. package/dist/types/utils/sql.utils.d.ts +21 -0
  321. package/dist/types/utils/testHelpers.d.ts +2 -0
  322. package/dist/types/utils/useSqlChange.d.ts +10 -0
  323. package/package.json +80 -4
@@ -0,0 +1,165 @@
1
+ 'use strict';
2
+
3
+ var grafanaSql = {
4
+ "grafana-sql": {
5
+ components: {
6
+ "confirm-modal": {
7
+ "builder-mode": "編輯模式不會顯示在程式碼中的變更。查詢編輯器將顯示您在編輯器模式下所做的最後變更。",
8
+ cancel: "取消",
9
+ clipboard: "要將程式碼複製到剪貼簿嗎?",
10
+ "copy-code-and-switch": "複製程式碼並切換",
11
+ "discard-code-and-switch": "捨棄程式碼並切換",
12
+ warning: "警告"
13
+ },
14
+ "connection-limits": {
15
+ "auto-max-idle": "自動最大閒置時間",
16
+ "content-auto-max-idle": "",
17
+ "content-max-idle": "閒置連線池中的最大連線數。若<i>最大開啟連線數</i>大於 0,但小於<i>最大閒置連線數</i>,則<i>最大閒置連線數</i>將會縮減,以符合<i>最大開啟連線數</i>限制。若設定為 0,則不會保留任何閒置連線數。",
18
+ "content-max-lifetime": "可以重複使用連線的最長時間(秒)。若設定為 0,則會永遠重複使用連線。",
19
+ "content-max-open": "",
20
+ "max-idle": "最大閒置",
21
+ "max-lifetime": "最大存活期",
22
+ "max-open": "最大開啟數量",
23
+ "title-connection-limits": "連線限制"
24
+ },
25
+ "dataset-selector": {
26
+ "aria-label-dataset-selector": "資料集選擇器"
27
+ },
28
+ "error-boundary": {
29
+ "fall-back": {
30
+ error: "錯誤"
31
+ }
32
+ },
33
+ "get-custom-operators": {
34
+ "custom-operators": {
35
+ label: {
36
+ macros: "巨集"
37
+ }
38
+ }
39
+ },
40
+ "make-render-column": {
41
+ "render-column": {
42
+ "aria-label-group-by": "分組依據",
43
+ "title-remove-group-by-column": "按欄位移除群組"
44
+ }
45
+ },
46
+ "order-by-row": {
47
+ "aria-label-order-by": "排序方式",
48
+ "label-limit": "限制",
49
+ "label-offset": "位移量",
50
+ "label-order-by": "排序方式"
51
+ },
52
+ preview: {
53
+ "label-element": {
54
+ preview: "預覽",
55
+ "tooltip-copy-to-clipboard": "複製至剪貼簿"
56
+ }
57
+ },
58
+ "query-header": {
59
+ "content-invalid-query": "",
60
+ "editor-modes": {
61
+ "label-builder": "建立器",
62
+ "label-code": "代碼"
63
+ },
64
+ "label-dataset": "資料集",
65
+ "label-filter": "篩選",
66
+ "label-format": "格式",
67
+ "label-group": "群組",
68
+ "label-order": "排序",
69
+ "label-preview": "預覽",
70
+ "label-table": "表格",
71
+ "placeholder-select-format": "選擇格式",
72
+ "run-query": "執行查詢"
73
+ },
74
+ "query-meta": {
75
+ variables: {
76
+ textField: "文字欄位",
77
+ valueField: "值欄位"
78
+ }
79
+ },
80
+ "query-toolbox": {
81
+ "content-hit-ctrlcmdreturn-to-run-query": "按下 CTRL/CMD + Return 執行查詢",
82
+ "tooltip-collapse": "收合編輯器",
83
+ "tooltip-expand": "展開編輯器",
84
+ "tooltip-format-query": "格式化查詢"
85
+ },
86
+ "query-validator": {
87
+ "query-will-process": "<0></0>此查詢將在執行時處理 <strong>{{bytes}}</strong>。",
88
+ "validating-query": "正在驗證查詢…"
89
+ },
90
+ "raw-editor": {
91
+ "render-placeholder": {
92
+ "editing-in-expanded-code-editor": "在展開的程式碼編輯器中編輯"
93
+ },
94
+ "title-query-num": "查詢 {{queryNum}}"
95
+ },
96
+ "select-column": {
97
+ "label-column": "欄位"
98
+ },
99
+ "select-custom-function-parameters": {
100
+ "aria-label-parameter": "欄位 {{columnIndex}} 的參數 {{index}}",
101
+ "render-parameters": {
102
+ params: {
103
+ "title-remove-parameter": "移除參數"
104
+ }
105
+ },
106
+ "title-add-parameter": "新增參數"
107
+ },
108
+ "select-row": {
109
+ "aggregate-options": {
110
+ options: {
111
+ label: {
112
+ aggregations: "聚合",
113
+ macros: "巨集"
114
+ }
115
+ }
116
+ },
117
+ label: {
118
+ time: "時間",
119
+ value: "值"
120
+ },
121
+ "label-alias": "別名",
122
+ "label-data-operations": "資料操作",
123
+ "title-add-column": "新增欄位",
124
+ "title-remove-column": "移除欄位"
125
+ },
126
+ settings: {
127
+ "aria-label-conjunction": "連接條件",
128
+ "aria-label-field": "欄位",
129
+ "aria-label-operator": "運算子",
130
+ "title-button-filter": "{{ buttonLabel }} 篩選條件"
131
+ },
132
+ "sql-query-editor-lazy": {
133
+ "text-loading-editor": "正在載入編輯器"
134
+ },
135
+ "table-selector": {
136
+ "aria-label-table-selector": "表格選擇器",
137
+ "placeholder-loading": "載入表格…",
138
+ "placeholder-select-table": "選擇表格"
139
+ },
140
+ "tlssecrets-config": {
141
+ "content-tlsssl-client-certificate": "若要使用 TLS/SSL 用戶端憑證進行驗證,請在此提供用戶端憑證。",
142
+ "content-tlsssl-client-key": "若要使用用戶端 TLS/SSL 憑證進行驗證,請在此提供金鑰。",
143
+ "content-tlsssl-root-certificate": "若所選的 TLS/SSL 模式需要伺服器根憑證,請在此提供",
144
+ "tlsssl-client-certificate": "TLS/SSL 用戶端憑證",
145
+ "tlsssl-client-key": "TLS/SSL 用戶端金鑰",
146
+ "tlsssl-root-certificate": "TLS/SSL 根憑證"
147
+ },
148
+ "visual-editor": {
149
+ "label-filter-by-column-value": "按欄位數值篩選",
150
+ "label-group-by-column": "按欄位分組"
151
+ },
152
+ widgets: {
153
+ "aria-label-macros-value-selector": "巨集值選擇器"
154
+ }
155
+ },
156
+ utils: {
157
+ "get-columns-width-indices": {
158
+ "label-selected-columns": "選取的欄位"
159
+ }
160
+ }
161
+ }
162
+ };
163
+
164
+ module.exports = grafanaSql;
165
+ //# sourceMappingURL=grafana-sql.json.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var data = require('@grafana/data');
6
+
7
+ "use strict";
8
+ var _a;
9
+ var QueryFormat = /* @__PURE__ */ ((QueryFormat2) => {
10
+ QueryFormat2["Timeseries"] = "time_series";
11
+ QueryFormat2["Table"] = "table";
12
+ return QueryFormat2;
13
+ })(QueryFormat || {});
14
+ const QUERY_FORMAT_OPTIONS = [
15
+ { label: "Time series", value: "time_series" /* Timeseries */ },
16
+ { label: "Table", value: "table" /* Table */ }
17
+ ];
18
+ const backWardToOption = (value) => ({ label: value, value });
19
+ const toOption = (_a = data.toOption) != null ? _a : backWardToOption;
20
+
21
+ exports.QUERY_FORMAT_OPTIONS = QUERY_FORMAT_OPTIONS;
22
+ exports.QueryFormat = QueryFormat;
23
+ exports.toOption = toOption;
24
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sources":["../../src/types.ts"],"sourcesContent":["import { JsonTree } from '@react-awesome-query-builder/ui';\n\nimport {\n DataFrame,\n DataQuery,\n DataSourceJsonData,\n MetricFindValue,\n SelectableValue,\n TimeRange,\n toOption as toOptionFromData,\n} from '@grafana/data';\nimport { CompletionItemKind, EditorMode, LanguageDefinition } from '@grafana/plugin-ui';\n\nimport { QueryWithDefaults } from './defaults';\nimport {\n QueryEditorFunctionExpression,\n QueryEditorGroupByExpression,\n QueryEditorPropertyExpression,\n} from './expressions';\n\nexport interface SqlQueryForInterpolation {\n dataset?: string;\n alias?: string;\n format?: QueryFormat;\n rawSql?: string;\n refId: string;\n hide?: boolean;\n}\n\nexport interface SQLConnectionLimits {\n maxOpenConns: number;\n maxIdleConns: number;\n maxIdleConnsAuto: boolean;\n connMaxLifetime: number;\n}\n\nexport interface SQLOptions extends SQLConnectionLimits, DataSourceJsonData {\n tlsAuth: boolean;\n tlsAuthWithCACert: boolean;\n timezone: string;\n tlsSkipVerify: boolean;\n user: string;\n database: string;\n url: string;\n timeInterval: string;\n}\n\nexport enum QueryFormat {\n Timeseries = 'time_series',\n Table = 'table',\n}\n\nexport type SQLQueryMeta = { valueField?: string; textField?: string };\n\nexport interface SQLQuery extends DataQuery {\n alias?: string;\n format?: QueryFormat;\n rawSql?: string;\n dataset?: string;\n table?: string;\n sql?: SQLExpression;\n editorMode?: EditorMode;\n rawQuery?: boolean;\n meta?: SQLQueryMeta;\n}\n\nexport type SQLVariableQuery = { query: string } & SQLQuery;\n\nexport interface NameValue {\n name: string;\n value: string;\n}\n\nexport type SQLFilters = NameValue[];\n\nexport interface SQLExpression {\n columns?: QueryEditorFunctionExpression[];\n whereJsonTree?: JsonTree;\n whereString?: string;\n filters?: SQLFilters;\n groupBy?: QueryEditorGroupByExpression[];\n orderBy?: QueryEditorPropertyExpression;\n orderByDirection?: 'ASC' | 'DESC';\n limit?: number;\n offset?: number;\n}\n\nexport interface TableSchema {\n name?: string;\n schema?: TableFieldSchema[];\n}\n\nexport interface TableFieldSchema {\n name: string;\n description?: string;\n type: string;\n repeated: boolean;\n schema: TableFieldSchema[];\n}\n\nexport interface QueryRowFilter {\n filter: boolean;\n group: boolean;\n order: boolean;\n preview: boolean;\n}\n\nexport const QUERY_FORMAT_OPTIONS = [\n { label: 'Time series', value: QueryFormat.Timeseries },\n { label: 'Table', value: QueryFormat.Table },\n];\n\nconst backWardToOption = (value: string) => ({ label: value, value });\n\nexport const toOption = toOptionFromData ?? backWardToOption;\n\nexport interface ResourceSelectorProps {\n disabled?: boolean;\n className?: string;\n applyDefault?: boolean;\n}\n// React Awesome Query builder field types.\n// These are responsible for rendering the correct UI for the field.\nexport type RAQBFieldTypes = 'text' | 'number' | 'boolean' | 'datetime' | 'date' | 'time';\n\nexport interface SQLSelectableValue extends SelectableValue {\n type?: string;\n raqbFieldType?: RAQBFieldTypes;\n}\n\nexport interface DB {\n init?: (datasourceId?: string) => Promise<boolean>;\n datasets: () => Promise<string[]>;\n tables: (dataset?: string) => Promise<string[]>;\n fields: (query: SQLQuery, order?: boolean) => Promise<SQLSelectableValue[]>;\n validateQuery: (query: SQLQuery, range?: TimeRange) => Promise<ValidationResults>;\n dispose?: (dsID?: string) => void;\n lookup?: (path?: string) => Promise<Array<{ name: string; completion: string }>>;\n getEditorLanguageDefinition: () => LanguageDefinition;\n toRawSql: (query: SQLQuery) => string;\n functions: () => Func[];\n}\n\nexport interface FuncParameter {\n name: string;\n required?: boolean;\n options?: (query: SQLQuery) => Promise<SelectableValue[]>;\n}\nexport interface Func {\n name: string;\n parameters?: FuncParameter[];\n description?: string;\n}\n\nexport interface QueryEditorProps {\n db: DB;\n query: QueryWithDefaults;\n onChange: (query: SQLQuery) => void;\n range?: TimeRange;\n}\n\nexport interface ValidationResults {\n query: SQLQuery;\n rawSql?: string;\n error: string;\n isError: boolean;\n isValid: boolean;\n statistics?: {\n TotalBytesProcessed: number;\n } | null;\n}\n\nexport interface SqlQueryModel {\n quoteLiteral: (v: string) => string;\n}\n\nexport interface ResponseParser {\n transformMetricFindResponse: (frame: DataFrame) => MetricFindValue[];\n}\n\nexport interface MetaDefinition {\n name: string;\n completion?: string;\n kind: CompletionItemKind;\n}\n\nexport type SQLDialect = 'postgres' | 'influx' | 'other';\n"],"names":["QueryFormat","toOptionFromData"],"mappings":";;;;;;;AAAA,IAAA,EAAA;AA+CO,IAAK,WAAA,qBAAAA,YAAAA,KAAL;AACL,EAAAA,aAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,aAAA,OAAA,CAAA,GAAQ,OAAA;AAFE,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AA4DL,MAAM,oBAAA,GAAuB;AAAA,EAClC,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,aAAA,mBAAuB;AAAA,EACtD,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA;AAC3B;AAEA,MAAM,mBAAmB,CAAC,KAAA,MAAmB,EAAE,KAAA,EAAO,OAAO,KAAA,EAAM,CAAA;AAE5D,MAAM,YAAW,EAAA,GAAAC,aAAA,KAAA,IAAA,GAAA,EAAA,GAAoB;;;;;;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var sqlFormatter = require('sql-formatter-plus');
6
+
7
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
8
+
9
+ var sqlFormatter__default = /*#__PURE__*/_interopDefaultCompat(sqlFormatter);
10
+
11
+ "use strict";
12
+ function formatSQL(q) {
13
+ return sqlFormatter__default.default.format(q).replace(/(\$ \{ .* \})|(\$ __)|(\$ \w+)/g, (m) => {
14
+ return m.replace(/\s/g, "");
15
+ });
16
+ }
17
+
18
+ exports.formatSQL = formatSQL;
19
+ //# sourceMappingURL=formatSQL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatSQL.cjs","sources":["../../../src/utils/formatSQL.ts"],"sourcesContent":["// @ts-ignore\nimport sqlFormatter from 'sql-formatter-plus';\n\nexport function formatSQL(q: string) {\n return sqlFormatter.format(q).replace(/(\\$ \\{ .* \\})|(\\$ __)|(\\$ \\w+)/g, (m: string) => {\n return m.replace(/\\s/g, '');\n });\n}\n"],"names":["sqlFormatter"],"mappings":";;;;;;;;;;;AAGO,SAAS,UAAU,CAAA,EAAW;AACnC,EAAA,OAAOA,8BAAa,MAAA,CAAO,CAAC,EAAE,OAAA,CAAQ,iCAAA,EAAmC,CAAC,CAAA,KAAc;AACtF,IAAA,OAAO,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAAA,EAC5B,CAAC,CAAA;AACH;;;;"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var i18n = require('@grafana/i18n');
6
+
7
+ "use strict";
8
+ function getColumnsWithIndices(query, fields) {
9
+ var _a;
10
+ if (!fields || !((_a = query.sql) == null ? void 0 : _a.columns)) {
11
+ return fields;
12
+ }
13
+ const options = query.sql.columns.map((c, i) => {
14
+ var _a2, _b;
15
+ const value = c.name ? `${c.name}(${(_a2 = c.parameters) == null ? void 0 : _a2.map((p) => p.name).join(", ")})` : (_b = c.parameters) == null ? void 0 : _b.map((p) => p.name).join(", ");
16
+ return {
17
+ value,
18
+ label: `${i + 1} - ${value}`
19
+ };
20
+ });
21
+ return [
22
+ {
23
+ value: "",
24
+ label: i18n.t("grafana-sql.utils.get-columns-width-indices.label-selected-columns", "Selected columns"),
25
+ options,
26
+ expanded: true
27
+ },
28
+ ...fields
29
+ ];
30
+ }
31
+
32
+ exports.getColumnsWithIndices = getColumnsWithIndices;
33
+ //# sourceMappingURL=getColumnsWithIndices.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getColumnsWithIndices.cjs","sources":["../../../src/utils/getColumnsWithIndices.ts"],"sourcesContent":["import { SelectableValue } from '@grafana/data';\nimport { t } from '@grafana/i18n';\n\nimport { SQLQuery } from '../types';\n\nexport function getColumnsWithIndices(query: SQLQuery, fields: SelectableValue[]): SelectableValue[] {\n if (!fields || !query.sql?.columns) {\n return fields;\n }\n\n const options = query.sql.columns.map((c, i) => {\n const value = c.name\n ? `${c.name}(${c.parameters?.map((p) => p.name).join(', ')})`\n : c.parameters?.map((p) => p.name).join(', ');\n return {\n value,\n label: `${i + 1} - ${value}`,\n };\n });\n\n return [\n {\n value: '',\n label: t('grafana-sql.utils.get-columns-width-indices.label-selected-columns', 'Selected columns'),\n options,\n expanded: true,\n },\n ...fields,\n ];\n}\n"],"names":["_a","t"],"mappings":";;;;;;;AAKO,SAAS,qBAAA,CAAsB,OAAiB,MAAA,EAA8C;AALrG,EAAA,IAAA,EAAA;AAME,EAAA,IAAI,CAAC,MAAA,IAAU,EAAA,CAAC,EAAA,GAAA,KAAA,CAAM,GAAA,KAAN,mBAAW,OAAA,CAAA,EAAS;AAClC,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,UAAU,KAAA,CAAM,GAAA,CAAI,QAAQ,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AAVlD,IAAA,IAAAA,GAAAA,EAAA,EAAA;AAWI,IAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,IAAA,GACZ,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,EAAA,CAAIA,GAAAA,GAAA,CAAA,CAAE,UAAA,KAAF,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAA,CAAM,IAAA,CAAK,IAAA,CAAK,CAAA,CAAA,CAAA,GAAA,CACxD,EAAA,GAAA,CAAA,CAAE,UAAA,KAAF,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAA,CAAM,IAAA,CAAK,IAAA,CAAA;AAC1C,IAAA,OAAO;AAAA,MACL,KAAA;AAAA,MACA,KAAA,EAAO,CAAA,EAAG,CAAA,GAAI,CAAC,MAAM,KAAK,CAAA;AAAA,KAC5B;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL;AAAA,MACE,KAAA,EAAO,EAAA;AAAA,MACP,KAAA,EAAOC,MAAA,CAAE,oEAAA,EAAsE,kBAAkB,CAAA;AAAA,MACjG,OAAA;AAAA,MACA,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,GAAG;AAAA,GACL;AACF;;;;"}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var runtime = require('@grafana/runtime');
6
+
7
+ "use strict";
8
+ const sqlPluginLogger = runtime.createMonitoringLogger("features.plugins.sql");
9
+
10
+ exports.sqlPluginLogger = sqlPluginLogger;
11
+ //# sourceMappingURL=logging.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.cjs","sources":["../../../src/utils/logging.ts"],"sourcesContent":["import { createMonitoringLogger, MonitoringLogger } from '@grafana/runtime';\n\nexport const sqlPluginLogger: MonitoringLogger = createMonitoringLogger('features.plugins.sql');\n"],"names":["createMonitoringLogger"],"mappings":";;;;;;;AAEO,MAAM,eAAA,GAAoCA,+BAAuB,sBAAsB;;;;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var defaults = require('../defaults.cjs');
4
+
5
+ "use strict";
6
+ function migrateAnnotation(annotation) {
7
+ var _a;
8
+ const oldQuery = typeof annotation.rawQuery === "string" ? annotation.rawQuery : null;
9
+ if (!oldQuery) {
10
+ return annotation;
11
+ }
12
+ const newQuery = defaults.applyQueryDefaults({ refId: "Annotation", ...(_a = annotation.target) != null ? _a : {}, rawSql: oldQuery });
13
+ return {
14
+ ...annotation,
15
+ rawQuery: void 0,
16
+ workspace: void 0,
17
+ subscription: void 0,
18
+ queryType: void 0,
19
+ target: newQuery
20
+ };
21
+ }
22
+
23
+ module.exports = migrateAnnotation;
24
+ //# sourceMappingURL=migration.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.cjs","sources":["../../../src/utils/migration.ts"],"sourcesContent":["import { AnnotationQuery } from '@grafana/data';\n\nimport { applyQueryDefaults } from '../defaults';\nimport { SQLQuery } from '../types';\n\nexport default function migrateAnnotation(annotation: AnnotationQuery<SQLQuery>) {\n const oldQuery = typeof annotation.rawQuery === 'string' ? annotation.rawQuery : null;\n\n if (!oldQuery) {\n return annotation;\n }\n\n const newQuery = applyQueryDefaults({ refId: 'Annotation', ...(annotation.target ?? {}), rawSql: oldQuery });\n\n return {\n ...annotation,\n rawQuery: undefined,\n workspace: undefined,\n subscription: undefined,\n queryType: undefined,\n target: newQuery,\n };\n}\n"],"names":["applyQueryDefaults"],"mappings":";;;;;AAKA,SAAwB,kBAAkB,UAAA,EAAuC;AALjF,EAAA,IAAA,EAAA;AAME,EAAA,MAAM,WAAW,OAAO,UAAA,CAAW,QAAA,KAAa,QAAA,GAAW,WAAW,QAAA,GAAW,IAAA;AAEjF,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,UAAA;AAAA,EACT;AAEA,EAAA,MAAM,QAAA,GAAWA,2BAAA,CAAmB,EAAE,KAAA,EAAO,YAAA,EAAc,GAAA,CAAI,EAAA,GAAA,UAAA,CAAW,MAAA,KAAX,IAAA,GAAA,EAAA,GAAqB,EAAC,EAAI,MAAA,EAAQ,UAAU,CAAA;AAE3G,EAAA,OAAO;AAAA,IACL,GAAG,UAAA;AAAA,IACH,QAAA,EAAU,KAAA,CAAA;AAAA,IACV,SAAA,EAAW,KAAA,CAAA;AAAA,IACX,YAAA,EAAc,KAAA,CAAA;AAAA,IACd,SAAA,EAAW,KAAA,CAAA;AAAA,IACX,MAAA,EAAQ;AAAA,GACV;AACF;;;;"}
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var data = require('@grafana/data');
6
+ var expressions = require('../expressions.cjs');
7
+
8
+ "use strict";
9
+ function createSelectClause(sqlColumns) {
10
+ const columns = sqlColumns.map((c) => {
11
+ var _a, _b, _c, _d;
12
+ let rawColumn = "";
13
+ if (c.name && c.alias) {
14
+ rawColumn += `${c.name}(${(_a = c.parameters) == null ? void 0 : _a.map((p) => `${p.name}`)}) AS ${c.alias}`;
15
+ } else if (c.name) {
16
+ rawColumn += `${c.name}(${(_b = c.parameters) == null ? void 0 : _b.map((p) => `${p.name}`)})`;
17
+ } else if (c.alias) {
18
+ rawColumn += `${(_c = c.parameters) == null ? void 0 : _c.map((p) => `${p.name}`)} AS ${c.alias}`;
19
+ } else {
20
+ rawColumn += `${(_d = c.parameters) == null ? void 0 : _d.map((p) => `${p.name}`)}`;
21
+ }
22
+ return rawColumn;
23
+ });
24
+ return `SELECT ${columns.join(", ")} `;
25
+ }
26
+ const haveColumns = (columns) => {
27
+ if (!columns) {
28
+ return false;
29
+ }
30
+ const haveColumn = columns.some((c) => {
31
+ var _a, _b;
32
+ return ((_a = c.parameters) == null ? void 0 : _a.length) || ((_b = c.parameters) == null ? void 0 : _b.some((p) => p.name));
33
+ });
34
+ const haveFunction = columns.some((c) => c.name);
35
+ return haveColumn || haveFunction;
36
+ };
37
+ function setGroupByField(field) {
38
+ return {
39
+ type: expressions.QueryEditorExpressionType.GroupBy,
40
+ property: {
41
+ type: expressions.QueryEditorPropertyType.String,
42
+ name: field
43
+ }
44
+ };
45
+ }
46
+ function setPropertyField(field) {
47
+ return {
48
+ type: expressions.QueryEditorExpressionType.Property,
49
+ property: {
50
+ type: expressions.QueryEditorPropertyType.String,
51
+ name: field
52
+ }
53
+ };
54
+ }
55
+ function createFunctionField(functionName) {
56
+ return {
57
+ type: expressions.QueryEditorExpressionType.Function,
58
+ name: functionName,
59
+ parameters: []
60
+ };
61
+ }
62
+ function getColumnValue(column) {
63
+ if (column == null ? void 0 : column.name) {
64
+ return data.toOption(column.name);
65
+ }
66
+ return null;
67
+ }
68
+
69
+ exports.createFunctionField = createFunctionField;
70
+ exports.createSelectClause = createSelectClause;
71
+ exports.getColumnValue = getColumnValue;
72
+ exports.haveColumns = haveColumns;
73
+ exports.setGroupByField = setGroupByField;
74
+ exports.setPropertyField = setPropertyField;
75
+ //# sourceMappingURL=sql.utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.utils.cjs","sources":["../../../src/utils/sql.utils.ts"],"sourcesContent":["import { SelectableValue, toOption } from '@grafana/data';\n\nimport {\n QueryEditorExpressionType,\n QueryEditorFunctionExpression,\n QueryEditorFunctionParameterExpression,\n QueryEditorGroupByExpression,\n QueryEditorPropertyExpression,\n QueryEditorPropertyType,\n} from '../expressions';\nimport { SQLExpression } from '../types';\n\nexport function createSelectClause(sqlColumns: NonNullable<SQLExpression['columns']>): string {\n const columns = sqlColumns.map((c) => {\n let rawColumn = '';\n if (c.name && c.alias) {\n rawColumn += `${c.name}(${c.parameters?.map((p) => `${p.name}`)}) AS ${c.alias}`;\n } else if (c.name) {\n rawColumn += `${c.name}(${c.parameters?.map((p) => `${p.name}`)})`;\n } else if (c.alias) {\n rawColumn += `${c.parameters?.map((p) => `${p.name}`)} AS ${c.alias}`;\n } else {\n rawColumn += `${c.parameters?.map((p) => `${p.name}`)}`;\n }\n return rawColumn;\n });\n return `SELECT ${columns.join(', ')} `;\n}\n\nexport const haveColumns = (columns: SQLExpression['columns']): columns is NonNullable<SQLExpression['columns']> => {\n if (!columns) {\n return false;\n }\n\n const haveColumn = columns.some((c) => c.parameters?.length || c.parameters?.some((p) => p.name));\n const haveFunction = columns.some((c) => c.name);\n return haveColumn || haveFunction;\n};\n\n/**\n * Creates a GroupByExpression for a specified field\n */\nexport function setGroupByField(field?: string): QueryEditorGroupByExpression {\n return {\n type: QueryEditorExpressionType.GroupBy,\n property: {\n type: QueryEditorPropertyType.String,\n name: field,\n },\n };\n}\n\n/**\n * Creates a PropertyExpression for a specified field\n */\nexport function setPropertyField(field?: string): QueryEditorPropertyExpression {\n return {\n type: QueryEditorExpressionType.Property,\n property: {\n type: QueryEditorPropertyType.String,\n name: field,\n },\n };\n}\n\nexport function createFunctionField(functionName?: string): QueryEditorFunctionExpression {\n return {\n type: QueryEditorExpressionType.Function,\n name: functionName,\n parameters: [],\n };\n}\n\n/**\n * Retrieves the column value from a QueryEditorFunctionParameterExpression object.\n *\n * @param column - The QueryEditorFunctionParameterExpression object representing the column.\n * @returns The column value as a SelectableValue<string> or null if the column is undefined or null.\n */\nexport function getColumnValue(\n column?: QueryEditorFunctionParameterExpression | QueryEditorFunctionExpression\n): SelectableValue<string> | null {\n if (column?.name) {\n return toOption(column.name);\n }\n return null;\n}\n"],"names":["QueryEditorExpressionType","QueryEditorPropertyType","toOption"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var data = require('@grafana/data');
6
+
7
+ "use strict";
8
+ function makeVariable(id, name, attributes) {
9
+ return {
10
+ multi: false,
11
+ type: "custom",
12
+ includeAll: false,
13
+ current: {},
14
+ options: [],
15
+ query: "",
16
+ rootStateKey: null,
17
+ global: false,
18
+ hide: data.VariableHide.dontHide,
19
+ skipUrlSync: false,
20
+ index: -1,
21
+ state: data.LoadingState.NotStarted,
22
+ error: null,
23
+ description: null,
24
+ ...attributes,
25
+ id,
26
+ name
27
+ };
28
+ }
29
+
30
+ exports.makeVariable = makeVariable;
31
+ //# sourceMappingURL=testHelpers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testHelpers.cjs","sources":["../../../src/utils/testHelpers.ts"],"sourcesContent":["import { CustomVariableModel, LoadingState, VariableHide } from '@grafana/data';\n\nexport function makeVariable(id: string, name: string, attributes?: Partial<CustomVariableModel>): CustomVariableModel {\n return {\n multi: false,\n type: 'custom',\n includeAll: false,\n current: {},\n options: [],\n query: '',\n rootStateKey: null,\n global: false,\n hide: VariableHide.dontHide,\n skipUrlSync: false,\n index: -1,\n state: LoadingState.NotStarted,\n error: null,\n description: null,\n ...attributes,\n id,\n name,\n };\n}\n"],"names":["VariableHide","LoadingState"],"mappings":";;;;;;;AAEO,SAAS,YAAA,CAAa,EAAA,EAAY,IAAA,EAAc,UAAA,EAAgE;AACrH,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,UAAA,EAAY,KAAA;AAAA,IACZ,SAAS,EAAC;AAAA,IACV,SAAS,EAAC;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,IACP,YAAA,EAAc,IAAA;AAAA,IACd,MAAA,EAAQ,KAAA;AAAA,IACR,MAAMA,iBAAA,CAAa,QAAA;AAAA,IACnB,WAAA,EAAa,KAAA;AAAA,IACb,KAAA,EAAO,CAAA,CAAA;AAAA,IACP,OAAOC,iBAAA,CAAa,UAAA;AAAA,IACpB,KAAA,EAAO,IAAA;AAAA,IACP,WAAA,EAAa,IAAA;AAAA,IACb,GAAG,UAAA;AAAA,IACH,EAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var react = require('react');
6
+
7
+ "use strict";
8
+ function useSqlChange({ query, onQueryChange, db }) {
9
+ const onSqlChange = react.useCallback(
10
+ (sql) => {
11
+ const toRawSql = db.toRawSql;
12
+ const rawSql = toRawSql({ sql, dataset: query.dataset, table: query.table, refId: query.refId });
13
+ const newQuery = { ...query, sql, rawSql };
14
+ onQueryChange(newQuery);
15
+ },
16
+ [db, onQueryChange, query]
17
+ );
18
+ return { onSqlChange };
19
+ }
20
+
21
+ exports.useSqlChange = useSqlChange;
22
+ //# sourceMappingURL=useSqlChange.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSqlChange.cjs","sources":["../../../src/utils/useSqlChange.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { DB, SQLExpression, SQLQuery } from '../types';\n\ninterface UseSqlChange {\n db: DB;\n query: SQLQuery;\n onQueryChange: (query: SQLQuery) => void;\n}\n\nexport function useSqlChange({ query, onQueryChange, db }: UseSqlChange) {\n const onSqlChange = useCallback(\n (sql: SQLExpression) => {\n const toRawSql = db.toRawSql;\n const rawSql = toRawSql({ sql, dataset: query.dataset, table: query.table, refId: query.refId });\n const newQuery: SQLQuery = { ...query, sql, rawSql };\n onQueryChange(newQuery);\n },\n [db, onQueryChange, query]\n );\n\n return { onSqlChange };\n}\n"],"names":["useCallback"],"mappings":";;;;;;;AAUO,SAAS,YAAA,CAAa,EAAE,KAAA,EAAO,aAAA,EAAe,IAAG,EAAiB;AACvE,EAAA,MAAM,WAAA,GAAcA,iBAAA;AAAA,IAClB,CAAC,GAAA,KAAuB;AACtB,MAAA,MAAM,WAAW,EAAA,CAAG,QAAA;AACpB,MAAA,MAAM,MAAA,GAAS,QAAA,CAAS,EAAE,GAAA,EAAK,OAAA,EAAS,KAAA,CAAM,OAAA,EAAS,KAAA,EAAO,KAAA,CAAM,KAAA,EAAO,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA;AAC/F,MAAA,MAAM,QAAA,GAAqB,EAAE,GAAG,KAAA,EAAO,KAAK,MAAA,EAAO;AACnD,MAAA,aAAA,CAAc,QAAQ,CAAA;AAAA,IACxB,CAAA;AAAA,IACA,CAAC,EAAA,EAAI,aAAA,EAAe,KAAK;AAAA,GAC3B;AAEA,EAAA,OAAO,EAAE,WAAA,EAAY;AACvB;;;;"}
@@ -0,0 +1,25 @@
1
+ import { uniqBy } from 'lodash';
2
+
3
+ "use strict";
4
+ class ResponseParser {
5
+ transformMetricFindResponse(frame) {
6
+ const values = [];
7
+ const textField = frame.fields.find((f) => f.name === "__text");
8
+ const valueField = frame.fields.find((f) => f.name === "__value");
9
+ if (textField && valueField) {
10
+ for (let i = 0; i < textField.values.length; i++) {
11
+ values.push({ text: "" + textField.values[i], value: "" + valueField.values[i] });
12
+ }
13
+ } else {
14
+ for (const field of frame.fields) {
15
+ for (const value of field.values) {
16
+ values.push({ text: value });
17
+ }
18
+ }
19
+ }
20
+ return uniqBy(values, "text");
21
+ }
22
+ }
23
+
24
+ export { ResponseParser };
25
+ //# sourceMappingURL=ResponseParser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseParser.mjs","sources":["../../src/ResponseParser.ts"],"sourcesContent":["import { uniqBy } from 'lodash';\n\nimport { DataFrame, MetricFindValue } from '@grafana/data';\n\nimport type { ResponseParser as ResponseParserType } from './types';\n\nexport class ResponseParser implements ResponseParserType {\n transformMetricFindResponse(frame: DataFrame): MetricFindValue[] {\n const values: MetricFindValue[] = [];\n const textField = frame.fields.find((f) => f.name === '__text');\n const valueField = frame.fields.find((f) => f.name === '__value');\n\n if (textField && valueField) {\n for (let i = 0; i < textField.values.length; i++) {\n values.push({ text: '' + textField.values[i], value: '' + valueField.values[i] });\n }\n } else {\n for (const field of frame.fields) {\n for (const value of field.values) {\n values.push({ text: value });\n }\n }\n }\n\n return uniqBy(values, 'text');\n }\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,cAAA,CAA6C;AAAA,EACxD,4BAA4B,KAAA,EAAqC;AAC/D,IAAA,MAAM,SAA4B,EAAC;AACnC,IAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,QAAQ,CAAA;AAC9D,IAAA,MAAM,UAAA,GAAa,MAAM,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,SAAS,CAAA;AAEhE,IAAA,IAAI,aAAa,UAAA,EAAY;AAC3B,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK;AAChD,QAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,EAAA,GAAK,UAAU,MAAA,CAAO,CAAC,CAAA,EAAG,KAAA,EAAO,EAAA,GAAK,UAAA,CAAW,MAAA,CAAO,CAAC,GAAG,CAAA;AAAA,MAClF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,KAAA,MAAW,KAAA,IAAS,MAAM,MAAA,EAAQ;AAChC,QAAA,KAAA,MAAW,KAAA,IAAS,MAAM,MAAA,EAAQ;AAChC,UAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,MAAA,CAAO,QAAQ,MAAM,CAAA;AAAA,EAC9B;AACF;;;;"}
@@ -0,0 +1,82 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { useMemo, useState, useRef, useEffect } from 'react';
3
+ import { t } from '@grafana/i18n';
4
+ import { EditorRows, EditorRow, EditorField } from '@grafana/plugin-ui';
5
+ import { Combobox } from '@grafana/ui';
6
+ import { migrateVariableQuery } from './SQLVariableUtils.mjs';
7
+ import { SqlQueryEditorLazy } from './components/QueryEditorLazy.mjs';
8
+
9
+ "use strict";
10
+ const SQLVariablesQueryEditor = (props) => {
11
+ var _a, _b, _c;
12
+ const query = useMemo(() => migrateVariableQuery(props.query), [props.query]);
13
+ const dialect = (_c = (_b = (_a = props.queryHeaderProps) == null ? void 0 : _a.dialect) != null ? _b : props.datasource.dialect) != null ? _c : "other";
14
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
15
+ /* @__PURE__ */ jsx(
16
+ SqlQueryEditorLazy,
17
+ {
18
+ ...props,
19
+ query,
20
+ queryHeaderProps: { hideFormatSelector: true, hideRunButton: true, dialect }
21
+ }
22
+ ),
23
+ /* @__PURE__ */ jsx(FieldMapping, { ...props, query })
24
+ ] });
25
+ };
26
+ const FieldMapping = (props) => {
27
+ var _a, _b;
28
+ const { query, datasource, onChange } = props;
29
+ const [choices, setChoices] = useState([]);
30
+ const queryRef = useRef(query);
31
+ queryRef.current = query;
32
+ const queryKey = useMemo(() => JSON.stringify({ rawSql: query.rawSql, sql: query.sql }), [query.rawSql, query.sql]);
33
+ useEffect(() => {
34
+ let isActive = true;
35
+ const subscription = datasource.query({ targets: [queryRef.current] }).subscribe({
36
+ next: (response) => {
37
+ if (!isActive) {
38
+ return;
39
+ }
40
+ const fieldNames = (response.data[0] || { fields: [] }).fields.map((f) => f.name);
41
+ setChoices(fieldNames.map((f) => ({ value: f, label: f })));
42
+ },
43
+ error: () => {
44
+ if (isActive) {
45
+ setChoices([]);
46
+ }
47
+ }
48
+ });
49
+ return () => {
50
+ isActive = false;
51
+ subscription.unsubscribe();
52
+ };
53
+ }, [datasource, queryKey]);
54
+ const onMetaPropChange = (key, value, meta = query.meta || {}) => {
55
+ onChange({ ...query, meta: { ...meta, [key]: value } });
56
+ };
57
+ return /* @__PURE__ */ jsx(EditorRows, { children: /* @__PURE__ */ jsxs(EditorRow, { children: [
58
+ /* @__PURE__ */ jsx(EditorField, { label: t("grafana-sql.components.query-meta.variables.valueField", "Value Field"), children: /* @__PURE__ */ jsx(
59
+ Combobox,
60
+ {
61
+ isClearable: true,
62
+ value: (_a = query.meta) == null ? void 0 : _a.valueField,
63
+ onChange: (e) => onMetaPropChange("valueField", e == null ? void 0 : e.value),
64
+ width: 40,
65
+ options: choices
66
+ }
67
+ ) }),
68
+ /* @__PURE__ */ jsx(EditorField, { label: t("grafana-sql.components.query-meta.variables.textField", "Text Field"), children: /* @__PURE__ */ jsx(
69
+ Combobox,
70
+ {
71
+ isClearable: true,
72
+ value: (_b = query.meta) == null ? void 0 : _b.textField,
73
+ onChange: (e) => onMetaPropChange("textField", e == null ? void 0 : e.value),
74
+ width: 40,
75
+ options: choices
76
+ }
77
+ ) })
78
+ ] }) });
79
+ };
80
+
81
+ export { SQLVariablesQueryEditor };
82
+ //# sourceMappingURL=SQLVariableEditor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLVariableEditor.mjs","sources":["../../src/SQLVariableEditor.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { DataQueryRequest, Field } from '@grafana/data';\nimport { t } from '@grafana/i18n';\nimport { EditorRows, EditorRow, EditorField } from '@grafana/plugin-ui';\nimport { Combobox, ComboboxOption } from '@grafana/ui';\n\nimport { migrateVariableQuery } from './SQLVariableUtils';\nimport { SqlQueryEditorProps } from './components/QueryEditor';\nimport { SqlQueryEditorLazy } from './components/QueryEditorLazy';\nimport { type SQLQuery, type SQLQueryMeta, SQLDialect } from './types';\n\ntype SQLVariableQueryEditorProps = SqlQueryEditorProps;\n\nexport const SQLVariablesQueryEditor = <T extends SQLDialect>(props: SQLVariableQueryEditorProps) => {\n const query = useMemo(() => migrateVariableQuery(props.query), [props.query]);\n const dialect = props.queryHeaderProps?.dialect ?? props.datasource.dialect ?? 'other';\n return (\n <>\n <SqlQueryEditorLazy\n {...props}\n query={query}\n queryHeaderProps={{ hideFormatSelector: true, hideRunButton: true, dialect }}\n />\n <FieldMapping {...props} query={query} />\n </>\n );\n};\n\nconst FieldMapping = (props: SQLVariableQueryEditorProps) => {\n const { query, datasource, onChange } = props;\n const [choices, setChoices] = useState<ComboboxOption[]>([]);\n\n // Track the actual SQL content to avoid re-querying when only meta changes\n const queryRef = useRef(query);\n queryRef.current = query;\n\n // Only re-run the query when the SQL content changes, not when meta (valueField/textField) changes\n const queryKey = useMemo(() => JSON.stringify({ rawSql: query.rawSql, sql: query.sql }), [query.rawSql, query.sql]);\n\n useEffect(() => {\n let isActive = true;\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const subscription = datasource.query({ targets: [queryRef.current] } as DataQueryRequest<SQLQuery>).subscribe({\n next: (response) => {\n if (!isActive) {\n return;\n }\n const fieldNames = (response.data[0] || { fields: [] }).fields.map((f: Field) => f.name);\n setChoices(fieldNames.map((f: Field) => ({ value: f, label: f })));\n },\n error: () => {\n if (isActive) {\n setChoices([]);\n }\n },\n });\n return () => {\n isActive = false;\n subscription.unsubscribe();\n };\n }, [datasource, queryKey]);\n const onMetaPropChange = <Key extends keyof SQLQueryMeta, Value extends SQLQueryMeta[Key]>(\n key: Key,\n value: Value,\n meta = query.meta || {}\n ) => {\n onChange({ ...query, meta: { ...meta, [key]: value } });\n };\n return (\n <EditorRows>\n <EditorRow>\n <EditorField label={t('grafana-sql.components.query-meta.variables.valueField', 'Value Field')}>\n <Combobox\n isClearable\n value={query.meta?.valueField}\n onChange={(e) => onMetaPropChange('valueField', e?.value)}\n width={40}\n options={choices}\n />\n </EditorField>\n <EditorField label={t('grafana-sql.components.query-meta.variables.textField', 'Text Field')}>\n <Combobox\n isClearable\n value={query.meta?.textField}\n onChange={(e) => onMetaPropChange('textField', e?.value)}\n width={40}\n options={choices}\n />\n </EditorField>\n </EditorRow>\n </EditorRows>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { map } from 'rxjs/operators';
2
+ import { CustomVariableSupport } from '@grafana/data';
3
+ import { EditorMode } from '@grafana/plugin-ui';
4
+ import { SQLVariablesQueryEditor } from './SQLVariableEditor.mjs';
5
+ import { migrateVariableQuery, updateFrame, refId } from './SQLVariableUtils.mjs';
6
+ import { applyQueryDefaults } from './defaults.mjs';
7
+ import { QueryFormat } from './types.mjs';
8
+
9
+ "use strict";
10
+ class SQLVariableSupport extends CustomVariableSupport {
11
+ constructor(datasource) {
12
+ super();
13
+ this.datasource = datasource;
14
+ this.editor = SQLVariablesQueryEditor;
15
+ }
16
+ query(request) {
17
+ if (request.targets.length < 1) {
18
+ throw new Error("no variable query found");
19
+ }
20
+ const updatedQuery = migrateVariableQuery(request.targets[0]);
21
+ return this.datasource.query({ ...request, targets: [updatedQuery] }).pipe(
22
+ map((d) => {
23
+ return {
24
+ ...d,
25
+ data: (d.data || []).map((frame) => updateFrame(frame, updatedQuery.meta))
26
+ };
27
+ })
28
+ );
29
+ }
30
+ getDefaultQuery() {
31
+ return applyQueryDefaults({ refId, editorMode: EditorMode.Builder, format: QueryFormat.Table });
32
+ }
33
+ }
34
+
35
+ export { SQLVariableSupport };
36
+ //# sourceMappingURL=SQLVariableSupport.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLVariableSupport.mjs","sources":["../../src/SQLVariableSupport.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { CustomVariableSupport, DataQueryRequest, DataQueryResponse, DataFrame } from '@grafana/data';\nimport { EditorMode } from '@grafana/plugin-ui';\n\nimport { SQLVariablesQueryEditor } from './SQLVariableEditor';\nimport { migrateVariableQuery, updateFrame, refId } from './SQLVariableUtils';\nimport { SqlDatasource } from './datasource/SqlDatasource';\nimport { applyQueryDefaults } from './defaults';\nimport { QueryFormat, type SQLQuery } from './types';\n\nexport class SQLVariableSupport extends CustomVariableSupport<SqlDatasource, SQLQuery> {\n constructor(readonly datasource: SqlDatasource) {\n super();\n }\n editor = SQLVariablesQueryEditor;\n query(request: DataQueryRequest<SQLQuery>): Observable<DataQueryResponse> {\n if (request.targets.length < 1) {\n throw new Error('no variable query found');\n }\n const updatedQuery = migrateVariableQuery(request.targets[0]);\n return this.datasource.query({ ...request, targets: [updatedQuery] }).pipe(\n map((d: DataQueryResponse) => {\n return {\n ...d,\n data: (d.data || []).map((frame: DataFrame) => updateFrame(frame, updatedQuery.meta)),\n };\n })\n );\n }\n getDefaultQuery(): Partial<SQLQuery> {\n return applyQueryDefaults({ refId, editorMode: EditorMode.Builder, format: QueryFormat.Table });\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAYO,MAAM,2BAA2B,qBAAA,CAA+C;AAAA,EACrF,YAAqB,UAAA,EAA2B;AAC9C,IAAA,KAAA,EAAM;AADa,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAGrB,IAAA,IAAA,CAAA,MAAA,GAAS,uBAAA;AAAA,EADT;AAAA,EAEA,MAAM,OAAA,EAAoE;AACxE,IAAA,IAAI,OAAA,CAAQ,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AAC9B,MAAA,MAAM,IAAI,MAAM,yBAAyB,CAAA;AAAA,IAC3C;AACA,IAAA,MAAM,YAAA,GAAe,oBAAA,CAAqB,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAC,CAAA;AAC5D,IAAA,OAAO,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,EAAE,GAAG,OAAA,EAAS,OAAA,EAAS,CAAC,YAAY,CAAA,EAAG,CAAA,CAAE,IAAA;AAAA,MACpE,GAAA,CAAI,CAAC,CAAA,KAAyB;AAC5B,QAAA,OAAO;AAAA,UACL,GAAG,CAAA;AAAA,UACH,IAAA,EAAA,CAAO,CAAA,CAAE,IAAA,IAAQ,EAAC,EAAG,GAAA,CAAI,CAAC,KAAA,KAAqB,WAAA,CAAY,KAAA,EAAO,YAAA,CAAa,IAAI,CAAC;AAAA,SACtF;AAAA,MACF,CAAC;AAAA,KACH;AAAA,EACF;AAAA,EACA,eAAA,GAAqC;AACnC,IAAA,OAAO,kBAAA,CAAmB,EAAE,KAAA,EAAO,UAAA,EAAY,WAAW,OAAA,EAAS,MAAA,EAAQ,WAAA,CAAY,KAAA,EAAO,CAAA;AAAA,EAChG;AACF;;;;"}