@grafana/plugin-ui 0.13.1 → 0.14.1-dsconfig.032cfc4
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.cjs +2989 -372
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +695 -40
- package/dist/cjs/schemas.cjs +25 -0
- package/dist/cjs/schemas.cjs.map +1 -0
- package/dist/cjs/schemas.d.cts +448 -0
- package/dist/cjs/test-utils.cjs +2 -2
- package/dist/cjs/test-utils.cjs.map +1 -1
- package/dist/cjs/test-utils.d.cts +24 -24
- package/dist/cjs/useDatasourceSchema-CxPGD2-b.js +17125 -0
- package/dist/cjs/useDatasourceSchema-CxPGD2-b.js.map +1 -0
- package/dist/esm/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/Auth.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js +4 -4
- package/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/auth-method/BasicAuth.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeader.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js +1 -1
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/styles.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/SkipTLSVerification.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js +3 -3
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettings.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettingsSection.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/types.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/utils.js +3 -3
- package/dist/esm/components/ConfigEditor/Auth/utils.js.map +1 -1
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js +2 -2
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js.map +1 -1
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSection.js.map +1 -1
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSubSection.js.map +1 -1
- package/dist/esm/components/ConfigEditor/ConfigSection/GenericConfigSection.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js +1 -1
- package/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js.map +1 -1
- package/dist/esm/components/ConfigEditor/DataSourceDescription.js.map +1 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceConfigWizard.js +234 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceConfigWizard.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceErrorBoundary.js +27 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceErrorBoundary.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SchemaField.js +71 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SchemaField.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SidebarNav.js +54 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SidebarNav.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/TabLayout.js +181 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/TabLayout.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/cel.js +75 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/cel.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/config.js +258 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/config.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/datasource.js +354 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/datasource.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/fieldUtils.js +138 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/fieldUtils.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useDatasourceConfigForm.js +326 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useDatasourceConfigForm.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useHealthChecks.js +106 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useHealthChecks.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/AuthorizationHeaderField.js +51 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/AuthorizationHeaderField.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ComplexFieldNote.js +26 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ComplexFieldNote.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/FileUploadField.js +106 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/FileUploadField.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/IndexedPairEditor.js +124 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/IndexedPairEditor.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ObjectArrayEditor.js +190 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ObjectArrayEditor.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PdcFieldNote.js +31 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PdcFieldNote.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/SecureFieldInput.js +59 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/SecureFieldInput.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/StringArrayInput.js +80 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/StringArrayInput.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/renderFieldInput.js +141 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/renderFieldInput.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/resolvePluginName.js +30 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/resolvePluginName.js.map +1 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/styles.js +360 -0
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/styles.js.map +1 -0
- package/dist/esm/components/ConfigEditor/SecureSocksProxyToggle.js.map +1 -1
- package/dist/esm/components/CustomHeadersSettings/CustomHeadersSettings.js +11 -11
- package/dist/esm/components/CustomHeadersSettings/CustomHeadersSettings.js.map +1 -1
- package/dist/esm/components/DataLinks/DataLink.js +4 -4
- package/dist/esm/components/DataLinks/DataLink.js.map +1 -1
- package/dist/esm/components/DataLinks/DataLinks.js +3 -3
- package/dist/esm/components/DataLinks/DataLinks.js.map +1 -1
- package/dist/esm/components/DataSourcePicker/DataSourcePicker.js +8 -8
- package/dist/esm/components/DataSourcePicker/DataSourcePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/styles.js +2 -2
- package/dist/esm/components/DatePicker/styles.js.map +1 -1
- package/dist/esm/components/DatePickerWithInput/DatePickerWithInput.js.map +1 -1
- package/dist/esm/components/DatePickerWithInput/styles.js +2 -2
- package/dist/esm/components/DatePickerWithInput/styles.js.map +1 -1
- package/dist/esm/components/DebounceInput/DebounceInput.js.map +1 -1
- package/dist/esm/components/Plugins/PluginSignatureBadge.js.map +1 -1
- package/dist/esm/components/QueryEditor/AccessoryButton.js.map +1 -1
- package/dist/esm/components/QueryEditor/CatalogSelector.js +1 -1
- package/dist/esm/components/QueryEditor/CatalogSelector.js.map +1 -1
- package/dist/esm/components/QueryEditor/ConfirmModal.js +1 -1
- package/dist/esm/components/QueryEditor/ConfirmModal.js.map +1 -1
- package/dist/esm/components/QueryEditor/DatasetSelector.js +1 -1
- package/dist/esm/components/QueryEditor/DatasetSelector.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorField.js +5 -5
- package/dist/esm/components/QueryEditor/EditorField.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorFieldGroup.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorHeader.js +2 -2
- package/dist/esm/components/QueryEditor/EditorHeader.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorList.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorRow.js +4 -4
- package/dist/esm/components/QueryEditor/EditorRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorRows.js +2 -2
- package/dist/esm/components/QueryEditor/EditorRows.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorStack.js +1 -1
- package/dist/esm/components/QueryEditor/EditorStack.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorSwitch.js +2 -2
- package/dist/esm/components/QueryEditor/EditorSwitch.js.map +1 -1
- package/dist/esm/components/QueryEditor/FlexItem.js.map +1 -1
- package/dist/esm/components/QueryEditor/InlineSelect.js +1 -1
- package/dist/esm/components/QueryEditor/InlineSelect.js.map +1 -1
- package/dist/esm/components/QueryEditor/InputGroup.js +2 -2
- package/dist/esm/components/QueryEditor/InputGroup.js.map +1 -1
- package/dist/esm/components/QueryEditor/QueryEditor.js +10 -8
- package/dist/esm/components/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/esm/components/QueryEditor/QueryHeader.js +20 -20
- package/dist/esm/components/QueryEditor/QueryHeader.js.map +1 -1
- package/dist/esm/components/QueryEditor/RunQueryButton.js +1 -1
- package/dist/esm/components/QueryEditor/RunQueryButton.js.map +1 -1
- package/dist/esm/components/QueryEditor/Space.js +2 -2
- package/dist/esm/components/QueryEditor/Space.js.map +1 -1
- package/dist/esm/components/QueryEditor/TableSelector.js +0 -1
- package/dist/esm/components/QueryEditor/TableSelector.js.map +1 -1
- package/dist/esm/components/QueryEditor/defaults.js +7 -7
- package/dist/esm/components/QueryEditor/defaults.js.map +1 -1
- package/dist/esm/components/QueryEditor/expressions.js.map +1 -1
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryEditorRaw.js +10 -2
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryEditorRaw.js.map +1 -1
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryToolbox.js +7 -2
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryToolbox.js.map +1 -1
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryValidator.js +4 -4
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryValidator.js.map +1 -1
- package/dist/esm/components/QueryEditor/query-editor-raw/RawEditor.js +14 -4
- package/dist/esm/components/QueryEditor/query-editor-raw/RawEditor.js.map +1 -1
- package/dist/esm/components/QueryEditor/types.js +0 -1
- package/dist/esm/components/QueryEditor/types.js.map +1 -1
- package/dist/esm/components/QueryEditor/utils/formatSQL.js +15 -4
- package/dist/esm/components/QueryEditor/utils/formatSQL.js.map +1 -1
- package/dist/esm/components/QueryEditor/utils/sql.utils.js +8 -8
- package/dist/esm/components/QueryEditor/utils/sql.utils.js.map +1 -1
- package/dist/esm/components/QueryEditor/utils/useSqlChange.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js +26 -27
- package/dist/esm/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorField.js +3 -3
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorField.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorRow.js +2 -2
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorRows.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/GroupByRow.js +2 -2
- package/dist/esm/components/QueryEditor/visual-query-builder/GroupByRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/OrderByRow.js +4 -4
- package/dist/esm/components/QueryEditor/visual-query-builder/OrderByRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/Preview.js +4 -4
- package/dist/esm/components/QueryEditor/visual-query-builder/Preview.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLGroupByRow.js +0 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLGroupByRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLOrderByRow.js +2 -3
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLOrderByRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLSelectRow.js +0 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLSelectRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLWhereRow.js +0 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLWhereRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SelectRow.js +9 -9
- package/dist/esm/components/QueryEditor/visual-query-builder/SelectRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/VisualEditor.js +10 -2
- package/dist/esm/components/QueryEditor/visual-query-builder/VisualEditor.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/WhereRow.js.map +1 -1
- package/dist/esm/components/QueryEditorRow/QueryEditorRow.js.map +1 -1
- package/dist/esm/components/SQLEditor/components/SQLEditor.js +13 -13
- package/dist/esm/components/SQLEditor/components/SQLEditor.js.map +1 -1
- package/dist/esm/components/SQLEditor/hooks/useLatestCallback.js +1 -1
- package/dist/esm/components/SQLEditor/hooks/useLatestCallback.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/Monaco.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/TextModel.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQuery.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineFullQueryWithAggregation.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/multiLineMultipleColumns.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineEmptyQuery.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQuery.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineFullQueryWithAggregation.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineMultipleColumns.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueries.js.map +1 -1
- package/dist/esm/components/SQLEditor/mocks/queries/singleLineTwoQueriesWithAggregation.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/definition.js +0 -6
- package/dist/esm/components/SQLEditor/standardSql/definition.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/getStandardSuggestions.js +2 -2
- package/dist/esm/components/SQLEditor/standardSql/getStandardSuggestions.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/getStatementPosition.js +5 -4
- package/dist/esm/components/SQLEditor/standardSql/getStatementPosition.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/language.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/macros.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js +2 -2
- package/dist/esm/components/SQLEditor/standardSql/standardSQLCompletionItemProvider.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/standardSuggestionsRegistry.js +1 -1
- package/dist/esm/components/SQLEditor/standardSql/standardSuggestionsRegistry.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/statementPositionResolversRegistry.js +27 -26
- package/dist/esm/components/SQLEditor/standardSql/statementPositionResolversRegistry.js.map +1 -1
- package/dist/esm/components/SQLEditor/standardSql/suggestionsKindRegistry.js +1 -1
- package/dist/esm/components/SQLEditor/standardSql/suggestionsKindRegistry.js.map +1 -1
- package/dist/esm/components/SQLEditor/test-utils/index.js.map +1 -1
- package/dist/esm/components/SQLEditor/test-utils/statementPosition.js.map +1 -1
- package/dist/esm/components/SQLEditor/types.js +1 -17
- package/dist/esm/components/SQLEditor/types.js.map +1 -1
- package/dist/esm/components/SQLEditor/utils/LinkedToken.js +8 -8
- package/dist/esm/components/SQLEditor/utils/LinkedToken.js.map +1 -1
- package/dist/esm/components/SQLEditor/utils/commands.js.map +1 -1
- package/dist/esm/components/SQLEditor/utils/debugger.js +1 -1
- package/dist/esm/components/SQLEditor/utils/debugger.js.map +1 -1
- package/dist/esm/components/SQLEditor/utils/getSuggestionKind.js.map +1 -1
- package/dist/esm/components/SQLEditor/utils/linkedTokenBuilder.js +3 -3
- package/dist/esm/components/SQLEditor/utils/linkedTokenBuilder.js.map +1 -1
- package/dist/esm/components/SQLEditor/utils/toCompletionItem.js +1 -1
- package/dist/esm/components/SQLEditor/utils/toCompletionItem.js.map +1 -1
- package/dist/esm/components/SQLEditor/utils/tokenType.js +18 -0
- package/dist/esm/components/SQLEditor/utils/tokenType.js.map +1 -0
- package/dist/esm/components/SQLEditor/utils/tokenUtils.js +10 -10
- package/dist/esm/components/SQLEditor/utils/tokenUtils.js.map +1 -1
- package/dist/esm/components/Segment/Segment.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/QueryModellerBase.js +2 -2
- package/dist/esm/components/VisualQueryBuilder/QueryModellerBase.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilterItem.js +11 -11
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilterItem.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilters.js +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilters.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditor.js +4 -4
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditor.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditorBody.js +3 -3
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditorBody.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationExplainedBox.js +3 -3
- package/dist/esm/components/VisualQueryBuilder/components/OperationExplainedBox.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationHeader.js +2 -2
- package/dist/esm/components/VisualQueryBuilder/components/OperationHeader.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationInfoButton.js +2 -2
- package/dist/esm/components/VisualQueryBuilder/components/OperationInfoButton.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationList.js +4 -4
- package/dist/esm/components/VisualQueryBuilder/components/OperationList.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationListExplained.js +2 -2
- package/dist/esm/components/VisualQueryBuilder/components/OperationListExplained.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationParamEditor.js +6 -6
- package/dist/esm/components/VisualQueryBuilder/components/OperationParamEditor.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationsEditorRow.js +3 -3
- package/dist/esm/components/VisualQueryBuilder/components/OperationsEditorRow.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryBuilderHints.js +8 -8
- package/dist/esm/components/VisualQueryBuilder/components/QueryBuilderHints.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryEditorModeToggle.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryHeaderSwitch.js +3 -3
- package/dist/esm/components/VisualQueryBuilder/components/QueryHeaderSwitch.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryOptionGroup.js +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryOptionGroup.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/RawQuery.js +2 -2
- package/dist/esm/components/VisualQueryBuilder/components/RawQuery.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/types.js.map +1 -1
- package/dist/esm/datasource/SqlDatasource.js +14 -14
- package/dist/esm/datasource/SqlDatasource.js.map +1 -1
- package/dist/esm/datasource/constants.js.map +1 -1
- package/dist/esm/hooks/useDebounce.js.map +1 -1
- package/dist/esm/index.d.ts +695 -40
- package/dist/esm/index.js +13 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/schema/registry/alertmanager.schema.json.js +77 -0
- package/dist/esm/schema/registry/alertmanager.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/cloudwatch.schema.json.js +384 -0
- package/dist/esm/schema/registry/cloudwatch.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/elasticsearch.schema.json.js +597 -0
- package/dist/esm/schema/registry/elasticsearch.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-adobeanalytics-datasource.schema.json.js +95 -0
- package/dist/esm/schema/registry/grafana-adobeanalytics-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-amazonprometheus-datasource.schema.json.js +166 -0
- package/dist/esm/schema/registry/grafana-amazonprometheus-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-appdynamics-datasource.schema.json.js +145 -0
- package/dist/esm/schema/registry/grafana-appdynamics-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-astradb-datasource.schema.json.js +123 -0
- package/dist/esm/schema/registry/grafana-astradb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-athena-datasource.schema.json.js +158 -0
- package/dist/esm/schema/registry/grafana-athena-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-atlassianstatuspage-datasource.schema.json.js +43 -0
- package/dist/esm/schema/registry/grafana-atlassianstatuspage-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-azure-data-explorer-datasource.schema.json.js +204 -0
- package/dist/esm/schema/registry/grafana-azure-data-explorer-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-azure-monitor-datasource.schema.json.js +300 -0
- package/dist/esm/schema/registry/grafana-azure-monitor-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-azuredevops-datasource.schema.json.js +101 -0
- package/dist/esm/schema/registry/grafana-azuredevops-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-azureprometheus-datasource.schema.json.js +125 -0
- package/dist/esm/schema/registry/grafana-azureprometheus-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-bigquery-datasource.schema.json.js +508 -0
- package/dist/esm/schema/registry/grafana-bigquery-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-catchpoint-datasource.schema.json.js +42 -0
- package/dist/esm/schema/registry/grafana-catchpoint-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-clickhouse-datasource.schema.json.js +1400 -0
- package/dist/esm/schema/registry/grafana-clickhouse-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-cloudflare-datasource.schema.json.js +42 -0
- package/dist/esm/schema/registry/grafana-cloudflare-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-cockroachdb-datasource.schema.json.js +302 -0
- package/dist/esm/schema/registry/grafana-cockroachdb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-databricks-datasource.schema.json.js +291 -0
- package/dist/esm/schema/registry/grafana-databricks-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-datadog-datasource.schema.json.js +155 -0
- package/dist/esm/schema/registry/grafana-datadog-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-drone-datasource.schema.json.js +64 -0
- package/dist/esm/schema/registry/grafana-drone-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-dynatrace-datasource.schema.json.js +179 -0
- package/dist/esm/schema/registry/grafana-dynatrace-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-falconlogscale-datasource.schema.json.js +134 -0
- package/dist/esm/schema/registry/grafana-falconlogscale-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-github-datasource.schema.json.js +156 -0
- package/dist/esm/schema/registry/grafana-github-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-gitlab-datasource.schema.json.js +84 -0
- package/dist/esm/schema/registry/grafana-gitlab-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-googlesheets-datasource.schema.json.js +231 -0
- package/dist/esm/schema/registry/grafana-googlesheets-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-honeycomb-datasource.schema.json.js +87 -0
- package/dist/esm/schema/registry/grafana-honeycomb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-iot-sitewise-datasource.schema.json.js +159 -0
- package/dist/esm/schema/registry/grafana-iot-sitewise-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-jira-datasource.schema.json.js +188 -0
- package/dist/esm/schema/registry/grafana-jira-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-logicmonitor-datasource.schema.json.js +63 -0
- package/dist/esm/schema/registry/grafana-logicmonitor-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-looker-datasource.schema.json.js +82 -0
- package/dist/esm/schema/registry/grafana-looker-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-mongodb-datasource.schema.json.js +278 -0
- package/dist/esm/schema/registry/grafana-mongodb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-mqtt-datasource.schema.json.js +168 -0
- package/dist/esm/schema/registry/grafana-mqtt-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-netlify-datasource.schema.json.js +42 -0
- package/dist/esm/schema/registry/grafana-netlify-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-newrelic-datasource.schema.json.js +129 -0
- package/dist/esm/schema/registry/grafana-newrelic-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-odbc-datasource.schema.json.js +56 -0
- package/dist/esm/schema/registry/grafana-odbc-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-opensearch-datasource.schema.json.js +212 -0
- package/dist/esm/schema/registry/grafana-opensearch-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-oracle-datasource.schema.json.js +186 -0
- package/dist/esm/schema/registry/grafana-oracle-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-pagerduty-datasource.schema.json.js +85 -0
- package/dist/esm/schema/registry/grafana-pagerduty-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-postgresql-datasource.schema.json.js +411 -0
- package/dist/esm/schema/registry/grafana-postgresql-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-pyroscope-datasource.schema.json.js +41 -0
- package/dist/esm/schema/registry/grafana-pyroscope-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-redshift-datasource.schema.json.js +201 -0
- package/dist/esm/schema/registry/grafana-redshift-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-salesforce-datasource.schema.json.js +248 -0
- package/dist/esm/schema/registry/grafana-salesforce-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-saphana-datasource.schema.json.js +208 -0
- package/dist/esm/schema/registry/grafana-saphana-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-sentry-datasource.schema.json.js +94 -0
- package/dist/esm/schema/registry/grafana-sentry-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-servicenow-datasource.schema.json.js +179 -0
- package/dist/esm/schema/registry/grafana-servicenow-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-snowflake-datasource.schema.json.js +304 -0
- package/dist/esm/schema/registry/grafana-snowflake-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-solarwinds-datasource.schema.json.js +77 -0
- package/dist/esm/schema/registry/grafana-solarwinds-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-splunk-datasource.schema.json.js +690 -0
- package/dist/esm/schema/registry/grafana-splunk-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-splunkobservability-datasource.schema.json.js +90 -0
- package/dist/esm/schema/registry/grafana-splunkobservability-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-strava-datasource.schema.json.js +74 -0
- package/dist/esm/schema/registry/grafana-strava-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-sumologic-datasource.schema.json.js +102 -0
- package/dist/esm/schema/registry/grafana-sumologic-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-surrealdb-datasource.schema.json.js +92 -0
- package/dist/esm/schema/registry/grafana-surrealdb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-timestream-datasource.schema.json.js +145 -0
- package/dist/esm/schema/registry/grafana-timestream-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-vercel-datasource.schema.json.js +62 -0
- package/dist/esm/schema/registry/grafana-vercel-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-wavefront-datasource.schema.json.js +80 -0
- package/dist/esm/schema/registry/grafana-wavefront-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-x-ray-datasource.schema.json.js +112 -0
- package/dist/esm/schema/registry/grafana-x-ray-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-yugabyte-datasource.schema.json.js +114 -0
- package/dist/esm/schema/registry/grafana-yugabyte-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-zendesk-datasource.schema.json.js +76 -0
- package/dist/esm/schema/registry/grafana-zendesk-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/graphite.schema.json.js +104 -0
- package/dist/esm/schema/registry/graphite.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/index.js +157 -0
- package/dist/esm/schema/registry/index.js.map +1 -0
- package/dist/esm/schema/registry/influxdb.schema.json.js +717 -0
- package/dist/esm/schema/registry/influxdb.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/jaeger.schema.json.js +59 -0
- package/dist/esm/schema/registry/jaeger.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/loki.schema.json.js +545 -0
- package/dist/esm/schema/registry/loki.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/marcusolsson-csv-datasource.schema.json.js +45 -0
- package/dist/esm/schema/registry/marcusolsson-csv-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/marcusolsson-json-datasource.schema.json.js +36 -0
- package/dist/esm/schema/registry/marcusolsson-json-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/mssql.schema.json.js +292 -0
- package/dist/esm/schema/registry/mssql.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/mysql.schema.json.js +304 -0
- package/dist/esm/schema/registry/mysql.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/opentsdb.schema.json.js +113 -0
- package/dist/esm/schema/registry/opentsdb.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/prometheus.schema.json.js +783 -0
- package/dist/esm/schema/registry/prometheus.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/stackdriver.schema.json.js +224 -0
- package/dist/esm/schema/registry/stackdriver.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/tempo.schema.json.js +664 -0
- package/dist/esm/schema/registry/tempo.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/yesoreyeram-infinity-datasource.schema.json.js +1073 -0
- package/dist/esm/schema/registry/yesoreyeram-infinity-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/zipkin.schema.json.js +40 -0
- package/dist/esm/schema/registry/zipkin.schema.json.js.map +1 -0
- package/dist/esm/schema/utils/dsconfig.js +97 -0
- package/dist/esm/schema/utils/dsconfig.js.map +1 -0
- package/dist/esm/schema/utils/llm.js +54 -0
- package/dist/esm/schema/utils/llm.js.map +1 -0
- package/dist/esm/schema/utils/provisioning.js +434 -0
- package/dist/esm/schema/utils/provisioning.js.map +1 -0
- package/dist/esm/schema/utils/useDatasourceSchema.js +16 -0
- package/dist/esm/schema/utils/useDatasourceSchema.js.map +1 -0
- package/dist/esm/schemas.d.ts +448 -0
- package/dist/esm/schemas.js +6 -0
- package/dist/esm/schemas.js.map +1 -0
- package/dist/esm/test/mocks/DataQuery.js.map +1 -1
- package/dist/esm/test/mocks/Datasource.js +1 -1
- package/dist/esm/test/mocks/Datasource.js.map +1 -1
- package/dist/esm/test/mocks/Plugin.js +1 -1
- package/dist/esm/test/mocks/Plugin.js.map +1 -1
- package/dist/esm/test/mocks/QueryEditorProps.js.map +1 -1
- package/dist/esm/test/mocks/utils.js +2 -2
- package/dist/esm/test/mocks/utils.js.map +1 -1
- package/dist/esm/test-utils.d.ts +24 -24
- package/package.json +40 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggestionsKindRegistry.js","sources":["../../../../../src/components/SQLEditor/standardSql/suggestionsKindRegistry.ts"],"sourcesContent":["import { type RegistryItem } from '@grafana/data';\nimport { StatementPosition, SuggestionKind } from '../types';\n\nexport interface SuggestionKindRegistryItem extends RegistryItem {\n id: StatementPosition;\n kind: SuggestionKind[];\n}\n\n// Registry of possible suggestions for the given statement position\nexport const initSuggestionsKindRegistry = (): SuggestionKindRegistryItem[] => {\n return [\n {\n id: StatementPosition.SelectKeyword,\n name: StatementPosition.SelectKeyword,\n kind: [SuggestionKind.SelectKeyword],\n },\n {\n id: StatementPosition.WithKeyword,\n name: StatementPosition.WithKeyword,\n kind: [SuggestionKind.WithKeyword],\n },\n {\n id: StatementPosition.AfterSelectKeyword,\n name: StatementPosition.AfterSelectKeyword,\n kind: [\n SuggestionKind.StarWildCard,\n SuggestionKind.FunctionsWithArguments,\n SuggestionKind.Columns,\n SuggestionKind.SelectMacro,\n ],\n },\n {\n id: StatementPosition.AfterSelectFuncFirstArgument,\n name: StatementPosition.AfterSelectFuncFirstArgument,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterGroupByFunctionArgument,\n name: StatementPosition.AfterGroupByFunctionArgument,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterWhereFunctionArgument,\n name: StatementPosition.AfterWhereFunctionArgument,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterSelectArguments,\n name: StatementPosition.AfterSelectArguments,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterFromKeyword,\n name: StatementPosition.AfterFromKeyword,\n kind: [SuggestionKind.Schemas, SuggestionKind.Tables, SuggestionKind.TableMacro],\n },\n {\n id: StatementPosition.AfterSchema,\n name: StatementPosition.AfterSchema,\n kind: [SuggestionKind.Tables, SuggestionKind.TableMacro],\n },\n {\n id: StatementPosition.SelectAlias,\n name: StatementPosition.SelectAlias,\n kind: [SuggestionKind.Columns, SuggestionKind.FunctionsWithArguments],\n },\n {\n id: StatementPosition.FromKeyword,\n name: StatementPosition.FromKeyword,\n kind: [SuggestionKind.FromKeyword],\n },\n {\n id: StatementPosition.AfterFrom,\n name: StatementPosition.AfterFrom,\n kind: [\n SuggestionKind.WhereKeyword,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword,\n ],\n },\n {\n id: StatementPosition.AfterTable,\n name: StatementPosition.AfterTable,\n kind: [\n SuggestionKind.WhereKeyword,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword,\n ],\n },\n {\n id: StatementPosition.WhereKeyword,\n name: StatementPosition.WhereKeyword,\n kind: [SuggestionKind.Columns, SuggestionKind.FilterMacro, SuggestionKind.TemplateVariables],\n },\n {\n id: StatementPosition.WhereComparisonOperator,\n name: StatementPosition.WhereComparisonOperator,\n kind: [SuggestionKind.ComparisonOperators],\n },\n {\n id: StatementPosition.WhereValue,\n name: StatementPosition.WhereValue,\n kind: [SuggestionKind.FilterMacro, SuggestionKind.TemplateVariables],\n },\n {\n id: StatementPosition.AfterWhereValue,\n name: StatementPosition.AfterWhereValue,\n kind: [\n SuggestionKind.LogicalOperators,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword,\n SuggestionKind.Columns,\n SuggestionKind.TemplateVariables,\n ],\n },\n {\n id: StatementPosition.AfterGroupByKeywords,\n name: StatementPosition.AfterGroupByKeywords,\n kind: [SuggestionKind.GroupMacro, SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterGroupBy,\n name: StatementPosition.AfterGroupBy,\n kind: [SuggestionKind.OrderByKeywords, SuggestionKind.LimitKeyword],\n },\n {\n id: StatementPosition.AfterOrderByKeywords,\n name: StatementPosition.AfterOrderByKeywords,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterOrderByFunction,\n name: StatementPosition.AfterOrderByFunction,\n kind: [SuggestionKind.SortOrderDirectionKeyword, SuggestionKind.LimitKeyword],\n },\n {\n id: StatementPosition.AfterOrderByDirection,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.LimitKeyword],\n },\n {\n id: StatementPosition.AfterIsOperator,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.NotKeyword, SuggestionKind.NullValue, SuggestionKind.BoolValues],\n },\n {\n id: StatementPosition.AfterIsNotOperator,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.NullValue, SuggestionKind.BoolValues],\n },\n ];\n};\n"],"names":[],"mappings":";;;AASO,MAAM,8BAA8B,MAAoC;AAC7E,
|
|
1
|
+
{"version":3,"file":"suggestionsKindRegistry.js","sources":["../../../../../src/components/SQLEditor/standardSql/suggestionsKindRegistry.ts"],"sourcesContent":["import { type RegistryItem } from '@grafana/data';\nimport { StatementPosition, SuggestionKind } from '../types';\n\nexport interface SuggestionKindRegistryItem extends RegistryItem {\n id: StatementPosition;\n kind: SuggestionKind[];\n}\n\n// Registry of possible suggestions for the given statement position\nexport const initSuggestionsKindRegistry = (): SuggestionKindRegistryItem[] => {\n return [\n {\n id: StatementPosition.SelectKeyword,\n name: StatementPosition.SelectKeyword,\n kind: [SuggestionKind.SelectKeyword],\n },\n {\n id: StatementPosition.WithKeyword,\n name: StatementPosition.WithKeyword,\n kind: [SuggestionKind.WithKeyword],\n },\n {\n id: StatementPosition.AfterSelectKeyword,\n name: StatementPosition.AfterSelectKeyword,\n kind: [\n SuggestionKind.StarWildCard,\n SuggestionKind.FunctionsWithArguments,\n SuggestionKind.Columns,\n SuggestionKind.SelectMacro,\n ],\n },\n {\n id: StatementPosition.AfterSelectFuncFirstArgument,\n name: StatementPosition.AfterSelectFuncFirstArgument,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterGroupByFunctionArgument,\n name: StatementPosition.AfterGroupByFunctionArgument,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterWhereFunctionArgument,\n name: StatementPosition.AfterWhereFunctionArgument,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterSelectArguments,\n name: StatementPosition.AfterSelectArguments,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterFromKeyword,\n name: StatementPosition.AfterFromKeyword,\n kind: [SuggestionKind.Schemas, SuggestionKind.Tables, SuggestionKind.TableMacro],\n },\n {\n id: StatementPosition.AfterSchema,\n name: StatementPosition.AfterSchema,\n kind: [SuggestionKind.Tables, SuggestionKind.TableMacro],\n },\n {\n id: StatementPosition.SelectAlias,\n name: StatementPosition.SelectAlias,\n kind: [SuggestionKind.Columns, SuggestionKind.FunctionsWithArguments],\n },\n {\n id: StatementPosition.FromKeyword,\n name: StatementPosition.FromKeyword,\n kind: [SuggestionKind.FromKeyword],\n },\n {\n id: StatementPosition.AfterFrom,\n name: StatementPosition.AfterFrom,\n kind: [\n SuggestionKind.WhereKeyword,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword,\n ],\n },\n {\n id: StatementPosition.AfterTable,\n name: StatementPosition.AfterTable,\n kind: [\n SuggestionKind.WhereKeyword,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword,\n ],\n },\n {\n id: StatementPosition.WhereKeyword,\n name: StatementPosition.WhereKeyword,\n kind: [SuggestionKind.Columns, SuggestionKind.FilterMacro, SuggestionKind.TemplateVariables],\n },\n {\n id: StatementPosition.WhereComparisonOperator,\n name: StatementPosition.WhereComparisonOperator,\n kind: [SuggestionKind.ComparisonOperators],\n },\n {\n id: StatementPosition.WhereValue,\n name: StatementPosition.WhereValue,\n kind: [SuggestionKind.FilterMacro, SuggestionKind.TemplateVariables],\n },\n {\n id: StatementPosition.AfterWhereValue,\n name: StatementPosition.AfterWhereValue,\n kind: [\n SuggestionKind.LogicalOperators,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword,\n SuggestionKind.Columns,\n SuggestionKind.TemplateVariables,\n ],\n },\n {\n id: StatementPosition.AfterGroupByKeywords,\n name: StatementPosition.AfterGroupByKeywords,\n kind: [SuggestionKind.GroupMacro, SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterGroupBy,\n name: StatementPosition.AfterGroupBy,\n kind: [SuggestionKind.OrderByKeywords, SuggestionKind.LimitKeyword],\n },\n {\n id: StatementPosition.AfterOrderByKeywords,\n name: StatementPosition.AfterOrderByKeywords,\n kind: [SuggestionKind.Columns],\n },\n {\n id: StatementPosition.AfterOrderByFunction,\n name: StatementPosition.AfterOrderByFunction,\n kind: [SuggestionKind.SortOrderDirectionKeyword, SuggestionKind.LimitKeyword],\n },\n {\n id: StatementPosition.AfterOrderByDirection,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.LimitKeyword],\n },\n {\n id: StatementPosition.AfterIsOperator,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.NotKeyword, SuggestionKind.NullValue, SuggestionKind.BoolValues],\n },\n {\n id: StatementPosition.AfterIsNotOperator,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.NullValue, SuggestionKind.BoolValues],\n },\n ];\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/SQLEditor/test-utils/index.ts"],"sourcesContent":["import * as testData from '../mocks/testData';\nimport { testStatementPosition } from './statementPosition';\nimport { type TestQueryModel } from './types';\n\nexport const SQLEditorTestUtils = {\n testData,\n testStatementPosition,\n};\n\nexport type { TestQueryModel };\n"],"names":[],"mappings":";;;;AAIO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/SQLEditor/test-utils/index.ts"],"sourcesContent":["import * as testData from '../mocks/testData';\nimport { testStatementPosition } from './statementPosition';\nimport { type TestQueryModel } from './types';\n\nexport const SQLEditorTestUtils = {\n testData,\n testStatementPosition,\n};\n\nexport type { TestQueryModel };\n"],"names":[],"mappings":";;;;AAIO,MAAM,kBAAA,GAAqB;AAAA,EAChC,QAAA;AAAA,EACA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statementPosition.js","sources":["../../../../../src/components/SQLEditor/test-utils/statementPosition.ts"],"sourcesContent":["import { Registry } from '@grafana/data';\nimport { type monacoTypes } from '@grafana/ui';\nimport { getMonacoMock } from '../mocks/Monaco';\nimport { TextModel } from '../mocks/TextModel';\nimport { getStatementPosition } from '../standardSql/getStatementPosition';\nimport { type StatementPositionResolversRegistryItem } from '../standardSql/types';\nimport { type CustomStatementPlacement, type StatementPosition } from '../types';\nimport { linkedTokenBuilder } from '../utils/linkedTokenBuilder';\nimport { type StatementPositionResolverTestCase } from './types';\n\nfunction assertPosition(\n query: string,\n position: monacoTypes.IPosition,\n expected: StatementPosition | string,\n monacoMock: any,\n resolversRegistry: Registry<StatementPositionResolversRegistryItem>\n) {\n const testModel = TextModel(query);\n const current = linkedTokenBuilder(monacoMock, testModel as monacoTypes.editor.ITextModel, position);\n const statementPosition = getStatementPosition(current, resolversRegistry);\n\n expect(statementPosition).toContain(expected);\n}\n\nexport const testStatementPosition = (\n expected: StatementPosition | string,\n cases: StatementPositionResolverTestCase[],\n resolvers: () => CustomStatementPlacement[]\n) => {\n describe(`${expected}`, () => {\n let MonacoMock: any;\n let statementPositionResolversRegistry: Registry<StatementPositionResolversRegistryItem>;\n\n beforeEach(() => {\n const mockQueries = new Map<string, Array<Array<Pick<monacoTypes.Token, 'language' | 'offset' | 'type'>>>>();\n cases.forEach((c) => mockQueries.set(c.query.query, c.query.tokens));\n\n MonacoMock = getMonacoMock(mockQueries);\n statementPositionResolversRegistry = new Registry(() => {\n return resolvers().map((r) => ({\n id: r.id as StatementPosition,\n name: r.name || r.id,\n resolve: r.resolve,\n }));\n });\n });\n\n // using forEach here rather than test.each as been struggling to get the arguments interpolated in test name string\n cases.forEach((c) => {\n test(`${c.query.query}`, () => {\n assertPosition(\n c.query.query,\n { lineNumber: c.position.line, column: c.position.column },\n expected,\n MonacoMock,\n statementPositionResolversRegistry\n );\n });\n });\n });\n};\n"],"names":[],"mappings":";;;;;;;AAUA,SAAS,
|
|
1
|
+
{"version":3,"file":"statementPosition.js","sources":["../../../../../src/components/SQLEditor/test-utils/statementPosition.ts"],"sourcesContent":["import { Registry } from '@grafana/data';\nimport { type monacoTypes } from '@grafana/ui';\nimport { getMonacoMock } from '../mocks/Monaco';\nimport { TextModel } from '../mocks/TextModel';\nimport { getStatementPosition } from '../standardSql/getStatementPosition';\nimport { type StatementPositionResolversRegistryItem } from '../standardSql/types';\nimport { type CustomStatementPlacement, type StatementPosition } from '../types';\nimport { linkedTokenBuilder } from '../utils/linkedTokenBuilder';\nimport { type StatementPositionResolverTestCase } from './types';\n\nfunction assertPosition(\n query: string,\n position: monacoTypes.IPosition,\n expected: StatementPosition | string,\n monacoMock: any,\n resolversRegistry: Registry<StatementPositionResolversRegistryItem>\n) {\n const testModel = TextModel(query);\n const current = linkedTokenBuilder(monacoMock, testModel as monacoTypes.editor.ITextModel, position);\n const statementPosition = getStatementPosition(current, resolversRegistry);\n\n expect(statementPosition).toContain(expected);\n}\n\nexport const testStatementPosition = (\n expected: StatementPosition | string,\n cases: StatementPositionResolverTestCase[],\n resolvers: () => CustomStatementPlacement[]\n) => {\n describe(`${expected}`, () => {\n let MonacoMock: any;\n let statementPositionResolversRegistry: Registry<StatementPositionResolversRegistryItem>;\n\n beforeEach(() => {\n const mockQueries = new Map<string, Array<Array<Pick<monacoTypes.Token, 'language' | 'offset' | 'type'>>>>();\n cases.forEach((c) => mockQueries.set(c.query.query, c.query.tokens));\n\n MonacoMock = getMonacoMock(mockQueries);\n statementPositionResolversRegistry = new Registry(() => {\n return resolvers().map((r) => ({\n id: r.id as StatementPosition,\n name: r.name || r.id,\n resolve: r.resolve,\n }));\n });\n });\n\n // using forEach here rather than test.each as been struggling to get the arguments interpolated in test name string\n cases.forEach((c) => {\n test(`${c.query.query}`, () => {\n assertPosition(\n c.query.query,\n { lineNumber: c.position.line, column: c.position.column },\n expected,\n MonacoMock,\n statementPositionResolversRegistry\n );\n });\n });\n });\n};\n"],"names":[],"mappings":";;;;;;;AAUA,SAAS,cAAA,CACP,KAAA,EACA,QAAA,EACA,QAAA,EACA,YACA,iBAAA,EACA;AACA,EAAA,MAAM,SAAA,GAAY,UAAU,KAAK,CAAA;AACjC,EAAA,MAAM,OAAA,GAAU,kBAAA,CAAmB,UAAA,EAAY,SAAA,EAA4C,QAAQ,CAAA;AACnG,EAAA,MAAM,iBAAA,GAAoB,oBAAA,CAAqB,OAAA,EAAS,iBAAiB,CAAA;AAEzE,EAAA,MAAA,CAAO,iBAAiB,CAAA,CAAE,SAAA,CAAU,QAAQ,CAAA;AAC9C;AAEO,MAAM,qBAAA,GAAwB,CACnC,QAAA,EACA,KAAA,EACA,SAAA,KACG;AACH,EAAA,QAAA,CAAS,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,MAAM;AAC5B,IAAA,IAAI,UAAA;AACJ,IAAA,IAAI,kCAAA;AAEJ,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,MAAM,WAAA,uBAAkB,GAAA,EAAmF;AAC3G,MAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,WAAA,CAAY,GAAA,CAAI,CAAA,CAAE,KAAA,CAAM,KAAA,EAAO,CAAA,CAAE,KAAA,CAAM,MAAM,CAAC,CAAA;AAEnE,MAAA,UAAA,GAAa,cAAc,WAAW,CAAA;AACtC,MAAA,kCAAA,GAAqC,IAAI,SAAS,MAAM;AACtD,QAAA,OAAO,SAAA,EAAU,CAAE,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,UAC7B,IAAI,CAAA,CAAE,EAAA;AAAA,UACN,IAAA,EAAM,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,EAAA;AAAA,UAClB,SAAS,CAAA,CAAE;AAAA,SACb,CAAE,CAAA;AAAA,MACJ,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAGD,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,KAAM;AACnB,MAAA,IAAA,CAAK,CAAA,EAAG,CAAA,CAAE,KAAA,CAAM,KAAK,IAAI,MAAM;AAC7B,QAAA,cAAA;AAAA,UACE,EAAE,KAAA,CAAM,KAAA;AAAA,UACR,EAAE,YAAY,CAAA,CAAE,QAAA,CAAS,MAAM,MAAA,EAAQ,CAAA,CAAE,SAAS,MAAA,EAAO;AAAA,UACzD,QAAA;AAAA,UACA,UAAA;AAAA,UACA;AAAA,SACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import '@grafana/ui';
|
|
2
|
-
import '@grafana/data';
|
|
3
2
|
|
|
4
3
|
var OperatorType = /* @__PURE__ */ ((OperatorType2) => {
|
|
5
4
|
OperatorType2[OperatorType2["Comparison"] = 0] = "Comparison";
|
|
@@ -14,21 +13,6 @@ var MacroType = /* @__PURE__ */ ((MacroType2) => {
|
|
|
14
13
|
MacroType2[MacroType2["Table"] = 4] = "Table";
|
|
15
14
|
return MacroType2;
|
|
16
15
|
})(MacroType || {});
|
|
17
|
-
var TokenType = /* @__PURE__ */ ((TokenType2) => {
|
|
18
|
-
TokenType2["Parenthesis"] = "delimiter.parenthesis.sql";
|
|
19
|
-
TokenType2["Whitespace"] = "white.sql";
|
|
20
|
-
TokenType2["Keyword"] = "keyword.sql";
|
|
21
|
-
TokenType2["Delimiter"] = "delimiter.sql";
|
|
22
|
-
TokenType2["Operator"] = "operator.sql";
|
|
23
|
-
TokenType2["Identifier"] = "identifier.sql";
|
|
24
|
-
TokenType2["IdentifierQuote"] = "identifier.quote.sql";
|
|
25
|
-
TokenType2["Type"] = "type.sql";
|
|
26
|
-
TokenType2["Function"] = "predefined.sql";
|
|
27
|
-
TokenType2["Number"] = "number.sql";
|
|
28
|
-
TokenType2["String"] = "string.sql";
|
|
29
|
-
TokenType2["Variable"] = "variable.sql";
|
|
30
|
-
return TokenType2;
|
|
31
|
-
})(TokenType || {});
|
|
32
16
|
var StatementPosition = /* @__PURE__ */ ((StatementPosition2) => {
|
|
33
17
|
StatementPosition2["Unknown"] = "unknown";
|
|
34
18
|
StatementPosition2["SelectKeyword"] = "selectKeyword";
|
|
@@ -136,5 +120,5 @@ var SQLEditorMode = /* @__PURE__ */ ((SQLEditorMode2) => {
|
|
|
136
120
|
return SQLEditorMode2;
|
|
137
121
|
})(SQLEditorMode || {});
|
|
138
122
|
|
|
139
|
-
export { CompletionItemInsertTextRule, CompletionItemKind, CompletionItemPriority, MacroType, OperatorType, SQLEditorMode, StatementPosition, SuggestionKind
|
|
123
|
+
export { CompletionItemInsertTextRule, CompletionItemKind, CompletionItemPriority, MacroType, OperatorType, SQLEditorMode, StatementPosition, SuggestionKind };
|
|
140
124
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/SQLEditor/types.ts"],"sourcesContent":["import { type Monaco, type monacoTypes } from '@grafana/ui';\nimport { type SQLMonarchLanguage, type StatementPositionResolver, type SuggestionsResolver } from './standardSql/types';\nimport { type LinkedToken } from './utils/LinkedToken';\n\n/**\n * Provides a context for suggestions resolver\n * @alpha\n */\nexport interface PositionContext {\n position: monacoTypes.IPosition;\n kind: SuggestionKind[];\n statementPosition: StatementPosition[];\n currentToken: LinkedToken | null;\n range: monacoTypes.IRange;\n}\n\nexport type CustomSuggestion = Partial<monacoTypes.languages.CompletionItem> & { label: string };\n\nexport interface CustomSuggestionKind {\n id: string;\n suggestionsResolver: SuggestionsResolver;\n applyTo?: Array<StatementPosition | string>;\n overrideDefault?: boolean;\n}\n\nexport interface CustomStatementPlacement {\n id: string;\n name?: string;\n resolve: StatementPositionResolver;\n overrideDefault?: boolean;\n}\nexport type StatementPlacementProvider = () => CustomStatementPlacement[];\nexport type SuggestionKindProvider = () => CustomSuggestionKind[];\n\nexport interface ColumnDefinition {\n name: string;\n type?: string;\n description?: string;\n // Text used for autocomplete. If not provided name is used.\n completion?: string;\n}\n\nexport interface SchemaDefinition {\n name: string;\n // Text used for autocomplete. If not provided name is used.\n completion?: string;\n}\n\nexport interface TableDefinition {\n name: string;\n // Text used for autocomplete. If not provided name is used.\n completion?: string;\n}\n\nexport interface Operator {\n id: string;\n operator: string;\n type: OperatorType;\n description?: string;\n}\n\nexport interface TableIdentifier {\n table?: string;\n schema?: string;\n catalog?: string;\n}\n\nexport interface SQLCompletionItemProvider\n extends Omit<monacoTypes.languages.CompletionItemProvider, 'provideCompletionItems'> {\n /**\n * Allows dialect specific functions to be added to the completion list.\n * @alpha\n */\n supportedFunctions?: () => Array<{\n id: string;\n name: string;\n description?: string;\n }>;\n\n /**\n * Allows dialect specific operators to be added to the completion list.\n * @alpha\n */\n supportedOperators?: () => Array<{\n id: string;\n operator: string;\n type: OperatorType;\n description?: string;\n }>;\n\n supportedMacros?: () => Array<{\n id: string;\n text: string;\n type: MacroType;\n args: string[];\n description?: string;\n }>;\n\n /**\n * Allows custom suggestion kinds to be defined and correlate them with <Custom>StatementPosition.\n * @alpha\n */\n customSuggestionKinds?: SuggestionKindProvider;\n\n /**\n * Allows custom statement placement definition.\n * @alpha\n */\n customStatementPlacement?: StatementPlacementProvider;\n\n /**\n * Allows providing a custom function for resolving schemas.\n * It's up to the consumer to decide whether the schemas are resolved via API calls or preloaded in the query editor(i.e. full db schema is preloaded).\n * @alpha\n */\n schemas?: {\n resolve: () => Promise<SchemaDefinition[]>;\n };\n\n /**\n * Allows providing a custom function for resolving db tables.\n * It's up to the consumer to decide whether the columns are resolved via API calls or preloaded in the query editor(i.e. full db schema is preloaded).\n * @alpha\n */\n tables?: {\n resolve: (TableIdentifier: TableIdentifier | null) => Promise<TableDefinition[]>;\n // Allows providing a custom function for calculating the table name from the query. If not specified a default implementation is used.\n parseName?: (token: LinkedToken | null | undefined) => TableIdentifier;\n };\n /**\n * Allows providing a custom function for resolving table.\n * It's up to the consumer to decide whether the columns are resolved via API calls or preloaded in the query editor(i.e. full db schema is preloaded).\n * @alpha\n */\n columns?: {\n resolve: (identifier?: TableIdentifier) => Promise<ColumnDefinition[]>;\n };\n\n /**\n * TODO: Not sure whether or not we need this. Would like to avoid this kind of flexibility.\n * @alpha\n */\n provideCompletionItems?: (\n model: monacoTypes.editor.ITextModel,\n position: monacoTypes.Position,\n context: monacoTypes.languages.CompletionContext,\n token: monacoTypes.CancellationToken,\n positionContext: PositionContext // Decorates original provideCompletionItems function with our custom statement position context\n ) => monacoTypes.languages.CompletionList;\n}\n\nexport type LanguageCompletionProvider = (m: Monaco, l?: SQLMonarchLanguage) => SQLCompletionItemProvider;\n\nexport enum OperatorType {\n Comparison,\n Logical,\n}\n\nexport enum MacroType {\n Value,\n Filter,\n Group,\n Column,\n Table,\n}\n\nexport enum TokenType {\n Parenthesis = 'delimiter.parenthesis.sql',\n Whitespace = 'white.sql',\n Keyword = 'keyword.sql',\n Delimiter = 'delimiter.sql',\n Operator = 'operator.sql',\n Identifier = 'identifier.sql',\n IdentifierQuote = 'identifier.quote.sql',\n Type = 'type.sql',\n Function = 'predefined.sql',\n Number = 'number.sql',\n String = 'string.sql',\n Variable = 'variable.sql',\n}\n\nexport enum StatementPosition {\n Unknown = 'unknown',\n SelectKeyword = 'selectKeyword',\n WithKeyword = 'withKeyword',\n AfterSelectKeyword = 'afterSelectKeyword',\n AfterSelectArguments = 'afterSelectArguments',\n AfterSelectFuncFirstArgument = 'afterSelectFuncFirstArgument',\n SelectAlias = 'selectAlias',\n AfterFromKeyword = 'afterFromKeyword',\n AfterTable = 'afterTable',\n SchemaFuncFirstArgument = 'schemaFuncFirstArgument',\n SchemaFuncExtraArgument = 'schemaFuncExtraArgument',\n FromKeyword = 'fromKeyword',\n AfterFrom = 'afterFrom',\n WhereKeyword = 'whereKeyword',\n WhereComparisonOperator = 'whereComparisonOperator',\n WhereValue = 'whereValue',\n AfterWhereFunctionArgument = 'afterWhereFunctionArgument',\n AfterGroupByFunctionArgument = 'afterGroupByFunctionArgument',\n AfterWhereValue = 'afterWhereValue',\n AfterGroupByKeywords = 'afterGroupByKeywords',\n AfterGroupBy = 'afterGroupBy',\n AfterOrderByKeywords = 'afterOrderByKeywords',\n AfterOrderByFunction = 'afterOrderByFunction',\n AfterOrderByDirection = 'afterOrderByDirection',\n AfterIsOperator = 'afterIsOperator',\n AfterIsNotOperator = 'afterIsNotOperator',\n AfterSchema = 'afterSchema',\n}\n\nexport enum SuggestionKind {\n Schemas = 'schemas',\n Tables = 'tables',\n Columns = 'columns',\n SelectKeyword = 'selectKeyword',\n WithKeyword = 'withKeyword',\n FunctionsWithArguments = 'functionsWithArguments',\n FromKeyword = 'fromKeyword',\n WhereKeyword = 'whereKeyword',\n GroupByKeywords = 'groupByKeywords',\n OrderByKeywords = 'orderByKeywords',\n FunctionsWithoutArguments = 'functionsWithoutArguments',\n LimitKeyword = 'limitKeyword',\n SortOrderDirectionKeyword = 'sortOrderDirectionKeyword',\n ComparisonOperators = 'comparisonOperators',\n LogicalOperators = 'logicalOperators',\n SelectMacro = 'selectMacro',\n TableMacro = 'tableMacro',\n FilterMacro = 'filterMacro',\n GroupMacro = 'groupMacro',\n BoolValues = 'boolValues',\n NullValue = 'nullValue',\n NotKeyword = 'notKeyword',\n TemplateVariables = 'templateVariables',\n StarWildCard = 'starWildCard',\n}\n\n// TODO: export from grafana/ui\nexport enum CompletionItemPriority {\n High = 'a',\n MediumHigh = 'd',\n Medium = 'g',\n MediumLow = 'k',\n Low = 'q',\n}\n\nexport enum CompletionItemKind {\n Method = 0,\n Function = 1,\n Constructor = 2,\n Field = 3,\n Variable = 4,\n Class = 5,\n Struct = 6,\n Interface = 7,\n Module = 8,\n Property = 9,\n Event = 10,\n Operator = 11,\n Unit = 12,\n Value = 13,\n Constant = 14,\n Enum = 15,\n EnumMember = 16,\n Keyword = 17,\n Text = 18,\n Color = 19,\n File = 20,\n Reference = 21,\n Customcolor = 22,\n Folder = 23,\n TypeParameter = 24,\n User = 25,\n Issue = 26,\n Snippet = 27,\n}\n\nexport enum CompletionItemInsertTextRule {\n KeepWhitespace = 1,\n InsertAsSnippet = 4,\n}\n\nexport enum SQLEditorMode {\n Builder = 'builder',\n Code = 'code',\n}\n"],"names":["OperatorType","MacroType","TokenType","StatementPosition","SuggestionKind","CompletionItemPriority","CompletionItemKind","CompletionItemInsertTextRule","SQLEditorMode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/SQLEditor/types.ts"],"sourcesContent":["import { type Monaco, type monacoTypes } from '@grafana/ui';\nimport { type LinkedToken } from './utils/LinkedToken';\n\n/**\n * Provides a context for suggestions resolver\n * @alpha\n */\nexport interface PositionContext {\n position: monacoTypes.IPosition;\n kind: SuggestionKind[];\n statementPosition: StatementPosition[];\n currentToken: LinkedToken | null;\n range: monacoTypes.IRange;\n}\n\nexport type CustomSuggestion = Partial<monacoTypes.languages.CompletionItem> & { label: string };\n\nexport interface CustomSuggestionKind {\n id: string;\n suggestionsResolver: SuggestionsResolver;\n applyTo?: Array<StatementPosition | string>;\n overrideDefault?: boolean;\n}\n\nexport interface CustomStatementPlacement {\n id: string;\n name?: string;\n resolve: StatementPositionResolver;\n overrideDefault?: boolean;\n}\nexport type StatementPlacementProvider = () => CustomStatementPlacement[];\nexport type SuggestionKindProvider = () => CustomSuggestionKind[];\n\nexport interface ColumnDefinition {\n name: string;\n type?: string;\n description?: string;\n // Text used for autocomplete. If not provided name is used.\n completion?: string;\n}\n\nexport interface SchemaDefinition {\n name: string;\n // Text used for autocomplete. If not provided name is used.\n completion?: string;\n}\n\nexport interface TableDefinition {\n name: string;\n // Text used for autocomplete. If not provided name is used.\n completion?: string;\n}\n\nexport interface Operator {\n id: string;\n operator: string;\n type: OperatorType;\n description?: string;\n}\n\nexport interface TableIdentifier {\n table?: string;\n schema?: string;\n catalog?: string;\n}\n\nexport interface SQLCompletionItemProvider\n extends Omit<monacoTypes.languages.CompletionItemProvider, 'provideCompletionItems'> {\n /**\n * Allows dialect specific functions to be added to the completion list.\n * @alpha\n */\n supportedFunctions?: () => Array<{\n id: string;\n name: string;\n description?: string;\n }>;\n\n /**\n * Allows dialect specific operators to be added to the completion list.\n * @alpha\n */\n supportedOperators?: () => Array<{\n id: string;\n operator: string;\n type: OperatorType;\n description?: string;\n }>;\n\n supportedMacros?: () => Array<{\n id: string;\n text: string;\n type: MacroType;\n args: string[];\n description?: string;\n }>;\n\n /**\n * Allows custom suggestion kinds to be defined and correlate them with <Custom>StatementPosition.\n * @alpha\n */\n customSuggestionKinds?: SuggestionKindProvider;\n\n /**\n * Allows custom statement placement definition.\n * @alpha\n */\n customStatementPlacement?: StatementPlacementProvider;\n\n /**\n * Allows providing a custom function for resolving schemas.\n * It's up to the consumer to decide whether the schemas are resolved via API calls or preloaded in the query editor(i.e. full db schema is preloaded).\n * @alpha\n */\n schemas?: {\n resolve: () => Promise<SchemaDefinition[]>;\n };\n\n /**\n * Allows providing a custom function for resolving db tables.\n * It's up to the consumer to decide whether the columns are resolved via API calls or preloaded in the query editor(i.e. full db schema is preloaded).\n * @alpha\n */\n tables?: {\n resolve: (TableIdentifier: TableIdentifier | null) => Promise<TableDefinition[]>;\n // Allows providing a custom function for calculating the table name from the query. If not specified a default implementation is used.\n parseName?: (token: LinkedToken | null | undefined) => TableIdentifier;\n };\n /**\n * Allows providing a custom function for resolving table.\n * It's up to the consumer to decide whether the columns are resolved via API calls or preloaded in the query editor(i.e. full db schema is preloaded).\n * @alpha\n */\n columns?: {\n resolve: (identifier?: TableIdentifier) => Promise<ColumnDefinition[]>;\n };\n\n /**\n * TODO: Not sure whether or not we need this. Would like to avoid this kind of flexibility.\n * @alpha\n */\n provideCompletionItems?: (\n model: monacoTypes.editor.ITextModel,\n position: monacoTypes.Position,\n context: monacoTypes.languages.CompletionContext,\n token: monacoTypes.CancellationToken,\n positionContext: PositionContext // Decorates original provideCompletionItems function with our custom statement position context\n ) => monacoTypes.languages.CompletionList;\n}\n\nexport interface SQLMonarchLanguage extends monacoTypes.languages.IMonarchLanguage {\n keywords?: string[];\n builtinFunctions?: string[];\n\n /* Example: AND, OR, LIKE */\n logicalOperators?: string[];\n /* Example: >, <>, = */\n comparisonOperators?: string[];\n\n /** Used by basic languages in the monaco registry **/\n operators?: string[];\n}\n\nexport type StatementPositionResolver = (\n currentToken: LinkedToken | null,\n previousKeyword: LinkedToken | null,\n previousNonWhiteSpace: LinkedToken | null,\n previousIsSlash: Boolean\n) => Boolean;\n\nexport type SuggestionsResolver = <T extends PositionContext = PositionContext>(\n positionContext: T\n) => Promise<CustomSuggestion[]>;\n\nexport type LanguageCompletionProvider = (m: Monaco, l?: SQLMonarchLanguage) => SQLCompletionItemProvider;\n\nexport interface LanguageDefinition extends monacoTypes.languages.ILanguageExtensionPoint {\n loader?: (module: any) => Promise<{\n language: SQLMonarchLanguage;\n conf: monacoTypes.languages.LanguageConfiguration;\n }>;\n // Provides API for customizing the autocomplete\n completionProvider?: (m: Monaco, language: SQLMonarchLanguage) => SQLCompletionItemProvider;\n // Function that returns a formatted query\n formatter?: (q: string) => string;\n}\n\nexport enum OperatorType {\n Comparison,\n Logical,\n}\n\nexport enum MacroType {\n Value,\n Filter,\n Group,\n Column,\n Table,\n}\n\nexport { TokenType } from './utils/tokenType';\n\nexport enum StatementPosition {\n Unknown = 'unknown',\n SelectKeyword = 'selectKeyword',\n WithKeyword = 'withKeyword',\n AfterSelectKeyword = 'afterSelectKeyword',\n AfterSelectArguments = 'afterSelectArguments',\n AfterSelectFuncFirstArgument = 'afterSelectFuncFirstArgument',\n SelectAlias = 'selectAlias',\n AfterFromKeyword = 'afterFromKeyword',\n AfterTable = 'afterTable',\n SchemaFuncFirstArgument = 'schemaFuncFirstArgument',\n SchemaFuncExtraArgument = 'schemaFuncExtraArgument',\n FromKeyword = 'fromKeyword',\n AfterFrom = 'afterFrom',\n WhereKeyword = 'whereKeyword',\n WhereComparisonOperator = 'whereComparisonOperator',\n WhereValue = 'whereValue',\n AfterWhereFunctionArgument = 'afterWhereFunctionArgument',\n AfterGroupByFunctionArgument = 'afterGroupByFunctionArgument',\n AfterWhereValue = 'afterWhereValue',\n AfterGroupByKeywords = 'afterGroupByKeywords',\n AfterGroupBy = 'afterGroupBy',\n AfterOrderByKeywords = 'afterOrderByKeywords',\n AfterOrderByFunction = 'afterOrderByFunction',\n AfterOrderByDirection = 'afterOrderByDirection',\n AfterIsOperator = 'afterIsOperator',\n AfterIsNotOperator = 'afterIsNotOperator',\n AfterSchema = 'afterSchema',\n}\n\nexport enum SuggestionKind {\n Schemas = 'schemas',\n Tables = 'tables',\n Columns = 'columns',\n SelectKeyword = 'selectKeyword',\n WithKeyword = 'withKeyword',\n FunctionsWithArguments = 'functionsWithArguments',\n FromKeyword = 'fromKeyword',\n WhereKeyword = 'whereKeyword',\n GroupByKeywords = 'groupByKeywords',\n OrderByKeywords = 'orderByKeywords',\n FunctionsWithoutArguments = 'functionsWithoutArguments',\n LimitKeyword = 'limitKeyword',\n SortOrderDirectionKeyword = 'sortOrderDirectionKeyword',\n ComparisonOperators = 'comparisonOperators',\n LogicalOperators = 'logicalOperators',\n SelectMacro = 'selectMacro',\n TableMacro = 'tableMacro',\n FilterMacro = 'filterMacro',\n GroupMacro = 'groupMacro',\n BoolValues = 'boolValues',\n NullValue = 'nullValue',\n NotKeyword = 'notKeyword',\n TemplateVariables = 'templateVariables',\n StarWildCard = 'starWildCard',\n}\n\n// TODO: export from grafana/ui\nexport enum CompletionItemPriority {\n High = 'a',\n MediumHigh = 'd',\n Medium = 'g',\n MediumLow = 'k',\n Low = 'q',\n}\n\nexport enum CompletionItemKind {\n Method = 0,\n Function = 1,\n Constructor = 2,\n Field = 3,\n Variable = 4,\n Class = 5,\n Struct = 6,\n Interface = 7,\n Module = 8,\n Property = 9,\n Event = 10,\n Operator = 11,\n Unit = 12,\n Value = 13,\n Constant = 14,\n Enum = 15,\n EnumMember = 16,\n Keyword = 17,\n Text = 18,\n Color = 19,\n File = 20,\n Reference = 21,\n Customcolor = 22,\n Folder = 23,\n TypeParameter = 24,\n User = 25,\n Issue = 26,\n Snippet = 27,\n}\n\nexport enum CompletionItemInsertTextRule {\n KeepWhitespace = 1,\n InsertAsSnippet = 4,\n}\n\nexport enum SQLEditorMode {\n Builder = 'builder',\n Code = 'code',\n}\n"],"names":["OperatorType","MacroType","StatementPosition","SuggestionKind","CompletionItemPriority","CompletionItemKind","CompletionItemInsertTextRule","SQLEditorMode"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '@grafana/ui';
|
|
2
|
-
import { TokenType } from '
|
|
2
|
+
import { TokenType } from './tokenType.js';
|
|
3
3
|
|
|
4
4
|
class LinkedToken {
|
|
5
5
|
constructor(type, value, range, previous, next) {
|
|
@@ -44,7 +44,7 @@ class LinkedToken {
|
|
|
44
44
|
}
|
|
45
45
|
is(type, value) {
|
|
46
46
|
const isType = this.type === type;
|
|
47
|
-
return value !==
|
|
47
|
+
return value !== void 0 ? isType && compareTokenWithValue(type, this, value) : isType;
|
|
48
48
|
}
|
|
49
49
|
getPreviousNonWhiteSpaceToken() {
|
|
50
50
|
let curr = this.previous;
|
|
@@ -60,7 +60,7 @@ class LinkedToken {
|
|
|
60
60
|
let curr = this.previous;
|
|
61
61
|
while (curr != null) {
|
|
62
62
|
const isType = curr.type === type;
|
|
63
|
-
if (value !==
|
|
63
|
+
if (value !== void 0 ? isType && compareTokenWithValue(type, curr, value) : isType) {
|
|
64
64
|
return curr;
|
|
65
65
|
}
|
|
66
66
|
curr = curr.previous;
|
|
@@ -71,12 +71,12 @@ class LinkedToken {
|
|
|
71
71
|
let tokens = [];
|
|
72
72
|
let curr = this.previous;
|
|
73
73
|
while (curr != null) {
|
|
74
|
-
if (ignoreTypes.some((t) => t === (curr == null ?
|
|
74
|
+
if (ignoreTypes.some((t) => t === (curr == null ? void 0 : curr.type))) {
|
|
75
75
|
curr = curr.previous;
|
|
76
76
|
continue;
|
|
77
77
|
}
|
|
78
78
|
const isType = curr.type === type;
|
|
79
|
-
if (value !==
|
|
79
|
+
if (value !== void 0 ? isType && compareTokenWithValue(type, curr, value) : isType) {
|
|
80
80
|
return tokens;
|
|
81
81
|
}
|
|
82
82
|
if (!curr.isWhiteSpace()) {
|
|
@@ -90,12 +90,12 @@ class LinkedToken {
|
|
|
90
90
|
let tokens = [];
|
|
91
91
|
let curr = this.next;
|
|
92
92
|
while (curr != null) {
|
|
93
|
-
if (ignoreTypes.some((t) => t === (curr == null ?
|
|
93
|
+
if (ignoreTypes.some((t) => t === (curr == null ? void 0 : curr.type))) {
|
|
94
94
|
curr = curr.next;
|
|
95
95
|
continue;
|
|
96
96
|
}
|
|
97
97
|
const isType = curr.type === type;
|
|
98
|
-
if (value !==
|
|
98
|
+
if (value !== void 0 ? isType && compareTokenWithValue(type, curr, value) : isType) {
|
|
99
99
|
return tokens;
|
|
100
100
|
}
|
|
101
101
|
if (!curr.isWhiteSpace()) {
|
|
@@ -129,7 +129,7 @@ class LinkedToken {
|
|
|
129
129
|
let curr = this.next;
|
|
130
130
|
while (curr != null) {
|
|
131
131
|
const isType = curr.type === type;
|
|
132
|
-
if (value !==
|
|
132
|
+
if (value !== void 0 ? isType && compareTokenWithValue(type, curr, value) : isType) {
|
|
133
133
|
return curr;
|
|
134
134
|
}
|
|
135
135
|
curr = curr.next;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedToken.js","sources":["../../../../../src/components/SQLEditor/utils/LinkedToken.ts"],"sourcesContent":["import { type monacoTypes } from '@grafana/ui';\nimport { TokenType } from '
|
|
1
|
+
{"version":3,"file":"LinkedToken.js","sources":["../../../../../src/components/SQLEditor/utils/LinkedToken.ts"],"sourcesContent":["import { type monacoTypes } from '@grafana/ui';\nimport { TokenType } from './tokenType';\n\nexport class LinkedToken {\n constructor(\n public type: string,\n public value: string,\n public range: monacoTypes.IRange,\n public previous: LinkedToken | null,\n public next: LinkedToken | null\n ) {}\n\n isKeyword(): boolean {\n return this.type === TokenType.Keyword;\n }\n\n isWhiteSpace(): boolean {\n return this.type === TokenType.Whitespace;\n }\n\n isParenthesis(): boolean {\n return this.type === TokenType.Parenthesis;\n }\n\n isIdentifier(): boolean {\n return this.type === TokenType.Identifier;\n }\n\n isString(): boolean {\n return this.type === TokenType.String;\n }\n\n isNumber(): boolean {\n return this.type === TokenType.Number;\n }\n\n isDoubleQuotedString(): boolean {\n return this.type === TokenType.Type;\n }\n\n isVariable(): boolean {\n return this.type === TokenType.Variable;\n }\n\n isFunction(): boolean {\n return this.type === TokenType.Function;\n }\n\n isOperator(): boolean {\n return this.type === TokenType.Operator;\n }\n\n isTemplateVariable(): boolean {\n return this.type === TokenType.Variable;\n }\n\n is(type: TokenType, value?: string | number | boolean): boolean {\n const isType = this.type === type;\n\n return value !== undefined ? isType && compareTokenWithValue(type, this, value) : isType;\n }\n\n getPreviousNonWhiteSpaceToken(): LinkedToken | null {\n let curr = this.previous;\n while (curr != null) {\n if (!curr.isWhiteSpace()) {\n return curr;\n }\n curr = curr.previous;\n }\n return null;\n }\n\n getPreviousOfType(type: TokenType, value?: string): LinkedToken | null {\n let curr = this.previous;\n while (curr != null) {\n const isType = curr.type === type;\n\n if (value !== undefined ? isType && compareTokenWithValue(type, curr, value) : isType) {\n return curr;\n }\n curr = curr.previous;\n }\n return null;\n }\n\n getPreviousUntil(type: TokenType, ignoreTypes: TokenType[], value?: string): LinkedToken[] | null {\n let tokens: LinkedToken[] = [];\n let curr = this.previous;\n while (curr != null) {\n if (ignoreTypes.some((t) => t === curr?.type)) {\n curr = curr.previous;\n continue;\n }\n\n const isType = curr.type === type;\n\n if (value !== undefined ? isType && compareTokenWithValue(type, curr, value) : isType) {\n return tokens;\n }\n if (!curr.isWhiteSpace()) {\n tokens.push(curr);\n }\n curr = curr.previous;\n }\n\n return tokens;\n }\n\n getNextUntil(type: TokenType, ignoreTypes: TokenType[], value?: string): LinkedToken[] | null {\n let tokens: LinkedToken[] = [];\n let curr = this.next;\n while (curr != null) {\n if (ignoreTypes.some((t) => t === curr?.type)) {\n curr = curr.next;\n continue;\n }\n\n const isType = curr.type === type;\n\n if (value !== undefined ? isType && compareTokenWithValue(type, curr, value) : isType) {\n return tokens;\n }\n if (!curr.isWhiteSpace()) {\n tokens.push(curr);\n }\n curr = curr.next;\n }\n\n return tokens;\n }\n\n getPreviousKeyword(): LinkedToken | null {\n let curr = this.previous;\n while (curr != null) {\n if (curr.isKeyword()) {\n return curr;\n }\n curr = curr.previous;\n }\n return null;\n }\n\n getNextNonWhiteSpaceToken(): LinkedToken | null {\n let curr = this.next;\n while (curr != null) {\n if (!curr.isWhiteSpace()) {\n return curr;\n }\n curr = curr.next;\n }\n return null;\n }\n\n getNextOfType(type: TokenType, value?: string): LinkedToken | null {\n let curr = this.next;\n while (curr != null) {\n const isType = curr.type === type;\n\n if (value !== undefined ? isType && compareTokenWithValue(type, curr, value) : isType) {\n return curr;\n }\n curr = curr.next;\n }\n return null;\n }\n}\n\nfunction compareTokenWithValue(type: TokenType, token: LinkedToken, value: string | number | boolean) {\n return type === TokenType.Keyword || type === TokenType.Operator\n ? token.value.toLowerCase() === value.toString().toLowerCase()\n : token.value === value;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sources":["../../../../../src/components/SQLEditor/utils/commands.ts"],"sourcesContent":["export const TRIGGER_SUGGEST = {\n id: 'editor.action.triggerSuggest',\n title: '',\n};\n"],"names":[],"mappings":"AAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"commands.js","sources":["../../../../../src/components/SQLEditor/utils/commands.ts"],"sourcesContent":["export const TRIGGER_SUGGEST = {\n id: 'editor.action.triggerSuggest',\n title: '',\n};\n"],"names":[],"mappings":"AAAO,MAAM,eAAA,GAAkB;AAAA,EAC7B,EAAA,EAAI,8BAAA;AAAA,EACJ,KAAA,EAAO;AACT;;;;"}
|
|
@@ -7,7 +7,7 @@ let sqlEditorLog = () => {
|
|
|
7
7
|
if (attachDebugger && createLogger) {
|
|
8
8
|
sqlEditorLogger = createLogger("SQLEditor");
|
|
9
9
|
sqlEditorLog = sqlEditorLogger.logger;
|
|
10
|
-
attachDebugger("sqleditor",
|
|
10
|
+
attachDebugger("sqleditor", void 0, sqlEditorLogger);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export { sqlEditorLog, sqlEditorLogger };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugger.js","sources":["../../../../../src/components/SQLEditor/utils/debugger.ts"],"sourcesContent":["import { attachDebugger, createLogger } from '@grafana/ui';\n\nlet sqlEditorLogger = { logger: () => {} };\nlet sqlEditorLog: (...t: any[]) => void = () => {};\n\nif (attachDebugger && createLogger) {\n sqlEditorLogger = createLogger('SQLEditor');\n sqlEditorLog = sqlEditorLogger.logger;\n attachDebugger('sqleditor', undefined, sqlEditorLogger as any);\n}\n\nexport { sqlEditorLog, sqlEditorLogger };\n"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"debugger.js","sources":["../../../../../src/components/SQLEditor/utils/debugger.ts"],"sourcesContent":["import { attachDebugger, createLogger } from '@grafana/ui';\n\nlet sqlEditorLogger = { logger: () => {} };\nlet sqlEditorLog: (...t: any[]) => void = () => {};\n\nif (attachDebugger && createLogger) {\n sqlEditorLogger = createLogger('SQLEditor');\n sqlEditorLog = sqlEditorLogger.logger;\n attachDebugger('sqleditor', undefined, sqlEditorLogger as any);\n}\n\nexport { sqlEditorLog, sqlEditorLogger };\n"],"names":[],"mappings":";;AAEA,IAAI,eAAA,GAAkB,EAAE,MAAA,EAAQ,MAAM;AAAC,CAAA;AACvC,IAAI,eAAsC,MAAM;AAAC;AAEjD,IAAI,kBAAkB,YAAA,EAAc;AAClC,EAAA,eAAA,GAAkB,aAAa,WAAW,CAAA;AAC1C,EAAA,YAAA,GAAe,eAAA,CAAgB,MAAA;AAC/B,EAAA,cAAA,CAAe,WAAA,EAAa,QAAW,eAAsB,CAAA;AAC/D;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSuggestionKind.js","sources":["../../../../../src/components/SQLEditor/utils/getSuggestionKind.ts"],"sourcesContent":["import { type Registry } from '@grafana/data';\nimport { type SuggestionKindRegistryItem } from '../standardSql/suggestionsKindRegistry';\nimport { type StatementPosition, type SuggestionKind } from '../types';\n\n/**\n * Given statement positions, returns list of suggestion kinds that apply to those positions.\n */\nexport function getSuggestionKinds(\n statementPosition: StatementPosition[],\n suggestionsKindRegistry: Registry<SuggestionKindRegistryItem>\n): SuggestionKind[] {\n let result: SuggestionKind[] = [];\n for (let i = 0; i < statementPosition.length; i++) {\n const exists = suggestionsKindRegistry.getIfExists(statementPosition[i]);\n if (exists) {\n result = result.concat(exists.kind);\n }\n }\n\n return result;\n}\n"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"getSuggestionKind.js","sources":["../../../../../src/components/SQLEditor/utils/getSuggestionKind.ts"],"sourcesContent":["import { type Registry } from '@grafana/data';\nimport { type SuggestionKindRegistryItem } from '../standardSql/suggestionsKindRegistry';\nimport { type StatementPosition, type SuggestionKind } from '../types';\n\n/**\n * Given statement positions, returns list of suggestion kinds that apply to those positions.\n */\nexport function getSuggestionKinds(\n statementPosition: StatementPosition[],\n suggestionsKindRegistry: Registry<SuggestionKindRegistryItem>\n): SuggestionKind[] {\n let result: SuggestionKind[] = [];\n for (let i = 0; i < statementPosition.length; i++) {\n const exists = suggestionsKindRegistry.getIfExists(statementPosition[i]);\n if (exists) {\n result = result.concat(exists.kind);\n }\n }\n\n return result;\n}\n"],"names":[],"mappings":";;;AAOO,SAAS,kBAAA,CACd,mBACA,uBAAA,EACkB;AAClB,EAAA,IAAI,SAA2B,EAAC;AAChC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,iBAAA,CAAkB,QAAQ,CAAA,EAAA,EAAK;AACjD,IAAA,MAAM,MAAA,GAAS,uBAAA,CAAwB,WAAA,CAAY,iBAAA,CAAkB,CAAC,CAAC,CAAA;AACvE,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AAAA,IACpC;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TokenType } from '../types.js';
|
|
2
|
-
import { LinkedToken } from './LinkedToken.js';
|
|
3
1
|
import '@grafana/ui';
|
|
2
|
+
import { LinkedToken } from './LinkedToken.js';
|
|
3
|
+
import { TokenType } from './tokenType.js';
|
|
4
4
|
|
|
5
5
|
function linkedTokenBuilder(monaco, model, position, languageId = "sql") {
|
|
6
6
|
var _a;
|
|
@@ -14,7 +14,7 @@ function linkedTokenBuilder(monaco, model, position, languageId = "sql") {
|
|
|
14
14
|
offset: 0,
|
|
15
15
|
type: TokenType.Whitespace,
|
|
16
16
|
language: languageId,
|
|
17
|
-
_tokenBrand:
|
|
17
|
+
_tokenBrand: void 0
|
|
18
18
|
};
|
|
19
19
|
tokens.push(token);
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkedTokenBuilder.js","sources":["../../../../../src/components/SQLEditor/utils/linkedTokenBuilder.ts"],"sourcesContent":["import type { monacoTypes } from '@grafana/ui';\nimport { TokenType } from '../types';\nimport { LinkedToken } from './LinkedToken';\nimport { type Monaco } from './types';\n\nexport function linkedTokenBuilder(\n monaco: Monaco,\n model: monacoTypes.editor.ITextModel,\n position: monacoTypes.IPosition,\n languageId = 'sql'\n) {\n let current: LinkedToken | null = null;\n let previous: LinkedToken | null = null;\n const tokensPerLine = monaco.editor.tokenize(model.getValue() ?? '', languageId);\n for (let lineIndex = 0; lineIndex < tokensPerLine.length; lineIndex++) {\n const tokens = tokensPerLine[lineIndex];\n // In case position is first column in new line, add empty whitespace token so that links are not broken\n if (!tokens.length && previous) {\n const token: monacoTypes.Token = {\n offset: 0,\n type: TokenType.Whitespace,\n language: languageId,\n _tokenBrand: undefined,\n };\n tokens.push(token);\n }\n\n for (let columnIndex = 0; columnIndex < tokens.length; columnIndex++) {\n const token = tokens[columnIndex];\n let endColumn =\n tokens.length > columnIndex + 1 ? tokens[columnIndex + 1].offset + 1 : model.getLineLength(lineIndex + 1) + 1;\n\n const range: monacoTypes.IRange = {\n startLineNumber: lineIndex + 1,\n startColumn: token.offset === 0 ? 0 : token.offset + 1,\n endLineNumber: lineIndex + 1,\n endColumn,\n };\n\n const value = model.getValueInRange(range);\n const sqlToken: LinkedToken = new LinkedToken(token.type, value, range, previous, null);\n\n if (monaco.Range.containsPosition(range, position)) {\n current = sqlToken;\n }\n\n if (previous) {\n previous.next = sqlToken;\n }\n previous = sqlToken;\n }\n }\n return current;\n}\n"],"names":[],"mappings":";;;;AAKO,SAAS,
|
|
1
|
+
{"version":3,"file":"linkedTokenBuilder.js","sources":["../../../../../src/components/SQLEditor/utils/linkedTokenBuilder.ts"],"sourcesContent":["import type { monacoTypes } from '@grafana/ui';\nimport { TokenType } from '../types';\nimport { LinkedToken } from './LinkedToken';\nimport { type Monaco } from './types';\n\nexport function linkedTokenBuilder(\n monaco: Monaco,\n model: monacoTypes.editor.ITextModel,\n position: monacoTypes.IPosition,\n languageId = 'sql'\n) {\n let current: LinkedToken | null = null;\n let previous: LinkedToken | null = null;\n const tokensPerLine = monaco.editor.tokenize(model.getValue() ?? '', languageId);\n for (let lineIndex = 0; lineIndex < tokensPerLine.length; lineIndex++) {\n const tokens = tokensPerLine[lineIndex];\n // In case position is first column in new line, add empty whitespace token so that links are not broken\n if (!tokens.length && previous) {\n const token: monacoTypes.Token = {\n offset: 0,\n type: TokenType.Whitespace,\n language: languageId,\n _tokenBrand: undefined,\n };\n tokens.push(token);\n }\n\n for (let columnIndex = 0; columnIndex < tokens.length; columnIndex++) {\n const token = tokens[columnIndex];\n let endColumn =\n tokens.length > columnIndex + 1 ? tokens[columnIndex + 1].offset + 1 : model.getLineLength(lineIndex + 1) + 1;\n\n const range: monacoTypes.IRange = {\n startLineNumber: lineIndex + 1,\n startColumn: token.offset === 0 ? 0 : token.offset + 1,\n endLineNumber: lineIndex + 1,\n endColumn,\n };\n\n const value = model.getValueInRange(range);\n const sqlToken: LinkedToken = new LinkedToken(token.type, value, range, previous, null);\n\n if (monaco.Range.containsPosition(range, position)) {\n current = sqlToken;\n }\n\n if (previous) {\n previous.next = sqlToken;\n }\n previous = sqlToken;\n }\n }\n return current;\n}\n"],"names":[],"mappings":";;;;AAKO,SAAS,kBAAA,CACd,MAAA,EACA,KAAA,EACA,QAAA,EACA,aAAa,KAAA,EACb;AAVF,EAAA,IAAA,EAAA;AAWE,EAAA,IAAI,OAAA,GAA8B,IAAA;AAClC,EAAA,IAAI,QAAA,GAA+B,IAAA;AACnC,EAAA,MAAM,aAAA,GAAgB,OAAO,MAAA,CAAO,QAAA,CAAA,CAAS,WAAM,QAAA,EAAS,KAAf,IAAA,GAAA,EAAA,GAAoB,EAAA,EAAI,UAAU,CAAA;AAC/E,EAAA,KAAA,IAAS,SAAA,GAAY,CAAA,EAAG,SAAA,GAAY,aAAA,CAAc,QAAQ,SAAA,EAAA,EAAa;AACrE,IAAA,MAAM,MAAA,GAAS,cAAc,SAAS,CAAA;AAEtC,IAAA,IAAI,CAAC,MAAA,CAAO,MAAA,IAAU,QAAA,EAAU;AAC9B,MAAA,MAAM,KAAA,GAA2B;AAAA,QAC/B,MAAA,EAAQ,CAAA;AAAA,QACR,MAAM,SAAA,CAAU,UAAA;AAAA,QAChB,QAAA,EAAU,UAAA;AAAA,QACV,WAAA,EAAa;AAAA,OACf;AACA,MAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA,IACnB;AAEA,IAAA,KAAA,IAAS,WAAA,GAAc,CAAA,EAAG,WAAA,GAAc,MAAA,CAAO,QAAQ,WAAA,EAAA,EAAe;AACpE,MAAA,MAAM,KAAA,GAAQ,OAAO,WAAW,CAAA;AAChC,MAAA,IAAI,SAAA,GACF,MAAA,CAAO,MAAA,GAAS,WAAA,GAAc,IAAI,MAAA,CAAO,WAAA,GAAc,CAAC,CAAA,CAAE,SAAS,CAAA,GAAI,KAAA,CAAM,aAAA,CAAc,SAAA,GAAY,CAAC,CAAA,GAAI,CAAA;AAE9G,MAAA,MAAM,KAAA,GAA4B;AAAA,QAChC,iBAAiB,SAAA,GAAY,CAAA;AAAA,QAC7B,aAAa,KAAA,CAAM,MAAA,KAAW,CAAA,GAAI,CAAA,GAAI,MAAM,MAAA,GAAS,CAAA;AAAA,QACrD,eAAe,SAAA,GAAY,CAAA;AAAA,QAC3B;AAAA,OACF;AAEA,MAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,eAAA,CAAgB,KAAK,CAAA;AACzC,MAAA,MAAM,QAAA,GAAwB,IAAI,WAAA,CAAY,KAAA,CAAM,MAAM,KAAA,EAAO,KAAA,EAAO,UAAU,IAAI,CAAA;AAEtF,MAAA,IAAI,MAAA,CAAO,KAAA,CAAM,gBAAA,CAAiB,KAAA,EAAO,QAAQ,CAAA,EAAG;AAClD,QAAA,OAAA,GAAU,QAAA;AAAA,MACZ;AAEA,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,QAAA,CAAS,IAAA,GAAO,QAAA;AAAA,MAClB;AACA,MAAA,QAAA,GAAW,QAAA;AAAA,IACb;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toCompletionItem.js","sources":["../../../../../src/components/SQLEditor/utils/toCompletionItem.ts"],"sourcesContent":["import { type monacoTypes } from '@grafana/ui';\nimport { CompletionItemKind, CompletionItemPriority } from '../types';\n\nexport const toCompletionItem = (\n value: string,\n range: monacoTypes.IRange,\n rest: Partial<monacoTypes.languages.CompletionItem> = {}\n) => {\n const item: monacoTypes.languages.CompletionItem = {\n label: value,\n insertText: value,\n kind: CompletionItemKind.Field,\n sortText: CompletionItemPriority.Medium,\n range,\n ...rest,\n };\n return item;\n};\n"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,CAC9B,KAAA,EACA,
|
|
1
|
+
{"version":3,"file":"toCompletionItem.js","sources":["../../../../../src/components/SQLEditor/utils/toCompletionItem.ts"],"sourcesContent":["import { type monacoTypes } from '@grafana/ui';\nimport { CompletionItemKind, CompletionItemPriority } from '../types';\n\nexport const toCompletionItem = (\n value: string,\n range: monacoTypes.IRange,\n rest: Partial<monacoTypes.languages.CompletionItem> = {}\n) => {\n const item: monacoTypes.languages.CompletionItem = {\n label: value,\n insertText: value,\n kind: CompletionItemKind.Field,\n sortText: CompletionItemPriority.Medium,\n range,\n ...rest,\n };\n return item;\n};\n"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,CAC9B,KAAA,EACA,KAAA,EACA,IAAA,GAAsD,EAAC,KACpD;AACH,EAAA,MAAM,IAAA,GAA6C;AAAA,IACjD,KAAA,EAAO,KAAA;AAAA,IACP,UAAA,EAAY,KAAA;AAAA,IACZ,MAAM,kBAAA,CAAmB,KAAA;AAAA,IACzB,UAAU,sBAAA,CAAuB,MAAA;AAAA,IACjC,KAAA;AAAA,IACA,GAAG;AAAA,GACL;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var TokenType = /* @__PURE__ */ ((TokenType2) => {
|
|
2
|
+
TokenType2["Parenthesis"] = "delimiter.parenthesis.sql";
|
|
3
|
+
TokenType2["Whitespace"] = "white.sql";
|
|
4
|
+
TokenType2["Keyword"] = "keyword.sql";
|
|
5
|
+
TokenType2["Delimiter"] = "delimiter.sql";
|
|
6
|
+
TokenType2["Operator"] = "operator.sql";
|
|
7
|
+
TokenType2["Identifier"] = "identifier.sql";
|
|
8
|
+
TokenType2["IdentifierQuote"] = "identifier.quote.sql";
|
|
9
|
+
TokenType2["Type"] = "type.sql";
|
|
10
|
+
TokenType2["Function"] = "predefined.sql";
|
|
11
|
+
TokenType2["Number"] = "number.sql";
|
|
12
|
+
TokenType2["String"] = "string.sql";
|
|
13
|
+
TokenType2["Variable"] = "variable.sql";
|
|
14
|
+
return TokenType2;
|
|
15
|
+
})(TokenType || {});
|
|
16
|
+
|
|
17
|
+
export { TokenType };
|
|
18
|
+
//# sourceMappingURL=tokenType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenType.js","sources":["../../../../../src/components/SQLEditor/utils/tokenType.ts"],"sourcesContent":["export enum TokenType {\n Parenthesis = 'delimiter.parenthesis.sql',\n Whitespace = 'white.sql',\n Keyword = 'keyword.sql',\n Delimiter = 'delimiter.sql',\n Operator = 'operator.sql',\n Identifier = 'identifier.sql',\n IdentifierQuote = 'identifier.quote.sql',\n Type = 'type.sql',\n Function = 'predefined.sql',\n Number = 'number.sql',\n String = 'string.sql',\n Variable = 'variable.sql',\n}\n"],"names":["TokenType"],"mappings":"AAAO,IAAK,SAAA,qBAAAA,UAAAA,KAAL;AACL,EAAAA,WAAA,aAAA,CAAA,GAAc,2BAAA;AACd,EAAAA,WAAA,YAAA,CAAA,GAAa,WAAA;AACb,EAAAA,WAAA,SAAA,CAAA,GAAU,aAAA;AACV,EAAAA,WAAA,WAAA,CAAA,GAAY,eAAA;AACZ,EAAAA,WAAA,UAAA,CAAA,GAAW,cAAA;AACX,EAAAA,WAAA,YAAA,CAAA,GAAa,gBAAA;AACb,EAAAA,WAAA,iBAAA,CAAA,GAAkB,sBAAA;AAClB,EAAAA,WAAA,MAAA,CAAA,GAAO,UAAA;AACP,EAAAA,WAAA,UAAA,CAAA,GAAW,gBAAA;AACX,EAAAA,WAAA,QAAA,CAAA,GAAS,YAAA;AACT,EAAAA,WAAA,QAAA,CAAA,GAAS,YAAA;AACT,EAAAA,WAAA,UAAA,CAAA,GAAW,cAAA;AAZD,EAAA,OAAAA,UAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;;;;"}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import { FROM, SELECT } from '../standardSql/language.js';
|
|
2
|
-
import { TokenType } from '../types.js';
|
|
3
2
|
import '@grafana/ui';
|
|
3
|
+
import { TokenType } from './tokenType.js';
|
|
4
4
|
|
|
5
5
|
const getSelectToken = (currentToken) => {
|
|
6
6
|
var _a;
|
|
7
|
-
return (_a = currentToken == null ?
|
|
7
|
+
return (_a = currentToken == null ? void 0 : currentToken.getPreviousOfType(TokenType.Keyword, SELECT)) != null ? _a : null;
|
|
8
8
|
};
|
|
9
9
|
const getFromKeywordToken = (currentToken) => {
|
|
10
10
|
const selectToken = getSelectToken(currentToken);
|
|
11
|
-
return selectToken == null ?
|
|
11
|
+
return selectToken == null ? void 0 : selectToken.getNextOfType(TokenType.Keyword, FROM);
|
|
12
12
|
};
|
|
13
13
|
const getTableToken = (currentToken) => {
|
|
14
14
|
var _a;
|
|
15
15
|
const fromToken = getFromKeywordToken(currentToken);
|
|
16
|
-
const nextNonWhiteSpace = fromToken == null ?
|
|
17
|
-
if (nextNonWhiteSpace == null ?
|
|
16
|
+
const nextNonWhiteSpace = fromToken == null ? void 0 : fromToken.getNextNonWhiteSpaceToken();
|
|
17
|
+
if (nextNonWhiteSpace == null ? void 0 : nextNonWhiteSpace.isVariable()) {
|
|
18
18
|
return null;
|
|
19
|
-
} else if ((nextNonWhiteSpace == null ?
|
|
19
|
+
} else if ((nextNonWhiteSpace == null ? void 0 : nextNonWhiteSpace.isKeyword()) && ((_a = nextNonWhiteSpace.next) == null ? void 0 : _a.is(TokenType.Parenthesis, "("))) {
|
|
20
20
|
return null;
|
|
21
21
|
} else {
|
|
22
22
|
return nextNonWhiteSpace;
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
const defaultTableNameParser = (token) => {
|
|
26
|
-
const parts = token == null ?
|
|
27
|
-
if ((parts == null ?
|
|
26
|
+
const parts = token == null ? void 0 : token.value.split(".");
|
|
27
|
+
if ((parts == null ? void 0 : parts.length) === 1) {
|
|
28
28
|
return { table: parts[0] };
|
|
29
|
-
} else if ((parts == null ?
|
|
29
|
+
} else if ((parts == null ? void 0 : parts.length) === 2) {
|
|
30
30
|
return { schema: parts[0], table: parts[1] };
|
|
31
|
-
} else if ((parts == null ?
|
|
31
|
+
} else if ((parts == null ? void 0 : parts.length) === 3) {
|
|
32
32
|
return { catalog: parts[0], schema: parts[1], table: parts[2] };
|
|
33
33
|
}
|
|
34
34
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenUtils.js","sources":["../../../../../src/components/SQLEditor/utils/tokenUtils.ts"],"sourcesContent":["import { FROM, SCHEMA, SELECT } from '../standardSql/language';\nimport { TokenType } from '../types';\nimport { type LinkedToken } from './LinkedToken';\n\nexport const getSelectToken = (currentToken: LinkedToken | null) =>\n currentToken?.getPreviousOfType(TokenType.Keyword, SELECT) ?? null;\n\nexport const getSelectStatisticToken = (currentToken: LinkedToken | null) => {\n const assumedStatisticToken = getSelectToken(currentToken)?.getNextNonWhiteSpaceToken();\n return assumedStatisticToken?.isVariable() || assumedStatisticToken?.isFunction() ? assumedStatisticToken : null;\n};\n\nexport const getMetricNameToken = (currentToken: LinkedToken | null) => {\n // statistic function is followed by `(` and then an argument\n const assumedMetricNameToken = getSelectStatisticToken(currentToken)?.next?.next;\n return assumedMetricNameToken?.isVariable() || assumedMetricNameToken?.isIdentifier() ? assumedMetricNameToken : null;\n};\n\nexport const getFromKeywordToken = (currentToken: LinkedToken | null) => {\n const selectToken = getSelectToken(currentToken);\n return selectToken?.getNextOfType(TokenType.Keyword, FROM);\n};\n\nexport const getNamespaceToken = (currentToken: LinkedToken | null) => {\n const fromToken = getFromKeywordToken(currentToken);\n const nextNonWhiteSpace = fromToken?.getNextNonWhiteSpaceToken();\n\n if (\n nextNonWhiteSpace?.isDoubleQuotedString() ||\n (nextNonWhiteSpace?.isVariable() && nextNonWhiteSpace?.value.toUpperCase() !== SCHEMA)\n ) {\n // schema is not used\n return nextNonWhiteSpace;\n } else if (nextNonWhiteSpace?.isKeyword() && nextNonWhiteSpace.next?.is(TokenType.Parenthesis, '(')) {\n // schema is specified\n const assumedNamespaceToken = nextNonWhiteSpace.next?.next;\n if (assumedNamespaceToken?.isDoubleQuotedString() || assumedNamespaceToken?.isVariable()) {\n return assumedNamespaceToken;\n }\n }\n return null;\n};\nexport const getTableToken = (currentToken: LinkedToken | null) => {\n const fromToken = getFromKeywordToken(currentToken);\n const nextNonWhiteSpace = fromToken?.getNextNonWhiteSpaceToken();\n if (nextNonWhiteSpace?.isVariable()) {\n // TODO: resolve column from variable?\n return null;\n } else if (nextNonWhiteSpace?.isKeyword() && nextNonWhiteSpace.next?.is(TokenType.Parenthesis, '(')) {\n return null;\n } else {\n return nextNonWhiteSpace;\n }\n};\n\nexport const defaultTableNameParser = (token: LinkedToken | null | undefined) => {\n const parts = token?.value.split('.');\n\n if (parts?.length === 1) {\n return { table: parts[0] };\n } else if (parts?.length === 2) {\n return { schema: parts[0], table: parts[1] };\n } else if (parts?.length === 3) {\n return { catalog: parts[0], schema: parts[1], table: parts[2] };\n }\n\n return null;\n};\n"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"tokenUtils.js","sources":["../../../../../src/components/SQLEditor/utils/tokenUtils.ts"],"sourcesContent":["import { FROM, SCHEMA, SELECT } from '../standardSql/language';\nimport { TokenType } from '../types';\nimport { type LinkedToken } from './LinkedToken';\n\nexport const getSelectToken = (currentToken: LinkedToken | null) =>\n currentToken?.getPreviousOfType(TokenType.Keyword, SELECT) ?? null;\n\nexport const getSelectStatisticToken = (currentToken: LinkedToken | null) => {\n const assumedStatisticToken = getSelectToken(currentToken)?.getNextNonWhiteSpaceToken();\n return assumedStatisticToken?.isVariable() || assumedStatisticToken?.isFunction() ? assumedStatisticToken : null;\n};\n\nexport const getMetricNameToken = (currentToken: LinkedToken | null) => {\n // statistic function is followed by `(` and then an argument\n const assumedMetricNameToken = getSelectStatisticToken(currentToken)?.next?.next;\n return assumedMetricNameToken?.isVariable() || assumedMetricNameToken?.isIdentifier() ? assumedMetricNameToken : null;\n};\n\nexport const getFromKeywordToken = (currentToken: LinkedToken | null) => {\n const selectToken = getSelectToken(currentToken);\n return selectToken?.getNextOfType(TokenType.Keyword, FROM);\n};\n\nexport const getNamespaceToken = (currentToken: LinkedToken | null) => {\n const fromToken = getFromKeywordToken(currentToken);\n const nextNonWhiteSpace = fromToken?.getNextNonWhiteSpaceToken();\n\n if (\n nextNonWhiteSpace?.isDoubleQuotedString() ||\n (nextNonWhiteSpace?.isVariable() && nextNonWhiteSpace?.value.toUpperCase() !== SCHEMA)\n ) {\n // schema is not used\n return nextNonWhiteSpace;\n } else if (nextNonWhiteSpace?.isKeyword() && nextNonWhiteSpace.next?.is(TokenType.Parenthesis, '(')) {\n // schema is specified\n const assumedNamespaceToken = nextNonWhiteSpace.next?.next;\n if (assumedNamespaceToken?.isDoubleQuotedString() || assumedNamespaceToken?.isVariable()) {\n return assumedNamespaceToken;\n }\n }\n return null;\n};\nexport const getTableToken = (currentToken: LinkedToken | null) => {\n const fromToken = getFromKeywordToken(currentToken);\n const nextNonWhiteSpace = fromToken?.getNextNonWhiteSpaceToken();\n if (nextNonWhiteSpace?.isVariable()) {\n // TODO: resolve column from variable?\n return null;\n } else if (nextNonWhiteSpace?.isKeyword() && nextNonWhiteSpace.next?.is(TokenType.Parenthesis, '(')) {\n return null;\n } else {\n return nextNonWhiteSpace;\n }\n};\n\nexport const defaultTableNameParser = (token: LinkedToken | null | undefined) => {\n const parts = token?.value.split('.');\n\n if (parts?.length === 1) {\n return { table: parts[0] };\n } else if (parts?.length === 2) {\n return { schema: parts[0], table: parts[1] };\n } else if (parts?.length === 3) {\n return { catalog: parts[0], schema: parts[1], table: parts[2] };\n }\n\n return null;\n};\n"],"names":[],"mappings":";;;;AAIO,MAAM,cAAA,GAAiB,CAAC,YAAA,KAAkC;AAJjE,EAAA,IAAA,EAAA;AAKE,EAAA,OAAA,CAAA,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,iBAAA,CAAkB,SAAA,CAAU,OAAA,EAAS,MAAA,CAAA,KAAnD,IAAA,GAAA,EAAA,GAA8D,IAAA;AAAA;AAazD,MAAM,mBAAA,GAAsB,CAAC,YAAA,KAAqC;AACvE,EAAA,MAAM,WAAA,GAAc,eAAe,YAAY,CAAA;AAC/C,EAAA,OAAO,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,aAAA,CAAc,SAAA,CAAU,OAAA,EAAS,IAAA,CAAA;AACvD;AAqBO,MAAM,aAAA,GAAgB,CAAC,YAAA,KAAqC;AA1CnE,EAAA,IAAA,EAAA;AA2CE,EAAA,MAAM,SAAA,GAAY,oBAAoB,YAAY,CAAA;AAClD,EAAA,MAAM,oBAAoB,SAAA,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAW,yBAAA,EAAA;AACrC,EAAA,IAAI,uDAAmB,UAAA,EAAA,EAAc;AAEnC,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,MAAA,IAAA,CAAW,uDAAmB,SAAA,EAAA,MAAA,CAAe,EAAA,GAAA,iBAAA,CAAkB,SAAlB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAwB,EAAA,CAAG,SAAA,CAAU,WAAA,EAAa,GAAA,CAAA,CAAA,EAAM;AACnG,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,MAAO;AACL,IAAA,OAAO,iBAAA;AAAA,EACT;AACF;AAEO,MAAM,sBAAA,GAAyB,CAAC,KAAA,KAA0C;AAC/E,EAAA,MAAM,KAAA,GAAQ,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,KAAA,CAAM,KAAA,CAAM,GAAA,CAAA;AAEjC,EAAA,IAAA,CAAI,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,YAAW,CAAA,EAAG;AACvB,IAAA,OAAO,EAAE,KAAA,EAAO,KAAA,CAAM,CAAC,CAAA,EAAE;AAAA,EAC3B,CAAA,MAAA,IAAA,CAAW,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,MAAA,MAAW,CAAA,EAAG;AAC9B,IAAA,OAAO,EAAE,QAAQ,KAAA,CAAM,CAAC,GAAG,KAAA,EAAO,KAAA,CAAM,CAAC,CAAA,EAAE;AAAA,EAC7C,CAAA,MAAA,IAAA,CAAW,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,MAAA,MAAW,CAAA,EAAG;AAC9B,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,CAAM,CAAC,CAAA,EAAG,MAAA,EAAQ,KAAA,CAAM,CAAC,CAAA,EAAG,KAAA,EAAO,KAAA,CAAM,CAAC,CAAA,EAAE;AAAA,EAChE;AAEA,EAAA,OAAO,IAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Segment.js","sources":["../../../../src/components/Segment/Segment.tsx"],"sourcesContent":["import React, { useEffect, type ComponentProps, useState } from 'react';\nimport { Segment as GrafanaSegment } from '@grafana/ui';\nimport { type SelectableValue } from '@grafana/data';\nimport { useDebounce } from '../../hooks/useDebounce';\n\nexport interface SegmentProps<T> extends Omit<ComponentProps<typeof GrafanaSegment<T>>, 'onChange'> {\n value: T;\n onDebounce: (debouncedSegment?: T) => void;\n delay?: number;\n}\n\nexport function Segment<T>(props: SegmentProps<T>) {\n const { delay, onDebounce, value, options, ...rest } = props;\n const [input, setInput] = useState(value);\n\n const debouncedSegment = useDebounce(input, delay);\n\n // TODO: We should fix the exhaustive-deps rule\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => onDebounce(debouncedSegment), [debouncedSegment]);\n useEffect(() => setInput(value), [value]);\n\n return (\n <GrafanaSegment\n options={options}\n onChange={(ev: SelectableValue<T>) => setInput(ev.value!)}\n value={input}\n {...rest}\n />\n );\n}\n"],"names":["GrafanaSegment"],"mappings":";;;;;AAWO,SAAS,QAAW,
|
|
1
|
+
{"version":3,"file":"Segment.js","sources":["../../../../src/components/Segment/Segment.tsx"],"sourcesContent":["import React, { useEffect, type ComponentProps, useState } from 'react';\nimport { Segment as GrafanaSegment } from '@grafana/ui';\nimport { type SelectableValue } from '@grafana/data';\nimport { useDebounce } from '../../hooks/useDebounce';\n\nexport interface SegmentProps<T> extends Omit<ComponentProps<typeof GrafanaSegment<T>>, 'onChange'> {\n value: T;\n onDebounce: (debouncedSegment?: T) => void;\n delay?: number;\n}\n\nexport function Segment<T>(props: SegmentProps<T>) {\n const { delay, onDebounce, value, options, ...rest } = props;\n const [input, setInput] = useState(value);\n\n const debouncedSegment = useDebounce(input, delay);\n\n // TODO: We should fix the exhaustive-deps rule\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => onDebounce(debouncedSegment), [debouncedSegment]);\n useEffect(() => setInput(value), [value]);\n\n return (\n <GrafanaSegment\n options={options}\n onChange={(ev: SelectableValue<T>) => setInput(ev.value!)}\n value={input}\n {...rest}\n />\n );\n}\n"],"names":["GrafanaSegment"],"mappings":";;;;;AAWO,SAAS,QAAW,KAAA,EAAwB;AACjD,EAAA,MAAM,EAAE,KAAA,EAAO,UAAA,EAAY,OAAO,OAAA,EAAS,GAAG,MAAK,GAAI,KAAA;AACvD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,KAAK,CAAA;AAExC,EAAA,MAAM,gBAAA,GAAmB,WAAA,CAAY,KAAA,EAAO,KAAK,CAAA;AAIjD,EAAA,SAAA,CAAU,MAAM,UAAA,CAAW,gBAAgB,CAAA,EAAG,CAAC,gBAAgB,CAAC,CAAA;AAChE,EAAA,SAAA,CAAU,MAAM,QAAA,CAAS,KAAK,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAExC,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAACA,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,QAAA,EAAU,CAAC,EAAA,KAA2B,QAAA,CAAS,GAAG,KAAM,CAAA;AAAA,MACxD,KAAA,EAAO,KAAA;AAAA,MACN,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
|
|
@@ -30,8 +30,8 @@ class QueryModellerBase {
|
|
|
30
30
|
hasBinaryOp(query) {
|
|
31
31
|
return query.operations.find((op) => {
|
|
32
32
|
const def = this.getOperationDefinition(op.id);
|
|
33
|
-
return (def == null ?
|
|
34
|
-
}) !==
|
|
33
|
+
return (def == null ? void 0 : def.category) === BINARY_OPERATIONS_KEY;
|
|
34
|
+
}) !== void 0;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryModellerBase.js","sources":["../../../../src/components/VisualQueryBuilder/QueryModellerBase.ts"],"sourcesContent":["import { Registry } from '@grafana/data';\n\nimport {\n BINARY_OPERATIONS_KEY,\n type VisualQuery,\n type VisualQueryBinary,\n type QueryBuilderLabelFilter,\n type QueryBuilderOperation,\n type VisualQueryModeller,\n type QueryBuilderOperationDefinition,\n} from './types';\n\nexport abstract class QueryModellerBase implements VisualQueryModeller {\n protected operationsRegistry: Registry<QueryBuilderOperationDefinition>;\n private categories: string[] = [];\n innerQueryPlaceholder: string;\n\n constructor(operationDefinitions: QueryBuilderOperationDefinition[], innerQueryPlaceholder?: string) {\n this.operationsRegistry = new Registry<QueryBuilderOperationDefinition>(() => operationDefinitions);\n this.innerQueryPlaceholder = innerQueryPlaceholder || '<query>';\n }\n\n protected setOperationCategories(categories: string[]) {\n this.categories = categories;\n }\n\n abstract renderOperations(queryString: string, operations: QueryBuilderOperation[]): string;\n\n abstract renderBinaryQueries(queryString: string, binaryQueries?: Array<VisualQueryBinary<VisualQuery>>): string;\n\n abstract renderLabels(labels: QueryBuilderLabelFilter[]): string;\n\n abstract renderQuery(query: VisualQuery, nested?: boolean): string;\n\n getOperationsForCategory(category: string) {\n return this.operationsRegistry.list().filter((op) => op.category === category && !op.hideFromList);\n }\n\n getAlternativeOperations(key: string) {\n return this.operationsRegistry.list().filter((op) => op.alternativesKey && op.alternativesKey === key);\n }\n\n getCategories() {\n return this.categories;\n }\n\n getOperationDefinition(id: string): QueryBuilderOperationDefinition | undefined {\n return this.operationsRegistry.getIfExists(id);\n }\n\n hasBinaryOp(query: VisualQuery): boolean {\n return (\n query.operations.find((op) => {\n const def = this.getOperationDefinition(op.id);\n return def?.category === BINARY_OPERATIONS_KEY;\n }) !== undefined\n );\n }\n}\n"],"names":[],"mappings":";;;;;;AAYO,MAAe,
|
|
1
|
+
{"version":3,"file":"QueryModellerBase.js","sources":["../../../../src/components/VisualQueryBuilder/QueryModellerBase.ts"],"sourcesContent":["import { Registry } from '@grafana/data';\n\nimport {\n BINARY_OPERATIONS_KEY,\n type VisualQuery,\n type VisualQueryBinary,\n type QueryBuilderLabelFilter,\n type QueryBuilderOperation,\n type VisualQueryModeller,\n type QueryBuilderOperationDefinition,\n} from './types';\n\nexport abstract class QueryModellerBase implements VisualQueryModeller {\n protected operationsRegistry: Registry<QueryBuilderOperationDefinition>;\n private categories: string[] = [];\n innerQueryPlaceholder: string;\n\n constructor(operationDefinitions: QueryBuilderOperationDefinition[], innerQueryPlaceholder?: string) {\n this.operationsRegistry = new Registry<QueryBuilderOperationDefinition>(() => operationDefinitions);\n this.innerQueryPlaceholder = innerQueryPlaceholder || '<query>';\n }\n\n protected setOperationCategories(categories: string[]) {\n this.categories = categories;\n }\n\n abstract renderOperations(queryString: string, operations: QueryBuilderOperation[]): string;\n\n abstract renderBinaryQueries(queryString: string, binaryQueries?: Array<VisualQueryBinary<VisualQuery>>): string;\n\n abstract renderLabels(labels: QueryBuilderLabelFilter[]): string;\n\n abstract renderQuery(query: VisualQuery, nested?: boolean): string;\n\n getOperationsForCategory(category: string) {\n return this.operationsRegistry.list().filter((op) => op.category === category && !op.hideFromList);\n }\n\n getAlternativeOperations(key: string) {\n return this.operationsRegistry.list().filter((op) => op.alternativesKey && op.alternativesKey === key);\n }\n\n getCategories() {\n return this.categories;\n }\n\n getOperationDefinition(id: string): QueryBuilderOperationDefinition | undefined {\n return this.operationsRegistry.getIfExists(id);\n }\n\n hasBinaryOp(query: VisualQuery): boolean {\n return (\n query.operations.find((op) => {\n const def = this.getOperationDefinition(op.id);\n return def?.category === BINARY_OPERATIONS_KEY;\n }) !== undefined\n );\n }\n}\n"],"names":[],"mappings":";;;;;;AAYO,MAAe,iBAAA,CAAiD;AAAA,EAKrE,WAAA,CAAY,sBAAyD,qBAAA,EAAgC;AAJrG,IAAA,aAAA,CAAA,IAAA,EAAU,oBAAA,CAAA;AACV,IAAA,aAAA,CAAA,IAAA,EAAQ,cAAuB,EAAC,CAAA;AAChC,IAAA,aAAA,CAAA,IAAA,EAAA,uBAAA,CAAA;AAGE,IAAA,IAAA,CAAK,kBAAA,GAAqB,IAAI,QAAA,CAA0C,MAAM,oBAAoB,CAAA;AAClG,IAAA,IAAA,CAAK,wBAAwB,qBAAA,IAAyB,SAAA;AAAA,EACxD;AAAA,EAEU,uBAAuB,UAAA,EAAsB;AACrD,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAAA,EACpB;AAAA,EAUA,yBAAyB,QAAA,EAAkB;AACzC,IAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,IAAA,EAAK,CAAE,MAAA,CAAO,CAAC,EAAA,KAAO,EAAA,CAAG,QAAA,KAAa,QAAA,IAAY,CAAC,EAAA,CAAG,YAAY,CAAA;AAAA,EACnG;AAAA,EAEA,yBAAyB,GAAA,EAAa;AACpC,IAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,IAAA,EAAK,CAAE,MAAA,CAAO,CAAC,EAAA,KAAO,EAAA,CAAG,eAAA,IAAmB,EAAA,CAAG,eAAA,KAAoB,GAAG,CAAA;AAAA,EACvG;AAAA,EAEA,aAAA,GAAgB;AACd,IAAA,OAAO,IAAA,CAAK,UAAA;AAAA,EACd;AAAA,EAEA,uBAAuB,EAAA,EAAyD;AAC9E,IAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,WAAA,CAAY,EAAE,CAAA;AAAA,EAC/C;AAAA,EAEA,YAAY,KAAA,EAA6B;AACvC,IAAA,OACE,KAAA,CAAM,UAAA,CAAW,IAAA,CAAK,CAAC,EAAA,KAAO;AAC5B,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,sBAAA,CAAuB,EAAA,CAAG,EAAE,CAAA;AAC7C,MAAA,OAAA,CAAO,2BAAK,QAAA,MAAa,qBAAA;AAAA,IAC3B,CAAC,CAAA,KAAM,MAAA;AAAA,EAEX;AACF;;;;"}
|