@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.
- package/dist/cjs/index.d.cts +1205 -0
- package/dist/cjs/index.js +9739 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js +80 -0
- package/dist/esm/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/Auth.js +43 -0
- package/dist/esm/components/ConfigEditor/Auth/Auth.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js +132 -0
- package/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/auth-method/BasicAuth.js +82 -0
- package/dist/esm/components/ConfigEditor/Auth/auth-method/BasicAuth.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeader.js +91 -0
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeader.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js +101 -0
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/styles.js +18 -0
- package/dist/esm/components/ConfigEditor/Auth/styles.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js +58 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/SkipTLSVerification.js +18 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/SkipTLSVerification.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js +114 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettings.js +31 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettings.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettingsSection.js +35 -0
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettingsSection.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/types.js +12 -0
- package/dist/esm/components/ConfigEditor/Auth/types.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Auth/utils.js +200 -0
- package/dist/esm/components/ConfigEditor/Auth/utils.js.map +1 -0
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js +38 -0
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js.map +1 -0
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSection.js +9 -0
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSection.js.map +1 -0
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSubSection.js +9 -0
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSubSection.js.map +1 -0
- package/dist/esm/components/ConfigEditor/ConfigSection/GenericConfigSection.js +55 -0
- package/dist/esm/components/ConfigEditor/ConfigSection/GenericConfigSection.js.map +1 -0
- package/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js +53 -0
- package/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DataSourceDescription.js +32 -0
- package/dist/esm/components/ConfigEditor/DataSourceDescription.js.map +1 -0
- package/dist/esm/components/ConfigEditor/SecureSocksProxyToggle.js +45 -0
- package/dist/esm/components/ConfigEditor/SecureSocksProxyToggle.js.map +1 -0
- package/dist/esm/components/CustomHeadersSettings/CustomHeadersSettings.js +182 -0
- package/dist/esm/components/CustomHeadersSettings/CustomHeadersSettings.js.map +1 -0
- package/dist/esm/components/DataLinks/DataLink.js +144 -0
- package/dist/esm/components/DataLinks/DataLink.js.map +1 -0
- package/dist/esm/components/DataLinks/DataLinks.js +66 -0
- package/dist/esm/components/DataLinks/DataLinks.js.map +1 -0
- package/dist/esm/components/DataSourcePicker/DataSourcePicker.js +103 -0
- package/dist/esm/components/DataSourcePicker/DataSourcePicker.js.map +1 -0
- package/dist/esm/components/DatePicker/DatePicker.js +39 -0
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/{components → esm/components}/DatePicker/styles.js +20 -21
- package/dist/esm/components/DatePicker/styles.js.map +1 -0
- package/dist/esm/components/DatePickerWithInput/DatePickerWithInput.js +28 -0
- package/dist/esm/components/DatePickerWithInput/DatePickerWithInput.js.map +1 -0
- package/dist/esm/components/DatePickerWithInput/styles.js +16 -0
- package/dist/esm/components/DatePickerWithInput/styles.js.map +1 -0
- package/dist/esm/components/DebounceInput/DebounceInput.js +15 -0
- package/dist/esm/components/DebounceInput/DebounceInput.js.map +1 -0
- package/dist/esm/components/Plugins/PluginSignatureBadge.js +57 -0
- package/dist/esm/components/Plugins/PluginSignatureBadge.js.map +1 -0
- package/dist/esm/components/QueryEditor/AccessoryButton.js +18 -0
- package/dist/esm/components/QueryEditor/AccessoryButton.js.map +1 -0
- package/dist/esm/components/QueryEditor/ConfirmModal.js +26 -0
- package/dist/esm/components/QueryEditor/ConfirmModal.js.map +1 -0
- package/dist/esm/components/QueryEditor/DatasetSelector.js +56 -0
- package/dist/esm/components/QueryEditor/DatasetSelector.js.map +1 -0
- package/dist/esm/components/QueryEditor/EditorField.js +42 -0
- package/dist/esm/components/QueryEditor/EditorField.js.map +1 -0
- package/dist/esm/components/QueryEditor/EditorFieldGroup.js +9 -0
- package/dist/esm/components/QueryEditor/EditorFieldGroup.js.map +1 -0
- package/dist/esm/components/QueryEditor/EditorHeader.js +21 -0
- package/dist/esm/components/QueryEditor/EditorHeader.js.map +1 -0
- package/dist/esm/components/QueryEditor/EditorList.js +28 -0
- package/dist/esm/components/QueryEditor/EditorList.js.map +1 -0
- package/dist/esm/components/QueryEditor/EditorRow.js +22 -0
- package/dist/esm/components/QueryEditor/EditorRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/EditorRows.js +9 -0
- package/dist/esm/components/QueryEditor/EditorRows.js.map +1 -0
- package/dist/esm/components/QueryEditor/EditorStack.js +11 -0
- package/dist/esm/components/QueryEditor/EditorStack.js.map +1 -0
- package/dist/esm/components/QueryEditor/EditorSwitch.js +20 -0
- package/dist/esm/components/QueryEditor/EditorSwitch.js.map +1 -0
- package/dist/esm/components/QueryEditor/FlexItem.js +8 -0
- package/dist/esm/components/QueryEditor/FlexItem.js.map +1 -0
- package/dist/esm/components/QueryEditor/InlineSelect.js +50 -0
- package/dist/esm/components/QueryEditor/InlineSelect.js.map +1 -0
- package/dist/esm/components/QueryEditor/InputGroup.js +63 -0
- package/dist/esm/components/QueryEditor/InputGroup.js.map +1 -0
- package/dist/esm/components/QueryEditor/QueryEditor.js +110 -0
- package/dist/esm/components/QueryEditor/QueryEditor.js.map +1 -0
- package/dist/esm/components/QueryEditor/QueryHeader.js +172 -0
- package/dist/esm/components/QueryEditor/QueryHeader.js.map +1 -0
- package/dist/esm/components/QueryEditor/RunQueryButton.js +42 -0
- package/dist/esm/components/QueryEditor/RunQueryButton.js.map +1 -0
- package/dist/esm/components/QueryEditor/Space.js +35 -0
- package/dist/esm/components/QueryEditor/Space.js.map +1 -0
- package/dist/esm/components/QueryEditor/TableSelector.js +33 -0
- package/dist/esm/components/QueryEditor/TableSelector.js.map +1 -0
- package/dist/esm/components/QueryEditor/defaults.js +25 -0
- package/dist/esm/components/QueryEditor/defaults.js.map +1 -0
- package/dist/esm/components/QueryEditor/expressions.js +17 -0
- package/dist/esm/components/QueryEditor/expressions.js.map +1 -0
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryEditorRaw.js +39 -0
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryEditorRaw.js.map +1 -0
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryToolbox.js +63 -0
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryToolbox.js.map +1 -0
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryValidator.js +72 -0
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryValidator.js.map +1 -0
- package/dist/esm/components/QueryEditor/query-editor-raw/RawEditor.js +96 -0
- package/dist/esm/components/QueryEditor/query-editor-raw/RawEditor.js.map +1 -0
- package/dist/esm/components/QueryEditor/types.js +33 -0
- package/dist/esm/components/QueryEditor/types.js.map +1 -0
- package/dist/esm/components/QueryEditor/utils/formatSQL.js +10 -0
- package/dist/esm/components/QueryEditor/utils/formatSQL.js.map +1 -0
- package/dist/esm/components/QueryEditor/utils/sql.utils.js +93 -0
- package/dist/esm/components/QueryEditor/utils/sql.utils.js.map +1 -0
- package/dist/esm/components/QueryEditor/utils/useSqlChange.js +19 -0
- package/dist/esm/components/QueryEditor/utils/useSqlChange.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js +216 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorField.js +44 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorField.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorRow.js +22 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorRows.js +9 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorRows.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/GroupByRow.js +51 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/GroupByRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/OrderByRow.js +70 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/OrderByRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/Preview.js +33 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/Preview.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLGroupByRow.js +14 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLGroupByRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLOrderByRow.js +35 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLOrderByRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLSelectRow.js +19 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLSelectRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLWhereRow.js +40 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLWhereRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SelectRow.js +123 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/SelectRow.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/VisualEditor.js +24 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/VisualEditor.js.map +1 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/WhereRow.js +79 -0
- package/dist/esm/components/QueryEditor/visual-query-builder/WhereRow.js.map +1 -0
- package/dist/esm/components/QueryEditorRow/QueryEditorRow.js +11 -0
- package/dist/esm/components/QueryEditorRow/QueryEditorRow.js.map +1 -0
- package/dist/esm/components/SQLEditor/components/SQLEditor.js +339 -0
- package/dist/esm/components/SQLEditor/components/SQLEditor.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/Monaco.js +19 -0
- package/dist/esm/components/SQLEditor/mocks/Monaco.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/TextModel.js +21 -0
- package/dist/esm/components/SQLEditor/mocks/TextModel.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQuery.js +217 -0
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQuery.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js +232 -0
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js +272 -0
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js +9 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQuery.js +197 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQuery.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js +212 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js +252 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueries.js +387 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueries.js.map +1 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js +417 -0
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js.map +1 -0
- package/dist/{src/components/SQLEditor/mocks/testData.d.ts → esm/components/SQLEditor/mocks/testData.js} +10 -9
- package/dist/esm/components/SQLEditor/mocks/testData.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/definition.js +19 -0
- package/dist/esm/components/SQLEditor/standardSql/definition.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/getStandardSuggestions.js +20 -0
- package/dist/esm/components/SQLEditor/standardSql/getStandardSuggestions.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/getStatementPosition.js +24 -0
- package/dist/esm/components/SQLEditor/standardSql/getStatementPosition.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/language.js +867 -0
- package/dist/esm/components/SQLEditor/standardSql/language.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/macros.js +58 -0
- package/dist/esm/components/SQLEditor/standardSql/macros.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js +34 -0
- package/dist/esm/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/standardSuggestionsRegistry.js +367 -0
- package/dist/esm/components/SQLEditor/standardSql/standardSuggestionsRegistry.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/statementPositionResolversRegistry.js +215 -0
- package/dist/esm/components/SQLEditor/standardSql/statementPositionResolversRegistry.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/suggestionsKindRegistry.js +152 -0
- package/dist/esm/components/SQLEditor/standardSql/suggestionsKindRegistry.js.map +1 -0
- package/dist/esm/components/SQLEditor/test-utils/index.js +11 -0
- package/dist/esm/components/SQLEditor/test-utils/index.js.map +1 -0
- package/dist/esm/components/SQLEditor/test-utils/statementPosition.js +45 -0
- package/dist/esm/components/SQLEditor/test-utils/statementPosition.js.map +1 -0
- package/dist/esm/components/SQLEditor/types.js +140 -0
- package/dist/esm/components/SQLEditor/types.js.map +1 -0
- package/dist/esm/components/SQLEditor/utils/LinkedToken.js +145 -0
- package/dist/esm/components/SQLEditor/utils/LinkedToken.js.map +1 -0
- package/dist/esm/components/SQLEditor/utils/commands.js +7 -0
- package/dist/esm/components/SQLEditor/utils/commands.js.map +1 -0
- package/dist/esm/components/SQLEditor/utils/debugger.js +14 -0
- package/dist/esm/components/SQLEditor/utils/debugger.js.map +1 -0
- package/dist/esm/components/SQLEditor/utils/getSuggestionKind.js +16 -0
- package/dist/esm/components/SQLEditor/utils/getSuggestionKind.js.map +1 -0
- package/dist/esm/components/SQLEditor/utils/linkedTokenBuilder.js +45 -0
- package/dist/esm/components/SQLEditor/utils/linkedTokenBuilder.js.map +1 -0
- package/dist/esm/components/SQLEditor/utils/toCompletionItem.js +17 -0
- package/dist/esm/components/SQLEditor/utils/toCompletionItem.js.map +1 -0
- package/dist/esm/components/SQLEditor/utils/tokenUtils.js +36 -0
- package/dist/esm/components/SQLEditor/utils/tokenUtils.js.map +1 -0
- package/dist/esm/components/Segment/Segment.js +24 -0
- package/dist/esm/components/Segment/Segment.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/QueryModellerBase.js +39 -0
- package/dist/esm/components/VisualQueryBuilder/QueryModellerBase.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilterItem.js +178 -0
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilterItem.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilters.js +70 -0
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilters.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditor.js +77 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditor.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditorBody.js +254 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditorBody.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationExplainedBox.js +55 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationExplainedBox.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationHeader.js +107 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationHeader.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationInfoButton.js +87 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationInfoButton.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationList.js +169 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationList.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationListExplained.js +43 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationListExplained.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationParamEditor.js +136 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationParamEditor.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationsEditorRow.js +39 -0
- package/dist/esm/components/VisualQueryBuilder/components/OperationsEditorRow.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/QueryBuilderHints.js +73 -0
- package/dist/esm/components/VisualQueryBuilder/components/QueryBuilderHints.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/QueryEditorModeToggle.js +14 -0
- package/dist/esm/components/VisualQueryBuilder/components/QueryEditorModeToggle.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/QueryHeaderSwitch.js +44 -0
- package/dist/esm/components/VisualQueryBuilder/components/QueryHeaderSwitch.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/QueryOptionGroup.js +97 -0
- package/dist/esm/components/VisualQueryBuilder/components/QueryOptionGroup.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/components/RawQuery.js +30 -0
- package/dist/esm/components/VisualQueryBuilder/components/RawQuery.js.map +1 -0
- package/dist/esm/components/VisualQueryBuilder/types.js +12 -0
- package/dist/esm/components/VisualQueryBuilder/types.js.map +1 -0
- package/dist/esm/datasource/SqlDatasource.js +172 -0
- package/dist/esm/datasource/SqlDatasource.js.map +1 -0
- package/dist/esm/datasource/constants.js +18 -0
- package/dist/esm/datasource/constants.js.map +1 -0
- package/dist/esm/hooks/useDebounce.js +18 -0
- package/dist/esm/hooks/useDebounce.js.map +1 -0
- package/dist/esm/index.d.ts +1205 -0
- package/dist/esm/index.js +57 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +62 -41
- package/dist/components/AsyncButtonCascader/AsyncButtonCascader.js +0 -33
- package/dist/components/AsyncButtonCascader/AsyncButtonCascader.js.map +0 -1
- package/dist/components/Cascader/Cascader.js +0 -6
- package/dist/components/Cascader/Cascader.js.map +0 -1
- package/dist/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js +0 -28
- package/dist/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js.map +0 -1
- package/dist/components/ConfigEditor/AdvancedSettings/index.js +0 -6
- package/dist/components/ConfigEditor/AdvancedSettings/index.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/Auth.js +0 -24
- package/dist/components/ConfigEditor/Auth/Auth.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js +0 -110
- package/dist/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/auth-method/BasicAuth.js +0 -23
- package/dist/components/ConfigEditor/Auth/auth-method/BasicAuth.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/custom-headers/CustomHeader.js +0 -41
- package/dist/components/ConfigEditor/Auth/custom-headers/CustomHeader.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js +0 -76
- package/dist/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/index.js +0 -10
- package/dist/components/ConfigEditor/Auth/index.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/styles.js +0 -19
- package/dist/components/ConfigEditor/Auth/styles.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js +0 -18
- package/dist/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/tls/SkipTLSVerification.js +0 -11
- package/dist/components/ConfigEditor/Auth/tls/SkipTLSVerification.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/tls/TLSClientAuth.js +0 -22
- package/dist/components/ConfigEditor/Auth/tls/TLSClientAuth.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/tls/TLSSettings.js +0 -25
- package/dist/components/ConfigEditor/Auth/tls/TLSSettings.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/tls/TLSSettingsSection.js +0 -35
- package/dist/components/ConfigEditor/Auth/tls/TLSSettingsSection.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/types.js +0 -11
- package/dist/components/ConfigEditor/Auth/types.js.map +0 -1
- package/dist/components/ConfigEditor/Auth/utils.js +0 -113
- package/dist/components/ConfigEditor/Auth/utils.js.map +0 -1
- package/dist/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js +0 -32
- package/dist/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js.map +0 -1
- package/dist/components/ConfigEditor/ConfigSection/ConfigSection.js +0 -12
- package/dist/components/ConfigEditor/ConfigSection/ConfigSection.js.map +0 -1
- package/dist/components/ConfigEditor/ConfigSection/ConfigSubSection.js +0 -12
- package/dist/components/ConfigEditor/ConfigSection/ConfigSubSection.js.map +0 -1
- package/dist/components/ConfigEditor/ConfigSection/GenericConfigSection.js +0 -40
- package/dist/components/ConfigEditor/ConfigSection/GenericConfigSection.js.map +0 -1
- package/dist/components/ConfigEditor/ConfigSection/index.js +0 -10
- package/dist/components/ConfigEditor/ConfigSection/index.js.map +0 -1
- package/dist/components/ConfigEditor/Connection/ConnectionSettings.js +0 -26
- package/dist/components/ConfigEditor/Connection/ConnectionSettings.js.map +0 -1
- package/dist/components/ConfigEditor/Connection/index.js +0 -6
- package/dist/components/ConfigEditor/Connection/index.js.map +0 -1
- package/dist/components/ConfigEditor/DataSourceDescription.js +0 -39
- package/dist/components/ConfigEditor/DataSourceDescription.js.map +0 -1
- package/dist/components/ConfigEditor/SecureSocksProxyToggle.js +0 -24
- package/dist/components/ConfigEditor/SecureSocksProxyToggle.js.map +0 -1
- package/dist/components/ConfigEditor/index.js +0 -22
- package/dist/components/ConfigEditor/index.js.map +0 -1
- package/dist/components/ConfigEditor/types.js +0 -3
- package/dist/components/ConfigEditor/types.js.map +0 -1
- package/dist/components/CustomHeadersSettings/CustomHeadersSettings.js +0 -124
- package/dist/components/CustomHeadersSettings/CustomHeadersSettings.js.map +0 -1
- package/dist/components/DataLinks/DataLink.js +0 -79
- package/dist/components/DataLinks/DataLink.js.map +0 -1
- package/dist/components/DataLinks/DataLinks.js +0 -56
- package/dist/components/DataLinks/DataLinks.js.map +0 -1
- package/dist/components/DataLinks/index.js +0 -7
- package/dist/components/DataLinks/index.js.map +0 -1
- package/dist/components/DataLinks/types.js +0 -3
- package/dist/components/DataLinks/types.js.map +0 -1
- package/dist/components/DataSourcePicker/DataSourcePicker.js +0 -88
- package/dist/components/DataSourcePicker/DataSourcePicker.js.map +0 -1
- package/dist/components/DatePicker/DatePicker.js +0 -31
- package/dist/components/DatePicker/DatePicker.js.map +0 -1
- package/dist/components/DatePicker/styles.js.map +0 -1
- package/dist/components/DatePickerWithInput/DatePickerWithInput.js +0 -23
- package/dist/components/DatePickerWithInput/DatePickerWithInput.js.map +0 -1
- package/dist/components/DatePickerWithInput/style.css +0 -8
- package/dist/components/DebounceInput/DebounceInput.js +0 -19
- package/dist/components/DebounceInput/DebounceInput.js.map +0 -1
- package/dist/components/Plugins/PluginSignatureBadge.js +0 -65
- package/dist/components/Plugins/PluginSignatureBadge.js.map +0 -1
- package/dist/components/QueryEditor/AccessoryButton.js +0 -20
- package/dist/components/QueryEditor/AccessoryButton.js.map +0 -1
- package/dist/components/QueryEditor/ConfirmModal.js +0 -28
- package/dist/components/QueryEditor/ConfirmModal.js.map +0 -1
- package/dist/components/QueryEditor/DatasetSelector.js +0 -40
- package/dist/components/QueryEditor/DatasetSelector.js.map +0 -1
- package/dist/components/QueryEditor/EditorField.js +0 -49
- package/dist/components/QueryEditor/EditorField.js.map +0 -1
- package/dist/components/QueryEditor/EditorFieldGroup.js +0 -11
- package/dist/components/QueryEditor/EditorFieldGroup.js.map +0 -1
- package/dist/components/QueryEditor/EditorHeader.js +0 -22
- package/dist/components/QueryEditor/EditorHeader.js.map +0 -1
- package/dist/components/QueryEditor/EditorList.js +0 -27
- package/dist/components/QueryEditor/EditorList.js.map +0 -1
- package/dist/components/QueryEditor/EditorRow.js +0 -24
- package/dist/components/QueryEditor/EditorRow.js.map +0 -1
- package/dist/components/QueryEditor/EditorRows.js +0 -11
- package/dist/components/QueryEditor/EditorRows.js.map +0 -1
- package/dist/components/QueryEditor/EditorStack.js +0 -13
- package/dist/components/QueryEditor/EditorStack.js.map +0 -1
- package/dist/components/QueryEditor/EditorSwitch.js +0 -24
- package/dist/components/QueryEditor/EditorSwitch.js.map +0 -1
- package/dist/components/QueryEditor/FlexItem.js +0 -10
- package/dist/components/QueryEditor/FlexItem.js.map +0 -1
- package/dist/components/QueryEditor/InlineSelect.js +0 -57
- package/dist/components/QueryEditor/InlineSelect.js.map +0 -1
- package/dist/components/QueryEditor/InputGroup.js +0 -66
- package/dist/components/QueryEditor/InputGroup.js.map +0 -1
- package/dist/components/QueryEditor/QueryEditor.js +0 -74
- package/dist/components/QueryEditor/QueryEditor.js.map +0 -1
- package/dist/components/QueryEditor/QueryHeader.js +0 -86
- package/dist/components/QueryEditor/QueryHeader.js.map +0 -1
- package/dist/components/QueryEditor/RunQueryButton.js +0 -19
- package/dist/components/QueryEditor/RunQueryButton.js.map +0 -1
- package/dist/components/QueryEditor/Space.js +0 -36
- package/dist/components/QueryEditor/Space.js.map +0 -1
- package/dist/components/QueryEditor/TableSelector.js +0 -20
- package/dist/components/QueryEditor/TableSelector.js.map +0 -1
- package/dist/components/QueryEditor/defaults.js +0 -20
- package/dist/components/QueryEditor/defaults.js.map +0 -1
- package/dist/components/QueryEditor/expressions.js +0 -18
- package/dist/components/QueryEditor/expressions.js.map +0 -1
- package/dist/components/QueryEditor/index.js +0 -37
- package/dist/components/QueryEditor/index.js.map +0 -1
- package/dist/components/QueryEditor/query-editor-raw/QueryEditorRaw.js +0 -21
- package/dist/components/QueryEditor/query-editor-raw/QueryEditorRaw.js.map +0 -1
- package/dist/components/QueryEditor/query-editor-raw/QueryToolbox.js +0 -59
- package/dist/components/QueryEditor/query-editor-raw/QueryToolbox.js.map +0 -1
- package/dist/components/QueryEditor/query-editor-raw/QueryValidator.js +0 -79
- package/dist/components/QueryEditor/query-editor-raw/QueryValidator.js.map +0 -1
- package/dist/components/QueryEditor/query-editor-raw/RawEditor.js +0 -60
- package/dist/components/QueryEditor/query-editor-raw/RawEditor.js.map +0 -1
- package/dist/components/QueryEditor/types.js +0 -26
- package/dist/components/QueryEditor/types.js.map +0 -1
- package/dist/components/QueryEditor/utils/formatSQL.js +0 -13
- package/dist/components/QueryEditor/utils/formatSQL.js.map +0 -1
- package/dist/components/QueryEditor/utils/sql.utils.js +0 -103
- package/dist/components/QueryEditor/utils/sql.utils.js.map +0 -1
- package/dist/components/QueryEditor/utils/useSqlChange.js +0 -16
- package/dist/components/QueryEditor/utils/useSqlChange.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js +0 -109
- package/dist/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/EditorField.js +0 -51
- package/dist/components/QueryEditor/visual-query-builder/EditorField.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/EditorRow.js +0 -24
- package/dist/components/QueryEditor/visual-query-builder/EditorRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/EditorRows.js +0 -11
- package/dist/components/QueryEditor/visual-query-builder/EditorRows.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/GroupByRow.js +0 -33
- package/dist/components/QueryEditor/visual-query-builder/GroupByRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/OrderByRow.js +0 -50
- package/dist/components/QueryEditor/visual-query-builder/OrderByRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/Preview.js +0 -28
- package/dist/components/QueryEditor/visual-query-builder/Preview.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/SQLGroupByRow.js +0 -13
- package/dist/components/QueryEditor/visual-query-builder/SQLGroupByRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/SQLOrderByRow.js +0 -34
- package/dist/components/QueryEditor/visual-query-builder/SQLOrderByRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/SQLSelectRow.js +0 -19
- package/dist/components/QueryEditor/visual-query-builder/SQLSelectRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/SQLWhereRow.js +0 -35
- package/dist/components/QueryEditor/visual-query-builder/SQLWhereRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/SelectRow.js +0 -68
- package/dist/components/QueryEditor/visual-query-builder/SelectRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/VisualEditor.js +0 -38
- package/dist/components/QueryEditor/visual-query-builder/VisualEditor.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/WhereRow.js +0 -67
- package/dist/components/QueryEditor/visual-query-builder/WhereRow.js.map +0 -1
- package/dist/components/QueryEditor/visual-query-builder/index.js +0 -6
- package/dist/components/QueryEditor/visual-query-builder/index.js.map +0 -1
- package/dist/components/QueryEditorRow/QueryEditorRow.js +0 -16
- package/dist/components/QueryEditorRow/QueryEditorRow.js.map +0 -1
- package/dist/components/SQLEditor/components/SQLEditor.js +0 -330
- package/dist/components/SQLEditor/components/SQLEditor.js.map +0 -1
- package/dist/components/SQLEditor/index.js +0 -25
- package/dist/components/SQLEditor/index.js.map +0 -1
- package/dist/components/SQLEditor/mocks/Monaco.js +0 -23
- package/dist/components/SQLEditor/mocks/Monaco.js.map +0 -1
- package/dist/components/SQLEditor/mocks/TextModel.js +0 -22
- package/dist/components/SQLEditor/mocks/TextModel.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/multiLineFullQuery.js +0 -216
- package/dist/components/SQLEditor/mocks/queries/multiLineFullQuery.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js +0 -231
- package/dist/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js +0 -271
- package/dist/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js +0 -8
- package/dist/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/singleLineFullQuery.js +0 -196
- package/dist/components/SQLEditor/mocks/queries/singleLineFullQuery.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js +0 -211
- package/dist/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js +0 -251
- package/dist/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/singleLineTwoQueries.js +0 -386
- package/dist/components/SQLEditor/mocks/queries/singleLineTwoQueries.js.map +0 -1
- package/dist/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js +0 -416
- package/dist/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js.map +0 -1
- package/dist/components/SQLEditor/mocks/testData.js +0 -22
- package/dist/components/SQLEditor/mocks/testData.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/definition.js +0 -13
- package/dist/components/SQLEditor/standardSql/definition.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/getStandardSuggestions.js +0 -26
- package/dist/components/SQLEditor/standardSql/getStandardSuggestions.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/getStatementPosition.js +0 -24
- package/dist/components/SQLEditor/standardSql/getStatementPosition.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/language.js +0 -875
- package/dist/components/SQLEditor/standardSql/language.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/macros.js +0 -166
- package/dist/components/SQLEditor/standardSql/macros.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js +0 -30
- package/dist/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/standardSuggestionsRegistry.js +0 -378
- package/dist/components/SQLEditor/standardSql/standardSuggestionsRegistry.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/statementPositionResolversRegistry.js +0 -234
- package/dist/components/SQLEditor/standardSql/statementPositionResolversRegistry.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/suggestionsKindRegistry.js +0 -153
- package/dist/components/SQLEditor/standardSql/suggestionsKindRegistry.js.map +0 -1
- package/dist/components/SQLEditor/standardSql/types.js +0 -3
- package/dist/components/SQLEditor/standardSql/types.js.map +0 -1
- package/dist/components/SQLEditor/test-utils/index.js +0 -11
- package/dist/components/SQLEditor/test-utils/index.js.map +0 -1
- package/dist/components/SQLEditor/test-utils/statementPosition.js +0 -40
- package/dist/components/SQLEditor/test-utils/statementPosition.js.map +0 -1
- package/dist/components/SQLEditor/test-utils/types.js +0 -3
- package/dist/components/SQLEditor/test-utils/types.js.map +0 -1
- package/dist/components/SQLEditor/types.js +0 -139
- package/dist/components/SQLEditor/types.js.map +0 -1
- package/dist/components/SQLEditor/utils/LinkedToken.js +0 -147
- package/dist/components/SQLEditor/utils/LinkedToken.js.map +0 -1
- package/dist/components/SQLEditor/utils/commands.js +0 -8
- package/dist/components/SQLEditor/utils/commands.js.map +0 -1
- package/dist/components/SQLEditor/utils/debugger.js +0 -14
- package/dist/components/SQLEditor/utils/debugger.js.map +0 -1
- package/dist/components/SQLEditor/utils/getSuggestionKind.js +0 -18
- package/dist/components/SQLEditor/utils/getSuggestionKind.js.map +0 -1
- package/dist/components/SQLEditor/utils/linkedTokenBuilder.js +0 -46
- package/dist/components/SQLEditor/utils/linkedTokenBuilder.js.map +0 -1
- package/dist/components/SQLEditor/utils/toCompletionItem.js +0 -10
- package/dist/components/SQLEditor/utils/toCompletionItem.js.map +0 -1
- package/dist/components/SQLEditor/utils/tokenUtils.js +0 -72
- package/dist/components/SQLEditor/utils/tokenUtils.js.map +0 -1
- package/dist/components/SQLEditor/utils/types.js +0 -3
- package/dist/components/SQLEditor/utils/types.js.map +0 -1
- package/dist/components/Segment/Segment.js +0 -19
- package/dist/components/Segment/Segment.js.map +0 -1
- package/dist/components/VisualQueryBuilder/QueryModellerBase.js +0 -35
- package/dist/components/VisualQueryBuilder/QueryModellerBase.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/LabelFilterItem.js +0 -125
- package/dist/components/VisualQueryBuilder/components/LabelFilterItem.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/LabelFilters.js +0 -37
- package/dist/components/VisualQueryBuilder/components/LabelFilters.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationEditor.js +0 -41
- package/dist/components/VisualQueryBuilder/components/OperationEditor.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationEditorBody.js +0 -181
- package/dist/components/VisualQueryBuilder/components/OperationEditorBody.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationExplainedBox.js +0 -64
- package/dist/components/VisualQueryBuilder/components/OperationExplainedBox.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationHeader.js +0 -68
- package/dist/components/VisualQueryBuilder/components/OperationHeader.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationInfoButton.js +0 -71
- package/dist/components/VisualQueryBuilder/components/OperationInfoButton.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationList.js +0 -132
- package/dist/components/VisualQueryBuilder/components/OperationList.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationListExplained.js +0 -22
- package/dist/components/VisualQueryBuilder/components/OperationListExplained.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationParamEditor.js +0 -71
- package/dist/components/VisualQueryBuilder/components/OperationParamEditor.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/OperationsEditorRow.js +0 -24
- package/dist/components/VisualQueryBuilder/components/OperationsEditorRow.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/QueryBuilderHints.js +0 -54
- package/dist/components/VisualQueryBuilder/components/QueryBuilderHints.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/QueryEditorModeToggle.js +0 -17
- package/dist/components/VisualQueryBuilder/components/QueryEditorModeToggle.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/QueryHeaderSwitch.js +0 -32
- package/dist/components/VisualQueryBuilder/components/QueryHeaderSwitch.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/QueryOptionGroup.js +0 -81
- package/dist/components/VisualQueryBuilder/components/QueryOptionGroup.js.map +0 -1
- package/dist/components/VisualQueryBuilder/components/RawQuery.js +0 -25
- package/dist/components/VisualQueryBuilder/components/RawQuery.js.map +0 -1
- package/dist/components/VisualQueryBuilder/index.js +0 -29
- package/dist/components/VisualQueryBuilder/index.js.map +0 -1
- package/dist/components/VisualQueryBuilder/types.js +0 -10
- package/dist/components/VisualQueryBuilder/types.js.map +0 -1
- package/dist/components/index.js +0 -30
- package/dist/components/index.js.map +0 -1
- package/dist/datasource/SqlDatasource.js +0 -161
- package/dist/datasource/SqlDatasource.js.map +0 -1
- package/dist/datasource/constants.js +0 -19
- package/dist/datasource/constants.js.map +0 -1
- package/dist/hooks/useDebounce.js +0 -21
- package/dist/hooks/useDebounce.js.map +0 -1
- package/dist/index.js +0 -13
- package/dist/index.js.map +0 -1
- package/dist/src/components/AsyncButtonCascader/AsyncButtonCascader.d.ts +0 -21
- package/dist/src/components/Cascader/Cascader.d.ts +0 -1
- package/dist/src/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.d.ts +0 -8
- package/dist/src/components/ConfigEditor/AdvancedSettings/index.d.ts +0 -1
- package/dist/src/components/ConfigEditor/Auth/Auth.d.ts +0 -18
- package/dist/src/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.d.ts +0 -14
- package/dist/src/components/ConfigEditor/Auth/auth-method/BasicAuth.d.ts +0 -17
- package/dist/src/components/ConfigEditor/Auth/custom-headers/CustomHeader.d.ts +0 -10
- package/dist/src/components/ConfigEditor/Auth/custom-headers/CustomHeaders.d.ts +0 -8
- package/dist/src/components/ConfigEditor/Auth/index.d.ts +0 -4
- package/dist/src/components/ConfigEditor/Auth/styles.d.ts +0 -4
- package/dist/src/components/ConfigEditor/Auth/tls/SelfSignedCertificate.d.ts +0 -13
- package/dist/src/components/ConfigEditor/Auth/tls/SkipTLSVerification.d.ts +0 -7
- package/dist/src/components/ConfigEditor/Auth/tls/TLSClientAuth.d.ts +0 -20
- package/dist/src/components/ConfigEditor/Auth/tls/TLSSettings.d.ts +0 -11
- package/dist/src/components/ConfigEditor/Auth/tls/TLSSettingsSection.d.ts +0 -9
- package/dist/src/components/ConfigEditor/Auth/types.d.ts +0 -28
- package/dist/src/components/ConfigEditor/Auth/utils.d.ts +0 -12
- package/dist/src/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.d.ts +0 -8
- package/dist/src/components/ConfigEditor/ConfigSection/ConfigSection.d.ts +0 -5
- package/dist/src/components/ConfigEditor/ConfigSection/ConfigSubSection.d.ts +0 -5
- package/dist/src/components/ConfigEditor/ConfigSection/GenericConfigSection.d.ts +0 -10
- package/dist/src/components/ConfigEditor/ConfigSection/index.d.ts +0 -3
- package/dist/src/components/ConfigEditor/Connection/ConnectionSettings.d.ts +0 -13
- package/dist/src/components/ConfigEditor/Connection/index.d.ts +0 -1
- package/dist/src/components/ConfigEditor/DataSourceDescription.d.ts +0 -9
- package/dist/src/components/ConfigEditor/SecureSocksProxyToggle.d.ts +0 -10
- package/dist/src/components/ConfigEditor/index.d.ts +0 -9
- package/dist/src/components/ConfigEditor/types.d.ts +0 -15
- package/dist/src/components/CustomHeadersSettings/CustomHeadersSettings.d.ts +0 -27
- package/dist/src/components/DataLinks/DataLink.d.ts +0 -13
- package/dist/src/components/DataLinks/DataLinks.d.ts +0 -8
- package/dist/src/components/DataLinks/index.d.ts +0 -3
- package/dist/src/components/DataLinks/types.d.ts +0 -7
- package/dist/src/components/DataSourcePicker/DataSourcePicker.d.ts +0 -34
- package/dist/src/components/DatePicker/DatePicker.d.ts +0 -8
- package/dist/src/components/DatePicker/styles.d.ts +0 -11
- package/dist/src/components/DatePickerWithInput/DatePickerWithInput.d.ts +0 -9
- package/dist/src/components/DebounceInput/DebounceInput.d.ts +0 -8
- package/dist/src/components/Plugins/PluginSignatureBadge.d.ts +0 -12
- package/dist/src/components/QueryEditor/AccessoryButton.d.ts +0 -6
- package/dist/src/components/QueryEditor/ConfirmModal.d.ts +0 -9
- package/dist/src/components/QueryEditor/DatasetSelector.d.ts +0 -13
- package/dist/src/components/QueryEditor/EditorField.d.ts +0 -12
- package/dist/src/components/QueryEditor/EditorFieldGroup.d.ts +0 -6
- package/dist/src/components/QueryEditor/EditorHeader.d.ts +0 -6
- package/dist/src/components/QueryEditor/EditorList.d.ts +0 -8
- package/dist/src/components/QueryEditor/EditorRow.d.ts +0 -6
- package/dist/src/components/QueryEditor/EditorRows.d.ts +0 -6
- package/dist/src/components/QueryEditor/EditorStack.d.ts +0 -13
- package/dist/src/components/QueryEditor/EditorSwitch.d.ts +0 -3
- package/dist/src/components/QueryEditor/FlexItem.d.ts +0 -7
- package/dist/src/components/QueryEditor/InlineSelect.d.ts +0 -7
- package/dist/src/components/QueryEditor/InputGroup.d.ts +0 -10
- package/dist/src/components/QueryEditor/QueryEditor.d.ts +0 -8
- package/dist/src/components/QueryEditor/QueryHeader.d.ts +0 -17
- package/dist/src/components/QueryEditor/RunQueryButton.d.ts +0 -13
- package/dist/src/components/QueryEditor/Space.d.ts +0 -14
- package/dist/src/components/QueryEditor/TableSelector.d.ts +0 -13
- package/dist/src/components/QueryEditor/defaults.d.ts +0 -3
- package/dist/src/components/QueryEditor/expressions.d.ts +0 -50
- package/dist/src/components/QueryEditor/index.d.ts +0 -17
- package/dist/src/components/QueryEditor/query-editor-raw/QueryEditorRaw.d.ts +0 -15
- package/dist/src/components/QueryEditor/query-editor-raw/QueryToolbox.d.ts +0 -11
- package/dist/src/components/QueryEditor/query-editor-raw/QueryValidator.d.ts +0 -10
- package/dist/src/components/QueryEditor/query-editor-raw/RawEditor.d.ts +0 -10
- package/dist/src/components/QueryEditor/types.d.ts +0 -149
- package/dist/src/components/QueryEditor/utils/formatSQL.d.ts +0 -1
- package/dist/src/components/QueryEditor/utils/sql.utils.d.ts +0 -14
- package/dist/src/components/QueryEditor/utils/useSqlChange.d.ts +0 -10
- package/dist/src/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.d.ts +0 -7
- package/dist/src/components/QueryEditor/visual-query-builder/EditorField.d.ts +0 -11
- package/dist/src/components/QueryEditor/visual-query-builder/EditorRow.d.ts +0 -6
- package/dist/src/components/QueryEditor/visual-query-builder/EditorRows.d.ts +0 -6
- package/dist/src/components/QueryEditor/visual-query-builder/GroupByRow.d.ts +0 -10
- package/dist/src/components/QueryEditor/visual-query-builder/OrderByRow.d.ts +0 -11
- package/dist/src/components/QueryEditor/visual-query-builder/Preview.d.ts +0 -6
- package/dist/src/components/QueryEditor/visual-query-builder/SQLGroupByRow.d.ts +0 -12
- package/dist/src/components/QueryEditor/visual-query-builder/SQLOrderByRow.d.ts +0 -12
- package/dist/src/components/QueryEditor/visual-query-builder/SQLSelectRow.d.ts +0 -12
- package/dist/src/components/QueryEditor/visual-query-builder/SQLWhereRow.d.ts +0 -12
- package/dist/src/components/QueryEditor/visual-query-builder/SelectRow.d.ts +0 -11
- package/dist/src/components/QueryEditor/visual-query-builder/VisualEditor.d.ts +0 -13
- package/dist/src/components/QueryEditor/visual-query-builder/WhereRow.d.ts +0 -10
- package/dist/src/components/QueryEditor/visual-query-builder/index.d.ts +0 -1
- package/dist/src/components/QueryEditorRow/QueryEditorRow.d.ts +0 -8
- package/dist/src/components/SQLEditor/components/SQLEditor.d.ts +0 -29
- package/dist/src/components/SQLEditor/index.d.ts +0 -7
- package/dist/src/components/SQLEditor/mocks/Monaco.d.ts +0 -3
- package/dist/src/components/SQLEditor/mocks/TextModel.d.ts +0 -7
- package/dist/src/components/SQLEditor/mocks/queries/multiLineFullQuery.d.ts +0 -2
- package/dist/src/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.d.ts +0 -2
- package/dist/src/components/SQLEditor/mocks/queries/multiLineMultipleColumns.d.ts +0 -2
- package/dist/src/components/SQLEditor/mocks/queries/singleLineEmptyQuery.d.ts +0 -2
- package/dist/src/components/SQLEditor/mocks/queries/singleLineFullQuery.d.ts +0 -2
- package/dist/src/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.d.ts +0 -2
- package/dist/src/components/SQLEditor/mocks/queries/singleLineMultipleColumns.d.ts +0 -2
- package/dist/src/components/SQLEditor/mocks/queries/singleLineTwoQueries.d.ts +0 -2
- package/dist/src/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.d.ts +0 -2
- package/dist/src/components/SQLEditor/standardSql/definition.d.ts +0 -3
- package/dist/src/components/SQLEditor/standardSql/getStandardSuggestions.d.ts +0 -6
- package/dist/src/components/SQLEditor/standardSql/getStatementPosition.d.ts +0 -5
- package/dist/src/components/SQLEditor/standardSql/language.d.ts +0 -23
- package/dist/src/components/SQLEditor/standardSql/macros.d.ts +0 -2
- package/dist/src/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.d.ts +0 -4
- package/dist/src/components/SQLEditor/standardSql/standardSuggestionsRegistry.d.ts +0 -7
- package/dist/src/components/SQLEditor/standardSql/statementPositionResolversRegistry.d.ts +0 -2
- package/dist/src/components/SQLEditor/standardSql/suggestionsKindRegistry.d.ts +0 -7
- package/dist/src/components/SQLEditor/standardSql/types.d.ts +0 -33
- package/dist/src/components/SQLEditor/test-utils/index.d.ts +0 -7
- package/dist/src/components/SQLEditor/test-utils/statementPosition.d.ts +0 -3
- package/dist/src/components/SQLEditor/test-utils/types.d.ts +0 -12
- package/dist/src/components/SQLEditor/types.d.ts +0 -249
- package/dist/src/components/SQLEditor/utils/LinkedToken.d.ts +0 -29
- package/dist/src/components/SQLEditor/utils/commands.d.ts +0 -4
- package/dist/src/components/SQLEditor/utils/debugger.d.ts +0 -5
- package/dist/src/components/SQLEditor/utils/getSuggestionKind.d.ts +0 -7
- package/dist/src/components/SQLEditor/utils/linkedTokenBuilder.d.ts +0 -4
- package/dist/src/components/SQLEditor/utils/toCompletionItem.d.ts +0 -2
- package/dist/src/components/SQLEditor/utils/tokenUtils.d.ts +0 -14
- package/dist/src/components/SQLEditor/utils/types.d.ts +0 -11
- package/dist/src/components/Segment/Segment.d.ts +0 -8
- package/dist/src/components/VisualQueryBuilder/QueryModellerBase.d.ts +0 -18
- package/dist/src/components/VisualQueryBuilder/components/LabelFilterItem.d.ts +0 -18
- package/dist/src/components/VisualQueryBuilder/components/LabelFilters.d.ts +0 -14
- package/dist/src/components/VisualQueryBuilder/components/OperationEditor.d.ts +0 -20
- package/dist/src/components/VisualQueryBuilder/components/OperationEditorBody.d.ts +0 -23
- package/dist/src/components/VisualQueryBuilder/components/OperationExplainedBox.d.ts +0 -7
- package/dist/src/components/VisualQueryBuilder/components/OperationHeader.d.ts +0 -15
- package/dist/src/components/VisualQueryBuilder/components/OperationInfoButton.d.ts +0 -9
- package/dist/src/components/VisualQueryBuilder/components/OperationList.d.ts +0 -15
- package/dist/src/components/VisualQueryBuilder/components/OperationListExplained.d.ts +0 -17
- package/dist/src/components/VisualQueryBuilder/components/OperationParamEditor.d.ts +0 -4
- package/dist/src/components/VisualQueryBuilder/components/OperationsEditorRow.d.ts +0 -2
- package/dist/src/components/VisualQueryBuilder/components/QueryBuilderHints.d.ts +0 -20
- package/dist/src/components/VisualQueryBuilder/components/QueryEditorModeToggle.d.ts +0 -8
- package/dist/src/components/VisualQueryBuilder/components/QueryHeaderSwitch.d.ts +0 -7
- package/dist/src/components/VisualQueryBuilder/components/QueryOptionGroup.d.ts +0 -9
- package/dist/src/components/VisualQueryBuilder/components/RawQuery.d.ts +0 -12
- package/dist/src/components/VisualQueryBuilder/index.d.ts +0 -13
- package/dist/src/components/VisualQueryBuilder/types.d.ts +0 -91
- package/dist/src/components/index.d.ts +0 -15
- package/dist/src/datasource/SqlDatasource.d.ts +0 -62
- package/dist/src/datasource/constants.d.ts +0 -1
- package/dist/src/hooks/useDebounce.d.ts +0 -2
- package/dist/src/index.d.ts +0 -7
- package/dist/src/test/mocks/DataQuery.d.ts +0 -2
- package/dist/src/test/mocks/Datasource.d.ts +0 -40
- package/dist/src/test/mocks/Plugin.d.ts +0 -10
- package/dist/src/test/mocks/QueryEditorProps.d.ts +0 -4
- package/dist/src/test/mocks/index.d.ts +0 -5
- package/dist/src/test/mocks/utils.d.ts +0 -18
- package/dist/src/utils/changeset/functions.d.ts +0 -3
- package/dist/src/utils/changeset/index.d.ts +0 -2
- package/dist/test/mocks/DataQuery.js +0 -14
- package/dist/test/mocks/DataQuery.js.map +0 -1
- package/dist/test/mocks/Datasource.js +0 -78
- package/dist/test/mocks/Datasource.js.map +0 -1
- package/dist/test/mocks/Plugin.js +0 -105
- package/dist/test/mocks/Plugin.js.map +0 -1
- package/dist/test/mocks/QueryEditorProps.js +0 -46
- package/dist/test/mocks/QueryEditorProps.js.map +0 -1
- package/dist/test/mocks/index.js +0 -9
- package/dist/test/mocks/index.js.map +0 -1
- package/dist/test/mocks/utils.js +0 -48
- package/dist/test/mocks/utils.js.map +0 -1
- package/dist/utils/changeset/functions.js +0 -11
- package/dist/utils/changeset/functions.js.map +0 -1
- package/dist/utils/changeset/index.js +0 -99
- 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
|