@grafana/sql 0.0.0 → 13.0.0-23484519191

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,294 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
7
+ var reactUse = require('react-use');
8
+ var e2eSelectors = require('@grafana/e2e-selectors');
9
+ var i18n = require('@grafana/i18n');
10
+ var pluginUi = require('@grafana/plugin-ui');
11
+ var runtime = require('@grafana/runtime');
12
+ var ui = require('@grafana/ui');
13
+ var types = require('../types.cjs');
14
+ var ConfirmModal = require('./ConfirmModal.cjs');
15
+ var DatasetSelector = require('./DatasetSelector.cjs');
16
+ var TableSelector = require('./TableSelector.cjs');
17
+
18
+ "use strict";
19
+ function QueryHeader({
20
+ db,
21
+ dialect,
22
+ isQueryRunnable,
23
+ onChange,
24
+ onQueryRowChange,
25
+ onRunQuery,
26
+ preconfiguredDataset,
27
+ query,
28
+ queryRowFilter,
29
+ hideFormatSelector,
30
+ hideRunButton
31
+ }) {
32
+ const { editorMode } = query;
33
+ const [_, copyToClipboard] = reactUse.useCopyToClipboard();
34
+ const [showConfirm, setShowConfirm] = react.useState(false);
35
+ const toRawSql = db.toRawSql;
36
+ const htmlId = react.useId();
37
+ const editorModes = [
38
+ {
39
+ label: i18n.t("grafana-sql.components.query-header.editor-modes.label-builder", "Builder"),
40
+ value: pluginUi.EditorMode.Builder
41
+ },
42
+ { label: i18n.t("grafana-sql.components.query-header.editor-modes.label-code", "Code"), value: pluginUi.EditorMode.Code }
43
+ ];
44
+ const onEditorModeChange = react.useCallback(
45
+ (newEditorMode) => {
46
+ var _a;
47
+ if (newEditorMode === pluginUi.EditorMode.Code) {
48
+ runtime.reportInteraction("grafana_sql_editor_mode_changed", {
49
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
50
+ selectedEditorMode: pluginUi.EditorMode.Code
51
+ });
52
+ }
53
+ if (editorMode === pluginUi.EditorMode.Code) {
54
+ setShowConfirm(true);
55
+ return;
56
+ }
57
+ onChange({ ...query, editorMode: newEditorMode });
58
+ },
59
+ [editorMode, onChange, query]
60
+ );
61
+ const onFormatChange = (e) => {
62
+ var _a;
63
+ const next = { ...query, format: e.value !== void 0 ? e.value : types.QueryFormat.Table };
64
+ runtime.reportInteraction("grafana_sql_format_changed", {
65
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
66
+ selectedFormat: next.format
67
+ });
68
+ onChange(next);
69
+ };
70
+ const onDatasetChange = (e) => {
71
+ if (e.value === query.dataset) {
72
+ return;
73
+ }
74
+ const next = {
75
+ ...query,
76
+ dataset: e.value,
77
+ table: void 0,
78
+ sql: void 0,
79
+ rawSql: ""
80
+ };
81
+ onChange(next);
82
+ };
83
+ const onTableChange = (e) => {
84
+ if (e.value === query.table) {
85
+ return;
86
+ }
87
+ const next = {
88
+ ...query,
89
+ table: e.value,
90
+ sql: void 0,
91
+ rawSql: ""
92
+ };
93
+ onChange(next);
94
+ };
95
+ const datasetDropdownIsAvailable = () => {
96
+ if (dialect === "influx") {
97
+ return false;
98
+ }
99
+ return true;
100
+ };
101
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
102
+ /* @__PURE__ */ jsxRuntime.jsxs(pluginUi.EditorHeader, { children: [
103
+ !hideFormatSelector && /* @__PURE__ */ jsxRuntime.jsx(
104
+ pluginUi.InlineSelect,
105
+ {
106
+ label: i18n.t("grafana-sql.components.query-header.label-format", "Format"),
107
+ value: query.format,
108
+ placeholder: i18n.t("grafana-sql.components.query-header.placeholder-select-format", "Select format"),
109
+ menuShouldPortal: true,
110
+ onChange: onFormatChange,
111
+ options: types.QUERY_FORMAT_OPTIONS
112
+ }
113
+ ),
114
+ editorMode === pluginUi.EditorMode.Builder && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx(
116
+ ui.InlineSwitch,
117
+ {
118
+ id: `sql-filter-${htmlId}`,
119
+ label: i18n.t("grafana-sql.components.query-header.label-filter", "Filter"),
120
+ "data-testid": e2eSelectors.selectors.components.SQLQueryEditor.headerFilterSwitch,
121
+ transparent: true,
122
+ showLabel: true,
123
+ value: queryRowFilter.filter,
124
+ onChange: (ev) => {
125
+ var _a;
126
+ if (!(ev.target instanceof HTMLInputElement)) {
127
+ return;
128
+ }
129
+ runtime.reportInteraction("grafana_sql_filter_toggled", {
130
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
131
+ displayed: ev.target.checked
132
+ });
133
+ onQueryRowChange({ ...queryRowFilter, filter: ev.target.checked });
134
+ }
135
+ }
136
+ ),
137
+ /* @__PURE__ */ jsxRuntime.jsx(
138
+ ui.InlineSwitch,
139
+ {
140
+ id: `sql-group-${htmlId}`,
141
+ label: i18n.t("grafana-sql.components.query-header.label-group", "Group"),
142
+ "data-testid": e2eSelectors.selectors.components.SQLQueryEditor.headerGroupSwitch,
143
+ transparent: true,
144
+ showLabel: true,
145
+ value: queryRowFilter.group,
146
+ onChange: (ev) => {
147
+ var _a;
148
+ if (!(ev.target instanceof HTMLInputElement)) {
149
+ return;
150
+ }
151
+ runtime.reportInteraction("grafana_sql_group_toggled", {
152
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
153
+ displayed: ev.target.checked
154
+ });
155
+ onQueryRowChange({ ...queryRowFilter, group: ev.target.checked });
156
+ }
157
+ }
158
+ ),
159
+ /* @__PURE__ */ jsxRuntime.jsx(
160
+ ui.InlineSwitch,
161
+ {
162
+ id: `sql-order-${htmlId}`,
163
+ label: i18n.t("grafana-sql.components.query-header.label-order", "Order"),
164
+ "data-testid": e2eSelectors.selectors.components.SQLQueryEditor.headerOrderSwitch,
165
+ transparent: true,
166
+ showLabel: true,
167
+ value: queryRowFilter.order,
168
+ onChange: (ev) => {
169
+ var _a;
170
+ if (!(ev.target instanceof HTMLInputElement)) {
171
+ return;
172
+ }
173
+ runtime.reportInteraction("grafana_sql_order_toggled", {
174
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
175
+ displayed: ev.target.checked
176
+ });
177
+ onQueryRowChange({ ...queryRowFilter, order: ev.target.checked });
178
+ }
179
+ }
180
+ ),
181
+ /* @__PURE__ */ jsxRuntime.jsx(
182
+ ui.InlineSwitch,
183
+ {
184
+ id: `sql-preview-${htmlId}`,
185
+ label: i18n.t("grafana-sql.components.query-header.label-preview", "Preview"),
186
+ "data-testid": e2eSelectors.selectors.components.SQLQueryEditor.headerPreviewSwitch,
187
+ transparent: true,
188
+ showLabel: true,
189
+ value: queryRowFilter.preview,
190
+ onChange: (ev) => {
191
+ var _a;
192
+ if (!(ev.target instanceof HTMLInputElement)) {
193
+ return;
194
+ }
195
+ runtime.reportInteraction("grafana_sql_preview_toggled", {
196
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
197
+ displayed: ev.target.checked
198
+ });
199
+ onQueryRowChange({ ...queryRowFilter, preview: ev.target.checked });
200
+ }
201
+ }
202
+ )
203
+ ] }),
204
+ /* @__PURE__ */ jsxRuntime.jsx(pluginUi.FlexItem, { grow: 1 }),
205
+ !hideRunButton && (isQueryRunnable ? /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { icon: "play", variant: "primary", size: "sm", onClick: () => onRunQuery(), children: /* @__PURE__ */ jsxRuntime.jsx(i18n.Trans, { i18nKey: "grafana-sql.components.query-header.run-query", children: "Run query" }) }) : /* @__PURE__ */ jsxRuntime.jsx(
206
+ ui.Tooltip,
207
+ {
208
+ theme: "error",
209
+ content: /* @__PURE__ */ jsxRuntime.jsxs(i18n.Trans, { i18nKey: "grafana-sql.components.query-header.content-invalid-query", children: [
210
+ "Your query is invalid. Check below for details. ",
211
+ /* @__PURE__ */ jsxRuntime.jsx("br", {}),
212
+ "However, you can still run this query."
213
+ ] }),
214
+ placement: "top",
215
+ children: /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { icon: "exclamation-triangle", variant: "secondary", size: "sm", onClick: () => onRunQuery(), children: /* @__PURE__ */ jsxRuntime.jsx(i18n.Trans, { i18nKey: "grafana-sql.components.query-header.run-query", children: "Run query" }) })
216
+ }
217
+ )),
218
+ /* @__PURE__ */ jsxRuntime.jsx(ui.RadioButtonGroup, { options: editorModes, size: "sm", value: editorMode, onChange: onEditorModeChange }),
219
+ /* @__PURE__ */ jsxRuntime.jsx(
220
+ ConfirmModal.ConfirmModal,
221
+ {
222
+ isOpen: showConfirm,
223
+ onCopy: () => {
224
+ var _a;
225
+ runtime.reportInteraction("grafana_sql_editor_mode_changed", {
226
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
227
+ selectedEditorMode: pluginUi.EditorMode.Builder,
228
+ type: "copy"
229
+ });
230
+ setShowConfirm(false);
231
+ copyToClipboard(query.rawSql);
232
+ onChange({
233
+ ...query,
234
+ rawSql: toRawSql(query),
235
+ editorMode: pluginUi.EditorMode.Builder
236
+ });
237
+ },
238
+ onDiscard: () => {
239
+ var _a;
240
+ runtime.reportInteraction("grafana_sql_editor_mode_changed", {
241
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
242
+ selectedEditorMode: pluginUi.EditorMode.Builder,
243
+ type: "discard"
244
+ });
245
+ setShowConfirm(false);
246
+ onChange({
247
+ ...query,
248
+ rawSql: toRawSql(query),
249
+ editorMode: pluginUi.EditorMode.Builder
250
+ });
251
+ },
252
+ onCancel: () => {
253
+ var _a;
254
+ runtime.reportInteraction("grafana_sql_editor_mode_changed", {
255
+ datasource: (_a = query.datasource) == null ? void 0 : _a.type,
256
+ selectedEditorMode: pluginUi.EditorMode.Builder,
257
+ type: "cancel"
258
+ });
259
+ setShowConfirm(false);
260
+ }
261
+ }
262
+ )
263
+ ] }),
264
+ editorMode === pluginUi.EditorMode.Builder && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
265
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Space, { v: 0.5 }),
266
+ /* @__PURE__ */ jsxRuntime.jsxs(pluginUi.EditorRow, { children: [
267
+ datasetDropdownIsAvailable() && /* @__PURE__ */ jsxRuntime.jsx(pluginUi.EditorField, { label: i18n.t("grafana-sql.components.query-header.label-dataset", "Dataset"), width: 25, children: /* @__PURE__ */ jsxRuntime.jsx(
268
+ DatasetSelector.DatasetSelector,
269
+ {
270
+ db,
271
+ inputId: `sql-dataset-${htmlId}`,
272
+ dataset: query.dataset,
273
+ dialect,
274
+ preconfiguredDataset,
275
+ onChange: onDatasetChange
276
+ }
277
+ ) }),
278
+ /* @__PURE__ */ jsxRuntime.jsx(pluginUi.EditorField, { label: i18n.t("grafana-sql.components.query-header.label-table", "Table"), width: 25, children: /* @__PURE__ */ jsxRuntime.jsx(
279
+ TableSelector.TableSelector,
280
+ {
281
+ db,
282
+ inputId: `sql-tableselect-${htmlId}`,
283
+ dataset: query.dataset || preconfiguredDataset,
284
+ table: query.table,
285
+ onChange: onTableChange
286
+ }
287
+ ) })
288
+ ] })
289
+ ] })
290
+ ] });
291
+ }
292
+
293
+ exports.QueryHeader = QueryHeader;
294
+ //# sourceMappingURL=QueryHeader.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryHeader.cjs","sources":["../../../src/components/QueryHeader.tsx"],"sourcesContent":["import { useCallback, useId, useState } from 'react';\nimport { useCopyToClipboard } from 'react-use';\n\nimport { SelectableValue } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { t, Trans } from '@grafana/i18n';\nimport { EditorField, EditorHeader, EditorMode, EditorRow, FlexItem, InlineSelect } from '@grafana/plugin-ui';\nimport { reportInteraction } from '@grafana/runtime';\nimport { Button, InlineSwitch, RadioButtonGroup, Tooltip, Space } from '@grafana/ui';\n\nimport { QueryWithDefaults } from '../defaults';\nimport { SQLQuery, QueryFormat, QueryRowFilter, QUERY_FORMAT_OPTIONS, DB, SQLDialect } from '../types';\n\nimport { ConfirmModal } from './ConfirmModal';\nimport { DatasetSelector } from './DatasetSelector';\nimport { TableSelector } from './TableSelector';\n\nexport interface QueryHeaderProps {\n db: DB;\n dialect: SQLDialect;\n isQueryRunnable: boolean;\n onChange: (query: SQLQuery) => void;\n onQueryRowChange: (queryRowFilter: QueryRowFilter) => void;\n onRunQuery: () => void;\n preconfiguredDataset: string;\n query: QueryWithDefaults;\n queryRowFilter: QueryRowFilter;\n hideFormatSelector?: boolean;\n hideRunButton?: boolean;\n}\n\nexport function QueryHeader({\n db,\n dialect,\n isQueryRunnable,\n onChange,\n onQueryRowChange,\n onRunQuery,\n preconfiguredDataset,\n query,\n queryRowFilter,\n hideFormatSelector,\n hideRunButton,\n}: QueryHeaderProps) {\n const { editorMode } = query;\n const [_, copyToClipboard] = useCopyToClipboard();\n const [showConfirm, setShowConfirm] = useState(false);\n const toRawSql = db.toRawSql;\n\n const htmlId = useId();\n\n const editorModes = [\n {\n label: t('grafana-sql.components.query-header.editor-modes.label-builder', 'Builder'),\n value: EditorMode.Builder,\n },\n { label: t('grafana-sql.components.query-header.editor-modes.label-code', 'Code'), value: EditorMode.Code },\n ];\n\n const onEditorModeChange = useCallback(\n (newEditorMode: EditorMode) => {\n if (newEditorMode === EditorMode.Code) {\n reportInteraction('grafana_sql_editor_mode_changed', {\n datasource: query.datasource?.type,\n selectedEditorMode: EditorMode.Code,\n });\n }\n\n if (editorMode === EditorMode.Code) {\n setShowConfirm(true);\n return;\n }\n onChange({ ...query, editorMode: newEditorMode });\n },\n [editorMode, onChange, query]\n );\n\n const onFormatChange = (e: SelectableValue) => {\n const next = { ...query, format: e.value !== undefined ? e.value : QueryFormat.Table };\n\n reportInteraction('grafana_sql_format_changed', {\n datasource: query.datasource?.type,\n selectedFormat: next.format,\n });\n onChange(next);\n };\n\n const onDatasetChange = (e: SelectableValue) => {\n if (e.value === query.dataset) {\n return;\n }\n\n const next = {\n ...query,\n dataset: e.value,\n table: undefined,\n sql: undefined,\n rawSql: '',\n };\n\n onChange(next);\n };\n\n const onTableChange = (e: SelectableValue) => {\n if (e.value === query.table) {\n return;\n }\n\n const next: SQLQuery = {\n ...query,\n table: e.value,\n sql: undefined,\n rawSql: '',\n };\n\n onChange(next);\n };\n\n const datasetDropdownIsAvailable = () => {\n if (dialect === 'influx') {\n return false;\n }\n\n return true;\n };\n\n return (\n <>\n <EditorHeader>\n {!hideFormatSelector && (\n <InlineSelect\n label={t('grafana-sql.components.query-header.label-format', 'Format')}\n value={query.format}\n placeholder={t('grafana-sql.components.query-header.placeholder-select-format', 'Select format')}\n menuShouldPortal\n onChange={onFormatChange}\n options={QUERY_FORMAT_OPTIONS}\n />\n )}\n\n {editorMode === EditorMode.Builder && (\n <>\n <InlineSwitch\n id={`sql-filter-${htmlId}`}\n label={t('grafana-sql.components.query-header.label-filter', 'Filter')}\n data-testid={selectors.components.SQLQueryEditor.headerFilterSwitch}\n transparent={true}\n showLabel={true}\n value={queryRowFilter.filter}\n onChange={(ev) => {\n if (!(ev.target instanceof HTMLInputElement)) {\n return;\n }\n\n reportInteraction('grafana_sql_filter_toggled', {\n datasource: query.datasource?.type,\n displayed: ev.target.checked,\n });\n\n onQueryRowChange({ ...queryRowFilter, filter: ev.target.checked });\n }}\n />\n\n <InlineSwitch\n id={`sql-group-${htmlId}`}\n label={t('grafana-sql.components.query-header.label-group', 'Group')}\n data-testid={selectors.components.SQLQueryEditor.headerGroupSwitch}\n transparent={true}\n showLabel={true}\n value={queryRowFilter.group}\n onChange={(ev) => {\n if (!(ev.target instanceof HTMLInputElement)) {\n return;\n }\n\n reportInteraction('grafana_sql_group_toggled', {\n datasource: query.datasource?.type,\n displayed: ev.target.checked,\n });\n\n onQueryRowChange({ ...queryRowFilter, group: ev.target.checked });\n }}\n />\n\n <InlineSwitch\n id={`sql-order-${htmlId}`}\n label={t('grafana-sql.components.query-header.label-order', 'Order')}\n data-testid={selectors.components.SQLQueryEditor.headerOrderSwitch}\n transparent={true}\n showLabel={true}\n value={queryRowFilter.order}\n onChange={(ev) => {\n if (!(ev.target instanceof HTMLInputElement)) {\n return;\n }\n\n reportInteraction('grafana_sql_order_toggled', {\n datasource: query.datasource?.type,\n displayed: ev.target.checked,\n });\n\n onQueryRowChange({ ...queryRowFilter, order: ev.target.checked });\n }}\n />\n\n <InlineSwitch\n id={`sql-preview-${htmlId}`}\n label={t('grafana-sql.components.query-header.label-preview', 'Preview')}\n data-testid={selectors.components.SQLQueryEditor.headerPreviewSwitch}\n transparent={true}\n showLabel={true}\n value={queryRowFilter.preview}\n onChange={(ev) => {\n if (!(ev.target instanceof HTMLInputElement)) {\n return;\n }\n\n reportInteraction('grafana_sql_preview_toggled', {\n datasource: query.datasource?.type,\n displayed: ev.target.checked,\n });\n\n onQueryRowChange({ ...queryRowFilter, preview: ev.target.checked });\n }}\n />\n </>\n )}\n\n <FlexItem grow={1} />\n\n {!hideRunButton &&\n (isQueryRunnable ? (\n <Button icon=\"play\" variant=\"primary\" size=\"sm\" onClick={() => onRunQuery()}>\n <Trans i18nKey=\"grafana-sql.components.query-header.run-query\">Run query</Trans>\n </Button>\n ) : (\n <Tooltip\n theme=\"error\"\n content={\n <Trans i18nKey=\"grafana-sql.components.query-header.content-invalid-query\">\n Your query is invalid. Check below for details. <br />\n However, you can still run this query.\n </Trans>\n }\n placement=\"top\"\n >\n <Button icon=\"exclamation-triangle\" variant=\"secondary\" size=\"sm\" onClick={() => onRunQuery()}>\n <Trans i18nKey=\"grafana-sql.components.query-header.run-query\">Run query</Trans>\n </Button>\n </Tooltip>\n ))}\n\n <RadioButtonGroup options={editorModes} size=\"sm\" value={editorMode} onChange={onEditorModeChange} />\n\n <ConfirmModal\n isOpen={showConfirm}\n onCopy={() => {\n reportInteraction('grafana_sql_editor_mode_changed', {\n datasource: query.datasource?.type,\n selectedEditorMode: EditorMode.Builder,\n type: 'copy',\n });\n\n setShowConfirm(false);\n copyToClipboard(query.rawSql!);\n onChange({\n ...query,\n rawSql: toRawSql(query),\n editorMode: EditorMode.Builder,\n });\n }}\n onDiscard={() => {\n reportInteraction('grafana_sql_editor_mode_changed', {\n datasource: query.datasource?.type,\n selectedEditorMode: EditorMode.Builder,\n type: 'discard',\n });\n\n setShowConfirm(false);\n onChange({\n ...query,\n rawSql: toRawSql(query),\n editorMode: EditorMode.Builder,\n });\n }}\n onCancel={() => {\n reportInteraction('grafana_sql_editor_mode_changed', {\n datasource: query.datasource?.type,\n selectedEditorMode: EditorMode.Builder,\n type: 'cancel',\n });\n\n setShowConfirm(false);\n }}\n />\n </EditorHeader>\n\n {editorMode === EditorMode.Builder && (\n <>\n <Space v={0.5} />\n <EditorRow>\n {datasetDropdownIsAvailable() && (\n <EditorField label={t('grafana-sql.components.query-header.label-dataset', 'Dataset')} width={25}>\n <DatasetSelector\n db={db}\n inputId={`sql-dataset-${htmlId}`}\n dataset={query.dataset}\n dialect={dialect}\n preconfiguredDataset={preconfiguredDataset}\n onChange={onDatasetChange}\n />\n </EditorField>\n )}\n <EditorField label={t('grafana-sql.components.query-header.label-table', 'Table')} width={25}>\n <TableSelector\n db={db}\n inputId={`sql-tableselect-${htmlId}`}\n dataset={query.dataset || preconfiguredDataset}\n table={query.table}\n onChange={onTableChange}\n />\n </EditorField>\n </EditorRow>\n </>\n )}\n </>\n );\n}\n"],"names":["useCopyToClipboard","useState","useId","t","EditorMode","useCallback","reportInteraction","QueryFormat","jsxs","Fragment","EditorHeader","jsx","InlineSelect","QUERY_FORMAT_OPTIONS","InlineSwitch","selectors","FlexItem","Button","Trans","Tooltip","RadioButtonGroup","ConfirmModal","Space","EditorRow","EditorField","DatasetSelector","TableSelector"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var reactUse = require('react-use');
7
+ var data = require('@grafana/data');
8
+ var e2eSelectors = require('@grafana/e2e-selectors');
9
+ var i18n = require('@grafana/i18n');
10
+ var ui = require('@grafana/ui');
11
+
12
+ "use strict";
13
+ const TableSelector = ({ db, dataset, table, className, onChange, inputId }) => {
14
+ const state = reactUse.useAsync(async () => {
15
+ if (!dataset) {
16
+ return [];
17
+ }
18
+ const tables = await db.tables(dataset);
19
+ return tables.map(data.toOption);
20
+ }, [dataset]);
21
+ return /* @__PURE__ */ jsxRuntime.jsx(
22
+ ui.Select,
23
+ {
24
+ className,
25
+ disabled: state.loading,
26
+ "aria-label": i18n.t("grafana-sql.components.table-selector.aria-label-table-selector", "Table selector"),
27
+ inputId,
28
+ "data-testid": e2eSelectors.selectors.components.SQLQueryEditor.headerTableSelector,
29
+ value: table,
30
+ options: state.value,
31
+ onChange,
32
+ isLoading: state.loading,
33
+ menuShouldPortal: true,
34
+ placeholder: state.loading ? i18n.t("grafana-sql.components.table-selector.placeholder-loading", "Loading tables") : i18n.t("grafana-sql.components.table-selector.placeholder-select-table", "Select table"),
35
+ allowCustomValue: true
36
+ }
37
+ );
38
+ };
39
+
40
+ exports.TableSelector = TableSelector;
41
+ //# sourceMappingURL=TableSelector.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSelector.cjs","sources":["../../../src/components/TableSelector.tsx"],"sourcesContent":["import { useAsync } from 'react-use';\n\nimport { SelectableValue, toOption } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { t } from '@grafana/i18n';\nimport { Select } from '@grafana/ui';\n\nimport { DB, ResourceSelectorProps } from '../types';\n\nexport interface TableSelectorProps extends ResourceSelectorProps {\n db: DB;\n table: string | undefined;\n dataset: string | undefined;\n onChange: (v: SelectableValue) => void;\n inputId?: string | undefined;\n}\n\nexport const TableSelector = ({ db, dataset, table, className, onChange, inputId }: TableSelectorProps) => {\n const state = useAsync(async () => {\n // No need to attempt to fetch tables for an unknown dataset.\n if (!dataset) {\n return [];\n }\n\n const tables = await db.tables(dataset);\n return tables.map(toOption);\n }, [dataset]);\n\n return (\n <Select\n className={className}\n disabled={state.loading}\n aria-label={t('grafana-sql.components.table-selector.aria-label-table-selector', 'Table selector')}\n inputId={inputId}\n data-testid={selectors.components.SQLQueryEditor.headerTableSelector}\n value={table}\n options={state.value}\n onChange={onChange}\n isLoading={state.loading}\n menuShouldPortal={true}\n placeholder={\n state.loading\n ? t('grafana-sql.components.table-selector.placeholder-loading', 'Loading tables')\n : t('grafana-sql.components.table-selector.placeholder-select-table', 'Select table')\n }\n allowCustomValue={true}\n />\n );\n};\n"],"names":["useAsync","toOption","jsx","Select","t","selectors"],"mappings":";;;;;;;;;;;;AAiBO,MAAM,aAAA,GAAgB,CAAC,EAAE,EAAA,EAAI,SAAS,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,OAAA,EAAQ,KAA0B;AACzG,EAAA,MAAM,KAAA,GAAQA,kBAAS,YAAY;AAEjC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,MAAM,MAAA,GAAS,MAAM,EAAA,CAAG,MAAA,CAAO,OAAO,CAAA;AACtC,IAAA,OAAO,MAAA,CAAO,IAAIC,aAAQ,CAAA;AAAA,EAC5B,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,uBACEC,cAAA;AAAA,IAACC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,UAAU,KAAA,CAAM,OAAA;AAAA,MAChB,YAAA,EAAYC,MAAA,CAAE,iEAAA,EAAmE,gBAAgB,CAAA;AAAA,MACjG,OAAA;AAAA,MACA,aAAA,EAAaC,sBAAA,CAAU,UAAA,CAAW,cAAA,CAAe,mBAAA;AAAA,MACjD,KAAA,EAAO,KAAA;AAAA,MACP,SAAS,KAAA,CAAM,KAAA;AAAA,MACf,QAAA;AAAA,MACA,WAAW,KAAA,CAAM,OAAA;AAAA,MACjB,gBAAA,EAAkB,IAAA;AAAA,MAClB,WAAA,EACE,MAAM,OAAA,GACFD,MAAA,CAAE,6DAA6D,gBAAgB,CAAA,GAC/EA,MAAA,CAAE,gEAAA,EAAkE,cAAc,CAAA;AAAA,MAExF,gBAAA,EAAkB;AAAA;AAAA,GACpB;AAEJ;;;;"}
@@ -0,0 +1,162 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var i18n = require('@grafana/i18n');
7
+ var pluginUi = require('@grafana/plugin-ui');
8
+ var runtime = require('@grafana/runtime');
9
+ var ui = require('@grafana/ui');
10
+ var MaxLifetimeField = require('./MaxLifetimeField.cjs');
11
+ var MaxOpenConnectionsField = require('./MaxOpenConnectionsField.cjs');
12
+ var NumberInput = require('./NumberInput.cjs');
13
+
14
+ "use strict";
15
+ const ConnectionLimits = (props) => {
16
+ const { onOptionsChange, options } = props;
17
+ const jsonData = options.jsonData;
18
+ const autoIdle = jsonData.maxIdleConnsAuto !== void 0 ? jsonData.maxIdleConnsAuto : false;
19
+ const updateJsonData = (values) => {
20
+ const newOpts = {
21
+ ...options,
22
+ jsonData: {
23
+ ...jsonData,
24
+ ...values
25
+ }
26
+ };
27
+ return onOptionsChange(newOpts);
28
+ };
29
+ const onJSONDataNumberChanged = (property) => {
30
+ return (number) => {
31
+ updateJsonData({ [property]: number });
32
+ };
33
+ };
34
+ const onMaxConnectionsChanged = (number) => {
35
+ if (autoIdle && number) {
36
+ updateJsonData({
37
+ maxOpenConns: number,
38
+ maxIdleConns: number
39
+ });
40
+ } else {
41
+ updateJsonData({
42
+ maxOpenConns: number
43
+ });
44
+ }
45
+ };
46
+ const onConnectionIdleAutoChanged = () => {
47
+ let idleConns = void 0;
48
+ let maxConns = void 0;
49
+ if (!autoIdle) {
50
+ if (jsonData.maxOpenConns !== void 0) {
51
+ maxConns = jsonData.maxOpenConns;
52
+ idleConns = jsonData.maxOpenConns;
53
+ }
54
+ } else {
55
+ maxConns = jsonData.maxOpenConns;
56
+ idleConns = jsonData.maxIdleConns;
57
+ }
58
+ updateJsonData({
59
+ maxIdleConnsAuto: !autoIdle,
60
+ maxIdleConns: idleConns,
61
+ maxOpenConns: maxConns
62
+ });
63
+ };
64
+ const labelWidth = 40;
65
+ return /* @__PURE__ */ jsxRuntime.jsx(
66
+ pluginUi.ConfigSubSection,
67
+ {
68
+ title: i18n.t("grafana-sql.components.connection-limits.title-connection-limits", "Connection limits"),
69
+ children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Stack, { direction: "column", gap: 2, children: [
70
+ /* @__PURE__ */ jsxRuntime.jsx(
71
+ MaxOpenConnectionsField.MaxOpenConnectionsField,
72
+ {
73
+ labelWidth,
74
+ onMaxConnectionsChanged,
75
+ jsonData
76
+ }
77
+ ),
78
+ /* @__PURE__ */ jsxRuntime.jsx(
79
+ ui.Field,
80
+ {
81
+ noMargin: true,
82
+ label: /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Stack, { gap: 0.5, children: [
83
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: /* @__PURE__ */ jsxRuntime.jsx(i18n.Trans, { i18nKey: "grafana-sql.components.connection-limits.auto-max-idle", children: "Auto max idle" }) }),
84
+ /* @__PURE__ */ jsxRuntime.jsx(
85
+ ui.Tooltip,
86
+ {
87
+ content: /* @__PURE__ */ jsxRuntime.jsx("span", { children: /* @__PURE__ */ jsxRuntime.jsxs(
88
+ i18n.Trans,
89
+ {
90
+ i18nKey: "grafana-sql.components.connection-limits.content-auto-max-idle",
91
+ values: { defaultMaxIdle: runtime.config.sqlConnectionLimits.maxIdleConns },
92
+ children: [
93
+ "If enabled, automatically set the number of ",
94
+ /* @__PURE__ */ jsxRuntime.jsx("i", { children: "Maximum idle connections" }),
95
+ " to the same value as",
96
+ /* @__PURE__ */ jsxRuntime.jsx("i", { children: " Max open connections" }),
97
+ ". If the number of maximum open connections is not set it will be set to the default (",
98
+ "{{defaultMaxIdle}}",
99
+ ")."
100
+ ]
101
+ }
102
+ ) }),
103
+ children: /* @__PURE__ */ jsxRuntime.jsx(ui.Icon, { name: "info-circle", size: "sm" })
104
+ }
105
+ )
106
+ ] }) }),
107
+ children: /* @__PURE__ */ jsxRuntime.jsx(ui.Switch, { value: autoIdle, onChange: onConnectionIdleAutoChanged })
108
+ }
109
+ ),
110
+ /* @__PURE__ */ jsxRuntime.jsx(
111
+ ui.Field,
112
+ {
113
+ noMargin: true,
114
+ label: /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Stack, { gap: 0.5, children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: /* @__PURE__ */ jsxRuntime.jsx(i18n.Trans, { i18nKey: "grafana-sql.components.connection-limits.max-idle", children: "Max idle" }) }),
116
+ /* @__PURE__ */ jsxRuntime.jsx(
117
+ ui.Tooltip,
118
+ {
119
+ content: /* @__PURE__ */ jsxRuntime.jsx("span", { children: /* @__PURE__ */ jsxRuntime.jsxs(i18n.Trans, { i18nKey: "grafana-sql.components.connection-limits.content-max-idle", children: [
120
+ "The maximum number of connections in the idle connection pool.If ",
121
+ /* @__PURE__ */ jsxRuntime.jsx("i", { children: "Max open connections" }),
122
+ " is greater than 0 but less than the ",
123
+ /* @__PURE__ */ jsxRuntime.jsx("i", { children: "Max idle connections" }),
124
+ ", then the",
125
+ " ",
126
+ /* @__PURE__ */ jsxRuntime.jsx("i", { children: "Max idle connections" }),
127
+ " will be reduced to match the ",
128
+ /* @__PURE__ */ jsxRuntime.jsx("i", { children: "Max open connections" }),
129
+ " limit. If set to 0, no idle connections are retained."
130
+ ] }) }),
131
+ children: /* @__PURE__ */ jsxRuntime.jsx(ui.Icon, { name: "info-circle", size: "sm" })
132
+ }
133
+ )
134
+ ] }) }),
135
+ children: autoIdle ? /* @__PURE__ */ jsxRuntime.jsx(ui.InlineLabel, { width: labelWidth, children: options.jsonData.maxIdleConns }) : /* @__PURE__ */ jsxRuntime.jsx(
136
+ NumberInput.NumberInput,
137
+ {
138
+ value: jsonData.maxIdleConns,
139
+ defaultValue: runtime.config.sqlConnectionLimits.maxIdleConns,
140
+ onChange: (value) => {
141
+ onJSONDataNumberChanged("maxIdleConns")(value);
142
+ },
143
+ width: labelWidth
144
+ }
145
+ )
146
+ }
147
+ ),
148
+ /* @__PURE__ */ jsxRuntime.jsx(
149
+ MaxLifetimeField.MaxLifetimeField,
150
+ {
151
+ labelWidth,
152
+ onMaxLifetimeChanged: onJSONDataNumberChanged("connMaxLifetime"),
153
+ jsonData
154
+ }
155
+ )
156
+ ] })
157
+ }
158
+ );
159
+ };
160
+
161
+ exports.ConnectionLimits = ConnectionLimits;
162
+ //# sourceMappingURL=ConnectionLimits.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionLimits.cjs","sources":["../../../../src/components/configuration/ConnectionLimits.tsx"],"sourcesContent":["import { DataSourceSettings } from '@grafana/data';\nimport { t, Trans } from '@grafana/i18n';\nimport { ConfigSubSection } from '@grafana/plugin-ui';\nimport { config } from '@grafana/runtime';\nimport { Field, Icon, InlineLabel, Label, Stack, Switch, Tooltip } from '@grafana/ui';\n\nimport { SQLConnectionLimits, SQLOptions } from '../../types';\n\nimport { MaxLifetimeField } from './MaxLifetimeField';\nimport { MaxOpenConnectionsField } from './MaxOpenConnectionsField';\nimport { NumberInput } from './NumberInput';\n\ninterface Props<T> {\n onOptionsChange: Function;\n options: DataSourceSettings<SQLOptions>;\n}\n\nexport const ConnectionLimits = <T extends SQLConnectionLimits>(props: Props<T>) => {\n const { onOptionsChange, options } = props;\n const jsonData = options.jsonData;\n const autoIdle = jsonData.maxIdleConnsAuto !== undefined ? jsonData.maxIdleConnsAuto : false;\n\n // Update JSON data with new values\n const updateJsonData = (values: {}) => {\n const newOpts = {\n ...options,\n jsonData: {\n ...jsonData,\n ...values,\n },\n };\n\n return onOptionsChange(newOpts);\n };\n\n // For the case of idle connections and connection lifetime\n // use a shared function to update respective properties\n const onJSONDataNumberChanged = (property: keyof SQLConnectionLimits) => {\n return (number?: number) => {\n updateJsonData({ [property]: number });\n };\n };\n\n // When the maximum number of connections is changed\n // see if we have the automatic idle option enabled\n const onMaxConnectionsChanged = (number?: number) => {\n if (autoIdle && number) {\n updateJsonData({\n maxOpenConns: number,\n maxIdleConns: number,\n });\n } else {\n updateJsonData({\n maxOpenConns: number,\n });\n }\n };\n\n // Update auto idle setting when control is toggled\n // and set minimum idle connections if automatic\n // is selected\n const onConnectionIdleAutoChanged = () => {\n let idleConns = undefined;\n let maxConns = undefined;\n\n // If the maximum number of open connections is undefined\n // and we're setting auto idle then set the default amount\n // otherwise take the numeric amount and get the value from that\n if (!autoIdle) {\n if (jsonData.maxOpenConns !== undefined) {\n maxConns = jsonData.maxOpenConns;\n idleConns = jsonData.maxOpenConns;\n }\n } else {\n maxConns = jsonData.maxOpenConns;\n idleConns = jsonData.maxIdleConns;\n }\n\n updateJsonData({\n maxIdleConnsAuto: !autoIdle,\n maxIdleConns: idleConns,\n maxOpenConns: maxConns,\n });\n };\n\n const labelWidth = 40;\n\n return (\n <ConfigSubSection\n title={t('grafana-sql.components.connection-limits.title-connection-limits', 'Connection limits')}\n >\n <Stack direction=\"column\" gap={2}>\n <MaxOpenConnectionsField\n labelWidth={labelWidth}\n onMaxConnectionsChanged={onMaxConnectionsChanged}\n jsonData={jsonData}\n />\n\n <Field\n noMargin\n label={\n <Label>\n <Stack gap={0.5}>\n <span>\n <Trans i18nKey=\"grafana-sql.components.connection-limits.auto-max-idle\">Auto max idle</Trans>\n </span>\n <Tooltip\n content={\n <span>\n <Trans\n i18nKey=\"grafana-sql.components.connection-limits.content-auto-max-idle\"\n values={{ defaultMaxIdle: config.sqlConnectionLimits.maxIdleConns }}\n >\n If enabled, automatically set the number of <i>Maximum idle connections</i> to the same value as\n <i> Max open connections</i>. If the number of maximum open connections is not set it will be\n set to the default ({'{{defaultMaxIdle}}'}).\n </Trans>\n </span>\n }\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n <Switch value={autoIdle} onChange={onConnectionIdleAutoChanged} />\n </Field>\n\n <Field\n noMargin\n label={\n <Label>\n <Stack gap={0.5}>\n <span>\n <Trans i18nKey=\"grafana-sql.components.connection-limits.max-idle\">Max idle</Trans>\n </span>\n <Tooltip\n content={\n <span>\n <Trans i18nKey=\"grafana-sql.components.connection-limits.content-max-idle\">\n The maximum number of connections in the idle connection pool.If <i>Max open connections</i> is\n greater than 0 but less than the <i>Max idle connections</i>, then the{' '}\n <i>Max idle connections</i> will be reduced to match the <i>Max open connections</i> limit. If\n set to 0, no idle connections are retained.\n </Trans>\n </span>\n }\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n {autoIdle ? (\n <InlineLabel width={labelWidth}>{options.jsonData.maxIdleConns}</InlineLabel>\n ) : (\n <NumberInput\n value={jsonData.maxIdleConns}\n defaultValue={config.sqlConnectionLimits.maxIdleConns}\n onChange={(value) => {\n onJSONDataNumberChanged('maxIdleConns')(value);\n }}\n width={labelWidth}\n />\n )}\n </Field>\n\n <MaxLifetimeField\n labelWidth={labelWidth}\n onMaxLifetimeChanged={onJSONDataNumberChanged('connMaxLifetime')}\n jsonData={jsonData}\n />\n </Stack>\n </ConfigSubSection>\n );\n};\n"],"names":["jsx","ConfigSubSection","t","jsxs","Stack","MaxOpenConnectionsField","Field","Label","Trans","Tooltip","config","Icon","Switch","InlineLabel","NumberInput","MaxLifetimeField"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var css = require('@emotion/css');
7
+ var ui = require('@grafana/ui');
8
+
9
+ "use strict";
10
+ const Divider = () => {
11
+ const styles = ui.useStyles2(getStyles);
12
+ return /* @__PURE__ */ jsxRuntime.jsx("hr", { className: styles.horizontalDivider });
13
+ };
14
+ const getStyles = (theme) => {
15
+ return {
16
+ horizontalDivider: css.css({
17
+ borderTop: `1px solid ${theme.colors.border.weak}`,
18
+ margin: theme.spacing(2, 0),
19
+ width: "100%"
20
+ })
21
+ };
22
+ };
23
+
24
+ exports.Divider = Divider;
25
+ //# sourceMappingURL=Divider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Divider.cjs","sources":["../../../../src/components/configuration/Divider.tsx"],"sourcesContent":["import { css } from '@emotion/css';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\n// this custom component is necessary because the Grafana UI <Divider /> component is not backwards compatible with Grafana < 10.1.0\nexport const Divider = () => {\n const styles = useStyles2(getStyles);\n return <hr className={styles.horizontalDivider} />;\n};\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n horizontalDivider: css({\n borderTop: `1px solid ${theme.colors.border.weak}`,\n margin: theme.spacing(2, 0),\n width: '100%',\n }),\n };\n};\n"],"names":["useStyles2","jsx","css"],"mappings":";;;;;;;;;AAMO,MAAM,UAAU,MAAM;AAC3B,EAAA,MAAM,MAAA,GAASA,cAAW,SAAS,CAAA;AACnC,EAAA,uBAAOC,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,MAAA,CAAO,iBAAA,EAAmB,CAAA;AAClD;AAEA,MAAM,SAAA,GAAY,CAAC,KAAA,KAAyB;AAC1C,EAAA,OAAO;AAAA,IACL,mBAAmBC,OAAA,CAAI;AAAA,MACrB,SAAA,EAAW,CAAA,UAAA,EAAa,KAAA,CAAM,MAAA,CAAO,OAAO,IAAI,CAAA,CAAA;AAAA,MAChD,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,MAC1B,KAAA,EAAO;AAAA,KACR;AAAA,GACH;AACF,CAAA;;;;"}
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var i18n = require('@grafana/i18n');
7
+ var runtime = require('@grafana/runtime');
8
+ var ui = require('@grafana/ui');
9
+ var NumberInput = require('./NumberInput.cjs');
10
+
11
+ "use strict";
12
+ function MaxLifetimeField({ labelWidth, onMaxLifetimeChanged, jsonData }) {
13
+ return /* @__PURE__ */ jsxRuntime.jsx(
14
+ ui.Field,
15
+ {
16
+ noMargin: true,
17
+ label: /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Stack, { gap: 0.5, children: [
18
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: /* @__PURE__ */ jsxRuntime.jsx(i18n.Trans, { i18nKey: "grafana-sql.components.connection-limits.max-lifetime", children: "Max lifetime" }) }),
19
+ /* @__PURE__ */ jsxRuntime.jsx(
20
+ ui.Tooltip,
21
+ {
22
+ content: /* @__PURE__ */ jsxRuntime.jsx("span", { children: /* @__PURE__ */ jsxRuntime.jsx(i18n.Trans, { i18nKey: "grafana-sql.components.connection-limits.content-max-lifetime", children: "The maximum amount of time in seconds a connection may be reused. If set to 0, connections are reused forever." }) }),
23
+ children: /* @__PURE__ */ jsxRuntime.jsx(ui.Icon, { name: "info-circle", size: "sm" })
24
+ }
25
+ )
26
+ ] }) }),
27
+ children: /* @__PURE__ */ jsxRuntime.jsx(
28
+ NumberInput.NumberInput,
29
+ {
30
+ value: jsonData.connMaxLifetime,
31
+ defaultValue: runtime.config.sqlConnectionLimits.connMaxLifetime,
32
+ onChange: onMaxLifetimeChanged,
33
+ width: labelWidth
34
+ }
35
+ )
36
+ }
37
+ );
38
+ }
39
+
40
+ exports.MaxLifetimeField = MaxLifetimeField;
41
+ //# sourceMappingURL=MaxLifetimeField.cjs.map