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