@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,178 @@
1
+ import { uniqBy } from 'lodash';
2
+ import React, { useState, useRef } from 'react';
3
+ import { v4 } from 'uuid';
4
+ import { toOption } from '@grafana/data';
5
+ import { selectors } from '@grafana/e2e-selectors';
6
+ import { InlineField, Select } from '@grafana/ui';
7
+ import { InputGroup } from '../../QueryEditor/InputGroup.js';
8
+ import { AccessoryButton } from '../../QueryEditor/AccessoryButton.js';
9
+
10
+ const CONFLICTING_LABEL_FILTER_ERROR_MESSAGE = "You have conflicting label filters";
11
+ function LabelFilterItem({
12
+ item,
13
+ items,
14
+ defaultOp,
15
+ onChange,
16
+ onDelete,
17
+ onGetLabelNames,
18
+ onGetLabelValues,
19
+ invalidLabel,
20
+ invalidValue,
21
+ multiValueSeparator = "|"
22
+ }) {
23
+ var _a;
24
+ const [state, setState] = useState({});
25
+ const [labelNamesMenuOpen, setLabelNamesMenuOpen] = useState(false);
26
+ const [labelValuesMenuOpen, setLabelValuesMenuOpen] = useState(false);
27
+ const isMultiSelect = (operator = item.op) => {
28
+ var _a2;
29
+ return (_a2 = operators.find((op) => op.label === operator)) == null ? undefined : _a2.isMultiValue;
30
+ };
31
+ const getSelectOptionsFromString = (item2) => {
32
+ if (item2) {
33
+ if (item2.indexOf(multiValueSeparator) > 0) {
34
+ return item2.split(multiValueSeparator);
35
+ }
36
+ return [item2];
37
+ }
38
+ return [];
39
+ };
40
+ const getOptions = () => {
41
+ const labelValues = state.labelValues ? [...state.labelValues] : [];
42
+ const selectedOptions = getSelectOptionsFromString(item == null ? undefined : item.value).map(toOption);
43
+ return uniqBy([...selectedOptions, ...labelValues], "value");
44
+ };
45
+ const isConflicting = isConflictingLabelFilter(item, items);
46
+ const { current: id } = useRef(v4());
47
+ return /* @__PURE__ */ React.createElement("div", { "data-testid": "visual-query-builder-dimensions-filter-item" }, /* @__PURE__ */ React.createElement(InlineField, { error: CONFLICTING_LABEL_FILTER_ERROR_MESSAGE, invalid: isConflicting ? true : undefined }, /* @__PURE__ */ React.createElement(InputGroup, null, /* @__PURE__ */ React.createElement(
48
+ Select,
49
+ {
50
+ placeholder: "Select label",
51
+ "data-testid": selectors.components.QueryBuilder.labelSelect,
52
+ inputId: `visual-query-builder-dimensions-filter-item-key-${id}`,
53
+ width: "auto",
54
+ value: item.label ? toOption(item.label) : null,
55
+ allowCustomValue: true,
56
+ onOpenMenu: async () => {
57
+ setState({ isLoadingLabelNames: true });
58
+ const labelNames = await onGetLabelNames(item);
59
+ setLabelNamesMenuOpen(true);
60
+ setState({ labelNames, isLoadingLabelNames: undefined });
61
+ },
62
+ onCloseMenu: () => {
63
+ setLabelNamesMenuOpen(false);
64
+ },
65
+ isOpen: labelNamesMenuOpen,
66
+ isLoading: state.isLoadingLabelNames,
67
+ options: state.labelNames,
68
+ onChange: (change) => {
69
+ var _a2;
70
+ if (change.value) {
71
+ onChange({
72
+ ...item,
73
+ op: (_a2 = item.op) != null ? _a2 : defaultOp,
74
+ label: change.value
75
+ });
76
+ }
77
+ },
78
+ invalid: isConflicting || invalidLabel
79
+ }
80
+ ), /* @__PURE__ */ React.createElement(
81
+ Select,
82
+ {
83
+ "data-testid": selectors.components.QueryBuilder.matchOperatorSelect,
84
+ value: toOption((_a = item.op) != null ? _a : defaultOp),
85
+ options: operators,
86
+ width: "auto",
87
+ onChange: (change) => {
88
+ if (change.value) {
89
+ onChange({
90
+ ...item,
91
+ op: change.value,
92
+ value: isMultiSelect(change.value) ? item.value : getSelectOptionsFromString(item == null ? undefined : item.value)[0]
93
+ });
94
+ }
95
+ },
96
+ invalid: isConflicting
97
+ }
98
+ ), /* @__PURE__ */ React.createElement(
99
+ Select,
100
+ {
101
+ placeholder: "Select value",
102
+ "data-testid": selectors.components.QueryBuilder.valueSelect,
103
+ inputId: `visual-query-builder-dimensions-filter-item-value-${id}`,
104
+ width: "auto",
105
+ value: isMultiSelect() ? getSelectOptionsFromString(item == null ? undefined : item.value).map(toOption) : getSelectOptionsFromString(item == null ? undefined : item.value).map(toOption)[0],
106
+ allowCustomValue: true,
107
+ onOpenMenu: async () => {
108
+ setState({ isLoadingLabelValues: true });
109
+ const labelValues = await onGetLabelValues(item);
110
+ setState({
111
+ ...state,
112
+ labelValues,
113
+ isLoadingLabelValues: undefined
114
+ });
115
+ setLabelValuesMenuOpen(true);
116
+ },
117
+ onCloseMenu: () => {
118
+ setLabelValuesMenuOpen(false);
119
+ },
120
+ isOpen: labelValuesMenuOpen,
121
+ isMulti: isMultiSelect(),
122
+ isLoading: state.isLoadingLabelValues,
123
+ options: getOptions(),
124
+ onChange: (change) => {
125
+ var _a2, _b;
126
+ if (change.value) {
127
+ onChange({
128
+ ...item,
129
+ value: change.value,
130
+ op: (_a2 = item.op) != null ? _a2 : defaultOp
131
+ });
132
+ } else {
133
+ const changes = change.map((change2) => {
134
+ if (change2.value) {
135
+ return change2.value;
136
+ } else {
137
+ return undefined;
138
+ }
139
+ }).filter((val) => val !== undefined).join(multiValueSeparator);
140
+ onChange({ ...item, value: changes, op: (_b = item.op) != null ? _b : defaultOp });
141
+ }
142
+ },
143
+ invalid: isConflicting || invalidValue
144
+ }
145
+ ), /* @__PURE__ */ React.createElement(AccessoryButton, { "aria-label": "remove", icon: "times", variant: "secondary", onClick: onDelete }))));
146
+ }
147
+ const operators = [
148
+ { label: "=", value: "=", description: "Equals", isMultiValue: false },
149
+ { label: "!=", value: "!=", description: "Does not equal", isMultiValue: false },
150
+ { label: "=~", value: "=~", description: "Matches regex", isMultiValue: true },
151
+ { label: "!~", value: "!~", description: "Does not match regex", isMultiValue: true }
152
+ ];
153
+ function isConflictingLabelFilter(newLabel, labels) {
154
+ if (!newLabel.label || !newLabel.op || !newLabel.value) {
155
+ return false;
156
+ }
157
+ if (labels.length < 2) {
158
+ return false;
159
+ }
160
+ const operationIsNegative = newLabel.op.toString().startsWith("!");
161
+ const candidates = labels.filter(
162
+ (label) => label.label === newLabel.label && label.value === newLabel.value && label.op !== newLabel.op
163
+ );
164
+ const conflict = candidates.some((candidate) => {
165
+ var _a, _b;
166
+ if (operationIsNegative && ((_a = candidate == null ? undefined : candidate.op) == null ? undefined : _a.toString().startsWith("!")) === false) {
167
+ return true;
168
+ }
169
+ if (operationIsNegative === false && ((_b = candidate == null ? undefined : candidate.op) == null ? undefined : _b.toString().startsWith("!"))) {
170
+ return true;
171
+ }
172
+ return false;
173
+ });
174
+ return conflict;
175
+ }
176
+
177
+ export { LabelFilterItem, isConflictingLabelFilter };
178
+ //# sourceMappingURL=LabelFilterItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabelFilterItem.js","sources":["../../../../../src/components/VisualQueryBuilder/components/LabelFilterItem.tsx"],"sourcesContent":["import { uniqBy } from 'lodash';\nimport React, { useRef, useState } from 'react';\nimport { v4 } from 'uuid';\n\nimport { type SelectableValue, toOption } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { InlineField, Select } from '@grafana/ui';\n\nimport { type QueryBuilderLabelFilter } from '../types';\nimport { InputGroup } from '../../QueryEditor/InputGroup';\nimport { AccessoryButton } from '../../QueryEditor/AccessoryButton';\n\nconst CONFLICTING_LABEL_FILTER_ERROR_MESSAGE = 'You have conflicting label filters';\ninterface Props {\n defaultOp: string;\n item: Partial<QueryBuilderLabelFilter>;\n items: Array<Partial<QueryBuilderLabelFilter>>;\n onChange: (value: Partial<QueryBuilderLabelFilter>) => void;\n onGetLabelNames: (forLabel: Partial<QueryBuilderLabelFilter>) => Promise<Array<SelectableValue<string>>>;\n onGetLabelValues: (forLabel: Partial<QueryBuilderLabelFilter>) => Promise<Array<SelectableValue<string>>>;\n onDelete: () => void;\n invalidLabel?: boolean;\n invalidValue?: boolean;\n multiValueSeparator?: string;\n}\n\nexport function LabelFilterItem({\n item,\n items,\n defaultOp,\n onChange,\n onDelete,\n onGetLabelNames,\n onGetLabelValues,\n invalidLabel,\n invalidValue,\n multiValueSeparator = '|',\n}: Props) {\n const [state, setState] = useState<{\n labelNames?: Array<SelectableValue<string>>;\n labelValues?: Array<SelectableValue<string>>;\n isLoadingLabelNames?: boolean;\n isLoadingLabelValues?: boolean;\n }>({});\n // there's a bug in react-select where the menu doesn't recalculate its position when the options are loaded asynchronously\n // see https://github.com/grafana/grafana/issues/63558\n // instead, we explicitly control the menu visibility and prevent showing it until the options have fully loaded\n const [labelNamesMenuOpen, setLabelNamesMenuOpen] = useState(false);\n const [labelValuesMenuOpen, setLabelValuesMenuOpen] = useState(false);\n\n const isMultiSelect = (operator = item.op) => {\n return operators.find((op) => op.label === operator)?.isMultiValue;\n };\n\n const getSelectOptionsFromString = (item?: string): string[] => {\n if (item) {\n if (item.indexOf(multiValueSeparator) > 0) {\n return item.split(multiValueSeparator);\n }\n return [item];\n }\n return [];\n };\n\n const getOptions = (): Array<SelectableValue<string>> => {\n const labelValues = state.labelValues ? [...state.labelValues] : [];\n const selectedOptions = getSelectOptionsFromString(item?.value).map(toOption);\n\n // Remove possible duplicated values\n return uniqBy([...selectedOptions, ...labelValues], 'value');\n };\n\n const isConflicting = isConflictingLabelFilter(item, items);\n const { current: id } = useRef(v4());\n\n return (\n <div data-testid=\"visual-query-builder-dimensions-filter-item\">\n <InlineField error={CONFLICTING_LABEL_FILTER_ERROR_MESSAGE} invalid={isConflicting ? true : undefined}>\n <InputGroup>\n <Select<string>\n placeholder=\"Select label\"\n data-testid={selectors.components.QueryBuilder.labelSelect}\n inputId={`visual-query-builder-dimensions-filter-item-key-${id}`}\n width=\"auto\"\n value={item.label ? toOption(item.label) : null}\n allowCustomValue\n onOpenMenu={async () => {\n setState({ isLoadingLabelNames: true });\n const labelNames = await onGetLabelNames(item);\n setLabelNamesMenuOpen(true);\n setState({ labelNames, isLoadingLabelNames: undefined });\n }}\n onCloseMenu={() => {\n setLabelNamesMenuOpen(false);\n }}\n isOpen={labelNamesMenuOpen}\n isLoading={state.isLoadingLabelNames}\n options={state.labelNames}\n onChange={(change) => {\n if (change.value) {\n onChange({\n ...item,\n op: item.op ?? defaultOp,\n label: change.value,\n });\n }\n }}\n invalid={isConflicting || invalidLabel}\n />\n\n <Select<string>\n data-testid={selectors.components.QueryBuilder.matchOperatorSelect}\n value={toOption(item.op ?? defaultOp)}\n options={operators}\n width=\"auto\"\n onChange={(change) => {\n if (change.value) {\n onChange({\n ...item,\n op: change.value,\n value: isMultiSelect(change.value) ? item.value : getSelectOptionsFromString(item?.value)[0],\n });\n }\n }}\n invalid={isConflicting}\n />\n\n <Select<string>\n placeholder=\"Select value\"\n data-testid={selectors.components.QueryBuilder.valueSelect}\n inputId={`visual-query-builder-dimensions-filter-item-value-${id}`}\n width=\"auto\"\n value={\n isMultiSelect()\n ? getSelectOptionsFromString(item?.value).map(toOption)\n : getSelectOptionsFromString(item?.value).map(toOption)[0]\n }\n allowCustomValue\n onOpenMenu={async () => {\n setState({ isLoadingLabelValues: true });\n const labelValues = await onGetLabelValues(item);\n setState({\n ...state,\n labelValues,\n isLoadingLabelValues: undefined,\n });\n setLabelValuesMenuOpen(true);\n }}\n onCloseMenu={() => {\n setLabelValuesMenuOpen(false);\n }}\n isOpen={labelValuesMenuOpen}\n isMulti={isMultiSelect()}\n isLoading={state.isLoadingLabelValues}\n options={getOptions()}\n onChange={(change) => {\n if (change.value) {\n onChange({\n ...item,\n value: change.value,\n op: item.op ?? defaultOp,\n });\n } else {\n // otherwise, we're dealing with a multi-value select which is array of options\n const changes = change\n .map((change: SelectableValue<string>) => {\n if (change.value) {\n return change.value;\n } else {\n return undefined;\n }\n })\n .filter((val: string | undefined) => val !== undefined)\n .join(multiValueSeparator);\n onChange({ ...item, value: changes, op: item.op ?? defaultOp });\n }\n }}\n invalid={isConflicting || invalidValue}\n />\n <AccessoryButton aria-label=\"remove\" icon=\"times\" variant=\"secondary\" onClick={onDelete} />\n </InputGroup>\n </InlineField>\n </div>\n );\n}\n\nconst operators = [\n { label: '=', value: '=', description: 'Equals', isMultiValue: false },\n { label: '!=', value: '!=', description: 'Does not equal', isMultiValue: false },\n { label: '=~', value: '=~', description: 'Matches regex', isMultiValue: true },\n { label: '!~', value: '!~', description: 'Does not match regex', isMultiValue: true },\n];\n\nexport function isConflictingLabelFilter(\n newLabel: Partial<QueryBuilderLabelFilter>,\n labels: Array<Partial<QueryBuilderLabelFilter>>\n): boolean {\n if (!newLabel.label || !newLabel.op || !newLabel.value) {\n return false;\n }\n\n if (labels.length < 2) {\n return false;\n }\n\n const operationIsNegative = newLabel.op.toString().startsWith('!');\n\n const candidates = labels.filter(\n (label) => label.label === newLabel.label && label.value === newLabel.value && label.op !== newLabel.op\n );\n\n const conflict = candidates.some((candidate) => {\n if (operationIsNegative && candidate?.op?.toString().startsWith('!') === false) {\n return true;\n }\n if (operationIsNegative === false && candidate?.op?.toString().startsWith('!')) {\n return true;\n }\n return false;\n });\n\n return conflict;\n}\n"],"names":["_a","item","change"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { isEqual } from 'lodash';
2
+ import React, { useState, useEffect } from 'react';
3
+ import '@grafana/data';
4
+ import { EditorField } from '../../QueryEditor/EditorField.js';
5
+ import { EditorFieldGroup } from '../../QueryEditor/EditorFieldGroup.js';
6
+ import { EditorList } from '../../QueryEditor/EditorList.js';
7
+ import { LabelFilterItem } from './LabelFilterItem.js';
8
+
9
+ const MISSING_LABEL_FILTER_ERROR_MESSAGE = "Select at least 1 label filter (label and value)";
10
+ function LabelFilters({
11
+ labelsFilters,
12
+ onChange,
13
+ onGetLabelNames,
14
+ onGetLabelValues,
15
+ labelFilterRequired,
16
+ multiValueSeparator
17
+ }) {
18
+ const defaultOp = "=";
19
+ const [items, setItems] = useState([{ op: defaultOp }]);
20
+ useEffect(() => {
21
+ if (labelsFilters.length > 0) {
22
+ setItems(labelsFilters);
23
+ } else {
24
+ setItems([{ op: defaultOp }]);
25
+ }
26
+ }, [labelsFilters]);
27
+ const onLabelsChange = (newItems) => {
28
+ setItems(newItems);
29
+ const newLabels = newItems.filter(
30
+ (item) => item.label !== undefined && item.value !== undefined
31
+ );
32
+ if (!isEqual(newLabels, labelsFilters)) {
33
+ onChange(newLabels);
34
+ }
35
+ };
36
+ const hasLabelFilter = items.some((item) => item.label && item.value);
37
+ return /* @__PURE__ */ React.createElement(EditorFieldGroup, null, /* @__PURE__ */ React.createElement(
38
+ EditorField,
39
+ {
40
+ label: "Label filters",
41
+ error: MISSING_LABEL_FILTER_ERROR_MESSAGE,
42
+ invalid: labelFilterRequired && !hasLabelFilter
43
+ },
44
+ /* @__PURE__ */ React.createElement(
45
+ EditorList,
46
+ {
47
+ items,
48
+ onChange: onLabelsChange,
49
+ renderItem: (item, onChangeItem, onDelete) => /* @__PURE__ */ React.createElement(
50
+ LabelFilterItem,
51
+ {
52
+ item,
53
+ items,
54
+ defaultOp,
55
+ onChange: onChangeItem,
56
+ onDelete,
57
+ onGetLabelNames,
58
+ onGetLabelValues,
59
+ invalidLabel: labelFilterRequired && !item.label,
60
+ invalidValue: labelFilterRequired && !item.value,
61
+ multiValueSeparator
62
+ }
63
+ )
64
+ }
65
+ )
66
+ ));
67
+ }
68
+
69
+ export { LabelFilters, MISSING_LABEL_FILTER_ERROR_MESSAGE };
70
+ //# sourceMappingURL=LabelFilters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabelFilters.js","sources":["../../../../../src/components/VisualQueryBuilder/components/LabelFilters.tsx"],"sourcesContent":["import { isEqual } from 'lodash';\nimport React, { useEffect, useState } from 'react';\n\nimport { type SelectableValue } from '@grafana/data';\n\nimport { type QueryBuilderLabelFilter } from '../types';\n\nimport { EditorField } from '../../QueryEditor/EditorField';\nimport { EditorFieldGroup } from '../../QueryEditor/EditorFieldGroup';\nimport { EditorList } from '../../QueryEditor/EditorList';\nimport { LabelFilterItem } from './LabelFilterItem';\n\nexport const MISSING_LABEL_FILTER_ERROR_MESSAGE = 'Select at least 1 label filter (label and value)';\n\nexport interface Props {\n labelsFilters: QueryBuilderLabelFilter[];\n onChange: (labelFilters: QueryBuilderLabelFilter[]) => void;\n onGetLabelNames: (forLabel: Partial<QueryBuilderLabelFilter>) => Promise<SelectableValue[]>;\n onGetLabelValues: (forLabel: Partial<QueryBuilderLabelFilter>) => Promise<SelectableValue[]>;\n /** If set to true, component will show error message until at least 1 filter is selected */\n labelFilterRequired?: boolean;\n multiValueSeparator?: string;\n}\n\nexport function LabelFilters({\n labelsFilters,\n onChange,\n onGetLabelNames,\n onGetLabelValues,\n labelFilterRequired,\n multiValueSeparator,\n}: Props) {\n const defaultOp = '=';\n const [items, setItems] = useState<Array<Partial<QueryBuilderLabelFilter>>>([{ op: defaultOp }]);\n\n useEffect(() => {\n if (labelsFilters.length > 0) {\n setItems(labelsFilters);\n } else {\n setItems([{ op: defaultOp }]);\n }\n }, [labelsFilters]);\n\n const onLabelsChange = (newItems: Array<Partial<QueryBuilderLabelFilter>>) => {\n setItems(newItems);\n\n // Extract full label filters with both label & value\n const newLabels = newItems.filter(\n (item): item is QueryBuilderLabelFilter => item.label !== undefined && item.value !== undefined\n );\n if (!isEqual(newLabels, labelsFilters)) {\n onChange(newLabels);\n }\n };\n\n const hasLabelFilter = items.some((item) => item.label && item.value);\n\n return (\n <EditorFieldGroup>\n <EditorField\n label=\"Label filters\"\n error={MISSING_LABEL_FILTER_ERROR_MESSAGE}\n invalid={labelFilterRequired && !hasLabelFilter}\n >\n <EditorList\n items={items}\n onChange={onLabelsChange}\n renderItem={(item: Partial<QueryBuilderLabelFilter>, onChangeItem, onDelete) => (\n <LabelFilterItem\n item={item}\n items={items}\n defaultOp={defaultOp}\n onChange={onChangeItem}\n onDelete={onDelete}\n onGetLabelNames={onGetLabelNames}\n onGetLabelValues={onGetLabelValues}\n invalidLabel={labelFilterRequired && !item.label}\n invalidValue={labelFilterRequired && !item.value}\n multiValueSeparator={multiValueSeparator}\n />\n )}\n />\n </EditorField>\n </EditorFieldGroup>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAYO,MAAM,kCAAqC,GAAA;AAY3C,SAAS,YAAa,CAAA;AAAA,EAC3B,aAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAU,EAAA;AACR,EAAA,MAAM,SAAY,GAAA,GAAA;AAClB,EAAM,MAAA,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,QAAA,CAAkD,CAAC,EAAE,EAAA,EAAI,SAAU,EAAC,CAAC,CAAA;AAE/F,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,aAAA,CAAc,SAAS,CAAG,EAAA;AAC5B,MAAA,QAAA,CAAS,aAAa,CAAA;AAAA,KACjB,MAAA;AACL,MAAA,QAAA,CAAS,CAAC,EAAE,EAAI,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA;AAC9B,GACF,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,EAAM,MAAA,cAAA,GAAiB,CAAC,QAAsD,KAAA;AAC5E,IAAA,QAAA,CAAS,QAAQ,CAAA;AAGjB,IAAA,MAAM,YAAY,QAAS,CAAA,MAAA;AAAA,MACzB,CAAC,IAA0C,KAAA,IAAA,CAAK,KAAU,KAAA,SAAA,IAAa,KAAK,KAAU,KAAA;AAAA,KACxF;AACA,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAW,EAAA,aAAa,CAAG,EAAA;AACtC,MAAA,QAAA,CAAS,SAAS,CAAA;AAAA;AACpB,GACF;AAEA,EAAM,MAAA,cAAA,GAAiB,MAAM,IAAK,CAAA,CAAC,SAAS,IAAK,CAAA,KAAA,IAAS,KAAK,KAAK,CAAA;AAEpE,EAAA,2CACG,gBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,KAAM,EAAA,eAAA;AAAA,MACN,KAAO,EAAA,kCAAA;AAAA,MACP,OAAA,EAAS,uBAAuB,CAAC;AAAA,KAAA;AAAA,oBAEjC,KAAA,CAAA,aAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,QAAU,EAAA,cAAA;AAAA,QACV,UAAY,EAAA,CAAC,IAAwC,EAAA,YAAA,EAAc,QACjE,qBAAA,KAAA,CAAA,aAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,IAAA;AAAA,YACA,KAAA;AAAA,YACA,SAAA;AAAA,YACA,QAAU,EAAA,YAAA;AAAA,YACV,QAAA;AAAA,YACA,eAAA;AAAA,YACA,gBAAA;AAAA,YACA,YAAA,EAAc,mBAAuB,IAAA,CAAC,IAAK,CAAA,KAAA;AAAA,YAC3C,YAAA,EAAc,mBAAuB,IAAA,CAAC,IAAK,CAAA,KAAA;AAAA,YAC3C;AAAA;AAAA;AACF;AAAA;AAEJ,GAEJ,CAAA;AAEJ;;;;"}
@@ -0,0 +1,77 @@
1
+ import { cx, css } from '@emotion/css';
2
+ import React from 'react';
3
+ import { Draggable } from '@hello-pangea/dnd';
4
+ import '@grafana/data';
5
+ import { useTheme2, InlineField } from '@grafana/ui';
6
+ import { OperationEditorBody } from './OperationEditorBody.js';
7
+
8
+ function OperationEditor({
9
+ operation,
10
+ index,
11
+ onRemove,
12
+ onToggle,
13
+ onChange,
14
+ onRunQuery,
15
+ queryModeller,
16
+ query,
17
+ datasource,
18
+ flash,
19
+ highlight,
20
+ timeRange,
21
+ isConflictingOperation
22
+ }) {
23
+ const def = queryModeller.getOperationDefinition(operation.id);
24
+ const theme = useTheme2();
25
+ const isConflicting = isConflictingOperation ? isConflictingOperation(operation, query.operations) : false;
26
+ const styles = getStyles(theme);
27
+ if (!def) {
28
+ return /* @__PURE__ */ React.createElement("span", null, "Operation ", operation.id, " not found");
29
+ }
30
+ const isInvalid = (isDragging) => {
31
+ if (isDragging) {
32
+ return undefined;
33
+ }
34
+ return isConflicting ? true : undefined;
35
+ };
36
+ return /* @__PURE__ */ React.createElement(Draggable, { draggableId: `operation-${index}`, index }, (provided, snapshot) => /* @__PURE__ */ React.createElement(
37
+ InlineField,
38
+ {
39
+ error: "You have conflicting label filters",
40
+ invalid: isInvalid(snapshot.isDragging),
41
+ className: cx(styles.error, styles.cardWrapper)
42
+ },
43
+ /* @__PURE__ */ React.createElement(
44
+ OperationEditorBody,
45
+ {
46
+ provided,
47
+ flash,
48
+ highlight,
49
+ isConflicting,
50
+ index,
51
+ operation,
52
+ definition: def,
53
+ onChange,
54
+ onRemove,
55
+ onToggle,
56
+ queryModeller,
57
+ query,
58
+ timeRange,
59
+ onRunQuery,
60
+ datasource
61
+ }
62
+ )
63
+ ));
64
+ }
65
+ const getStyles = (theme, isConflicting) => {
66
+ return {
67
+ cardWrapper: css({
68
+ alignItems: "stretch"
69
+ }),
70
+ error: css({
71
+ marginBottom: theme.spacing(1)
72
+ })
73
+ };
74
+ };
75
+
76
+ export { OperationEditor };
77
+ //# sourceMappingURL=OperationEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationEditor.js","sources":["../../../../../src/components/VisualQueryBuilder/components/OperationEditor.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport React from 'react';\nimport { Draggable } from '@hello-pangea/dnd';\n\nimport { type DataSourceApi, type GrafanaTheme2, type TimeRange } from '@grafana/data';\nimport { InlineField, useTheme2 } from '@grafana/ui';\n\nimport { type QueryBuilderOperation, type VisualQuery, type VisualQueryModeller } from '../types';\nimport { OperationEditorBody } from './OperationEditorBody';\n\ninterface Props<T extends VisualQuery> {\n operation: QueryBuilderOperation;\n index: number;\n query: T;\n datasource: DataSourceApi;\n queryModeller: VisualQueryModeller;\n onChange: (index: number, update: QueryBuilderOperation) => void;\n onRemove: (index: number) => void;\n onToggle: (index: number) => void;\n onRunQuery: () => void;\n flash?: boolean;\n highlight?: boolean;\n timeRange?: TimeRange;\n isConflictingOperation?: (operation: QueryBuilderOperation, otherOperations: QueryBuilderOperation[]) => boolean;\n}\n\nexport function OperationEditor<T extends VisualQuery>({\n operation,\n index,\n onRemove,\n onToggle,\n onChange,\n onRunQuery,\n queryModeller,\n query,\n datasource,\n flash,\n highlight,\n timeRange,\n isConflictingOperation,\n}: Props<T>) {\n const def = queryModeller.getOperationDefinition(operation.id);\n\n const theme = useTheme2();\n const isConflicting = isConflictingOperation ? isConflictingOperation(operation, query.operations) : false;\n const styles = getStyles(theme, isConflicting);\n\n if (!def) {\n return <span>Operation {operation.id} not found</span>;\n }\n\n const isInvalid = (isDragging: boolean) => {\n if (isDragging) {\n return undefined;\n }\n\n return isConflicting ? true : undefined;\n };\n\n return (\n <Draggable draggableId={`operation-${index}`} index={index}>\n {(provided, snapshot) => (\n <InlineField\n error={'You have conflicting label filters'}\n invalid={isInvalid(snapshot.isDragging)}\n className={cx(styles.error, styles.cardWrapper)}\n >\n <OperationEditorBody\n provided={provided}\n flash={flash}\n highlight={highlight}\n isConflicting={isConflicting}\n index={index}\n operation={operation}\n definition={def}\n onChange={onChange}\n onRemove={onRemove}\n onToggle={onToggle}\n queryModeller={queryModeller}\n query={query}\n timeRange={timeRange}\n onRunQuery={onRunQuery}\n datasource={datasource}\n />\n </InlineField>\n )}\n </Draggable>\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 };\n};\n"],"names":[],"mappings":";;;;;;;AA0BO,SAAS,eAAuC,CAAA;AAAA,EACrD,SAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAa,EAAA;AACX,EAAA,MAAM,GAAM,GAAA,aAAA,CAAc,sBAAuB,CAAA,SAAA,CAAU,EAAE,CAAA;AAE7D,EAAA,MAAM,QAAQ,SAAU,EAAA;AACxB,EAAA,MAAM,gBAAgB,sBAAyB,GAAA,sBAAA,CAAuB,SAAW,EAAA,KAAA,CAAM,UAAU,CAAI,GAAA,KAAA;AACrG,EAAM,MAAA,MAAA,GAAS,SAAU,CAAA,KAAoB,CAAA;AAE7C,EAAA,IAAI,CAAC,GAAK,EAAA;AACR,IAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAK,YAAW,EAAA,SAAA,CAAU,IAAG,YAAU,CAAA;AAAA;AAGjD,EAAM,MAAA,SAAA,GAAY,CAAC,UAAwB,KAAA;AACzC,IAAA,IAAI,UAAY,EAAA;AACd,MAAO,OAAA,SAAA;AAAA;AAGT,IAAA,OAAO,gBAAgB,IAAO,GAAA,SAAA;AAAA,GAChC;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,aAAU,WAAa,EAAA,CAAA,UAAA,EAAa,KAAK,CAAI,CAAA,EAAA,KAAA,EAAA,EAC3C,CAAC,QAAA,EAAU,QACV,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,oCAAA;AAAA,MACP,OAAA,EAAS,SAAU,CAAA,QAAA,CAAS,UAAU,CAAA;AAAA,MACtC,SAAW,EAAA,EAAA,CAAG,MAAO,CAAA,KAAA,EAAO,OAAO,WAAW;AAAA,KAAA;AAAA,oBAE9C,KAAA,CAAA,aAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,QAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA;AAAA,QACA,UAAY,EAAA,GAAA;AAAA,QACZ,QAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA;AAAA;AACF,GAGN,CAAA;AAEJ;AAEA,MAAM,SAAA,GAAY,CAAC,KAAA,EAAsB,aAA2B,KAAA;AAClE,EAAO,OAAA;AAAA,IACL,aAAa,GAAI,CAAA;AAAA,MACf,UAAY,EAAA;AAAA,KACb,CAAA;AAAA,IACD,OAAO,GAAI,CAAA;AAAA,MACT,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA,KAC9B;AAAA,GACH;AACF,CAAA;;;;"}
@@ -0,0 +1,254 @@
1
+ import React, { useRef, useState, useEffect } from 'react';
2
+ import '@hello-pangea/dnd';
3
+ import { useTheme2, Tooltip, Icon, Button } from '@grafana/ui';
4
+ import { cx, css } from '@emotion/css';
5
+ import '@grafana/data';
6
+ import { OperationHeader } from './OperationHeader.js';
7
+ import { getOperationParamEditor, getOperationParamId } from './OperationParamEditor.js';
8
+ import { v4 } from 'uuid';
9
+ import '../../QueryEditor/types.js';
10
+ import 'lodash';
11
+ import '../../QueryEditor/EditorList.js';
12
+ import { EditorStack } from '../../QueryEditor/EditorStack.js';
13
+ import '../../QueryEditor/Space.js';
14
+ import 'react-use';
15
+ import '../../QueryEditor/QueryHeader.js';
16
+ import 'react-virtualized-auto-sizer';
17
+ import 'sql-formatter-plus';
18
+ import '@grafana/runtime';
19
+ import '../../SQLEditor/utils/debugger.js';
20
+ import '../../SQLEditor/standardSql/macros.js';
21
+ import '../../QueryEditor/visual-query-builder/AwesomeQueryBuilder.js';
22
+ import '../../QueryEditor/visual-query-builder/WhereRow.js';
23
+ import '../../QueryEditor/visual-query-builder/EditorField.js';
24
+ import 'rxjs';
25
+ import 'rxjs/operators';
26
+
27
+ function OperationEditorBody({
28
+ provided,
29
+ flash,
30
+ isConflicting,
31
+ highlight,
32
+ index,
33
+ queryModeller,
34
+ onChange,
35
+ onRemove,
36
+ onToggle,
37
+ operation,
38
+ definition,
39
+ query,
40
+ timeRange,
41
+ onRunQuery,
42
+ datasource
43
+ }) {
44
+ const theme = useTheme2();
45
+ const styles = getStyles(theme, isConflicting);
46
+ const shouldFlash = useFlash(flash);
47
+ const { current: id } = useRef(v4());
48
+ const onParamValueChanged = (paramIdx, value) => {
49
+ const update = { ...operation, params: [...operation.params] };
50
+ update.params[paramIdx] = value;
51
+ callParamChangedThenOnChange(definition, update, index, paramIdx, onChange);
52
+ };
53
+ const onAddRestParam = () => {
54
+ const update = { ...operation, params: [...operation.params, ""] };
55
+ callParamChangedThenOnChange(definition, update, index, operation.params.length, onChange);
56
+ };
57
+ const onRemoveRestParam = (paramIdx) => {
58
+ const update = {
59
+ ...operation,
60
+ params: [...operation.params.slice(0, paramIdx), ...operation.params.slice(paramIdx + 1)]
61
+ };
62
+ callParamChangedThenOnChange(definition, update, index, paramIdx, onChange);
63
+ };
64
+ let restParam;
65
+ if (definition.params.length > 0) {
66
+ const lastParamDef = definition.params[definition.params.length - 1];
67
+ if (lastParamDef.restParam) {
68
+ restParam = renderAddRestParamButton(lastParamDef, onAddRestParam, index, operation.params.length, styles);
69
+ }
70
+ }
71
+ return /* @__PURE__ */ React.createElement(
72
+ "div",
73
+ {
74
+ className: cx(styles.card, {
75
+ [styles.cardHighlight]: shouldFlash || highlight,
76
+ [styles.cardError]: isConflicting,
77
+ [styles.disabled]: operation.disabled
78
+ }),
79
+ ref: provided.innerRef,
80
+ ...provided.draggableProps,
81
+ "data-testid": `operations.${index}.wrapper`
82
+ },
83
+ /* @__PURE__ */ React.createElement(
84
+ OperationHeader,
85
+ {
86
+ operation,
87
+ dragHandleProps: provided.dragHandleProps,
88
+ definition,
89
+ index,
90
+ onChange,
91
+ onRemove,
92
+ onToggle,
93
+ queryModeller
94
+ }
95
+ ),
96
+ /* @__PURE__ */ React.createElement("div", { className: styles.body }, operation.params.map((param, paramIndex) => {
97
+ const paramDef = definition.params[Math.min(definition.params.length - 1, paramIndex)];
98
+ const Editor = getOperationParamEditor(paramDef);
99
+ return /* @__PURE__ */ React.createElement("div", { className: styles.paramRow, key: `${paramIndex}-1` }, !paramDef.hideName && /* @__PURE__ */ React.createElement("div", { className: styles.paramName }, /* @__PURE__ */ React.createElement("label", { htmlFor: getOperationParamId(id, paramIndex) }, paramDef.name), paramDef.description && /* @__PURE__ */ React.createElement(Tooltip, { placement: "top", content: paramDef.description, theme: "info" }, /* @__PURE__ */ React.createElement(Icon, { name: "info-circle", size: "sm", className: styles.infoIcon }))), /* @__PURE__ */ React.createElement("div", { className: styles.paramValue }, /* @__PURE__ */ React.createElement(EditorStack, { gap: 0.5, direction: "row", alignItems: "center", wrap: false }, /* @__PURE__ */ React.createElement(
100
+ Editor,
101
+ {
102
+ index: paramIndex,
103
+ paramDef,
104
+ value: operation.params[paramIndex],
105
+ operation,
106
+ operationId: id,
107
+ onChange: onParamValueChanged,
108
+ onRunQuery,
109
+ query,
110
+ datasource,
111
+ timeRange,
112
+ queryModeller
113
+ }
114
+ ), paramDef.restParam && (operation.params.length > definition.params.length || paramDef.optional) && /* @__PURE__ */ React.createElement(
115
+ Button,
116
+ {
117
+ "data-testid": `operations.${index}.remove-rest-param`,
118
+ size: "sm",
119
+ fill: "text",
120
+ icon: "times",
121
+ variant: "secondary",
122
+ title: `Remove ${paramDef.name}`,
123
+ onClick: () => onRemoveRestParam(paramIndex)
124
+ }
125
+ ))));
126
+ })),
127
+ restParam,
128
+ index < query.operations.length - 1 && /* @__PURE__ */ React.createElement("div", { className: styles.arrow }, /* @__PURE__ */ React.createElement("div", { className: styles.arrowLine }), /* @__PURE__ */ React.createElement("div", { className: styles.arrowArrow }))
129
+ );
130
+ }
131
+ const getStyles = (theme, isConflicting) => {
132
+ return {
133
+ cardWrapper: css({
134
+ alignItems: "stretch"
135
+ }),
136
+ error: css({
137
+ marginBottom: theme.spacing(1)
138
+ }),
139
+ card: css({
140
+ background: theme.colors.background.primary,
141
+ border: `1px solid ${theme.colors.border.medium}`,
142
+ cursor: "grab",
143
+ borderRadius: theme.shape.radius.default,
144
+ position: "relative",
145
+ transition: "all 0.5s ease-in 0s",
146
+ height: isConflicting ? "auto" : "100%"
147
+ }),
148
+ disabled: css({
149
+ opacity: 0.5,
150
+ transition: "none"
151
+ }),
152
+ cardError: css({
153
+ boxShadow: `0px 0px 4px 0px ${theme.colors.warning.main}`,
154
+ border: `1px solid ${theme.colors.warning.main}`
155
+ }),
156
+ cardHighlight: css({
157
+ boxShadow: `0px 0px 4px 0px ${theme.colors.primary.border}`,
158
+ border: `1px solid ${theme.colors.primary.border}`
159
+ }),
160
+ infoIcon: css({
161
+ marginLeft: theme.spacing(0.5),
162
+ color: theme.colors.text.secondary,
163
+ ":hover": {
164
+ color: theme.colors.text.primary
165
+ }
166
+ }),
167
+ body: css({
168
+ margin: theme.spacing(1, 1, 0.5, 1),
169
+ display: "table"
170
+ }),
171
+ paramRow: css({
172
+ label: "paramRow",
173
+ display: "table-row",
174
+ verticalAlign: "middle"
175
+ }),
176
+ paramName: css({
177
+ display: "table-cell",
178
+ padding: theme.spacing(0, 1, 0, 0),
179
+ fontSize: theme.typography.bodySmall.fontSize,
180
+ fontWeight: theme.typography.fontWeightMedium,
181
+ verticalAlign: "middle",
182
+ height: "32px"
183
+ }),
184
+ paramValue: css({
185
+ label: "paramValue",
186
+ display: "table-cell",
187
+ verticalAlign: "middle"
188
+ }),
189
+ restParam: css({
190
+ padding: theme.spacing(0, 1, 1, 1)
191
+ }),
192
+ arrow: css({
193
+ position: "absolute",
194
+ top: "0",
195
+ right: "-18px",
196
+ display: "flex"
197
+ }),
198
+ arrowLine: css({
199
+ height: "2px",
200
+ width: "8px",
201
+ backgroundColor: theme.colors.border.strong,
202
+ position: "relative",
203
+ top: "14px"
204
+ }),
205
+ arrowArrow: css({
206
+ width: 0,
207
+ height: 0,
208
+ borderTop: `5px solid transparent`,
209
+ borderBottom: `5px solid transparent`,
210
+ borderLeft: `7px solid ${theme.colors.border.strong}`,
211
+ position: "relative",
212
+ top: "10px"
213
+ })
214
+ };
215
+ };
216
+ function useFlash(flash) {
217
+ const [keepFlash, setKeepFlash] = useState(true);
218
+ useEffect(() => {
219
+ let t;
220
+ if (flash) {
221
+ t = setTimeout(() => {
222
+ setKeepFlash(false);
223
+ }, 1e3);
224
+ } else {
225
+ setKeepFlash(true);
226
+ }
227
+ return () => clearTimeout(t);
228
+ }, [flash]);
229
+ return keepFlash && flash;
230
+ }
231
+ function callParamChangedThenOnChange(def, operation, operationIndex, paramIndex, onChange) {
232
+ if (def.paramChangedHandler) {
233
+ onChange(operationIndex, def.paramChangedHandler(paramIndex, operation, def));
234
+ } else {
235
+ onChange(operationIndex, operation);
236
+ }
237
+ }
238
+ function renderAddRestParamButton(paramDef, onAddRestParam, operationIndex, paramIndex, styles) {
239
+ return /* @__PURE__ */ React.createElement("div", { className: styles.restParam, key: `${paramIndex}-2` }, /* @__PURE__ */ React.createElement(
240
+ Button,
241
+ {
242
+ size: "sm",
243
+ icon: "plus",
244
+ title: `Add ${paramDef.name}`.trimEnd(),
245
+ variant: "secondary",
246
+ onClick: onAddRestParam,
247
+ "data-testid": `operations.${operationIndex}.add-rest-param`
248
+ },
249
+ paramDef.name
250
+ ));
251
+ }
252
+
253
+ export { OperationEditorBody };
254
+ //# sourceMappingURL=OperationEditorBody.js.map