@grafana/plugin-ui 0.9.5 → 0.10.0

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 (729) hide show
  1. package/dist/cjs/index.d.cts +1205 -0
  2. package/dist/cjs/index.js +9739 -0
  3. package/dist/cjs/index.js.map +1 -0
  4. package/dist/esm/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js +80 -0
  5. package/dist/esm/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js.map +1 -0
  6. package/dist/esm/components/ConfigEditor/Auth/Auth.js +43 -0
  7. package/dist/esm/components/ConfigEditor/Auth/Auth.js.map +1 -0
  8. package/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js +132 -0
  9. package/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js.map +1 -0
  10. package/dist/esm/components/ConfigEditor/Auth/auth-method/BasicAuth.js +82 -0
  11. package/dist/esm/components/ConfigEditor/Auth/auth-method/BasicAuth.js.map +1 -0
  12. package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeader.js +91 -0
  13. package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeader.js.map +1 -0
  14. package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js +101 -0
  15. package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js.map +1 -0
  16. package/dist/esm/components/ConfigEditor/Auth/styles.js +18 -0
  17. package/dist/esm/components/ConfigEditor/Auth/styles.js.map +1 -0
  18. package/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js +58 -0
  19. package/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js.map +1 -0
  20. package/dist/esm/components/ConfigEditor/Auth/tls/SkipTLSVerification.js +18 -0
  21. package/dist/esm/components/ConfigEditor/Auth/tls/SkipTLSVerification.js.map +1 -0
  22. package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js +114 -0
  23. package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js.map +1 -0
  24. package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettings.js +31 -0
  25. package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettings.js.map +1 -0
  26. package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettingsSection.js +35 -0
  27. package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettingsSection.js.map +1 -0
  28. package/dist/esm/components/ConfigEditor/Auth/types.js +12 -0
  29. package/dist/esm/components/ConfigEditor/Auth/types.js.map +1 -0
  30. package/dist/esm/components/ConfigEditor/Auth/utils.js +200 -0
  31. package/dist/esm/components/ConfigEditor/Auth/utils.js.map +1 -0
  32. package/dist/esm/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js +38 -0
  33. package/dist/esm/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js.map +1 -0
  34. package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSection.js +9 -0
  35. package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSection.js.map +1 -0
  36. package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSubSection.js +9 -0
  37. package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSubSection.js.map +1 -0
  38. package/dist/esm/components/ConfigEditor/ConfigSection/GenericConfigSection.js +55 -0
  39. package/dist/esm/components/ConfigEditor/ConfigSection/GenericConfigSection.js.map +1 -0
  40. package/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js +53 -0
  41. package/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js.map +1 -0
  42. package/dist/esm/components/ConfigEditor/DataSourceDescription.js +32 -0
  43. package/dist/esm/components/ConfigEditor/DataSourceDescription.js.map +1 -0
  44. package/dist/esm/components/ConfigEditor/SecureSocksProxyToggle.js +45 -0
  45. package/dist/esm/components/ConfigEditor/SecureSocksProxyToggle.js.map +1 -0
  46. package/dist/esm/components/CustomHeadersSettings/CustomHeadersSettings.js +182 -0
  47. package/dist/esm/components/CustomHeadersSettings/CustomHeadersSettings.js.map +1 -0
  48. package/dist/esm/components/DataLinks/DataLink.js +144 -0
  49. package/dist/esm/components/DataLinks/DataLink.js.map +1 -0
  50. package/dist/esm/components/DataLinks/DataLinks.js +66 -0
  51. package/dist/esm/components/DataLinks/DataLinks.js.map +1 -0
  52. package/dist/esm/components/DataSourcePicker/DataSourcePicker.js +103 -0
  53. package/dist/esm/components/DataSourcePicker/DataSourcePicker.js.map +1 -0
  54. package/dist/esm/components/DatePicker/DatePicker.js +39 -0
  55. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
  56. package/dist/{components → esm/components}/DatePicker/styles.js +20 -21
  57. package/dist/esm/components/DatePicker/styles.js.map +1 -0
  58. package/dist/esm/components/DatePickerWithInput/DatePickerWithInput.js +28 -0
  59. package/dist/esm/components/DatePickerWithInput/DatePickerWithInput.js.map +1 -0
  60. package/dist/esm/components/DatePickerWithInput/styles.js +16 -0
  61. package/dist/esm/components/DatePickerWithInput/styles.js.map +1 -0
  62. package/dist/esm/components/DebounceInput/DebounceInput.js +15 -0
  63. package/dist/esm/components/DebounceInput/DebounceInput.js.map +1 -0
  64. package/dist/esm/components/Plugins/PluginSignatureBadge.js +57 -0
  65. package/dist/esm/components/Plugins/PluginSignatureBadge.js.map +1 -0
  66. package/dist/esm/components/QueryEditor/AccessoryButton.js +18 -0
  67. package/dist/esm/components/QueryEditor/AccessoryButton.js.map +1 -0
  68. package/dist/esm/components/QueryEditor/ConfirmModal.js +26 -0
  69. package/dist/esm/components/QueryEditor/ConfirmModal.js.map +1 -0
  70. package/dist/esm/components/QueryEditor/DatasetSelector.js +56 -0
  71. package/dist/esm/components/QueryEditor/DatasetSelector.js.map +1 -0
  72. package/dist/esm/components/QueryEditor/EditorField.js +42 -0
  73. package/dist/esm/components/QueryEditor/EditorField.js.map +1 -0
  74. package/dist/esm/components/QueryEditor/EditorFieldGroup.js +9 -0
  75. package/dist/esm/components/QueryEditor/EditorFieldGroup.js.map +1 -0
  76. package/dist/esm/components/QueryEditor/EditorHeader.js +21 -0
  77. package/dist/esm/components/QueryEditor/EditorHeader.js.map +1 -0
  78. package/dist/esm/components/QueryEditor/EditorList.js +28 -0
  79. package/dist/esm/components/QueryEditor/EditorList.js.map +1 -0
  80. package/dist/esm/components/QueryEditor/EditorRow.js +22 -0
  81. package/dist/esm/components/QueryEditor/EditorRow.js.map +1 -0
  82. package/dist/esm/components/QueryEditor/EditorRows.js +9 -0
  83. package/dist/esm/components/QueryEditor/EditorRows.js.map +1 -0
  84. package/dist/esm/components/QueryEditor/EditorStack.js +11 -0
  85. package/dist/esm/components/QueryEditor/EditorStack.js.map +1 -0
  86. package/dist/esm/components/QueryEditor/EditorSwitch.js +20 -0
  87. package/dist/esm/components/QueryEditor/EditorSwitch.js.map +1 -0
  88. package/dist/esm/components/QueryEditor/FlexItem.js +8 -0
  89. package/dist/esm/components/QueryEditor/FlexItem.js.map +1 -0
  90. package/dist/esm/components/QueryEditor/InlineSelect.js +50 -0
  91. package/dist/esm/components/QueryEditor/InlineSelect.js.map +1 -0
  92. package/dist/esm/components/QueryEditor/InputGroup.js +63 -0
  93. package/dist/esm/components/QueryEditor/InputGroup.js.map +1 -0
  94. package/dist/esm/components/QueryEditor/QueryEditor.js +110 -0
  95. package/dist/esm/components/QueryEditor/QueryEditor.js.map +1 -0
  96. package/dist/esm/components/QueryEditor/QueryHeader.js +172 -0
  97. package/dist/esm/components/QueryEditor/QueryHeader.js.map +1 -0
  98. package/dist/esm/components/QueryEditor/RunQueryButton.js +42 -0
  99. package/dist/esm/components/QueryEditor/RunQueryButton.js.map +1 -0
  100. package/dist/esm/components/QueryEditor/Space.js +35 -0
  101. package/dist/esm/components/QueryEditor/Space.js.map +1 -0
  102. package/dist/esm/components/QueryEditor/TableSelector.js +33 -0
  103. package/dist/esm/components/QueryEditor/TableSelector.js.map +1 -0
  104. package/dist/esm/components/QueryEditor/defaults.js +25 -0
  105. package/dist/esm/components/QueryEditor/defaults.js.map +1 -0
  106. package/dist/esm/components/QueryEditor/expressions.js +17 -0
  107. package/dist/esm/components/QueryEditor/expressions.js.map +1 -0
  108. package/dist/esm/components/QueryEditor/query-editor-raw/QueryEditorRaw.js +39 -0
  109. package/dist/esm/components/QueryEditor/query-editor-raw/QueryEditorRaw.js.map +1 -0
  110. package/dist/esm/components/QueryEditor/query-editor-raw/QueryToolbox.js +63 -0
  111. package/dist/esm/components/QueryEditor/query-editor-raw/QueryToolbox.js.map +1 -0
  112. package/dist/esm/components/QueryEditor/query-editor-raw/QueryValidator.js +72 -0
  113. package/dist/esm/components/QueryEditor/query-editor-raw/QueryValidator.js.map +1 -0
  114. package/dist/esm/components/QueryEditor/query-editor-raw/RawEditor.js +96 -0
  115. package/dist/esm/components/QueryEditor/query-editor-raw/RawEditor.js.map +1 -0
  116. package/dist/esm/components/QueryEditor/types.js +33 -0
  117. package/dist/esm/components/QueryEditor/types.js.map +1 -0
  118. package/dist/esm/components/QueryEditor/utils/formatSQL.js +10 -0
  119. package/dist/esm/components/QueryEditor/utils/formatSQL.js.map +1 -0
  120. package/dist/esm/components/QueryEditor/utils/sql.utils.js +93 -0
  121. package/dist/esm/components/QueryEditor/utils/sql.utils.js.map +1 -0
  122. package/dist/esm/components/QueryEditor/utils/useSqlChange.js +19 -0
  123. package/dist/esm/components/QueryEditor/utils/useSqlChange.js.map +1 -0
  124. package/dist/esm/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js +216 -0
  125. package/dist/esm/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js.map +1 -0
  126. package/dist/esm/components/QueryEditor/visual-query-builder/EditorField.js +44 -0
  127. package/dist/esm/components/QueryEditor/visual-query-builder/EditorField.js.map +1 -0
  128. package/dist/esm/components/QueryEditor/visual-query-builder/EditorRow.js +22 -0
  129. package/dist/esm/components/QueryEditor/visual-query-builder/EditorRow.js.map +1 -0
  130. package/dist/esm/components/QueryEditor/visual-query-builder/EditorRows.js +9 -0
  131. package/dist/esm/components/QueryEditor/visual-query-builder/EditorRows.js.map +1 -0
  132. package/dist/esm/components/QueryEditor/visual-query-builder/GroupByRow.js +51 -0
  133. package/dist/esm/components/QueryEditor/visual-query-builder/GroupByRow.js.map +1 -0
  134. package/dist/esm/components/QueryEditor/visual-query-builder/OrderByRow.js +70 -0
  135. package/dist/esm/components/QueryEditor/visual-query-builder/OrderByRow.js.map +1 -0
  136. package/dist/esm/components/QueryEditor/visual-query-builder/Preview.js +33 -0
  137. package/dist/esm/components/QueryEditor/visual-query-builder/Preview.js.map +1 -0
  138. package/dist/esm/components/QueryEditor/visual-query-builder/SQLGroupByRow.js +14 -0
  139. package/dist/esm/components/QueryEditor/visual-query-builder/SQLGroupByRow.js.map +1 -0
  140. package/dist/esm/components/QueryEditor/visual-query-builder/SQLOrderByRow.js +35 -0
  141. package/dist/esm/components/QueryEditor/visual-query-builder/SQLOrderByRow.js.map +1 -0
  142. package/dist/esm/components/QueryEditor/visual-query-builder/SQLSelectRow.js +19 -0
  143. package/dist/esm/components/QueryEditor/visual-query-builder/SQLSelectRow.js.map +1 -0
  144. package/dist/esm/components/QueryEditor/visual-query-builder/SQLWhereRow.js +40 -0
  145. package/dist/esm/components/QueryEditor/visual-query-builder/SQLWhereRow.js.map +1 -0
  146. package/dist/esm/components/QueryEditor/visual-query-builder/SelectRow.js +123 -0
  147. package/dist/esm/components/QueryEditor/visual-query-builder/SelectRow.js.map +1 -0
  148. package/dist/esm/components/QueryEditor/visual-query-builder/VisualEditor.js +24 -0
  149. package/dist/esm/components/QueryEditor/visual-query-builder/VisualEditor.js.map +1 -0
  150. package/dist/esm/components/QueryEditor/visual-query-builder/WhereRow.js +79 -0
  151. package/dist/esm/components/QueryEditor/visual-query-builder/WhereRow.js.map +1 -0
  152. package/dist/esm/components/QueryEditorRow/QueryEditorRow.js +11 -0
  153. package/dist/esm/components/QueryEditorRow/QueryEditorRow.js.map +1 -0
  154. package/dist/esm/components/SQLEditor/components/SQLEditor.js +339 -0
  155. package/dist/esm/components/SQLEditor/components/SQLEditor.js.map +1 -0
  156. package/dist/esm/components/SQLEditor/mocks/Monaco.js +19 -0
  157. package/dist/esm/components/SQLEditor/mocks/Monaco.js.map +1 -0
  158. package/dist/esm/components/SQLEditor/mocks/TextModel.js +21 -0
  159. package/dist/esm/components/SQLEditor/mocks/TextModel.js.map +1 -0
  160. package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQuery.js +217 -0
  161. package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQuery.js.map +1 -0
  162. package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js +232 -0
  163. package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js.map +1 -0
  164. package/dist/esm/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js +272 -0
  165. package/dist/esm/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js.map +1 -0
  166. package/dist/esm/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js +9 -0
  167. package/dist/esm/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js.map +1 -0
  168. package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQuery.js +197 -0
  169. package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQuery.js.map +1 -0
  170. package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js +212 -0
  171. package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js.map +1 -0
  172. package/dist/esm/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js +252 -0
  173. package/dist/esm/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js.map +1 -0
  174. package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueries.js +387 -0
  175. package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueries.js.map +1 -0
  176. package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js +417 -0
  177. package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js.map +1 -0
  178. package/dist/{src/components/SQLEditor/mocks/testData.d.ts → esm/components/SQLEditor/mocks/testData.js} +10 -9
  179. package/dist/esm/components/SQLEditor/mocks/testData.js.map +1 -0
  180. package/dist/esm/components/SQLEditor/standardSql/definition.js +19 -0
  181. package/dist/esm/components/SQLEditor/standardSql/definition.js.map +1 -0
  182. package/dist/esm/components/SQLEditor/standardSql/getStandardSuggestions.js +20 -0
  183. package/dist/esm/components/SQLEditor/standardSql/getStandardSuggestions.js.map +1 -0
  184. package/dist/esm/components/SQLEditor/standardSql/getStatementPosition.js +24 -0
  185. package/dist/esm/components/SQLEditor/standardSql/getStatementPosition.js.map +1 -0
  186. package/dist/esm/components/SQLEditor/standardSql/language.js +867 -0
  187. package/dist/esm/components/SQLEditor/standardSql/language.js.map +1 -0
  188. package/dist/esm/components/SQLEditor/standardSql/macros.js +58 -0
  189. package/dist/esm/components/SQLEditor/standardSql/macros.js.map +1 -0
  190. package/dist/esm/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js +34 -0
  191. package/dist/esm/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js.map +1 -0
  192. package/dist/esm/components/SQLEditor/standardSql/standardSuggestionsRegistry.js +367 -0
  193. package/dist/esm/components/SQLEditor/standardSql/standardSuggestionsRegistry.js.map +1 -0
  194. package/dist/esm/components/SQLEditor/standardSql/statementPositionResolversRegistry.js +215 -0
  195. package/dist/esm/components/SQLEditor/standardSql/statementPositionResolversRegistry.js.map +1 -0
  196. package/dist/esm/components/SQLEditor/standardSql/suggestionsKindRegistry.js +152 -0
  197. package/dist/esm/components/SQLEditor/standardSql/suggestionsKindRegistry.js.map +1 -0
  198. package/dist/esm/components/SQLEditor/test-utils/index.js +11 -0
  199. package/dist/esm/components/SQLEditor/test-utils/index.js.map +1 -0
  200. package/dist/esm/components/SQLEditor/test-utils/statementPosition.js +45 -0
  201. package/dist/esm/components/SQLEditor/test-utils/statementPosition.js.map +1 -0
  202. package/dist/esm/components/SQLEditor/types.js +140 -0
  203. package/dist/esm/components/SQLEditor/types.js.map +1 -0
  204. package/dist/esm/components/SQLEditor/utils/LinkedToken.js +145 -0
  205. package/dist/esm/components/SQLEditor/utils/LinkedToken.js.map +1 -0
  206. package/dist/esm/components/SQLEditor/utils/commands.js +7 -0
  207. package/dist/esm/components/SQLEditor/utils/commands.js.map +1 -0
  208. package/dist/esm/components/SQLEditor/utils/debugger.js +14 -0
  209. package/dist/esm/components/SQLEditor/utils/debugger.js.map +1 -0
  210. package/dist/esm/components/SQLEditor/utils/getSuggestionKind.js +16 -0
  211. package/dist/esm/components/SQLEditor/utils/getSuggestionKind.js.map +1 -0
  212. package/dist/esm/components/SQLEditor/utils/linkedTokenBuilder.js +45 -0
  213. package/dist/esm/components/SQLEditor/utils/linkedTokenBuilder.js.map +1 -0
  214. package/dist/esm/components/SQLEditor/utils/toCompletionItem.js +17 -0
  215. package/dist/esm/components/SQLEditor/utils/toCompletionItem.js.map +1 -0
  216. package/dist/esm/components/SQLEditor/utils/tokenUtils.js +36 -0
  217. package/dist/esm/components/SQLEditor/utils/tokenUtils.js.map +1 -0
  218. package/dist/esm/components/Segment/Segment.js +24 -0
  219. package/dist/esm/components/Segment/Segment.js.map +1 -0
  220. package/dist/esm/components/VisualQueryBuilder/QueryModellerBase.js +39 -0
  221. package/dist/esm/components/VisualQueryBuilder/QueryModellerBase.js.map +1 -0
  222. package/dist/esm/components/VisualQueryBuilder/components/LabelFilterItem.js +178 -0
  223. package/dist/esm/components/VisualQueryBuilder/components/LabelFilterItem.js.map +1 -0
  224. package/dist/esm/components/VisualQueryBuilder/components/LabelFilters.js +70 -0
  225. package/dist/esm/components/VisualQueryBuilder/components/LabelFilters.js.map +1 -0
  226. package/dist/esm/components/VisualQueryBuilder/components/OperationEditor.js +77 -0
  227. package/dist/esm/components/VisualQueryBuilder/components/OperationEditor.js.map +1 -0
  228. package/dist/esm/components/VisualQueryBuilder/components/OperationEditorBody.js +254 -0
  229. package/dist/esm/components/VisualQueryBuilder/components/OperationEditorBody.js.map +1 -0
  230. package/dist/esm/components/VisualQueryBuilder/components/OperationExplainedBox.js +55 -0
  231. package/dist/esm/components/VisualQueryBuilder/components/OperationExplainedBox.js.map +1 -0
  232. package/dist/esm/components/VisualQueryBuilder/components/OperationHeader.js +107 -0
  233. package/dist/esm/components/VisualQueryBuilder/components/OperationHeader.js.map +1 -0
  234. package/dist/esm/components/VisualQueryBuilder/components/OperationInfoButton.js +87 -0
  235. package/dist/esm/components/VisualQueryBuilder/components/OperationInfoButton.js.map +1 -0
  236. package/dist/esm/components/VisualQueryBuilder/components/OperationList.js +169 -0
  237. package/dist/esm/components/VisualQueryBuilder/components/OperationList.js.map +1 -0
  238. package/dist/esm/components/VisualQueryBuilder/components/OperationListExplained.js +43 -0
  239. package/dist/esm/components/VisualQueryBuilder/components/OperationListExplained.js.map +1 -0
  240. package/dist/esm/components/VisualQueryBuilder/components/OperationParamEditor.js +136 -0
  241. package/dist/esm/components/VisualQueryBuilder/components/OperationParamEditor.js.map +1 -0
  242. package/dist/esm/components/VisualQueryBuilder/components/OperationsEditorRow.js +39 -0
  243. package/dist/esm/components/VisualQueryBuilder/components/OperationsEditorRow.js.map +1 -0
  244. package/dist/esm/components/VisualQueryBuilder/components/QueryBuilderHints.js +73 -0
  245. package/dist/esm/components/VisualQueryBuilder/components/QueryBuilderHints.js.map +1 -0
  246. package/dist/esm/components/VisualQueryBuilder/components/QueryEditorModeToggle.js +14 -0
  247. package/dist/esm/components/VisualQueryBuilder/components/QueryEditorModeToggle.js.map +1 -0
  248. package/dist/esm/components/VisualQueryBuilder/components/QueryHeaderSwitch.js +44 -0
  249. package/dist/esm/components/VisualQueryBuilder/components/QueryHeaderSwitch.js.map +1 -0
  250. package/dist/esm/components/VisualQueryBuilder/components/QueryOptionGroup.js +97 -0
  251. package/dist/esm/components/VisualQueryBuilder/components/QueryOptionGroup.js.map +1 -0
  252. package/dist/esm/components/VisualQueryBuilder/components/RawQuery.js +30 -0
  253. package/dist/esm/components/VisualQueryBuilder/components/RawQuery.js.map +1 -0
  254. package/dist/esm/components/VisualQueryBuilder/types.js +12 -0
  255. package/dist/esm/components/VisualQueryBuilder/types.js.map +1 -0
  256. package/dist/esm/datasource/SqlDatasource.js +172 -0
  257. package/dist/esm/datasource/SqlDatasource.js.map +1 -0
  258. package/dist/esm/datasource/constants.js +18 -0
  259. package/dist/esm/datasource/constants.js.map +1 -0
  260. package/dist/esm/hooks/useDebounce.js +18 -0
  261. package/dist/esm/hooks/useDebounce.js.map +1 -0
  262. package/dist/esm/index.d.ts +1205 -0
  263. package/dist/esm/index.js +57 -0
  264. package/dist/esm/index.js.map +1 -0
  265. package/package.json +62 -41
  266. package/dist/components/AsyncButtonCascader/AsyncButtonCascader.js +0 -33
  267. package/dist/components/AsyncButtonCascader/AsyncButtonCascader.js.map +0 -1
  268. package/dist/components/Cascader/Cascader.js +0 -6
  269. package/dist/components/Cascader/Cascader.js.map +0 -1
  270. package/dist/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js +0 -28
  271. package/dist/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js.map +0 -1
  272. package/dist/components/ConfigEditor/AdvancedSettings/index.js +0 -6
  273. package/dist/components/ConfigEditor/AdvancedSettings/index.js.map +0 -1
  274. package/dist/components/ConfigEditor/Auth/Auth.js +0 -24
  275. package/dist/components/ConfigEditor/Auth/Auth.js.map +0 -1
  276. package/dist/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js +0 -110
  277. package/dist/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js.map +0 -1
  278. package/dist/components/ConfigEditor/Auth/auth-method/BasicAuth.js +0 -23
  279. package/dist/components/ConfigEditor/Auth/auth-method/BasicAuth.js.map +0 -1
  280. package/dist/components/ConfigEditor/Auth/custom-headers/CustomHeader.js +0 -41
  281. package/dist/components/ConfigEditor/Auth/custom-headers/CustomHeader.js.map +0 -1
  282. package/dist/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js +0 -76
  283. package/dist/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js.map +0 -1
  284. package/dist/components/ConfigEditor/Auth/index.js +0 -10
  285. package/dist/components/ConfigEditor/Auth/index.js.map +0 -1
  286. package/dist/components/ConfigEditor/Auth/styles.js +0 -19
  287. package/dist/components/ConfigEditor/Auth/styles.js.map +0 -1
  288. package/dist/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js +0 -18
  289. package/dist/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js.map +0 -1
  290. package/dist/components/ConfigEditor/Auth/tls/SkipTLSVerification.js +0 -11
  291. package/dist/components/ConfigEditor/Auth/tls/SkipTLSVerification.js.map +0 -1
  292. package/dist/components/ConfigEditor/Auth/tls/TLSClientAuth.js +0 -22
  293. package/dist/components/ConfigEditor/Auth/tls/TLSClientAuth.js.map +0 -1
  294. package/dist/components/ConfigEditor/Auth/tls/TLSSettings.js +0 -25
  295. package/dist/components/ConfigEditor/Auth/tls/TLSSettings.js.map +0 -1
  296. package/dist/components/ConfigEditor/Auth/tls/TLSSettingsSection.js +0 -35
  297. package/dist/components/ConfigEditor/Auth/tls/TLSSettingsSection.js.map +0 -1
  298. package/dist/components/ConfigEditor/Auth/types.js +0 -11
  299. package/dist/components/ConfigEditor/Auth/types.js.map +0 -1
  300. package/dist/components/ConfigEditor/Auth/utils.js +0 -113
  301. package/dist/components/ConfigEditor/Auth/utils.js.map +0 -1
  302. package/dist/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js +0 -32
  303. package/dist/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js.map +0 -1
  304. package/dist/components/ConfigEditor/ConfigSection/ConfigSection.js +0 -12
  305. package/dist/components/ConfigEditor/ConfigSection/ConfigSection.js.map +0 -1
  306. package/dist/components/ConfigEditor/ConfigSection/ConfigSubSection.js +0 -12
  307. package/dist/components/ConfigEditor/ConfigSection/ConfigSubSection.js.map +0 -1
  308. package/dist/components/ConfigEditor/ConfigSection/GenericConfigSection.js +0 -40
  309. package/dist/components/ConfigEditor/ConfigSection/GenericConfigSection.js.map +0 -1
  310. package/dist/components/ConfigEditor/ConfigSection/index.js +0 -10
  311. package/dist/components/ConfigEditor/ConfigSection/index.js.map +0 -1
  312. package/dist/components/ConfigEditor/Connection/ConnectionSettings.js +0 -26
  313. package/dist/components/ConfigEditor/Connection/ConnectionSettings.js.map +0 -1
  314. package/dist/components/ConfigEditor/Connection/index.js +0 -6
  315. package/dist/components/ConfigEditor/Connection/index.js.map +0 -1
  316. package/dist/components/ConfigEditor/DataSourceDescription.js +0 -39
  317. package/dist/components/ConfigEditor/DataSourceDescription.js.map +0 -1
  318. package/dist/components/ConfigEditor/SecureSocksProxyToggle.js +0 -24
  319. package/dist/components/ConfigEditor/SecureSocksProxyToggle.js.map +0 -1
  320. package/dist/components/ConfigEditor/index.js +0 -22
  321. package/dist/components/ConfigEditor/index.js.map +0 -1
  322. package/dist/components/ConfigEditor/types.js +0 -3
  323. package/dist/components/ConfigEditor/types.js.map +0 -1
  324. package/dist/components/CustomHeadersSettings/CustomHeadersSettings.js +0 -124
  325. package/dist/components/CustomHeadersSettings/CustomHeadersSettings.js.map +0 -1
  326. package/dist/components/DataLinks/DataLink.js +0 -79
  327. package/dist/components/DataLinks/DataLink.js.map +0 -1
  328. package/dist/components/DataLinks/DataLinks.js +0 -56
  329. package/dist/components/DataLinks/DataLinks.js.map +0 -1
  330. package/dist/components/DataLinks/index.js +0 -7
  331. package/dist/components/DataLinks/index.js.map +0 -1
  332. package/dist/components/DataLinks/types.js +0 -3
  333. package/dist/components/DataLinks/types.js.map +0 -1
  334. package/dist/components/DataSourcePicker/DataSourcePicker.js +0 -88
  335. package/dist/components/DataSourcePicker/DataSourcePicker.js.map +0 -1
  336. package/dist/components/DatePicker/DatePicker.js +0 -31
  337. package/dist/components/DatePicker/DatePicker.js.map +0 -1
  338. package/dist/components/DatePicker/styles.js.map +0 -1
  339. package/dist/components/DatePickerWithInput/DatePickerWithInput.js +0 -23
  340. package/dist/components/DatePickerWithInput/DatePickerWithInput.js.map +0 -1
  341. package/dist/components/DatePickerWithInput/style.css +0 -8
  342. package/dist/components/DebounceInput/DebounceInput.js +0 -19
  343. package/dist/components/DebounceInput/DebounceInput.js.map +0 -1
  344. package/dist/components/Plugins/PluginSignatureBadge.js +0 -65
  345. package/dist/components/Plugins/PluginSignatureBadge.js.map +0 -1
  346. package/dist/components/QueryEditor/AccessoryButton.js +0 -20
  347. package/dist/components/QueryEditor/AccessoryButton.js.map +0 -1
  348. package/dist/components/QueryEditor/ConfirmModal.js +0 -28
  349. package/dist/components/QueryEditor/ConfirmModal.js.map +0 -1
  350. package/dist/components/QueryEditor/DatasetSelector.js +0 -40
  351. package/dist/components/QueryEditor/DatasetSelector.js.map +0 -1
  352. package/dist/components/QueryEditor/EditorField.js +0 -49
  353. package/dist/components/QueryEditor/EditorField.js.map +0 -1
  354. package/dist/components/QueryEditor/EditorFieldGroup.js +0 -11
  355. package/dist/components/QueryEditor/EditorFieldGroup.js.map +0 -1
  356. package/dist/components/QueryEditor/EditorHeader.js +0 -22
  357. package/dist/components/QueryEditor/EditorHeader.js.map +0 -1
  358. package/dist/components/QueryEditor/EditorList.js +0 -27
  359. package/dist/components/QueryEditor/EditorList.js.map +0 -1
  360. package/dist/components/QueryEditor/EditorRow.js +0 -24
  361. package/dist/components/QueryEditor/EditorRow.js.map +0 -1
  362. package/dist/components/QueryEditor/EditorRows.js +0 -11
  363. package/dist/components/QueryEditor/EditorRows.js.map +0 -1
  364. package/dist/components/QueryEditor/EditorStack.js +0 -13
  365. package/dist/components/QueryEditor/EditorStack.js.map +0 -1
  366. package/dist/components/QueryEditor/EditorSwitch.js +0 -24
  367. package/dist/components/QueryEditor/EditorSwitch.js.map +0 -1
  368. package/dist/components/QueryEditor/FlexItem.js +0 -10
  369. package/dist/components/QueryEditor/FlexItem.js.map +0 -1
  370. package/dist/components/QueryEditor/InlineSelect.js +0 -57
  371. package/dist/components/QueryEditor/InlineSelect.js.map +0 -1
  372. package/dist/components/QueryEditor/InputGroup.js +0 -66
  373. package/dist/components/QueryEditor/InputGroup.js.map +0 -1
  374. package/dist/components/QueryEditor/QueryEditor.js +0 -74
  375. package/dist/components/QueryEditor/QueryEditor.js.map +0 -1
  376. package/dist/components/QueryEditor/QueryHeader.js +0 -86
  377. package/dist/components/QueryEditor/QueryHeader.js.map +0 -1
  378. package/dist/components/QueryEditor/RunQueryButton.js +0 -19
  379. package/dist/components/QueryEditor/RunQueryButton.js.map +0 -1
  380. package/dist/components/QueryEditor/Space.js +0 -36
  381. package/dist/components/QueryEditor/Space.js.map +0 -1
  382. package/dist/components/QueryEditor/TableSelector.js +0 -20
  383. package/dist/components/QueryEditor/TableSelector.js.map +0 -1
  384. package/dist/components/QueryEditor/defaults.js +0 -20
  385. package/dist/components/QueryEditor/defaults.js.map +0 -1
  386. package/dist/components/QueryEditor/expressions.js +0 -18
  387. package/dist/components/QueryEditor/expressions.js.map +0 -1
  388. package/dist/components/QueryEditor/index.js +0 -37
  389. package/dist/components/QueryEditor/index.js.map +0 -1
  390. package/dist/components/QueryEditor/query-editor-raw/QueryEditorRaw.js +0 -21
  391. package/dist/components/QueryEditor/query-editor-raw/QueryEditorRaw.js.map +0 -1
  392. package/dist/components/QueryEditor/query-editor-raw/QueryToolbox.js +0 -59
  393. package/dist/components/QueryEditor/query-editor-raw/QueryToolbox.js.map +0 -1
  394. package/dist/components/QueryEditor/query-editor-raw/QueryValidator.js +0 -79
  395. package/dist/components/QueryEditor/query-editor-raw/QueryValidator.js.map +0 -1
  396. package/dist/components/QueryEditor/query-editor-raw/RawEditor.js +0 -60
  397. package/dist/components/QueryEditor/query-editor-raw/RawEditor.js.map +0 -1
  398. package/dist/components/QueryEditor/types.js +0 -26
  399. package/dist/components/QueryEditor/types.js.map +0 -1
  400. package/dist/components/QueryEditor/utils/formatSQL.js +0 -13
  401. package/dist/components/QueryEditor/utils/formatSQL.js.map +0 -1
  402. package/dist/components/QueryEditor/utils/sql.utils.js +0 -103
  403. package/dist/components/QueryEditor/utils/sql.utils.js.map +0 -1
  404. package/dist/components/QueryEditor/utils/useSqlChange.js +0 -16
  405. package/dist/components/QueryEditor/utils/useSqlChange.js.map +0 -1
  406. package/dist/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js +0 -109
  407. package/dist/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js.map +0 -1
  408. package/dist/components/QueryEditor/visual-query-builder/EditorField.js +0 -51
  409. package/dist/components/QueryEditor/visual-query-builder/EditorField.js.map +0 -1
  410. package/dist/components/QueryEditor/visual-query-builder/EditorRow.js +0 -24
  411. package/dist/components/QueryEditor/visual-query-builder/EditorRow.js.map +0 -1
  412. package/dist/components/QueryEditor/visual-query-builder/EditorRows.js +0 -11
  413. package/dist/components/QueryEditor/visual-query-builder/EditorRows.js.map +0 -1
  414. package/dist/components/QueryEditor/visual-query-builder/GroupByRow.js +0 -33
  415. package/dist/components/QueryEditor/visual-query-builder/GroupByRow.js.map +0 -1
  416. package/dist/components/QueryEditor/visual-query-builder/OrderByRow.js +0 -50
  417. package/dist/components/QueryEditor/visual-query-builder/OrderByRow.js.map +0 -1
  418. package/dist/components/QueryEditor/visual-query-builder/Preview.js +0 -28
  419. package/dist/components/QueryEditor/visual-query-builder/Preview.js.map +0 -1
  420. package/dist/components/QueryEditor/visual-query-builder/SQLGroupByRow.js +0 -13
  421. package/dist/components/QueryEditor/visual-query-builder/SQLGroupByRow.js.map +0 -1
  422. package/dist/components/QueryEditor/visual-query-builder/SQLOrderByRow.js +0 -34
  423. package/dist/components/QueryEditor/visual-query-builder/SQLOrderByRow.js.map +0 -1
  424. package/dist/components/QueryEditor/visual-query-builder/SQLSelectRow.js +0 -19
  425. package/dist/components/QueryEditor/visual-query-builder/SQLSelectRow.js.map +0 -1
  426. package/dist/components/QueryEditor/visual-query-builder/SQLWhereRow.js +0 -35
  427. package/dist/components/QueryEditor/visual-query-builder/SQLWhereRow.js.map +0 -1
  428. package/dist/components/QueryEditor/visual-query-builder/SelectRow.js +0 -68
  429. package/dist/components/QueryEditor/visual-query-builder/SelectRow.js.map +0 -1
  430. package/dist/components/QueryEditor/visual-query-builder/VisualEditor.js +0 -38
  431. package/dist/components/QueryEditor/visual-query-builder/VisualEditor.js.map +0 -1
  432. package/dist/components/QueryEditor/visual-query-builder/WhereRow.js +0 -67
  433. package/dist/components/QueryEditor/visual-query-builder/WhereRow.js.map +0 -1
  434. package/dist/components/QueryEditor/visual-query-builder/index.js +0 -6
  435. package/dist/components/QueryEditor/visual-query-builder/index.js.map +0 -1
  436. package/dist/components/QueryEditorRow/QueryEditorRow.js +0 -16
  437. package/dist/components/QueryEditorRow/QueryEditorRow.js.map +0 -1
  438. package/dist/components/SQLEditor/components/SQLEditor.js +0 -330
  439. package/dist/components/SQLEditor/components/SQLEditor.js.map +0 -1
  440. package/dist/components/SQLEditor/index.js +0 -25
  441. package/dist/components/SQLEditor/index.js.map +0 -1
  442. package/dist/components/SQLEditor/mocks/Monaco.js +0 -23
  443. package/dist/components/SQLEditor/mocks/Monaco.js.map +0 -1
  444. package/dist/components/SQLEditor/mocks/TextModel.js +0 -22
  445. package/dist/components/SQLEditor/mocks/TextModel.js.map +0 -1
  446. package/dist/components/SQLEditor/mocks/queries/multiLineFullQuery.js +0 -216
  447. package/dist/components/SQLEditor/mocks/queries/multiLineFullQuery.js.map +0 -1
  448. package/dist/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js +0 -231
  449. package/dist/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js.map +0 -1
  450. package/dist/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js +0 -271
  451. package/dist/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js.map +0 -1
  452. package/dist/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js +0 -8
  453. package/dist/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js.map +0 -1
  454. package/dist/components/SQLEditor/mocks/queries/singleLineFullQuery.js +0 -196
  455. package/dist/components/SQLEditor/mocks/queries/singleLineFullQuery.js.map +0 -1
  456. package/dist/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js +0 -211
  457. package/dist/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js.map +0 -1
  458. package/dist/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js +0 -251
  459. package/dist/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js.map +0 -1
  460. package/dist/components/SQLEditor/mocks/queries/singleLineTwoQueries.js +0 -386
  461. package/dist/components/SQLEditor/mocks/queries/singleLineTwoQueries.js.map +0 -1
  462. package/dist/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js +0 -416
  463. package/dist/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js.map +0 -1
  464. package/dist/components/SQLEditor/mocks/testData.js +0 -22
  465. package/dist/components/SQLEditor/mocks/testData.js.map +0 -1
  466. package/dist/components/SQLEditor/standardSql/definition.js +0 -13
  467. package/dist/components/SQLEditor/standardSql/definition.js.map +0 -1
  468. package/dist/components/SQLEditor/standardSql/getStandardSuggestions.js +0 -26
  469. package/dist/components/SQLEditor/standardSql/getStandardSuggestions.js.map +0 -1
  470. package/dist/components/SQLEditor/standardSql/getStatementPosition.js +0 -24
  471. package/dist/components/SQLEditor/standardSql/getStatementPosition.js.map +0 -1
  472. package/dist/components/SQLEditor/standardSql/language.js +0 -875
  473. package/dist/components/SQLEditor/standardSql/language.js.map +0 -1
  474. package/dist/components/SQLEditor/standardSql/macros.js +0 -166
  475. package/dist/components/SQLEditor/standardSql/macros.js.map +0 -1
  476. package/dist/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js +0 -30
  477. package/dist/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js.map +0 -1
  478. package/dist/components/SQLEditor/standardSql/standardSuggestionsRegistry.js +0 -378
  479. package/dist/components/SQLEditor/standardSql/standardSuggestionsRegistry.js.map +0 -1
  480. package/dist/components/SQLEditor/standardSql/statementPositionResolversRegistry.js +0 -234
  481. package/dist/components/SQLEditor/standardSql/statementPositionResolversRegistry.js.map +0 -1
  482. package/dist/components/SQLEditor/standardSql/suggestionsKindRegistry.js +0 -153
  483. package/dist/components/SQLEditor/standardSql/suggestionsKindRegistry.js.map +0 -1
  484. package/dist/components/SQLEditor/standardSql/types.js +0 -3
  485. package/dist/components/SQLEditor/standardSql/types.js.map +0 -1
  486. package/dist/components/SQLEditor/test-utils/index.js +0 -11
  487. package/dist/components/SQLEditor/test-utils/index.js.map +0 -1
  488. package/dist/components/SQLEditor/test-utils/statementPosition.js +0 -40
  489. package/dist/components/SQLEditor/test-utils/statementPosition.js.map +0 -1
  490. package/dist/components/SQLEditor/test-utils/types.js +0 -3
  491. package/dist/components/SQLEditor/test-utils/types.js.map +0 -1
  492. package/dist/components/SQLEditor/types.js +0 -139
  493. package/dist/components/SQLEditor/types.js.map +0 -1
  494. package/dist/components/SQLEditor/utils/LinkedToken.js +0 -147
  495. package/dist/components/SQLEditor/utils/LinkedToken.js.map +0 -1
  496. package/dist/components/SQLEditor/utils/commands.js +0 -8
  497. package/dist/components/SQLEditor/utils/commands.js.map +0 -1
  498. package/dist/components/SQLEditor/utils/debugger.js +0 -14
  499. package/dist/components/SQLEditor/utils/debugger.js.map +0 -1
  500. package/dist/components/SQLEditor/utils/getSuggestionKind.js +0 -18
  501. package/dist/components/SQLEditor/utils/getSuggestionKind.js.map +0 -1
  502. package/dist/components/SQLEditor/utils/linkedTokenBuilder.js +0 -46
  503. package/dist/components/SQLEditor/utils/linkedTokenBuilder.js.map +0 -1
  504. package/dist/components/SQLEditor/utils/toCompletionItem.js +0 -10
  505. package/dist/components/SQLEditor/utils/toCompletionItem.js.map +0 -1
  506. package/dist/components/SQLEditor/utils/tokenUtils.js +0 -72
  507. package/dist/components/SQLEditor/utils/tokenUtils.js.map +0 -1
  508. package/dist/components/SQLEditor/utils/types.js +0 -3
  509. package/dist/components/SQLEditor/utils/types.js.map +0 -1
  510. package/dist/components/Segment/Segment.js +0 -19
  511. package/dist/components/Segment/Segment.js.map +0 -1
  512. package/dist/components/VisualQueryBuilder/QueryModellerBase.js +0 -35
  513. package/dist/components/VisualQueryBuilder/QueryModellerBase.js.map +0 -1
  514. package/dist/components/VisualQueryBuilder/components/LabelFilterItem.js +0 -125
  515. package/dist/components/VisualQueryBuilder/components/LabelFilterItem.js.map +0 -1
  516. package/dist/components/VisualQueryBuilder/components/LabelFilters.js +0 -37
  517. package/dist/components/VisualQueryBuilder/components/LabelFilters.js.map +0 -1
  518. package/dist/components/VisualQueryBuilder/components/OperationEditor.js +0 -41
  519. package/dist/components/VisualQueryBuilder/components/OperationEditor.js.map +0 -1
  520. package/dist/components/VisualQueryBuilder/components/OperationEditorBody.js +0 -181
  521. package/dist/components/VisualQueryBuilder/components/OperationEditorBody.js.map +0 -1
  522. package/dist/components/VisualQueryBuilder/components/OperationExplainedBox.js +0 -64
  523. package/dist/components/VisualQueryBuilder/components/OperationExplainedBox.js.map +0 -1
  524. package/dist/components/VisualQueryBuilder/components/OperationHeader.js +0 -68
  525. package/dist/components/VisualQueryBuilder/components/OperationHeader.js.map +0 -1
  526. package/dist/components/VisualQueryBuilder/components/OperationInfoButton.js +0 -71
  527. package/dist/components/VisualQueryBuilder/components/OperationInfoButton.js.map +0 -1
  528. package/dist/components/VisualQueryBuilder/components/OperationList.js +0 -132
  529. package/dist/components/VisualQueryBuilder/components/OperationList.js.map +0 -1
  530. package/dist/components/VisualQueryBuilder/components/OperationListExplained.js +0 -22
  531. package/dist/components/VisualQueryBuilder/components/OperationListExplained.js.map +0 -1
  532. package/dist/components/VisualQueryBuilder/components/OperationParamEditor.js +0 -71
  533. package/dist/components/VisualQueryBuilder/components/OperationParamEditor.js.map +0 -1
  534. package/dist/components/VisualQueryBuilder/components/OperationsEditorRow.js +0 -24
  535. package/dist/components/VisualQueryBuilder/components/OperationsEditorRow.js.map +0 -1
  536. package/dist/components/VisualQueryBuilder/components/QueryBuilderHints.js +0 -54
  537. package/dist/components/VisualQueryBuilder/components/QueryBuilderHints.js.map +0 -1
  538. package/dist/components/VisualQueryBuilder/components/QueryEditorModeToggle.js +0 -17
  539. package/dist/components/VisualQueryBuilder/components/QueryEditorModeToggle.js.map +0 -1
  540. package/dist/components/VisualQueryBuilder/components/QueryHeaderSwitch.js +0 -32
  541. package/dist/components/VisualQueryBuilder/components/QueryHeaderSwitch.js.map +0 -1
  542. package/dist/components/VisualQueryBuilder/components/QueryOptionGroup.js +0 -81
  543. package/dist/components/VisualQueryBuilder/components/QueryOptionGroup.js.map +0 -1
  544. package/dist/components/VisualQueryBuilder/components/RawQuery.js +0 -25
  545. package/dist/components/VisualQueryBuilder/components/RawQuery.js.map +0 -1
  546. package/dist/components/VisualQueryBuilder/index.js +0 -29
  547. package/dist/components/VisualQueryBuilder/index.js.map +0 -1
  548. package/dist/components/VisualQueryBuilder/types.js +0 -10
  549. package/dist/components/VisualQueryBuilder/types.js.map +0 -1
  550. package/dist/components/index.js +0 -30
  551. package/dist/components/index.js.map +0 -1
  552. package/dist/datasource/SqlDatasource.js +0 -161
  553. package/dist/datasource/SqlDatasource.js.map +0 -1
  554. package/dist/datasource/constants.js +0 -19
  555. package/dist/datasource/constants.js.map +0 -1
  556. package/dist/hooks/useDebounce.js +0 -21
  557. package/dist/hooks/useDebounce.js.map +0 -1
  558. package/dist/index.js +0 -13
  559. package/dist/index.js.map +0 -1
  560. package/dist/src/components/AsyncButtonCascader/AsyncButtonCascader.d.ts +0 -21
  561. package/dist/src/components/Cascader/Cascader.d.ts +0 -1
  562. package/dist/src/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.d.ts +0 -8
  563. package/dist/src/components/ConfigEditor/AdvancedSettings/index.d.ts +0 -1
  564. package/dist/src/components/ConfigEditor/Auth/Auth.d.ts +0 -18
  565. package/dist/src/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.d.ts +0 -14
  566. package/dist/src/components/ConfigEditor/Auth/auth-method/BasicAuth.d.ts +0 -17
  567. package/dist/src/components/ConfigEditor/Auth/custom-headers/CustomHeader.d.ts +0 -10
  568. package/dist/src/components/ConfigEditor/Auth/custom-headers/CustomHeaders.d.ts +0 -8
  569. package/dist/src/components/ConfigEditor/Auth/index.d.ts +0 -4
  570. package/dist/src/components/ConfigEditor/Auth/styles.d.ts +0 -4
  571. package/dist/src/components/ConfigEditor/Auth/tls/SelfSignedCertificate.d.ts +0 -13
  572. package/dist/src/components/ConfigEditor/Auth/tls/SkipTLSVerification.d.ts +0 -7
  573. package/dist/src/components/ConfigEditor/Auth/tls/TLSClientAuth.d.ts +0 -20
  574. package/dist/src/components/ConfigEditor/Auth/tls/TLSSettings.d.ts +0 -11
  575. package/dist/src/components/ConfigEditor/Auth/tls/TLSSettingsSection.d.ts +0 -9
  576. package/dist/src/components/ConfigEditor/Auth/types.d.ts +0 -28
  577. package/dist/src/components/ConfigEditor/Auth/utils.d.ts +0 -12
  578. package/dist/src/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.d.ts +0 -8
  579. package/dist/src/components/ConfigEditor/ConfigSection/ConfigSection.d.ts +0 -5
  580. package/dist/src/components/ConfigEditor/ConfigSection/ConfigSubSection.d.ts +0 -5
  581. package/dist/src/components/ConfigEditor/ConfigSection/GenericConfigSection.d.ts +0 -10
  582. package/dist/src/components/ConfigEditor/ConfigSection/index.d.ts +0 -3
  583. package/dist/src/components/ConfigEditor/Connection/ConnectionSettings.d.ts +0 -13
  584. package/dist/src/components/ConfigEditor/Connection/index.d.ts +0 -1
  585. package/dist/src/components/ConfigEditor/DataSourceDescription.d.ts +0 -9
  586. package/dist/src/components/ConfigEditor/SecureSocksProxyToggle.d.ts +0 -10
  587. package/dist/src/components/ConfigEditor/index.d.ts +0 -9
  588. package/dist/src/components/ConfigEditor/types.d.ts +0 -15
  589. package/dist/src/components/CustomHeadersSettings/CustomHeadersSettings.d.ts +0 -27
  590. package/dist/src/components/DataLinks/DataLink.d.ts +0 -13
  591. package/dist/src/components/DataLinks/DataLinks.d.ts +0 -8
  592. package/dist/src/components/DataLinks/index.d.ts +0 -3
  593. package/dist/src/components/DataLinks/types.d.ts +0 -7
  594. package/dist/src/components/DataSourcePicker/DataSourcePicker.d.ts +0 -34
  595. package/dist/src/components/DatePicker/DatePicker.d.ts +0 -8
  596. package/dist/src/components/DatePicker/styles.d.ts +0 -11
  597. package/dist/src/components/DatePickerWithInput/DatePickerWithInput.d.ts +0 -9
  598. package/dist/src/components/DebounceInput/DebounceInput.d.ts +0 -8
  599. package/dist/src/components/Plugins/PluginSignatureBadge.d.ts +0 -12
  600. package/dist/src/components/QueryEditor/AccessoryButton.d.ts +0 -6
  601. package/dist/src/components/QueryEditor/ConfirmModal.d.ts +0 -9
  602. package/dist/src/components/QueryEditor/DatasetSelector.d.ts +0 -13
  603. package/dist/src/components/QueryEditor/EditorField.d.ts +0 -12
  604. package/dist/src/components/QueryEditor/EditorFieldGroup.d.ts +0 -6
  605. package/dist/src/components/QueryEditor/EditorHeader.d.ts +0 -6
  606. package/dist/src/components/QueryEditor/EditorList.d.ts +0 -8
  607. package/dist/src/components/QueryEditor/EditorRow.d.ts +0 -6
  608. package/dist/src/components/QueryEditor/EditorRows.d.ts +0 -6
  609. package/dist/src/components/QueryEditor/EditorStack.d.ts +0 -13
  610. package/dist/src/components/QueryEditor/EditorSwitch.d.ts +0 -3
  611. package/dist/src/components/QueryEditor/FlexItem.d.ts +0 -7
  612. package/dist/src/components/QueryEditor/InlineSelect.d.ts +0 -7
  613. package/dist/src/components/QueryEditor/InputGroup.d.ts +0 -10
  614. package/dist/src/components/QueryEditor/QueryEditor.d.ts +0 -8
  615. package/dist/src/components/QueryEditor/QueryHeader.d.ts +0 -17
  616. package/dist/src/components/QueryEditor/RunQueryButton.d.ts +0 -13
  617. package/dist/src/components/QueryEditor/Space.d.ts +0 -14
  618. package/dist/src/components/QueryEditor/TableSelector.d.ts +0 -13
  619. package/dist/src/components/QueryEditor/defaults.d.ts +0 -3
  620. package/dist/src/components/QueryEditor/expressions.d.ts +0 -50
  621. package/dist/src/components/QueryEditor/index.d.ts +0 -17
  622. package/dist/src/components/QueryEditor/query-editor-raw/QueryEditorRaw.d.ts +0 -15
  623. package/dist/src/components/QueryEditor/query-editor-raw/QueryToolbox.d.ts +0 -11
  624. package/dist/src/components/QueryEditor/query-editor-raw/QueryValidator.d.ts +0 -10
  625. package/dist/src/components/QueryEditor/query-editor-raw/RawEditor.d.ts +0 -10
  626. package/dist/src/components/QueryEditor/types.d.ts +0 -149
  627. package/dist/src/components/QueryEditor/utils/formatSQL.d.ts +0 -1
  628. package/dist/src/components/QueryEditor/utils/sql.utils.d.ts +0 -14
  629. package/dist/src/components/QueryEditor/utils/useSqlChange.d.ts +0 -10
  630. package/dist/src/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.d.ts +0 -7
  631. package/dist/src/components/QueryEditor/visual-query-builder/EditorField.d.ts +0 -11
  632. package/dist/src/components/QueryEditor/visual-query-builder/EditorRow.d.ts +0 -6
  633. package/dist/src/components/QueryEditor/visual-query-builder/EditorRows.d.ts +0 -6
  634. package/dist/src/components/QueryEditor/visual-query-builder/GroupByRow.d.ts +0 -10
  635. package/dist/src/components/QueryEditor/visual-query-builder/OrderByRow.d.ts +0 -11
  636. package/dist/src/components/QueryEditor/visual-query-builder/Preview.d.ts +0 -6
  637. package/dist/src/components/QueryEditor/visual-query-builder/SQLGroupByRow.d.ts +0 -12
  638. package/dist/src/components/QueryEditor/visual-query-builder/SQLOrderByRow.d.ts +0 -12
  639. package/dist/src/components/QueryEditor/visual-query-builder/SQLSelectRow.d.ts +0 -12
  640. package/dist/src/components/QueryEditor/visual-query-builder/SQLWhereRow.d.ts +0 -12
  641. package/dist/src/components/QueryEditor/visual-query-builder/SelectRow.d.ts +0 -11
  642. package/dist/src/components/QueryEditor/visual-query-builder/VisualEditor.d.ts +0 -13
  643. package/dist/src/components/QueryEditor/visual-query-builder/WhereRow.d.ts +0 -10
  644. package/dist/src/components/QueryEditor/visual-query-builder/index.d.ts +0 -1
  645. package/dist/src/components/QueryEditorRow/QueryEditorRow.d.ts +0 -8
  646. package/dist/src/components/SQLEditor/components/SQLEditor.d.ts +0 -29
  647. package/dist/src/components/SQLEditor/index.d.ts +0 -7
  648. package/dist/src/components/SQLEditor/mocks/Monaco.d.ts +0 -3
  649. package/dist/src/components/SQLEditor/mocks/TextModel.d.ts +0 -7
  650. package/dist/src/components/SQLEditor/mocks/queries/multiLineFullQuery.d.ts +0 -2
  651. package/dist/src/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.d.ts +0 -2
  652. package/dist/src/components/SQLEditor/mocks/queries/multiLineMultipleColumns.d.ts +0 -2
  653. package/dist/src/components/SQLEditor/mocks/queries/singleLineEmptyQuery.d.ts +0 -2
  654. package/dist/src/components/SQLEditor/mocks/queries/singleLineFullQuery.d.ts +0 -2
  655. package/dist/src/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.d.ts +0 -2
  656. package/dist/src/components/SQLEditor/mocks/queries/singleLineMultipleColumns.d.ts +0 -2
  657. package/dist/src/components/SQLEditor/mocks/queries/singleLineTwoQueries.d.ts +0 -2
  658. package/dist/src/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.d.ts +0 -2
  659. package/dist/src/components/SQLEditor/standardSql/definition.d.ts +0 -3
  660. package/dist/src/components/SQLEditor/standardSql/getStandardSuggestions.d.ts +0 -6
  661. package/dist/src/components/SQLEditor/standardSql/getStatementPosition.d.ts +0 -5
  662. package/dist/src/components/SQLEditor/standardSql/language.d.ts +0 -23
  663. package/dist/src/components/SQLEditor/standardSql/macros.d.ts +0 -2
  664. package/dist/src/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.d.ts +0 -4
  665. package/dist/src/components/SQLEditor/standardSql/standardSuggestionsRegistry.d.ts +0 -7
  666. package/dist/src/components/SQLEditor/standardSql/statementPositionResolversRegistry.d.ts +0 -2
  667. package/dist/src/components/SQLEditor/standardSql/suggestionsKindRegistry.d.ts +0 -7
  668. package/dist/src/components/SQLEditor/standardSql/types.d.ts +0 -33
  669. package/dist/src/components/SQLEditor/test-utils/index.d.ts +0 -7
  670. package/dist/src/components/SQLEditor/test-utils/statementPosition.d.ts +0 -3
  671. package/dist/src/components/SQLEditor/test-utils/types.d.ts +0 -12
  672. package/dist/src/components/SQLEditor/types.d.ts +0 -249
  673. package/dist/src/components/SQLEditor/utils/LinkedToken.d.ts +0 -29
  674. package/dist/src/components/SQLEditor/utils/commands.d.ts +0 -4
  675. package/dist/src/components/SQLEditor/utils/debugger.d.ts +0 -5
  676. package/dist/src/components/SQLEditor/utils/getSuggestionKind.d.ts +0 -7
  677. package/dist/src/components/SQLEditor/utils/linkedTokenBuilder.d.ts +0 -4
  678. package/dist/src/components/SQLEditor/utils/toCompletionItem.d.ts +0 -2
  679. package/dist/src/components/SQLEditor/utils/tokenUtils.d.ts +0 -14
  680. package/dist/src/components/SQLEditor/utils/types.d.ts +0 -11
  681. package/dist/src/components/Segment/Segment.d.ts +0 -8
  682. package/dist/src/components/VisualQueryBuilder/QueryModellerBase.d.ts +0 -18
  683. package/dist/src/components/VisualQueryBuilder/components/LabelFilterItem.d.ts +0 -18
  684. package/dist/src/components/VisualQueryBuilder/components/LabelFilters.d.ts +0 -14
  685. package/dist/src/components/VisualQueryBuilder/components/OperationEditor.d.ts +0 -20
  686. package/dist/src/components/VisualQueryBuilder/components/OperationEditorBody.d.ts +0 -23
  687. package/dist/src/components/VisualQueryBuilder/components/OperationExplainedBox.d.ts +0 -7
  688. package/dist/src/components/VisualQueryBuilder/components/OperationHeader.d.ts +0 -15
  689. package/dist/src/components/VisualQueryBuilder/components/OperationInfoButton.d.ts +0 -9
  690. package/dist/src/components/VisualQueryBuilder/components/OperationList.d.ts +0 -15
  691. package/dist/src/components/VisualQueryBuilder/components/OperationListExplained.d.ts +0 -17
  692. package/dist/src/components/VisualQueryBuilder/components/OperationParamEditor.d.ts +0 -4
  693. package/dist/src/components/VisualQueryBuilder/components/OperationsEditorRow.d.ts +0 -2
  694. package/dist/src/components/VisualQueryBuilder/components/QueryBuilderHints.d.ts +0 -20
  695. package/dist/src/components/VisualQueryBuilder/components/QueryEditorModeToggle.d.ts +0 -8
  696. package/dist/src/components/VisualQueryBuilder/components/QueryHeaderSwitch.d.ts +0 -7
  697. package/dist/src/components/VisualQueryBuilder/components/QueryOptionGroup.d.ts +0 -9
  698. package/dist/src/components/VisualQueryBuilder/components/RawQuery.d.ts +0 -12
  699. package/dist/src/components/VisualQueryBuilder/index.d.ts +0 -13
  700. package/dist/src/components/VisualQueryBuilder/types.d.ts +0 -91
  701. package/dist/src/components/index.d.ts +0 -15
  702. package/dist/src/datasource/SqlDatasource.d.ts +0 -62
  703. package/dist/src/datasource/constants.d.ts +0 -1
  704. package/dist/src/hooks/useDebounce.d.ts +0 -2
  705. package/dist/src/index.d.ts +0 -7
  706. package/dist/src/test/mocks/DataQuery.d.ts +0 -2
  707. package/dist/src/test/mocks/Datasource.d.ts +0 -40
  708. package/dist/src/test/mocks/Plugin.d.ts +0 -10
  709. package/dist/src/test/mocks/QueryEditorProps.d.ts +0 -4
  710. package/dist/src/test/mocks/index.d.ts +0 -5
  711. package/dist/src/test/mocks/utils.d.ts +0 -18
  712. package/dist/src/utils/changeset/functions.d.ts +0 -3
  713. package/dist/src/utils/changeset/index.d.ts +0 -2
  714. package/dist/test/mocks/DataQuery.js +0 -14
  715. package/dist/test/mocks/DataQuery.js.map +0 -1
  716. package/dist/test/mocks/Datasource.js +0 -78
  717. package/dist/test/mocks/Datasource.js.map +0 -1
  718. package/dist/test/mocks/Plugin.js +0 -105
  719. package/dist/test/mocks/Plugin.js.map +0 -1
  720. package/dist/test/mocks/QueryEditorProps.js +0 -46
  721. package/dist/test/mocks/QueryEditorProps.js.map +0 -1
  722. package/dist/test/mocks/index.js +0 -9
  723. package/dist/test/mocks/index.js.map +0 -1
  724. package/dist/test/mocks/utils.js +0 -48
  725. package/dist/test/mocks/utils.js.map +0 -1
  726. package/dist/utils/changeset/functions.js +0 -11
  727. package/dist/utils/changeset/functions.js.map +0 -1
  728. package/dist/utils/changeset/index.js +0 -99
  729. package/dist/utils/changeset/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationEditorBody.js","sources":["../../../../../src/components/VisualQueryBuilder/components/OperationEditorBody.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { type DraggableProvided } from '@hello-pangea/dnd';\nimport { Button, Icon, Tooltip, useTheme2 } from '@grafana/ui';\nimport { css, cx } from '@emotion/css';\nimport { type DataSourceApi, type GrafanaTheme2, type TimeRange } from '@grafana/data';\nimport { OperationHeader } from './OperationHeader';\nimport {\n type QueryBuilderOperation,\n type QueryBuilderOperationDefinition,\n type QueryBuilderOperationParamDef,\n type QueryBuilderOperationParamValue,\n type VisualQuery,\n type VisualQueryModeller,\n} from '../types';\nimport { getOperationParamEditor, getOperationParamId } from './OperationParamEditor';\nimport { v4 } from 'uuid';\nimport { EditorStack } from '../../QueryEditor';\n\ntype Props = {\n provided: DraggableProvided;\n isConflicting: boolean;\n index: number;\n operation: QueryBuilderOperation;\n definition: QueryBuilderOperationDefinition;\n queryModeller: VisualQueryModeller;\n query: VisualQuery;\n onChange: (index: number, update: QueryBuilderOperation) => void;\n onRemove: (index: number) => void;\n onToggle: (index: number) => void;\n onRunQuery: () => void;\n datasource: DataSourceApi;\n flash?: boolean;\n highlight?: boolean;\n timeRange?: TimeRange;\n};\n\nexport function OperationEditorBody({\n provided,\n flash,\n isConflicting,\n highlight,\n index,\n queryModeller,\n onChange,\n onRemove,\n onToggle,\n operation,\n definition,\n query,\n timeRange,\n onRunQuery,\n datasource,\n}: Props) {\n const theme = useTheme2();\n const styles = getStyles(theme, isConflicting);\n const shouldFlash = useFlash(flash);\n const { current: id } = useRef(v4());\n\n const onParamValueChanged = (paramIdx: number, value: QueryBuilderOperationParamValue) => {\n const update: QueryBuilderOperation = { ...operation, params: [...operation.params] };\n update.params[paramIdx] = value;\n callParamChangedThenOnChange(definition, update, index, paramIdx, onChange);\n };\n\n const onAddRestParam = () => {\n const update: QueryBuilderOperation = { ...operation, params: [...operation.params, ''] };\n callParamChangedThenOnChange(definition, update, index, operation.params.length, onChange);\n };\n\n const onRemoveRestParam = (paramIdx: number) => {\n const update: QueryBuilderOperation = {\n ...operation,\n params: [...operation.params.slice(0, paramIdx), ...operation.params.slice(paramIdx + 1)],\n };\n callParamChangedThenOnChange(definition, update, index, paramIdx, onChange);\n };\n\n // Handle adding button for rest params\n let restParam: React.ReactNode | undefined;\n if (definition.params.length > 0) {\n const lastParamDef = definition.params[definition.params.length - 1];\n if (lastParamDef.restParam) {\n restParam = renderAddRestParamButton(lastParamDef, onAddRestParam, index, operation.params.length, styles);\n }\n }\n\n return (\n <div\n className={cx(styles.card, {\n [styles.cardHighlight]: shouldFlash || highlight,\n [styles.cardError]: isConflicting,\n [styles.disabled]: operation.disabled,\n })}\n ref={provided.innerRef}\n {...provided.draggableProps}\n data-testid={`operations.${index}.wrapper`}\n >\n <OperationHeader\n operation={operation}\n dragHandleProps={provided.dragHandleProps}\n definition={definition}\n index={index}\n onChange={onChange}\n onRemove={onRemove}\n onToggle={onToggle}\n queryModeller={queryModeller}\n />\n <div className={styles.body}>\n {operation.params.map((param, paramIndex) => {\n const paramDef = definition.params[Math.min(definition.params.length - 1, paramIndex)];\n const Editor = getOperationParamEditor(paramDef);\n\n return (\n <div className={styles.paramRow} key={`${paramIndex}-1`}>\n {!paramDef.hideName && (\n <div className={styles.paramName}>\n <label htmlFor={getOperationParamId(id, paramIndex)}>{paramDef.name}</label>\n {paramDef.description && (\n <Tooltip placement=\"top\" content={paramDef.description} theme=\"info\">\n <Icon name=\"info-circle\" size=\"sm\" className={styles.infoIcon} />\n </Tooltip>\n )}\n </div>\n )}\n <div className={styles.paramValue}>\n <EditorStack gap={0.5} direction=\"row\" alignItems=\"center\" wrap={false}>\n <Editor\n index={paramIndex}\n paramDef={paramDef}\n value={operation.params[paramIndex]}\n operation={operation}\n operationId={id}\n onChange={onParamValueChanged}\n onRunQuery={onRunQuery}\n query={query}\n datasource={datasource}\n timeRange={timeRange}\n queryModeller={queryModeller}\n />\n {paramDef.restParam && (operation.params.length > definition.params.length || paramDef.optional) && (\n <Button\n data-testid={`operations.${index}.remove-rest-param`}\n size=\"sm\"\n fill=\"text\"\n icon=\"times\"\n variant=\"secondary\"\n title={`Remove ${paramDef.name}`}\n onClick={() => onRemoveRestParam(paramIndex)}\n />\n )}\n </EditorStack>\n </div>\n </div>\n );\n })}\n </div>\n {restParam}\n {index < query.operations.length - 1 && (\n <div className={styles.arrow}>\n <div className={styles.arrowLine} />\n <div className={styles.arrowArrow} />\n </div>\n )}\n </div>\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2, isConflicting: boolean) => {\n return {\n cardWrapper: css({\n alignItems: 'stretch',\n }),\n error: css({\n marginBottom: theme.spacing(1),\n }),\n card: css({\n background: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.medium}`,\n cursor: 'grab',\n borderRadius: theme.shape.radius.default,\n position: 'relative',\n transition: 'all 0.5s ease-in 0s',\n height: isConflicting ? 'auto' : '100%',\n }),\n disabled: css({\n opacity: 0.5,\n transition: 'none',\n }),\n cardError: css({\n boxShadow: `0px 0px 4px 0px ${theme.colors.warning.main}`,\n border: `1px solid ${theme.colors.warning.main}`,\n }),\n cardHighlight: css({\n boxShadow: `0px 0px 4px 0px ${theme.colors.primary.border}`,\n border: `1px solid ${theme.colors.primary.border}`,\n }),\n infoIcon: css({\n marginLeft: theme.spacing(0.5),\n color: theme.colors.text.secondary,\n ':hover': {\n color: theme.colors.text.primary,\n },\n }),\n body: css({\n margin: theme.spacing(1, 1, 0.5, 1),\n display: 'table',\n }),\n paramRow: css({\n label: 'paramRow',\n display: 'table-row',\n verticalAlign: 'middle',\n }),\n paramName: css({\n display: 'table-cell',\n padding: theme.spacing(0, 1, 0, 0),\n fontSize: theme.typography.bodySmall.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n verticalAlign: 'middle',\n height: '32px',\n }),\n paramValue: css({\n label: 'paramValue',\n display: 'table-cell',\n verticalAlign: 'middle',\n }),\n restParam: css({\n padding: theme.spacing(0, 1, 1, 1),\n }),\n arrow: css({\n position: 'absolute',\n top: '0',\n right: '-18px',\n display: 'flex',\n }),\n arrowLine: css({\n height: '2px',\n width: '8px',\n backgroundColor: theme.colors.border.strong,\n position: 'relative',\n top: '14px',\n }),\n arrowArrow: css({\n width: 0,\n height: 0,\n borderTop: `5px solid transparent`,\n borderBottom: `5px solid transparent`,\n borderLeft: `7px solid ${theme.colors.border.strong}`,\n position: 'relative',\n top: '10px',\n }),\n };\n};\n\n/**\n * When flash is switched on makes sure it is switched of right away, so we just flash the highlight and then fade\n * out.\n * @param flash\n */\nfunction useFlash(flash?: boolean) {\n const [keepFlash, setKeepFlash] = useState(true);\n useEffect(() => {\n let t: ReturnType<typeof setTimeout>;\n if (flash) {\n t = setTimeout(() => {\n setKeepFlash(false);\n }, 1000);\n } else {\n setKeepFlash(true);\n }\n\n return () => clearTimeout(t);\n }, [flash]);\n\n return keepFlash && flash;\n}\n\nfunction callParamChangedThenOnChange(\n def: QueryBuilderOperationDefinition,\n operation: QueryBuilderOperation,\n operationIndex: number,\n paramIndex: number,\n onChange: (index: number, update: QueryBuilderOperation) => void\n) {\n if (def.paramChangedHandler) {\n onChange(operationIndex, def.paramChangedHandler(paramIndex, operation, def));\n } else {\n onChange(operationIndex, operation);\n }\n}\n\nfunction renderAddRestParamButton(\n paramDef: QueryBuilderOperationParamDef,\n onAddRestParam: () => void,\n operationIndex: number,\n paramIndex: number,\n styles: OperationEditorStyles\n) {\n return (\n <div className={styles.restParam} key={`${paramIndex}-2`}>\n <Button\n size=\"sm\"\n icon=\"plus\"\n title={`Add ${paramDef.name}`.trimEnd()}\n variant=\"secondary\"\n onClick={onAddRestParam}\n data-testid={`operations.${operationIndex}.add-rest-param`}\n >\n {paramDef.name}\n </Button>\n </div>\n );\n}\n\ntype OperationEditorStyles = ReturnType<typeof getStyles>;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { css } from '@emotion/css';
2
+ import React from 'react';
3
+ import { renderMarkdown } from '@grafana/data';
4
+ import { useStyles2 } from '@grafana/ui';
5
+
6
+ function OperationExplainedBox({ title, stepNumber, markdown, children }) {
7
+ const styles = useStyles2(getStyles);
8
+ return /* @__PURE__ */ React.createElement("div", { className: styles.box }, stepNumber !== undefined && /* @__PURE__ */ React.createElement("div", { className: styles.stepNumber }, stepNumber), /* @__PURE__ */ React.createElement("div", { className: styles.boxInner }, title && /* @__PURE__ */ React.createElement("div", { className: styles.header }, /* @__PURE__ */ React.createElement("span", null, title)), /* @__PURE__ */ React.createElement("div", { className: styles.body }, markdown && /* @__PURE__ */ React.createElement("div", { dangerouslySetInnerHTML: { __html: renderMarkdown(markdown) } }), children)));
9
+ }
10
+ const getStyles = (theme) => {
11
+ return {
12
+ box: css({
13
+ background: theme.colors.background.secondary,
14
+ padding: theme.spacing(1),
15
+ borderRadius: theme.shape.radius.default,
16
+ position: "relative"
17
+ }),
18
+ boxInner: css({
19
+ marginLeft: theme.spacing(4)
20
+ }),
21
+ stepNumber: css({
22
+ fontWeight: theme.typography.fontWeightMedium,
23
+ background: theme.colors.secondary.main,
24
+ width: "20px",
25
+ height: "20px",
26
+ borderRadius: theme.shape.radius.circle,
27
+ display: "flex",
28
+ alignItems: "center",
29
+ justifyContent: "center",
30
+ position: "absolute",
31
+ top: "10px",
32
+ left: "11px",
33
+ fontSize: theme.typography.bodySmall.fontSize
34
+ }),
35
+ header: css({
36
+ paddingBottom: theme.spacing(0.5),
37
+ display: "flex",
38
+ alignItems: "center",
39
+ fontFamily: theme.typography.fontFamilyMonospace
40
+ }),
41
+ body: css({
42
+ color: theme.colors.text.secondary,
43
+ "p:last-child": {
44
+ margin: 0
45
+ },
46
+ a: {
47
+ color: theme.colors.text.link,
48
+ textDecoration: "underline"
49
+ }
50
+ })
51
+ };
52
+ };
53
+
54
+ export { OperationExplainedBox };
55
+ //# sourceMappingURL=OperationExplainedBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationExplainedBox.js","sources":["../../../../../src/components/VisualQueryBuilder/components/OperationExplainedBox.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { type GrafanaTheme2, renderMarkdown } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\nexport interface Props {\n title?: React.ReactNode;\n markdown?: string;\n stepNumber?: number;\n}\n\nexport function OperationExplainedBox({ title, stepNumber, markdown, children }: React.PropsWithChildren<Props>) {\n const styles = useStyles2(getStyles);\n\n return (\n <div className={styles.box}>\n {stepNumber !== undefined && <div className={styles.stepNumber}>{stepNumber}</div>}\n <div className={styles.boxInner}>\n {title && (\n <div className={styles.header}>\n <span>{title}</span>\n </div>\n )}\n <div className={styles.body}>\n {markdown && <div dangerouslySetInnerHTML={{ __html: renderMarkdown(markdown) }}></div>}\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n box: css({\n background: theme.colors.background.secondary,\n padding: theme.spacing(1),\n borderRadius: theme.shape.radius.default,\n position: 'relative',\n }),\n boxInner: css({\n marginLeft: theme.spacing(4),\n }),\n stepNumber: css({\n fontWeight: theme.typography.fontWeightMedium,\n background: theme.colors.secondary.main,\n width: '20px',\n height: '20px',\n borderRadius: theme.shape.radius.circle,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: '10px',\n left: '11px',\n fontSize: theme.typography.bodySmall.fontSize,\n }),\n header: css({\n paddingBottom: theme.spacing(0.5),\n display: 'flex',\n alignItems: 'center',\n fontFamily: theme.typography.fontFamilyMonospace,\n }),\n body: css({\n color: theme.colors.text.secondary,\n 'p:last-child': {\n margin: 0,\n },\n a: {\n color: theme.colors.text.link,\n textDecoration: 'underline',\n },\n }),\n };\n};\n"],"names":[],"mappings":";;;;;AAYO,SAAS,sBAAsB,EAAE,KAAA,EAAO,UAAY,EAAA,QAAA,EAAU,UAA4C,EAAA;AAC/G,EAAM,MAAA,MAAA,GAAS,WAAW,SAAS,CAAA;AAEnC,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,SAAI,SAAW,EAAA,MAAA,CAAO,OACpB,UAAe,KAAA,SAAA,oBAAc,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,MAAA,CAAO,cAAa,UAAW,CAAA,sCAC3E,KAAI,EAAA,EAAA,SAAA,EAAW,OAAO,QACpB,EAAA,EAAA,KAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,MAAA,CAAO,0BACpB,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAM,KAAM,CACf,CAAA,sCAED,KAAI,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,IAAA,EAAA,EACpB,QAAY,oBAAA,KAAA,CAAA,aAAA,CAAC,SAAI,uBAAyB,EAAA,EAAE,QAAQ,cAAe,CAAA,QAAQ,GAAK,EAAA,CAAA,EAChF,QACH,CACF,CACF,CAAA;AAEJ;AAEA,MAAM,SAAA,GAAY,CAAC,KAAyB,KAAA;AAC1C,EAAO,OAAA;AAAA,IACL,KAAK,GAAI,CAAA;AAAA,MACP,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,UAAW,CAAA,SAAA;AAAA,MACpC,OAAA,EAAS,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,MACxB,YAAA,EAAc,KAAM,CAAA,KAAA,CAAM,MAAO,CAAA,OAAA;AAAA,MACjC,QAAU,EAAA;AAAA,KACX,CAAA;AAAA,IACD,UAAU,GAAI,CAAA;AAAA,MACZ,UAAA,EAAY,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA,KAC5B,CAAA;AAAA,IACD,YAAY,GAAI,CAAA;AAAA,MACd,UAAA,EAAY,MAAM,UAAW,CAAA,gBAAA;AAAA,MAC7B,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,SAAU,CAAA,IAAA;AAAA,MACnC,KAAO,EAAA,MAAA;AAAA,MACP,MAAQ,EAAA,MAAA;AAAA,MACR,YAAA,EAAc,KAAM,CAAA,KAAA,CAAM,MAAO,CAAA,MAAA;AAAA,MACjC,OAAS,EAAA,MAAA;AAAA,MACT,UAAY,EAAA,QAAA;AAAA,MACZ,cAAgB,EAAA,QAAA;AAAA,MAChB,QAAU,EAAA,UAAA;AAAA,MACV,GAAK,EAAA,MAAA;AAAA,MACL,IAAM,EAAA,MAAA;AAAA,MACN,QAAA,EAAU,KAAM,CAAA,UAAA,CAAW,SAAU,CAAA;AAAA,KACtC,CAAA;AAAA,IACD,QAAQ,GAAI,CAAA;AAAA,MACV,aAAA,EAAe,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,MAChC,OAAS,EAAA,MAAA;AAAA,MACT,UAAY,EAAA,QAAA;AAAA,MACZ,UAAA,EAAY,MAAM,UAAW,CAAA;AAAA,KAC9B,CAAA;AAAA,IACD,MAAM,GAAI,CAAA;AAAA,MACR,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,SAAA;AAAA,MACzB,cAAgB,EAAA;AAAA,QACd,MAAQ,EAAA;AAAA,OACV;AAAA,MACA,CAAG,EAAA;AAAA,QACD,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,IAAA;AAAA,QACzB,cAAgB,EAAA;AAAA;AAClB,KACD;AAAA,GACH;AACF,CAAA;;;;"}
@@ -0,0 +1,107 @@
1
+ import { css } from '@emotion/css';
2
+ import React, { useState } from 'react';
3
+ import '@hello-pangea/dnd';
4
+ import '@grafana/data';
5
+ import { useStyles2, Button, Select } from '@grafana/ui';
6
+ import { OperationInfoButton } from './OperationInfoButton.js';
7
+ import { FlexItem } from '../../QueryEditor/FlexItem.js';
8
+
9
+ const OperationHeader = React.memo(
10
+ ({ operation, definition, index, onChange, onRemove, onToggle, queryModeller, dragHandleProps }) => {
11
+ var _a;
12
+ const styles = useStyles2(getStyles);
13
+ const [state, setState] = useState({});
14
+ const onToggleSwitcher = () => {
15
+ if (state.isOpen) {
16
+ setState({ ...state, isOpen: false });
17
+ } else {
18
+ const alternatives = queryModeller.getAlternativeOperations(definition.alternativesKey).map((alt) => ({ label: alt.name, value: alt }));
19
+ setState({ isOpen: true, alternatives });
20
+ }
21
+ };
22
+ return /* @__PURE__ */ React.createElement("div", { className: styles.header }, !state.isOpen && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { ...dragHandleProps }, (_a = definition.name) != null ? _a : definition.id), /* @__PURE__ */ React.createElement(FlexItem, { grow: 1 }), /* @__PURE__ */ React.createElement("div", { className: `${styles.operationHeaderButtons} operation-header-show-on-hover` }, /* @__PURE__ */ React.createElement(
23
+ Button,
24
+ {
25
+ icon: "angle-down",
26
+ size: "sm",
27
+ onClick: onToggleSwitcher,
28
+ fill: "text",
29
+ variant: "secondary",
30
+ title: "Click to view alternative operations"
31
+ }
32
+ ), /* @__PURE__ */ React.createElement(
33
+ OperationInfoButton,
34
+ {
35
+ definition,
36
+ operation,
37
+ innerQueryPlaceholder: queryModeller.innerQueryPlaceholder
38
+ }
39
+ ), definition.toggleable && /* @__PURE__ */ React.createElement(
40
+ Button,
41
+ {
42
+ icon: operation.disabled ? "eye-slash" : "eye",
43
+ size: "sm",
44
+ onClick: () => onToggle(index),
45
+ fill: "text",
46
+ variant: "secondary",
47
+ title: operation.disabled ? "Enable operation" : "Disable operation"
48
+ }
49
+ ), /* @__PURE__ */ React.createElement(
50
+ Button,
51
+ {
52
+ icon: "times",
53
+ size: "sm",
54
+ onClick: () => onRemove(index),
55
+ fill: "text",
56
+ variant: "secondary",
57
+ title: "Remove operation"
58
+ }
59
+ ))), state.isOpen && /* @__PURE__ */ React.createElement("div", { className: styles.selectWrapper }, /* @__PURE__ */ React.createElement(
60
+ Select,
61
+ {
62
+ autoFocus: true,
63
+ openMenuOnFocus: true,
64
+ placeholder: "Replace with",
65
+ options: state.alternatives,
66
+ isOpen: true,
67
+ onCloseMenu: onToggleSwitcher,
68
+ onChange: (value) => {
69
+ if (value.value) {
70
+ const newDef = queryModeller.getOperationDefinition(value.value.id);
71
+ const newParams = [...newDef.defaultParams];
72
+ for (let i = 0; i < Math.min(operation.params.length, newParams.length); i++) {
73
+ if (newDef.params[i].type === definition.params[i].type) {
74
+ newParams[i] = operation.params[i];
75
+ }
76
+ }
77
+ const changedOp = { ...operation, params: newParams, id: value.value.id };
78
+ onChange(
79
+ index,
80
+ definition.changeTypeHandler ? definition.changeTypeHandler(changedOp, newDef) : changedOp
81
+ );
82
+ }
83
+ }
84
+ }
85
+ )));
86
+ }
87
+ );
88
+ OperationHeader.displayName = "OperationHeader";
89
+ const getStyles = (theme) => {
90
+ return {
91
+ header: css({
92
+ borderBottom: `1px solid ${theme.colors.border.medium}`,
93
+ padding: theme.spacing(0.5, 0.5, 0.5, 1),
94
+ display: "flex",
95
+ alignItems: "center"
96
+ }),
97
+ operationHeaderButtons: css({
98
+ opacity: 1
99
+ }),
100
+ selectWrapper: css({
101
+ paddingRight: theme.spacing(2)
102
+ })
103
+ };
104
+ };
105
+
106
+ export { OperationHeader };
107
+ //# sourceMappingURL=OperationHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationHeader.js","sources":["../../../../../src/components/VisualQueryBuilder/components/OperationHeader.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport React, { useState } from 'react';\nimport { type DraggableProvided } from '@hello-pangea/dnd';\n\nimport { type GrafanaTheme2, type SelectableValue } from '@grafana/data';\nimport { Button, Select, useStyles2 } from '@grafana/ui';\n\nimport { OperationInfoButton } from './OperationInfoButton';\n\nimport { type VisualQueryModeller, type QueryBuilderOperation, type QueryBuilderOperationDefinition } from '../types';\nimport { FlexItem } from '../../QueryEditor/FlexItem';\n\ninterface Props {\n operation: QueryBuilderOperation;\n definition: QueryBuilderOperationDefinition;\n index: number;\n queryModeller: VisualQueryModeller;\n dragHandleProps?: DraggableProvided['dragHandleProps'];\n onChange: (index: number, update: QueryBuilderOperation) => void;\n onRemove: (index: number) => void;\n onToggle: (index: number) => void;\n}\n\ninterface State {\n isOpen?: boolean;\n disabled?: boolean;\n alternatives?: Array<SelectableValue<QueryBuilderOperationDefinition>>;\n}\n\nexport const OperationHeader = React.memo<Props>(\n ({ operation, definition, index, onChange, onRemove, onToggle, queryModeller, dragHandleProps }) => {\n const styles = useStyles2(getStyles);\n const [state, setState] = useState<State>({});\n\n const onToggleSwitcher = () => {\n if (state.isOpen) {\n setState({ ...state, isOpen: false });\n } else {\n const alternatives = queryModeller\n .getAlternativeOperations(definition.alternativesKey!)\n .map((alt) => ({ label: alt.name, value: alt }));\n setState({ isOpen: true, alternatives });\n }\n };\n\n return (\n <div className={styles.header}>\n {!state.isOpen && (\n <>\n <div {...dragHandleProps}>{definition.name ?? definition.id}</div>\n <FlexItem grow={1} />\n <div className={`${styles.operationHeaderButtons} operation-header-show-on-hover`}>\n <Button\n icon=\"angle-down\"\n size=\"sm\"\n onClick={onToggleSwitcher}\n fill=\"text\"\n variant=\"secondary\"\n title=\"Click to view alternative operations\"\n />\n <OperationInfoButton\n definition={definition}\n operation={operation}\n innerQueryPlaceholder={queryModeller.innerQueryPlaceholder}\n />\n {definition.toggleable && (\n <Button\n icon={operation.disabled ? 'eye-slash' : 'eye'}\n size=\"sm\"\n onClick={() => onToggle(index)}\n fill=\"text\"\n variant=\"secondary\"\n title={operation.disabled ? 'Enable operation' : 'Disable operation'}\n />\n )}\n <Button\n icon=\"times\"\n size=\"sm\"\n onClick={() => onRemove(index)}\n fill=\"text\"\n variant=\"secondary\"\n title=\"Remove operation\"\n />\n </div>\n </>\n )}\n {state.isOpen && (\n <div className={styles.selectWrapper}>\n <Select\n autoFocus\n openMenuOnFocus\n placeholder=\"Replace with\"\n options={state.alternatives}\n isOpen={true}\n onCloseMenu={onToggleSwitcher}\n onChange={(value) => {\n if (value.value) {\n // Operation should exist if it is selectable\n const newDef = queryModeller.getOperationDefinition(value.value.id)!;\n\n // copy default params, and override with all current params\n const newParams = [...newDef.defaultParams];\n for (let i = 0; i < Math.min(operation.params.length, newParams.length); i++) {\n if (newDef.params[i].type === definition.params[i].type) {\n newParams[i] = operation.params[i];\n }\n }\n\n const changedOp = { ...operation, params: newParams, id: value.value.id };\n onChange(\n index,\n definition.changeTypeHandler ? definition.changeTypeHandler(changedOp, newDef) : changedOp\n );\n }\n }}\n />\n </div>\n )}\n </div>\n );\n }\n);\n\nOperationHeader.displayName = 'OperationHeader';\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n header: css({\n borderBottom: `1px solid ${theme.colors.border.medium}`,\n padding: theme.spacing(0.5, 0.5, 0.5, 1),\n display: 'flex',\n alignItems: 'center',\n }),\n operationHeaderButtons: css({\n opacity: 1,\n }),\n selectWrapper: css({\n paddingRight: theme.spacing(2),\n }),\n };\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { css } from '@emotion/css';
2
+ import React, { useState } from 'react';
3
+ import { usePopperTooltip } from 'react-popper-tooltip';
4
+ import { renderMarkdown } from '@grafana/data';
5
+ import { useStyles2, Button, Portal } from '@grafana/ui';
6
+ import { FlexItem } from '../../QueryEditor/FlexItem.js';
7
+
8
+ const OperationInfoButton = React.memo(({ definition, operation, innerQueryPlaceholder }) => {
9
+ const styles = useStyles2(getStyles);
10
+ const [show, setShow] = useState(false);
11
+ const { getTooltipProps, setTooltipRef, setTriggerRef, visible } = usePopperTooltip({
12
+ placement: "top",
13
+ visible: show,
14
+ offset: [0, 16],
15
+ onVisibleChange: setShow,
16
+ interactive: true,
17
+ trigger: ["click"]
18
+ });
19
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
20
+ Button,
21
+ {
22
+ title: "Click to show description",
23
+ ref: setTriggerRef,
24
+ icon: "info-circle",
25
+ size: "sm",
26
+ variant: "secondary",
27
+ fill: "text"
28
+ }
29
+ ), visible && /* @__PURE__ */ React.createElement(Portal, null, /* @__PURE__ */ React.createElement("div", { ref: setTooltipRef, ...getTooltipProps(), className: styles.docBox }, /* @__PURE__ */ React.createElement("div", { className: styles.docBoxHeader }, /* @__PURE__ */ React.createElement("span", null, definition.renderer(operation, definition, innerQueryPlaceholder)), /* @__PURE__ */ React.createElement(FlexItem, { grow: 1 }), /* @__PURE__ */ React.createElement(
30
+ Button,
31
+ {
32
+ icon: "times",
33
+ onClick: () => setShow(false),
34
+ fill: "text",
35
+ variant: "secondary",
36
+ title: "Remove operation"
37
+ }
38
+ )), /* @__PURE__ */ React.createElement(
39
+ "div",
40
+ {
41
+ className: styles.docBoxBody,
42
+ dangerouslySetInnerHTML: { __html: getOperationDocs(definition, operation) }
43
+ }
44
+ ))));
45
+ });
46
+ OperationInfoButton.displayName = "OperationDocs";
47
+ const getStyles = (theme) => {
48
+ return {
49
+ docBox: css({
50
+ overflow: "hidden",
51
+ background: theme.colors.background.primary,
52
+ border: `1px solid ${theme.colors.border.strong}`,
53
+ boxShadow: theme.shadows.z3,
54
+ maxWidth: "600px",
55
+ padding: theme.spacing(1),
56
+ borderRadius: theme.shape.radius.default,
57
+ zIndex: theme.zIndex.tooltip
58
+ }),
59
+ docBoxHeader: css({
60
+ fontSize: theme.typography.h5.fontSize,
61
+ fontFamily: theme.typography.fontFamilyMonospace,
62
+ paddingBottom: theme.spacing(1),
63
+ display: "flex",
64
+ alignItems: "center"
65
+ }),
66
+ docBoxBody: css({
67
+ // The markdown paragraph has a marginBottom this removes it
68
+ marginBottom: theme.spacing(-1),
69
+ color: theme.colors.text.secondary
70
+ }),
71
+ signature: css({
72
+ fontSize: theme.typography.bodySmall.fontSize,
73
+ fontFamily: theme.typography.fontFamilyMonospace
74
+ }),
75
+ dropdown: css({
76
+ opacity: 0,
77
+ color: theme.colors.text.secondary
78
+ })
79
+ };
80
+ };
81
+ function getOperationDocs(def, op) {
82
+ var _a;
83
+ return renderMarkdown(def.explainHandler ? def.explainHandler(op, def) : (_a = def.documentation) != null ? _a : "no docs");
84
+ }
85
+
86
+ export { OperationInfoButton };
87
+ //# sourceMappingURL=OperationInfoButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationInfoButton.js","sources":["../../../../../src/components/VisualQueryBuilder/components/OperationInfoButton.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport React, { useState } from 'react';\nimport { usePopperTooltip } from 'react-popper-tooltip';\n\nimport { type GrafanaTheme2, renderMarkdown } from '@grafana/data';\nimport { Button, Portal, useStyles2 } from '@grafana/ui';\n\nimport { type QueryBuilderOperation, type QueryBuilderOperationDefinition } from '../types';\nimport { FlexItem } from '../../QueryEditor/FlexItem';\n\ninterface Props {\n operation: QueryBuilderOperation;\n definition: QueryBuilderOperationDefinition;\n innerQueryPlaceholder: string;\n}\n\nexport const OperationInfoButton = React.memo<Props>(({ definition, operation, innerQueryPlaceholder }) => {\n const styles = useStyles2(getStyles);\n const [show, setShow] = useState(false);\n const { getTooltipProps, setTooltipRef, setTriggerRef, visible } = usePopperTooltip({\n placement: 'top',\n visible: show,\n offset: [0, 16],\n onVisibleChange: setShow,\n interactive: true,\n trigger: ['click'],\n });\n\n return (\n <>\n <Button\n title=\"Click to show description\"\n ref={setTriggerRef}\n icon=\"info-circle\"\n size=\"sm\"\n variant=\"secondary\"\n fill=\"text\"\n />\n {visible && (\n <Portal>\n <div ref={setTooltipRef} {...getTooltipProps()} className={styles.docBox}>\n <div className={styles.docBoxHeader}>\n <span>{definition.renderer(operation, definition, innerQueryPlaceholder)}</span>\n <FlexItem grow={1} />\n <Button\n icon=\"times\"\n onClick={() => setShow(false)}\n fill=\"text\"\n variant=\"secondary\"\n title=\"Remove operation\"\n />\n </div>\n <div\n className={styles.docBoxBody}\n dangerouslySetInnerHTML={{ __html: getOperationDocs(definition, operation) }}\n ></div>\n </div>\n </Portal>\n )}\n </>\n );\n});\n\nOperationInfoButton.displayName = 'OperationDocs';\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n docBox: css({\n overflow: 'hidden',\n background: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.strong}`,\n boxShadow: theme.shadows.z3,\n maxWidth: '600px',\n padding: theme.spacing(1),\n borderRadius: theme.shape.radius.default,\n zIndex: theme.zIndex.tooltip,\n }),\n docBoxHeader: css({\n fontSize: theme.typography.h5.fontSize,\n fontFamily: theme.typography.fontFamilyMonospace,\n paddingBottom: theme.spacing(1),\n display: 'flex',\n alignItems: 'center',\n }),\n docBoxBody: css({\n // The markdown paragraph has a marginBottom this removes it\n marginBottom: theme.spacing(-1),\n color: theme.colors.text.secondary,\n }),\n signature: css({\n fontSize: theme.typography.bodySmall.fontSize,\n fontFamily: theme.typography.fontFamilyMonospace,\n }),\n dropdown: css({\n opacity: 0,\n color: theme.colors.text.secondary,\n }),\n };\n};\nfunction getOperationDocs(def: QueryBuilderOperationDefinition, op: QueryBuilderOperation): string {\n return renderMarkdown(def.explainHandler ? def.explainHandler(op, def) : (def.documentation ?? 'no docs'));\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import { css } from '@emotion/css';
2
+ import React, { useState } from 'react';
3
+ import { DragDropContext, Droppable } from '@hello-pangea/dnd';
4
+ import { useMountedState, usePrevious } from 'react-use';
5
+ import '@grafana/data';
6
+ import { useStyles2, Cascader, Button } from '@grafana/ui';
7
+ import { OperationEditor } from './OperationEditor.js';
8
+ import '../../QueryEditor/types.js';
9
+ import 'lodash';
10
+ import '../../QueryEditor/EditorList.js';
11
+ import { EditorStack } from '../../QueryEditor/EditorStack.js';
12
+ import '../../QueryEditor/Space.js';
13
+ import '../../QueryEditor/QueryHeader.js';
14
+ import 'react-virtualized-auto-sizer';
15
+ import 'sql-formatter-plus';
16
+ import 'uuid';
17
+ import '@grafana/runtime';
18
+ import '../../SQLEditor/utils/debugger.js';
19
+ import '../../SQLEditor/standardSql/macros.js';
20
+ import '../../QueryEditor/visual-query-builder/AwesomeQueryBuilder.js';
21
+ import '../../QueryEditor/visual-query-builder/WhereRow.js';
22
+ import '../../QueryEditor/visual-query-builder/EditorField.js';
23
+ import 'rxjs';
24
+ import 'rxjs/operators';
25
+
26
+ function OperationList({
27
+ query,
28
+ datasource,
29
+ queryModeller,
30
+ onChange,
31
+ onRunQuery,
32
+ highlightedOp,
33
+ timeRange,
34
+ isConflictingOperation
35
+ }) {
36
+ const styles = useStyles2(getStyles);
37
+ const { operations } = query;
38
+ const opsToHighlight = useOperationsHighlight(operations);
39
+ const [cascaderOpen, setCascaderOpen] = useState(false);
40
+ const onOperationChange = (index, update) => {
41
+ const updatedList = [...operations];
42
+ updatedList.splice(index, 1, update);
43
+ onChange({ ...query, operations: updatedList });
44
+ };
45
+ const onRemove = (index) => {
46
+ const updatedList = [...operations.slice(0, index), ...operations.slice(index + 1)];
47
+ onChange({ ...query, operations: updatedList });
48
+ };
49
+ const onToggle = (index) => {
50
+ onOperationChange(index, { ...operations[index], disabled: !operations[index].disabled });
51
+ };
52
+ const addOptions = queryModeller.getCategories().map((category) => {
53
+ return {
54
+ value: category,
55
+ label: category,
56
+ items: queryModeller.getOperationsForCategory(category).map((operation) => ({
57
+ value: operation.id,
58
+ label: operation.name,
59
+ isLeaf: true
60
+ }))
61
+ };
62
+ });
63
+ const onAddOperation = (value) => {
64
+ const operationDef = queryModeller.getOperationDefinition(value);
65
+ if (!operationDef) {
66
+ return;
67
+ }
68
+ onChange(operationDef.addOperationHandler(operationDef, query, queryModeller));
69
+ setCascaderOpen(false);
70
+ };
71
+ const onDragEnd = (result) => {
72
+ if (!result.destination) {
73
+ return;
74
+ }
75
+ const updatedList = [...operations];
76
+ const element = updatedList[result.source.index];
77
+ updatedList.splice(result.source.index, 1);
78
+ updatedList.splice(result.destination.index, 0, element);
79
+ onChange({ ...query, operations: updatedList });
80
+ };
81
+ const onCascaderBlur = () => {
82
+ setCascaderOpen(false);
83
+ };
84
+ return /* @__PURE__ */ React.createElement(EditorStack, { gap: 1, direction: "column" }, /* @__PURE__ */ React.createElement(EditorStack, { gap: 1 }, operations.length > 0 && /* @__PURE__ */ React.createElement(DragDropContext, { onDragEnd }, /* @__PURE__ */ React.createElement(Droppable, { droppableId: "sortable-field-mappings", direction: "horizontal" }, (provided) => /* @__PURE__ */ React.createElement("div", { className: styles.operationList, ref: provided.innerRef, ...provided.droppableProps }, operations.map((op, index) => {
85
+ return /* @__PURE__ */ React.createElement(
86
+ OperationEditor,
87
+ {
88
+ key: op.id + JSON.stringify(op.params) + index,
89
+ queryModeller,
90
+ index,
91
+ operation: op,
92
+ query,
93
+ datasource,
94
+ onChange: onOperationChange,
95
+ onRemove,
96
+ onToggle,
97
+ onRunQuery,
98
+ flash: opsToHighlight[index],
99
+ highlight: highlightedOp === op,
100
+ timeRange,
101
+ isConflictingOperation
102
+ }
103
+ );
104
+ }), provided.placeholder))), /* @__PURE__ */ React.createElement("div", { className: styles.addButton }, cascaderOpen ? /* @__PURE__ */ React.createElement(
105
+ Cascader,
106
+ {
107
+ options: addOptions,
108
+ onSelect: onAddOperation,
109
+ onBlur: onCascaderBlur,
110
+ autoFocus: true,
111
+ alwaysOpen: true,
112
+ hideActiveLevelLabel: true,
113
+ placeholder: "Search"
114
+ }
115
+ ) : /* @__PURE__ */ React.createElement(Button, { icon: "plus", variant: "secondary", onClick: () => setCascaderOpen(true), title: "Add operation" }, "Operations"))));
116
+ }
117
+ function useOperationsHighlight(operations) {
118
+ const isMounted = useMountedState();
119
+ const prevOperations = usePrevious(operations);
120
+ if (!isMounted()) {
121
+ return operations.map(() => false);
122
+ }
123
+ if (!prevOperations) {
124
+ return operations.map(() => true);
125
+ }
126
+ let newOps = [];
127
+ if (prevOperations.length - 1 === operations.length && operations.every((op) => prevOperations.includes(op))) {
128
+ return operations.map(() => false);
129
+ }
130
+ if (prevOperations.length + 1 === operations.length && prevOperations.every((op) => operations.includes(op))) {
131
+ const newOp = operations.find((op) => !prevOperations.includes(op));
132
+ newOps = operations.map((op) => {
133
+ return op === newOp;
134
+ });
135
+ } else {
136
+ newOps = operations.map((op, index) => {
137
+ var _a;
138
+ return !isSameOp(op.id, (_a = prevOperations[index]) == null ? undefined : _a.id);
139
+ });
140
+ }
141
+ return newOps;
142
+ }
143
+ function isSameOp(op1, op2) {
144
+ return op1 === op2 || `__${op1}_by` === op2 || op1 === `__${op2}_by`;
145
+ }
146
+ const getStyles = (theme) => {
147
+ return {
148
+ heading: css({
149
+ label: "heading",
150
+ fontSize: 12,
151
+ fontWeight: theme.typography.fontWeightMedium,
152
+ marginBottom: 0
153
+ }),
154
+ operationList: css({
155
+ label: "operationList",
156
+ display: "flex",
157
+ flexWrap: "wrap",
158
+ gap: theme.spacing(2)
159
+ }),
160
+ addButton: css({
161
+ label: "addButton",
162
+ width: 126,
163
+ paddingBottom: theme.spacing(1)
164
+ })
165
+ };
166
+ };
167
+
168
+ export { OperationList };
169
+ //# sourceMappingURL=OperationList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationList.js","sources":["../../../../../src/components/VisualQueryBuilder/components/OperationList.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport React, { useState } from 'react';\nimport { DragDropContext, Droppable, type DropResult } from '@hello-pangea/dnd';\nimport { useMountedState, usePrevious } from 'react-use';\n\nimport { type DataSourceApi, type GrafanaTheme2, type TimeRange } from '@grafana/data';\nimport { Button, Cascader, type CascaderOption, useStyles2 } from '@grafana/ui';\n\nimport { OperationEditor } from './OperationEditor';\nimport { type QueryBuilderOperation, type VisualQuery, type VisualQueryModeller } from '../types';\nimport { EditorStack } from '../../QueryEditor';\n\nexport interface Props<T extends VisualQuery> {\n query: T;\n datasource: DataSourceApi;\n onChange: (query: T) => void;\n onRunQuery: () => void;\n queryModeller: VisualQueryModeller;\n explainMode?: boolean;\n highlightedOp?: QueryBuilderOperation;\n timeRange?: TimeRange;\n isConflictingOperation?: (operation: QueryBuilderOperation, otherOperations: QueryBuilderOperation[]) => boolean;\n}\n\nexport function OperationList<T extends VisualQuery>({\n query,\n datasource,\n queryModeller,\n onChange,\n onRunQuery,\n highlightedOp,\n timeRange,\n isConflictingOperation,\n}: Props<T>) {\n const styles = useStyles2(getStyles);\n const { operations } = query;\n\n const opsToHighlight = useOperationsHighlight(operations);\n\n const [cascaderOpen, setCascaderOpen] = useState(false);\n\n const onOperationChange = (index: number, update: QueryBuilderOperation) => {\n const updatedList = [...operations];\n updatedList.splice(index, 1, update);\n onChange({ ...query, operations: updatedList });\n };\n\n const onRemove = (index: number) => {\n const updatedList = [...operations.slice(0, index), ...operations.slice(index + 1)];\n onChange({ ...query, operations: updatedList });\n };\n\n const onToggle = (index: number) => {\n onOperationChange(index, { ...operations[index], disabled: !operations[index].disabled });\n };\n\n const addOptions: CascaderOption[] = queryModeller.getCategories().map((category) => {\n return {\n value: category,\n label: category,\n items: queryModeller.getOperationsForCategory(category).map((operation) => ({\n value: operation.id,\n label: operation.name,\n isLeaf: true,\n })),\n };\n });\n\n const onAddOperation = (value: string) => {\n const operationDef = queryModeller.getOperationDefinition(value);\n if (!operationDef) {\n return;\n }\n onChange(operationDef.addOperationHandler(operationDef, query, queryModeller));\n setCascaderOpen(false);\n };\n\n const onDragEnd = (result: DropResult) => {\n if (!result.destination) {\n return;\n }\n\n const updatedList = [...operations];\n const element = updatedList[result.source.index];\n updatedList.splice(result.source.index, 1);\n updatedList.splice(result.destination.index, 0, element);\n onChange({ ...query, operations: updatedList });\n };\n\n const onCascaderBlur = () => {\n setCascaderOpen(false);\n };\n\n return (\n <EditorStack gap={1} direction=\"column\">\n <EditorStack gap={1}>\n {operations.length > 0 && (\n <DragDropContext onDragEnd={onDragEnd}>\n <Droppable droppableId=\"sortable-field-mappings\" direction=\"horizontal\">\n {(provided) => (\n <div className={styles.operationList} ref={provided.innerRef} {...provided.droppableProps}>\n {operations.map((op, index) => {\n return (\n <OperationEditor\n key={op.id + JSON.stringify(op.params) + index}\n queryModeller={queryModeller}\n index={index}\n operation={op}\n query={query}\n datasource={datasource}\n onChange={onOperationChange}\n onRemove={onRemove}\n onToggle={onToggle}\n onRunQuery={onRunQuery}\n flash={opsToHighlight[index]}\n highlight={highlightedOp === op}\n timeRange={timeRange}\n isConflictingOperation={isConflictingOperation}\n />\n );\n })}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n )}\n <div className={styles.addButton}>\n {cascaderOpen ? (\n <Cascader\n options={addOptions}\n onSelect={onAddOperation}\n onBlur={onCascaderBlur}\n autoFocus={true}\n alwaysOpen={true}\n hideActiveLevelLabel={true}\n placeholder={'Search'}\n />\n ) : (\n <Button icon={'plus'} variant={'secondary'} onClick={() => setCascaderOpen(true)} title={'Add operation'}>\n Operations\n </Button>\n )}\n </div>\n </EditorStack>\n </EditorStack>\n );\n}\n\n/**\n * Returns indexes of operations that should be highlighted. We check the diff of operations added but at the same time\n * we want to highlight operations only after the initial render, so we check for mounted state and calculate the diff\n * only after.\n * @param operations\n */\nfunction useOperationsHighlight(operations: QueryBuilderOperation[]) {\n const isMounted = useMountedState();\n const prevOperations = usePrevious(operations);\n\n if (!isMounted()) {\n return operations.map(() => false);\n }\n\n if (!prevOperations) {\n return operations.map(() => true);\n }\n\n let newOps: boolean[] = [];\n\n if (prevOperations.length - 1 === operations.length && operations.every((op) => prevOperations.includes(op))) {\n // In case we remove one op and does not change any ops then don't highlight anything.\n return operations.map(() => false);\n }\n if (prevOperations.length + 1 === operations.length && prevOperations.every((op) => operations.includes(op))) {\n // If we add a single op just find it and highlight just that.\n const newOp = operations.find((op) => !prevOperations.includes(op));\n newOps = operations.map((op) => {\n return op === newOp;\n });\n } else {\n // Default diff of all ops.\n newOps = operations.map((op, index) => {\n return !isSameOp(op.id, prevOperations[index]?.id);\n });\n }\n return newOps;\n}\n\nfunction isSameOp(op1?: string, op2?: string) {\n return op1 === op2 || `__${op1}_by` === op2 || op1 === `__${op2}_by`;\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n heading: css({\n label: 'heading',\n fontSize: 12,\n fontWeight: theme.typography.fontWeightMedium,\n marginBottom: 0,\n }),\n operationList: css({\n label: 'operationList',\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n }),\n addButton: css({\n label: 'addButton',\n width: 126,\n paddingBottom: theme.spacing(1),\n }),\n };\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import 'prismjs';
2
+ import React from 'react';
3
+ import { OperationExplainedBox } from './OperationExplainedBox.js';
4
+ import { RawQuery } from './RawQuery.js';
5
+ import '@grafana/data';
6
+
7
+ function OperationListExplained({
8
+ query,
9
+ queryModeller,
10
+ stepNumber,
11
+ language,
12
+ onMouseEnter,
13
+ onMouseLeave
14
+ }) {
15
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, query.operations.map((op, index) => {
16
+ var _a;
17
+ const def = queryModeller.getOperationDefinition(op.id);
18
+ if (!def) {
19
+ return `Operation ${op.id} not found`;
20
+ }
21
+ const title = def.renderer(op, def, queryModeller.innerQueryPlaceholder);
22
+ const body = def.explainHandler ? def.explainHandler(op, def) : (_a = def.documentation) != null ? _a : "no docs";
23
+ return /* @__PURE__ */ React.createElement(
24
+ "div",
25
+ {
26
+ key: index,
27
+ onMouseEnter: () => onMouseEnter == null ? undefined : onMouseEnter(op, index),
28
+ onMouseLeave: () => onMouseLeave == null ? undefined : onMouseLeave(op, index)
29
+ },
30
+ /* @__PURE__ */ React.createElement(
31
+ OperationExplainedBox,
32
+ {
33
+ stepNumber: index + stepNumber,
34
+ title: /* @__PURE__ */ React.createElement(RawQuery, { query: title, language }),
35
+ markdown: body
36
+ }
37
+ )
38
+ );
39
+ }));
40
+ }
41
+
42
+ export { OperationListExplained };
43
+ //# sourceMappingURL=OperationListExplained.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationListExplained.js","sources":["../../../../../src/components/VisualQueryBuilder/components/OperationListExplained.tsx"],"sourcesContent":["import { type Grammar } from 'prismjs';\nimport React from 'react';\n\nimport { OperationExplainedBox } from './OperationExplainedBox';\nimport { RawQuery } from './RawQuery';\nimport { type QueryBuilderOperation, type VisualQuery, type VisualQueryModeller } from '../types';\n\ninterface Props<T extends VisualQuery> {\n query: T;\n queryModeller: VisualQueryModeller;\n explainMode?: boolean;\n stepNumber: number;\n language: {\n grammar: Grammar;\n name: string;\n };\n onMouseEnter?: (op: QueryBuilderOperation, index: number) => void;\n onMouseLeave?: (op: QueryBuilderOperation, index: number) => void;\n}\n\nexport function OperationListExplained<T extends VisualQuery>({\n query,\n queryModeller,\n stepNumber,\n language,\n onMouseEnter,\n onMouseLeave,\n}: Props<T>) {\n return (\n <>\n {query.operations.map((op, index) => {\n const def = queryModeller.getOperationDefinition(op.id);\n if (!def) {\n return `Operation ${op.id} not found`;\n }\n const title = def.renderer(op, def, queryModeller.innerQueryPlaceholder);\n const body = def.explainHandler ? def.explainHandler(op, def) : (def.documentation ?? 'no docs');\n\n return (\n <div\n key={index}\n onMouseEnter={() => onMouseEnter?.(op, index)}\n onMouseLeave={() => onMouseLeave?.(op, index)}\n >\n <OperationExplainedBox\n stepNumber={index + stepNumber}\n title={<RawQuery query={title} language={language} />}\n markdown={body}\n />\n </div>\n );\n })}\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;AAoBO,SAAS,sBAA8C,CAAA;AAAA,EAC5D,KAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAa,EAAA;AACX,EAAA,iEAEK,KAAM,CAAA,UAAA,CAAW,GAAI,CAAA,CAAC,IAAI,KAAU,KAAA;AA9B3C,IAAA,IAAA,EAAA;AA+BQ,IAAA,MAAM,GAAM,GAAA,aAAA,CAAc,sBAAuB,CAAA,EAAA,CAAG,EAAE,CAAA;AACtD,IAAA,IAAI,CAAC,GAAK,EAAA;AACR,MAAO,OAAA,CAAA,UAAA,EAAa,GAAG,EAAE,CAAA,UAAA,CAAA;AAAA;AAE3B,IAAA,MAAM,QAAQ,GAAI,CAAA,QAAA,CAAS,EAAI,EAAA,GAAA,EAAK,cAAc,qBAAqB,CAAA;AACvE,IAAM,MAAA,IAAA,GAAO,GAAI,CAAA,cAAA,GAAiB,GAAI,CAAA,cAAA,CAAe,IAAI,GAAG,CAAA,GAAA,CAAK,EAAI,GAAA,GAAA,CAAA,aAAA,KAAJ,IAAqB,GAAA,EAAA,GAAA,SAAA;AAEtF,IACE,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA,KAAA;AAAA,QACL,YAAA,EAAc,MAAM,YAAA,IAAA,IAAA,GAAA,SAAA,GAAA,YAAA,CAAe,EAAI,EAAA,KAAA,CAAA;AAAA,QACvC,YAAA,EAAc,MAAM,YAAA,IAAA,IAAA,GAAA,SAAA,GAAA,YAAA,CAAe,EAAI,EAAA,KAAA;AAAA,OAAA;AAAA,sBAEvC,KAAA,CAAA,aAAA;AAAA,QAAC,qBAAA;AAAA,QAAA;AAAA,UACC,YAAY,KAAQ,GAAA,UAAA;AAAA,UACpB,KAAO,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,KAAA,EAAO,OAAO,QAAoB,EAAA,CAAA;AAAA,UACnD,QAAU,EAAA;AAAA;AAAA;AACZ,KACF;AAAA,GAEH,CACH,CAAA;AAEJ;;;;"}