@grafana/plugin-ui 0.10.9 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +1799 -1325
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +94 -46
- package/dist/esm/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js +42 -38
- package/dist/esm/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/Auth.js +19 -14
- package/dist/esm/components/ConfigEditor/Auth/Auth.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js +19 -15
- package/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/auth-method/BasicAuth.js +52 -49
- package/dist/esm/components/ConfigEditor/Auth/auth-method/BasicAuth.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeader.js +59 -55
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeader.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js +20 -17
- package/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js +28 -28
- package/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/SkipTLSVerification.js +2 -2
- package/dist/esm/components/ConfigEditor/Auth/tls/SkipTLSVerification.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js +84 -82
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettings.js +10 -7
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettings.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettingsSection.js +8 -2
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSSettingsSection.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Auth/utils.js +2 -1
- package/dist/esm/components/ConfigEditor/Auth/utils.js.map +1 -1
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js +14 -11
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigDescriptionLink.js.map +1 -1
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSection.js +2 -2
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSection.js.map +1 -1
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSubSection.js +2 -2
- package/dist/esm/components/ConfigEditor/ConfigSection/ConfigSubSection.js.map +1 -1
- package/dist/esm/components/ConfigEditor/ConfigSection/GenericConfigSection.js +19 -11
- package/dist/esm/components/ConfigEditor/ConfigSection/GenericConfigSection.js.map +1 -1
- package/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js +24 -19
- package/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js.map +1 -1
- package/dist/esm/components/ConfigEditor/DataSourceDescription.js +12 -2
- package/dist/esm/components/ConfigEditor/DataSourceDescription.js.map +1 -1
- package/dist/esm/components/ConfigEditor/SecureSocksProxyToggle.js +24 -20
- package/dist/esm/components/ConfigEditor/SecureSocksProxyToggle.js.map +1 -1
- package/dist/esm/components/CustomHeadersSettings/CustomHeadersSettings.js +69 -60
- package/dist/esm/components/CustomHeadersSettings/CustomHeadersSettings.js.map +1 -1
- package/dist/esm/components/DataLinks/DataLink.js +104 -89
- package/dist/esm/components/DataLinks/DataLink.js.map +1 -1
- package/dist/esm/components/DataLinks/DataLinks.js +48 -41
- package/dist/esm/components/DataLinks/DataLinks.js.map +1 -1
- package/dist/esm/components/DataSourcePicker/DataSourcePicker.js +9 -4
- package/dist/esm/components/DataSourcePicker/DataSourcePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +6 -5
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePickerWithInput/DatePickerWithInput.js +19 -15
- package/dist/esm/components/DatePickerWithInput/DatePickerWithInput.js.map +1 -1
- package/dist/esm/components/DebounceInput/DebounceInput.js +6 -5
- package/dist/esm/components/DebounceInput/DebounceInput.js.map +1 -1
- package/dist/esm/components/Plugins/PluginSignatureBadge.js +3 -2
- package/dist/esm/components/Plugins/PluginSignatureBadge.js.map +1 -1
- package/dist/esm/components/QueryEditor/AccessoryButton.js +2 -2
- package/dist/esm/components/QueryEditor/AccessoryButton.js.map +1 -1
- package/dist/esm/components/QueryEditor/CatalogSelector.js +54 -0
- package/dist/esm/components/QueryEditor/CatalogSelector.js.map +1 -0
- package/dist/esm/components/QueryEditor/ConfirmModal.js +18 -8
- package/dist/esm/components/QueryEditor/ConfirmModal.js.map +1 -1
- package/dist/esm/components/QueryEditor/DatasetSelector.js +3 -2
- package/dist/esm/components/QueryEditor/DatasetSelector.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorField.js +11 -3
- package/dist/esm/components/QueryEditor/EditorField.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorFieldGroup.js +2 -2
- 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 +11 -7
- package/dist/esm/components/QueryEditor/EditorList.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorRow.js +2 -2
- 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 +2 -2
- package/dist/esm/components/QueryEditor/EditorStack.js.map +1 -1
- package/dist/esm/components/QueryEditor/EditorSwitch.js +3 -2
- package/dist/esm/components/QueryEditor/EditorSwitch.js.map +1 -1
- package/dist/esm/components/QueryEditor/FlexItem.js +2 -2
- package/dist/esm/components/QueryEditor/FlexItem.js.map +1 -1
- package/dist/esm/components/QueryEditor/InlineSelect.js +12 -4
- package/dist/esm/components/QueryEditor/InlineSelect.js.map +1 -1
- package/dist/esm/components/QueryEditor/InputGroup.js +3 -2
- package/dist/esm/components/QueryEditor/InputGroup.js.map +1 -1
- package/dist/esm/components/QueryEditor/QueryEditor.js +44 -37
- package/dist/esm/components/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/esm/components/QueryEditor/QueryHeader.js +172 -95
- package/dist/esm/components/QueryEditor/QueryHeader.js.map +1 -1
- package/dist/esm/components/QueryEditor/RunQueryButton.js +13 -9
- package/dist/esm/components/QueryEditor/RunQueryButton.js.map +1 -1
- package/dist/esm/components/QueryEditor/SchemaSelector.js +56 -0
- package/dist/esm/components/QueryEditor/SchemaSelector.js.map +1 -0
- 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 +21 -7
- package/dist/esm/components/QueryEditor/TableSelector.js.map +1 -1
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryEditorRaw.js +6 -5
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryEditorRaw.js.map +1 -1
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryToolbox.js +26 -18
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryToolbox.js.map +1 -1
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryValidator.js +19 -2
- package/dist/esm/components/QueryEditor/query-editor-raw/QueryValidator.js.map +1 -1
- package/dist/esm/components/QueryEditor/query-editor-raw/RawEditor.js +42 -38
- package/dist/esm/components/QueryEditor/query-editor-raw/RawEditor.js.map +1 -1
- package/dist/esm/components/QueryEditor/types.js +1 -0
- package/dist/esm/components/QueryEditor/types.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js +8 -8
- package/dist/esm/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorField.js +11 -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 +2 -2
- package/dist/esm/components/QueryEditor/visual-query-builder/EditorRows.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/GroupByRow.js +16 -12
- package/dist/esm/components/QueryEditor/visual-query-builder/GroupByRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/OrderByRow.js +29 -20
- package/dist/esm/components/QueryEditor/visual-query-builder/OrderByRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/Preview.js +7 -4
- package/dist/esm/components/QueryEditor/visual-query-builder/Preview.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLGroupByRow.js +2 -2
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLGroupByRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLOrderByRow.js +2 -2
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLOrderByRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLSelectRow.js +2 -2
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLSelectRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLWhereRow.js +4 -4
- package/dist/esm/components/QueryEditor/visual-query-builder/SQLWhereRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/SelectRow.js +52 -44
- package/dist/esm/components/QueryEditor/visual-query-builder/SelectRow.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/VisualEditor.js +11 -2
- package/dist/esm/components/QueryEditor/visual-query-builder/VisualEditor.js.map +1 -1
- package/dist/esm/components/QueryEditor/visual-query-builder/WhereRow.js +4 -3
- package/dist/esm/components/QueryEditor/visual-query-builder/WhereRow.js.map +1 -1
- package/dist/esm/components/QueryEditorRow/QueryEditorRow.js +6 -2
- package/dist/esm/components/QueryEditorRow/QueryEditorRow.js.map +1 -1
- package/dist/esm/components/SQLEditor/components/SQLEditor.js +40 -34
- package/dist/esm/components/SQLEditor/components/SQLEditor.js.map +1 -1
- package/dist/esm/components/SQLEditor/hooks/useLatestCallback.js +16 -0
- package/dist/esm/components/SQLEditor/hooks/useLatestCallback.js.map +1 -0
- package/dist/esm/components/SQLEditor/standardSql/definition.js +1 -0
- package/dist/esm/components/SQLEditor/standardSql/definition.js.map +1 -1
- package/dist/esm/components/Segment/Segment.js +4 -3
- package/dist/esm/components/Segment/Segment.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilterItem.js +105 -99
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilterItem.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilters.js +28 -27
- package/dist/esm/components/VisualQueryBuilder/components/LabelFilters.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditor.js +31 -26
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditor.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditorBody.js +70 -55
- package/dist/esm/components/VisualQueryBuilder/components/OperationEditorBody.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationExplainedBox.js +11 -2
- package/dist/esm/components/VisualQueryBuilder/components/OperationExplainedBox.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationHeader.js +75 -62
- package/dist/esm/components/VisualQueryBuilder/components/OperationHeader.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationInfoButton.js +39 -28
- package/dist/esm/components/VisualQueryBuilder/components/OperationInfoButton.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationList.js +38 -31
- package/dist/esm/components/VisualQueryBuilder/components/OperationList.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationListExplained.js +15 -14
- package/dist/esm/components/VisualQueryBuilder/components/OperationListExplained.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationParamEditor.js +35 -31
- package/dist/esm/components/VisualQueryBuilder/components/OperationParamEditor.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/OperationsEditorRow.js +3 -2
- package/dist/esm/components/VisualQueryBuilder/components/OperationsEditorRow.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryBuilderHints.js +12 -9
- package/dist/esm/components/VisualQueryBuilder/components/QueryBuilderHints.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryEditorModeToggle.js +2 -2
- package/dist/esm/components/VisualQueryBuilder/components/QueryEditorModeToggle.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryHeaderSwitch.js +6 -2
- package/dist/esm/components/VisualQueryBuilder/components/QueryHeaderSwitch.js.map +1 -1
- package/dist/esm/components/VisualQueryBuilder/components/QueryOptionGroup.js +20 -12
- 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/index.d.ts +94 -46
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useMemo } from 'react';
|
|
2
3
|
import { css } from '@emotion/css';
|
|
3
4
|
import { useTheme2, Field, Select } from '@grafana/ui';
|
|
4
5
|
import '@grafana/data';
|
|
@@ -95,7 +96,7 @@ const AuthMethodSettings = ({
|
|
|
95
96
|
}
|
|
96
97
|
let AuthFieldsComponent = null;
|
|
97
98
|
if (selected === AuthMethod.BasicAuth && basicAuth) {
|
|
98
|
-
AuthFieldsComponent = /* @__PURE__ */
|
|
99
|
+
AuthFieldsComponent = /* @__PURE__ */ jsx(BasicAuth, { ...basicAuth, readOnly });
|
|
99
100
|
} else if (selected.startsWith("custom-")) {
|
|
100
101
|
AuthFieldsComponent = (_b = (_a = customMethods == null ? undefined : customMethods.find((m) => m.id === selected)) == null ? undefined : _a.component) != null ? _b : null;
|
|
101
102
|
}
|
|
@@ -113,19 +114,22 @@ const AuthMethodSettings = ({
|
|
|
113
114
|
marginTop: spacing(1.5)
|
|
114
115
|
})
|
|
115
116
|
};
|
|
116
|
-
return /* @__PURE__ */
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
117
|
+
return /* @__PURE__ */ jsx(ConfigSubSection, { title, description, children: /* @__PURE__ */ jsxs("div", { className: styles.authMethods, children: [
|
|
118
|
+
hasSelect && /* @__PURE__ */ jsx(Field, { label: "Authentication method", children: /* @__PURE__ */ jsx(
|
|
119
|
+
Select,
|
|
120
|
+
{
|
|
121
|
+
inputId: "auth-method-select",
|
|
122
|
+
options: preparedOptions,
|
|
123
|
+
value: selected,
|
|
124
|
+
onChange: (option) => {
|
|
125
|
+
setAuthMethodChanged(true);
|
|
126
|
+
onAuthMethodSelect(option.value);
|
|
127
|
+
},
|
|
128
|
+
disabled: readOnly
|
|
129
|
+
}
|
|
130
|
+
) }),
|
|
131
|
+
AuthFieldsComponent && /* @__PURE__ */ jsx("div", { className: styles.selectedMethodFields, children: AuthFieldsComponent })
|
|
132
|
+
] }) });
|
|
129
133
|
};
|
|
130
134
|
|
|
131
135
|
export { AuthMethodSettings };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthMethodSettings.js","sources":["../../../../../../src/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.tsx"],"sourcesContent":["import React, { type ReactElement, useMemo, useState } from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme2, Select, Field } from '@grafana/ui';\nimport { type SelectableValue } from '@grafana/data';\nimport { BasicAuth, type Props as BasicAuthProps } from './BasicAuth';\nimport { ConfigSubSection } from '../../ConfigSection';\nimport { AuthMethod, type CustomMethod, type CustomMethodId, type AuthMethodSelectOption } from '../types';\n\nconst defaultOptions: Record<AuthMethod, SelectableValue<AuthMethod>> = {\n [AuthMethod.BasicAuth]: {\n label: 'Basic authentication',\n value: AuthMethod.BasicAuth,\n description: 'Authenticate with your data source username and password',\n },\n [AuthMethod.CrossSiteCredentials]: {\n label: 'Enable cross-site access control requests',\n value: AuthMethod.CrossSiteCredentials,\n description:\n 'Allow cross-site Access-Control requests with your existing credentials and cookies. This enables the server to authenticate the user and perform authorized requests on their behalf on other domains.',\n },\n [AuthMethod.OAuthForward]: {\n label: 'Forward OAuth Identity',\n value: AuthMethod.OAuthForward,\n description:\n 'Forward the OAuth access token (and if available: the OIDC ID token) of the user querying to the data source',\n },\n [AuthMethod.NoAuth]: {\n label: 'No Authentication',\n value: AuthMethod.NoAuth,\n description: 'Data source is available without authentication',\n },\n};\n\nexport type Props = {\n selectedMethod: AuthMethod | CustomMethodId;\n mostCommonMethod?: AuthMethod | CustomMethodId;\n visibleMethods?: Array<AuthMethod | CustomMethodId>;\n defaultOptionsOverrides?: Partial<Record<AuthMethod, AuthMethodSelectOption>>;\n customMethods?: CustomMethod[];\n onAuthMethodSelect: (authType: AuthMethod | CustomMethodId) => void;\n basicAuth?: Omit<BasicAuthProps, 'readOnly'>;\n readOnly: boolean;\n};\n\nexport const AuthMethodSettings = ({\n selectedMethod,\n mostCommonMethod,\n visibleMethods: visibleMethodsFromProps,\n defaultOptionsOverrides,\n customMethods,\n onAuthMethodSelect,\n basicAuth,\n readOnly,\n}: Props) => {\n const [authMethodChanged, setAuthMethodChanged] = useState(false);\n const { colors, spacing } = useTheme2();\n const visibleMethods: Array<AuthMethod | CustomMethodId> = useMemo(\n () =>\n visibleMethodsFromProps ?? [\n AuthMethod.BasicAuth,\n AuthMethod.OAuthForward,\n AuthMethod.NoAuth,\n ...(customMethods?.map((m) => m.id) ?? []),\n ],\n [customMethods, visibleMethodsFromProps]\n );\n const hasSelect = visibleMethods.length > 1;\n\n const preparedOptions = useMemo(() => {\n const customOptions =\n customMethods?.reduce<Record<CustomMethodId, SelectableValue<CustomMethodId>>>((acc, method) => {\n acc[method.id] = {\n label: method.label,\n value: method.id,\n description: method.description,\n };\n return acc;\n }, {}) ?? {};\n\n const preparedDefaultOptions = {} as Record<AuthMethod, SelectableValue<AuthMethod>>;\n let k: keyof typeof AuthMethod;\n for (k in defaultOptions) {\n preparedDefaultOptions[k] = {\n ...defaultOptions[k],\n ...defaultOptionsOverrides?.[k],\n };\n }\n\n const allOptions: Record<AuthMethod | CustomMethodId, SelectableValue<AuthMethod | CustomMethodId>> = {\n ...customOptions,\n ...preparedDefaultOptions,\n };\n\n return visibleMethods\n .filter((method) => Boolean(allOptions[method]))\n .map((method) => {\n const option = allOptions[method];\n if (method === mostCommonMethod && hasSelect) {\n return {\n ...option,\n label: `${option.label} (most common)`,\n };\n }\n return option;\n });\n }, [visibleMethods, customMethods, defaultOptionsOverrides, mostCommonMethod, hasSelect]);\n\n let selected = selectedMethod;\n if (!hasSelect) {\n selected = visibleMethods[0];\n } else if (selectedMethod === AuthMethod.NoAuth && mostCommonMethod && !authMethodChanged) {\n selected = mostCommonMethod;\n }\n\n let AuthFieldsComponent: ReactElement | null = null;\n if (selected === AuthMethod.BasicAuth && basicAuth) {\n AuthFieldsComponent = <BasicAuth {...basicAuth} readOnly={readOnly} />;\n } else if (selected.startsWith('custom-')) {\n AuthFieldsComponent = customMethods?.find((m) => m.id === selected)?.component ?? null;\n }\n\n const title = hasSelect ? 'Authentication methods' : (preparedOptions[0].label ?? '');\n\n const description = hasSelect\n ? 'Choose an authentication method to access the data source'\n : (preparedOptions[0].description ?? '');\n\n const styles = {\n authMethods: css({\n marginTop: spacing(2.5),\n ...(hasSelect && {\n padding: spacing(2),\n border: `1px solid ${colors.border.weak}`,\n }),\n }),\n selectedMethodFields: css({\n marginTop: spacing(1.5),\n }),\n };\n\n return (\n <ConfigSubSection title={title} description={description}>\n <div className={styles.authMethods}>\n {hasSelect && (\n <Field label=\"Authentication method\">\n <Select\n inputId=\"auth-method-select\"\n options={preparedOptions}\n value={selected}\n onChange={(option) => {\n setAuthMethodChanged(true);\n onAuthMethodSelect(option.value!);\n }}\n disabled={readOnly}\n />\n </Field>\n )}\n {AuthFieldsComponent && <div className={styles.selectedMethodFields}>{AuthFieldsComponent}</div>}\n </div>\n </ConfigSubSection>\n );\n};\n"],"names":["_a","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthMethodSettings.js","sources":["../../../../../../src/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.tsx"],"sourcesContent":["import { type ReactElement, useMemo, useState } from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme2, Select, Field } from '@grafana/ui';\nimport { type SelectableValue } from '@grafana/data';\nimport { BasicAuth, type Props as BasicAuthProps } from './BasicAuth';\nimport { ConfigSubSection } from '../../ConfigSection';\nimport { AuthMethod, type CustomMethod, type CustomMethodId, type AuthMethodSelectOption } from '../types';\n\nconst defaultOptions: Record<AuthMethod, SelectableValue<AuthMethod>> = {\n [AuthMethod.BasicAuth]: {\n label: 'Basic authentication',\n value: AuthMethod.BasicAuth,\n description: 'Authenticate with your data source username and password',\n },\n [AuthMethod.CrossSiteCredentials]: {\n label: 'Enable cross-site access control requests',\n value: AuthMethod.CrossSiteCredentials,\n description:\n 'Allow cross-site Access-Control requests with your existing credentials and cookies. This enables the server to authenticate the user and perform authorized requests on their behalf on other domains.',\n },\n [AuthMethod.OAuthForward]: {\n label: 'Forward OAuth Identity',\n value: AuthMethod.OAuthForward,\n description:\n 'Forward the OAuth access token (and if available: the OIDC ID token) of the user querying to the data source',\n },\n [AuthMethod.NoAuth]: {\n label: 'No Authentication',\n value: AuthMethod.NoAuth,\n description: 'Data source is available without authentication',\n },\n};\n\nexport type Props = {\n selectedMethod: AuthMethod | CustomMethodId;\n mostCommonMethod?: AuthMethod | CustomMethodId;\n visibleMethods?: Array<AuthMethod | CustomMethodId>;\n defaultOptionsOverrides?: Partial<Record<AuthMethod, AuthMethodSelectOption>>;\n customMethods?: CustomMethod[];\n onAuthMethodSelect: (authType: AuthMethod | CustomMethodId) => void;\n basicAuth?: Omit<BasicAuthProps, 'readOnly'>;\n readOnly: boolean;\n};\n\nexport const AuthMethodSettings = ({\n selectedMethod,\n mostCommonMethod,\n visibleMethods: visibleMethodsFromProps,\n defaultOptionsOverrides,\n customMethods,\n onAuthMethodSelect,\n basicAuth,\n readOnly,\n}: Props) => {\n const [authMethodChanged, setAuthMethodChanged] = useState(false);\n const { colors, spacing } = useTheme2();\n const visibleMethods: Array<AuthMethod | CustomMethodId> = useMemo(\n () =>\n visibleMethodsFromProps ?? [\n AuthMethod.BasicAuth,\n AuthMethod.OAuthForward,\n AuthMethod.NoAuth,\n ...(customMethods?.map((m) => m.id) ?? []),\n ],\n [customMethods, visibleMethodsFromProps]\n );\n const hasSelect = visibleMethods.length > 1;\n\n const preparedOptions = useMemo(() => {\n const customOptions =\n customMethods?.reduce<Record<CustomMethodId, SelectableValue<CustomMethodId>>>((acc, method) => {\n acc[method.id] = {\n label: method.label,\n value: method.id,\n description: method.description,\n };\n return acc;\n }, {}) ?? {};\n\n const preparedDefaultOptions = {} as Record<AuthMethod, SelectableValue<AuthMethod>>;\n let k: keyof typeof AuthMethod;\n for (k in defaultOptions) {\n preparedDefaultOptions[k] = {\n ...defaultOptions[k],\n ...defaultOptionsOverrides?.[k],\n };\n }\n\n const allOptions: Record<AuthMethod | CustomMethodId, SelectableValue<AuthMethod | CustomMethodId>> = {\n ...customOptions,\n ...preparedDefaultOptions,\n };\n\n return visibleMethods\n .filter((method) => Boolean(allOptions[method]))\n .map((method) => {\n const option = allOptions[method];\n if (method === mostCommonMethod && hasSelect) {\n return {\n ...option,\n label: `${option.label} (most common)`,\n };\n }\n return option;\n });\n }, [visibleMethods, customMethods, defaultOptionsOverrides, mostCommonMethod, hasSelect]);\n\n let selected = selectedMethod;\n if (!hasSelect) {\n selected = visibleMethods[0];\n } else if (selectedMethod === AuthMethod.NoAuth && mostCommonMethod && !authMethodChanged) {\n selected = mostCommonMethod;\n }\n\n let AuthFieldsComponent: ReactElement | null = null;\n if (selected === AuthMethod.BasicAuth && basicAuth) {\n AuthFieldsComponent = <BasicAuth {...basicAuth} readOnly={readOnly} />;\n } else if (selected.startsWith('custom-')) {\n AuthFieldsComponent = customMethods?.find((m) => m.id === selected)?.component ?? null;\n }\n\n const title = hasSelect ? 'Authentication methods' : (preparedOptions[0].label ?? '');\n\n const description = hasSelect\n ? 'Choose an authentication method to access the data source'\n : (preparedOptions[0].description ?? '');\n\n const styles = {\n authMethods: css({\n marginTop: spacing(2.5),\n ...(hasSelect && {\n padding: spacing(2),\n border: `1px solid ${colors.border.weak}`,\n }),\n }),\n selectedMethodFields: css({\n marginTop: spacing(1.5),\n }),\n };\n\n return (\n <ConfigSubSection title={title} description={description}>\n <div className={styles.authMethods}>\n {hasSelect && (\n <Field label=\"Authentication method\">\n <Select\n inputId=\"auth-method-select\"\n options={preparedOptions}\n value={selected}\n onChange={(option) => {\n setAuthMethodChanged(true);\n onAuthMethodSelect(option.value!);\n }}\n disabled={readOnly}\n />\n </Field>\n )}\n {AuthFieldsComponent && <div className={styles.selectedMethodFields}>{AuthFieldsComponent}</div>}\n </div>\n </ConfigSubSection>\n );\n};\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { css, cx } from '@emotion/css';
|
|
3
3
|
import { InlineField, Input, SecretInput } from '@grafana/ui';
|
|
4
4
|
import { useCommonStyles } from '../styles.js';
|
|
@@ -23,59 +23,62 @@ const BasicAuth = ({
|
|
|
23
23
|
marginBottom: 0
|
|
24
24
|
})
|
|
25
25
|
};
|
|
26
|
-
return /* @__PURE__ */
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
className: commonStyles.inlineFieldNoMarginRight,
|
|
30
|
-
label: userLabel,
|
|
31
|
-
labelWidth: 24,
|
|
32
|
-
tooltip: userTooltip,
|
|
33
|
-
required: true,
|
|
34
|
-
htmlFor: "basic-auth-user-input",
|
|
35
|
-
interactive: true,
|
|
36
|
-
grow: true,
|
|
37
|
-
disabled: readOnly
|
|
38
|
-
},
|
|
39
|
-
/* @__PURE__ */ React__default.createElement(
|
|
40
|
-
Input,
|
|
26
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
27
|
+
/* @__PURE__ */ jsx(
|
|
28
|
+
InlineField,
|
|
41
29
|
{
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
required: true
|
|
30
|
+
className: commonStyles.inlineFieldNoMarginRight,
|
|
31
|
+
label: userLabel,
|
|
32
|
+
labelWidth: 24,
|
|
33
|
+
tooltip: userTooltip,
|
|
34
|
+
required: true,
|
|
35
|
+
htmlFor: "basic-auth-user-input",
|
|
36
|
+
interactive: true,
|
|
37
|
+
grow: true,
|
|
38
|
+
disabled: readOnly,
|
|
39
|
+
children: /* @__PURE__ */ jsx(
|
|
40
|
+
Input,
|
|
41
|
+
{
|
|
42
|
+
id: "basic-auth-user-input",
|
|
43
|
+
placeholder: userPlaceholder,
|
|
44
|
+
value: user,
|
|
45
|
+
onChange: (e) => onUserChange(e.currentTarget.value),
|
|
46
|
+
required: true
|
|
47
|
+
}
|
|
48
|
+
)
|
|
47
49
|
}
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
{
|
|
52
|
-
className: cx(
|
|
53
|
-
commonStyles.inlineFieldNoMarginRight,
|
|
54
|
-
commonStyles.inlineFieldWithSecret,
|
|
55
|
-
styles.lastInlineField
|
|
56
|
-
),
|
|
57
|
-
label: passwordLabel,
|
|
58
|
-
labelWidth: 24,
|
|
59
|
-
tooltip: passwordTooltip,
|
|
60
|
-
required: true,
|
|
61
|
-
htmlFor: "basic-auth-password-input",
|
|
62
|
-
interactive: true,
|
|
63
|
-
grow: true,
|
|
64
|
-
disabled: readOnly
|
|
65
|
-
},
|
|
66
|
-
/* @__PURE__ */ React__default.createElement(
|
|
67
|
-
SecretInput,
|
|
50
|
+
),
|
|
51
|
+
/* @__PURE__ */ jsx(
|
|
52
|
+
InlineField,
|
|
68
53
|
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
54
|
+
className: cx(
|
|
55
|
+
commonStyles.inlineFieldNoMarginRight,
|
|
56
|
+
commonStyles.inlineFieldWithSecret,
|
|
57
|
+
styles.lastInlineField
|
|
58
|
+
),
|
|
59
|
+
label: passwordLabel,
|
|
60
|
+
labelWidth: 24,
|
|
61
|
+
tooltip: passwordTooltip,
|
|
62
|
+
required: true,
|
|
63
|
+
htmlFor: "basic-auth-password-input",
|
|
64
|
+
interactive: true,
|
|
65
|
+
grow: true,
|
|
66
|
+
disabled: readOnly,
|
|
67
|
+
children: /* @__PURE__ */ jsx(
|
|
68
|
+
SecretInput,
|
|
69
|
+
{
|
|
70
|
+
id: "basic-auth-password-input",
|
|
71
|
+
isConfigured: passwordConfigured,
|
|
72
|
+
onReset: readOnly ? () => {
|
|
73
|
+
} : onPasswordReset,
|
|
74
|
+
placeholder: passwordPlaceholder,
|
|
75
|
+
onChange: (e) => onPasswordChange(e.currentTarget.value),
|
|
76
|
+
required: true
|
|
77
|
+
}
|
|
78
|
+
)
|
|
76
79
|
}
|
|
77
80
|
)
|
|
78
|
-
)
|
|
81
|
+
] });
|
|
79
82
|
};
|
|
80
83
|
|
|
81
84
|
export { BasicAuth };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasicAuth.js","sources":["../../../../../../src/components/ConfigEditor/Auth/auth-method/BasicAuth.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"BasicAuth.js","sources":["../../../../../../src/components/ConfigEditor/Auth/auth-method/BasicAuth.tsx"],"sourcesContent":["import { cx, css } from '@emotion/css';\nimport { InlineField, Input, type PopoverContent, SecretInput } from '@grafana/ui';\nimport { useCommonStyles } from '../styles';\n\nexport type Props = {\n user?: string;\n passwordConfigured: boolean;\n userLabel?: string;\n userTooltip?: PopoverContent;\n userPlaceholder?: string;\n passwordLabel?: string;\n passwordTooltip?: PopoverContent;\n passwordPlaceholder?: string;\n onUserChange: (user: string) => void;\n onPasswordChange: (password: string) => void;\n onPasswordReset: () => void;\n readOnly: boolean;\n};\n\nexport const BasicAuth = ({\n user,\n passwordConfigured,\n userLabel = 'User',\n userTooltip = 'The username of the data source account',\n userPlaceholder = 'User',\n passwordLabel = 'Password',\n passwordTooltip = 'The password of the data source account',\n passwordPlaceholder = 'Password',\n onUserChange,\n onPasswordChange,\n onPasswordReset,\n readOnly,\n}: Props) => {\n const commonStyles = useCommonStyles();\n const styles = {\n lastInlineField: css({\n marginBottom: 0,\n }),\n };\n return (\n <>\n <InlineField\n className={commonStyles.inlineFieldNoMarginRight}\n label={userLabel}\n labelWidth={24}\n tooltip={userTooltip}\n required\n htmlFor=\"basic-auth-user-input\"\n interactive\n grow\n disabled={readOnly}\n >\n <Input\n id=\"basic-auth-user-input\"\n placeholder={userPlaceholder}\n value={user}\n onChange={(e) => onUserChange(e.currentTarget.value)}\n required\n />\n </InlineField>\n <InlineField\n className={cx(\n commonStyles.inlineFieldNoMarginRight,\n commonStyles.inlineFieldWithSecret,\n styles.lastInlineField\n )}\n label={passwordLabel}\n labelWidth={24}\n tooltip={passwordTooltip}\n required\n htmlFor=\"basic-auth-password-input\"\n interactive\n grow\n disabled={readOnly}\n >\n <SecretInput\n id=\"basic-auth-password-input\"\n isConfigured={passwordConfigured}\n onReset={readOnly ? () => {} : onPasswordReset}\n placeholder={passwordPlaceholder}\n onChange={(e) => onPasswordChange(e.currentTarget.value)}\n required\n />\n </InlineField>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;AAmBO,MAAM,YAAY,CAAC;AAAA,EACxB,IAAA;AAAA,EACA,kBAAA;AAAA,EACA,SAAY,GAAA,MAAA;AAAA,EACZ,WAAc,GAAA,yCAAA;AAAA,EACd,eAAkB,GAAA,MAAA;AAAA,EAClB,aAAgB,GAAA,UAAA;AAAA,EAChB,eAAkB,GAAA,yCAAA;AAAA,EAClB,mBAAsB,GAAA,UAAA;AAAA,EACtB,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAa,KAAA;AACX,EAAA,MAAM,eAAe,eAAgB,EAAA;AACrC,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,iBAAiB,GAAI,CAAA;AAAA,MACnB,YAAc,EAAA;AAAA,KACf;AAAA,GACH;AACA,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,WAAW,YAAa,CAAA,wBAAA;AAAA,QACxB,KAAO,EAAA,SAAA;AAAA,QACP,UAAY,EAAA,EAAA;AAAA,QACZ,OAAS,EAAA,WAAA;AAAA,QACT,QAAQ,EAAA,IAAA;AAAA,QACR,OAAQ,EAAA,uBAAA;AAAA,QACR,WAAW,EAAA,IAAA;AAAA,QACX,IAAI,EAAA,IAAA;AAAA,QACJ,QAAU,EAAA,QAAA;AAAA,QAEV,QAAA,kBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,EAAG,EAAA,uBAAA;AAAA,YACH,WAAa,EAAA,eAAA;AAAA,YACb,KAAO,EAAA,IAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,YAAa,CAAA,CAAA,CAAE,cAAc,KAAK,CAAA;AAAA,YACnD,QAAQ,EAAA;AAAA;AAAA;AACV;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,EAAA;AAAA,UACT,YAAa,CAAA,wBAAA;AAAA,UACb,YAAa,CAAA,qBAAA;AAAA,UACb,MAAO,CAAA;AAAA,SACT;AAAA,QACA,KAAO,EAAA,aAAA;AAAA,QACP,UAAY,EAAA,EAAA;AAAA,QACZ,OAAS,EAAA,eAAA;AAAA,QACT,QAAQ,EAAA,IAAA;AAAA,QACR,OAAQ,EAAA,2BAAA;AAAA,QACR,WAAW,EAAA,IAAA;AAAA,QACX,IAAI,EAAA,IAAA;AAAA,QACJ,QAAU,EAAA,QAAA;AAAA,QAEV,QAAA,kBAAA,GAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACC,EAAG,EAAA,2BAAA;AAAA,YACH,YAAc,EAAA,kBAAA;AAAA,YACd,OAAA,EAAS,WAAW,MAAM;AAAA,aAAK,GAAA,eAAA;AAAA,YAC/B,WAAa,EAAA,mBAAA;AAAA,YACb,UAAU,CAAC,CAAA,KAAM,gBAAiB,CAAA,CAAA,CAAE,cAAc,KAAK,CAAA;AAAA,YACvD,QAAQ,EAAA;AAAA;AAAA;AACV;AAAA;AACF,GACF,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { css, cx } from '@emotion/css';
|
|
3
3
|
import { useTheme2, InlineFieldRow, InlineField, Input, SecretInput, IconButton } from '@grafana/ui';
|
|
4
4
|
import { useCommonStyles } from '../styles.js';
|
|
@@ -26,65 +26,69 @@ const CustomHeader = ({ header, onChange, onBlur, onDelete, readOnly }) => {
|
|
|
26
26
|
margin: `0 0 3px 10px`
|
|
27
27
|
})
|
|
28
28
|
};
|
|
29
|
-
return /* @__PURE__ */
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
label: "Header",
|
|
33
|
-
labelWidth: 9,
|
|
34
|
-
grow: true,
|
|
35
|
-
className: styles.headerNameField,
|
|
36
|
-
htmlFor: `custom-header-${header.id}-name-input`,
|
|
37
|
-
disabled: readOnly
|
|
38
|
-
},
|
|
39
|
-
/* @__PURE__ */ React__default.createElement(
|
|
40
|
-
Input,
|
|
29
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(InlineFieldRow, { className: styles.container, children: [
|
|
30
|
+
/* @__PURE__ */ jsx(
|
|
31
|
+
InlineField,
|
|
41
32
|
{
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
33
|
+
label: "Header",
|
|
34
|
+
labelWidth: 9,
|
|
35
|
+
grow: true,
|
|
36
|
+
className: styles.headerNameField,
|
|
37
|
+
htmlFor: `custom-header-${header.id}-name-input`,
|
|
38
|
+
disabled: readOnly,
|
|
39
|
+
children: /* @__PURE__ */ jsx(
|
|
40
|
+
Input,
|
|
41
|
+
{
|
|
42
|
+
id: `custom-header-${header.id}-name-input`,
|
|
43
|
+
placeholder: "X-Custom-Header",
|
|
44
|
+
value: header.name,
|
|
45
|
+
width: 12,
|
|
46
|
+
onChange: (e) => onChange({ ...header, name: e.currentTarget.value }),
|
|
47
|
+
onBlur,
|
|
48
|
+
className: styles.input
|
|
49
|
+
}
|
|
50
|
+
)
|
|
49
51
|
}
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
52
|
+
),
|
|
53
|
+
/* @__PURE__ */ jsx(
|
|
54
|
+
InlineField,
|
|
55
|
+
{
|
|
56
|
+
label: "Value",
|
|
57
|
+
labelWidth: 9,
|
|
58
|
+
grow: true,
|
|
59
|
+
className: cx(commonStyles.inlineFieldWithSecret, styles.headerValueField),
|
|
60
|
+
htmlFor: `custom-header-${header.id}-value-input`,
|
|
61
|
+
disabled: readOnly,
|
|
62
|
+
children: /* @__PURE__ */ jsx(
|
|
63
|
+
SecretInput,
|
|
64
|
+
{
|
|
65
|
+
id: `custom-header-${header.id}-value-input`,
|
|
66
|
+
isConfigured: header.configured,
|
|
67
|
+
placeholder: "Header value",
|
|
68
|
+
value: header.value,
|
|
69
|
+
width: 12,
|
|
70
|
+
onChange: (e) => onChange({ ...header, value: e.currentTarget.value }),
|
|
71
|
+
onReset: readOnly ? () => {
|
|
72
|
+
} : () => onChange({ ...header, configured: false, value: "" }),
|
|
73
|
+
onBlur,
|
|
74
|
+
className: styles.input
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
),
|
|
79
|
+
/* @__PURE__ */ jsx(
|
|
80
|
+
IconButton,
|
|
63
81
|
{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
} : () => onChange({ ...header, configured: false, value: "" }),
|
|
72
|
-
onBlur,
|
|
73
|
-
className: styles.input
|
|
82
|
+
name: "trash-alt",
|
|
83
|
+
tooltip: "Remove header",
|
|
84
|
+
tooltipPlacement: "top",
|
|
85
|
+
className: styles.removeHeaderBtn,
|
|
86
|
+
onClick: onDelete,
|
|
87
|
+
type: "button",
|
|
88
|
+
disabled: readOnly
|
|
74
89
|
}
|
|
75
90
|
)
|
|
76
|
-
)
|
|
77
|
-
IconButton,
|
|
78
|
-
{
|
|
79
|
-
name: "trash-alt",
|
|
80
|
-
tooltip: "Remove header",
|
|
81
|
-
tooltipPlacement: "top",
|
|
82
|
-
className: styles.removeHeaderBtn,
|
|
83
|
-
onClick: onDelete,
|
|
84
|
-
type: "button",
|
|
85
|
-
disabled: readOnly
|
|
86
|
-
}
|
|
87
|
-
)));
|
|
91
|
+
] }) });
|
|
88
92
|
};
|
|
89
93
|
|
|
90
94
|
export { CustomHeader };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomHeader.js","sources":["../../../../../../src/components/ConfigEditor/Auth/custom-headers/CustomHeader.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"CustomHeader.js","sources":["../../../../../../src/components/ConfigEditor/Auth/custom-headers/CustomHeader.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport { InlineFieldRow, InlineField, Input, IconButton, useTheme2, SecretInput } from '@grafana/ui';\nimport type { LocalHeader } from '../types';\nimport { useCommonStyles } from '../styles';\n\nexport type Props = {\n header: LocalHeader;\n onChange: (header: LocalHeader) => void;\n onBlur: () => void;\n onDelete: () => void;\n readOnly: boolean;\n};\n\nexport const CustomHeader = ({ header, onChange, onBlur, onDelete, readOnly }: Props) => {\n const { spacing } = useTheme2();\n const commonStyles = useCommonStyles();\n const styles = {\n container: css({\n alignItems: 'center',\n }),\n input: css({\n minWidth: '100%',\n }),\n headerNameField: css({\n width: '40%',\n marginRight: 0,\n paddingRight: spacing(1),\n }),\n headerValueField: css({\n width: '45%',\n marginRight: 0,\n }),\n removeHeaderBtn: css({\n margin: `0 0 3px 10px`,\n }),\n };\n\n return (\n <>\n <InlineFieldRow className={styles.container}>\n <InlineField\n label=\"Header\"\n labelWidth={9}\n grow\n className={styles.headerNameField}\n htmlFor={`custom-header-${header.id}-name-input`}\n disabled={readOnly}\n >\n <Input\n id={`custom-header-${header.id}-name-input`}\n placeholder=\"X-Custom-Header\"\n value={header.name}\n width={12}\n onChange={(e) => onChange({ ...header, name: e.currentTarget.value })}\n onBlur={onBlur}\n className={styles.input}\n />\n </InlineField>\n <InlineField\n label=\"Value\"\n labelWidth={9}\n grow\n className={cx(commonStyles.inlineFieldWithSecret, styles.headerValueField)}\n htmlFor={`custom-header-${header.id}-value-input`}\n disabled={readOnly}\n >\n <SecretInput\n id={`custom-header-${header.id}-value-input`}\n isConfigured={header.configured}\n placeholder=\"Header value\"\n value={header.value}\n width={12}\n onChange={(e) => onChange({ ...header, value: e.currentTarget.value })}\n onReset={readOnly ? () => {} : () => onChange({ ...header, configured: false, value: '' })}\n onBlur={onBlur}\n className={styles.input}\n />\n </InlineField>\n <IconButton\n name=\"trash-alt\"\n tooltip=\"Remove header\"\n tooltipPlacement=\"top\"\n className={styles.removeHeaderBtn}\n onClick={onDelete}\n type=\"button\"\n disabled={readOnly}\n />\n </InlineFieldRow>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
2
3
|
import { css } from '@emotion/css';
|
|
3
4
|
import { useTheme2, Button } from '@grafana/ui';
|
|
4
5
|
import { CustomHeader } from './CustomHeader.js';
|
|
@@ -71,27 +72,29 @@ const CustomHeaders = ({ headers: headersFromProps, onChange, readOnly }) => {
|
|
|
71
72
|
marginTop: spacing(1.5)
|
|
72
73
|
})
|
|
73
74
|
};
|
|
74
|
-
return /* @__PURE__ */
|
|
75
|
+
return /* @__PURE__ */ jsx("div", { className: styles.container, children: /* @__PURE__ */ jsxs(
|
|
75
76
|
ConfigSubSection,
|
|
76
77
|
{
|
|
77
78
|
title: "HTTP headers",
|
|
78
79
|
description: "Pass along additional context and metadata about the request/response",
|
|
79
80
|
isCollapsible: true,
|
|
80
|
-
isInitiallyOpen: headers.length > 0
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
81
|
+
isInitiallyOpen: headers.length > 0,
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ jsx("div", { children: headers.map((header) => /* @__PURE__ */ jsx(
|
|
84
|
+
CustomHeader,
|
|
85
|
+
{
|
|
86
|
+
header,
|
|
87
|
+
onChange: (header2) => onHeaderChange(header2.id, header2),
|
|
88
|
+
onDelete: () => onHeaderDelete(header.id),
|
|
89
|
+
onBlur,
|
|
90
|
+
readOnly
|
|
91
|
+
},
|
|
92
|
+
header.id
|
|
93
|
+
)) }),
|
|
94
|
+
/* @__PURE__ */ jsx("div", { className: styles.addHeaderButton, children: /* @__PURE__ */ jsx(Button, { icon: "plus", variant: "secondary", fill: "outline", onClick: onHeaderAdd, disabled: readOnly, children: headers.length === 0 ? "Add header" : "Add another header" }) })
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
) });
|
|
95
98
|
};
|
|
96
99
|
function uniqueId() {
|
|
97
100
|
return Math.random().toString(16).slice(2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomHeaders.js","sources":["../../../../../../src/components/ConfigEditor/Auth/custom-headers/CustomHeaders.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"CustomHeaders.js","sources":["../../../../../../src/components/ConfigEditor/Auth/custom-headers/CustomHeaders.tsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { css } from '@emotion/css';\nimport { Button, useTheme2 } from '@grafana/ui';\nimport { CustomHeader } from './CustomHeader';\nimport { ConfigSubSection } from '../../ConfigSection';\nimport type { Header, HeaderWithValue, LocalHeader } from '../types';\n\nexport type Props = {\n headers: Header[];\n onChange: (headers: HeaderWithValue[]) => void;\n readOnly: boolean;\n};\n\nexport const CustomHeaders = ({ headers: headersFromProps, onChange, readOnly }: Props) => {\n const { spacing } = useTheme2();\n\n const [headers, setHeaders] = useState<LocalHeader[]>(\n headersFromProps.map((header) => ({\n ...header,\n id: uniqueId(),\n value: '',\n }))\n );\n\n useEffect(() => {\n setHeaders((headers) => {\n let changed = false;\n const newHeaders = headers.map<LocalHeader>((header) => {\n const configured = headersFromProps.find((h) => h.name === header.name)?.configured;\n if (typeof configured !== 'undefined' && header.configured !== configured) {\n changed = true;\n return { ...header, configured };\n }\n return header;\n });\n\n if (changed) {\n return newHeaders;\n }\n\n return headers;\n });\n }, [headersFromProps]);\n\n const onHeaderAdd = () => {\n setHeaders([...headers, { id: uniqueId(), name: '', value: '', configured: false }]);\n };\n\n const onHeaderChange = (id: string, header: LocalHeader) => {\n setHeaders(headers.map((h) => (h.id === id ? { ...header } : h)));\n };\n\n const onHeaderDelete = (id: string) => {\n const index = headers.findIndex((h) => h.id === id);\n if (index === -1) {\n return;\n }\n const newHeaders = [...headers];\n newHeaders.splice(index, 1);\n setHeaders(newHeaders);\n onChange(\n newHeaders.map(({ name, value, configured }) => ({\n name,\n value,\n configured,\n }))\n );\n };\n\n const onBlur = () => {\n onChange(\n headers.map(({ name, value, configured }) => ({\n name,\n value,\n configured,\n }))\n );\n };\n\n const styles = {\n container: css({\n marginTop: spacing(3),\n }),\n addHeaderButton: css({\n marginTop: spacing(1.5),\n }),\n };\n\n return (\n <div className={styles.container}>\n <ConfigSubSection\n title=\"HTTP headers\"\n description=\"Pass along additional context and metadata about the request/response\"\n isCollapsible\n isInitiallyOpen={headers.length > 0}\n >\n <div>\n {headers.map((header) => (\n <CustomHeader\n key={header.id}\n header={header}\n onChange={(header) => onHeaderChange(header.id, header)}\n onDelete={() => onHeaderDelete(header.id)}\n onBlur={onBlur}\n readOnly={readOnly}\n />\n ))}\n </div>\n <div className={styles.addHeaderButton}>\n <Button icon=\"plus\" variant=\"secondary\" fill=\"outline\" onClick={onHeaderAdd} disabled={readOnly}>\n {headers.length === 0 ? 'Add header' : 'Add another header'}\n </Button>\n </div>\n </ConfigSubSection>\n </div>\n );\n};\n\nfunction uniqueId(): string {\n return Math.random().toString(16).slice(2);\n}\n"],"names":["headers","header"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { cx } from '@emotion/css';
|
|
3
3
|
import { InlineField, SecretTextArea } from '@grafana/ui';
|
|
4
4
|
import { TLSSettingsSection } from './TLSSettingsSection.js';
|
|
@@ -15,42 +15,42 @@ const SelfSignedCertificate = ({
|
|
|
15
15
|
}) => {
|
|
16
16
|
var _a;
|
|
17
17
|
const commonStyles = useCommonStyles();
|
|
18
|
-
return /* @__PURE__ */
|
|
18
|
+
return /* @__PURE__ */ jsx(
|
|
19
19
|
TLSSettingsSection,
|
|
20
20
|
{
|
|
21
21
|
enabled,
|
|
22
22
|
label: "Add self-signed certificate",
|
|
23
23
|
tooltipText: "Add your own Certificate Authority (CA) certificate on top of one generated by the certificate authorities for additional security measures",
|
|
24
24
|
onToggle: (newEnabled) => onToggle(newEnabled),
|
|
25
|
-
readOnly
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
InlineField,
|
|
29
|
-
{
|
|
30
|
-
label: "CA Certificate",
|
|
31
|
-
labelWidth: 24,
|
|
32
|
-
tooltip: (_a = tooltips == null ? undefined : tooltips.certificateLabel) != null ? _a : "Your self-signed certificate",
|
|
33
|
-
required: true,
|
|
34
|
-
htmlFor: "self-signed-certificate-input",
|
|
35
|
-
interactive: true,
|
|
36
|
-
grow: true,
|
|
37
|
-
className: cx(commonStyles.inlineFieldNoMarginRight, commonStyles.inlineFieldWithSecret),
|
|
38
|
-
disabled: readOnly
|
|
39
|
-
},
|
|
40
|
-
/* @__PURE__ */ React__default.createElement(
|
|
41
|
-
SecretTextArea,
|
|
25
|
+
readOnly,
|
|
26
|
+
children: /* @__PURE__ */ jsx(
|
|
27
|
+
InlineField,
|
|
42
28
|
{
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
29
|
+
label: "CA Certificate",
|
|
30
|
+
labelWidth: 24,
|
|
31
|
+
tooltip: (_a = tooltips == null ? undefined : tooltips.certificateLabel) != null ? _a : "Your self-signed certificate",
|
|
32
|
+
required: true,
|
|
33
|
+
htmlFor: "self-signed-certificate-input",
|
|
34
|
+
interactive: true,
|
|
35
|
+
grow: true,
|
|
36
|
+
className: cx(commonStyles.inlineFieldNoMarginRight, commonStyles.inlineFieldWithSecret),
|
|
37
|
+
disabled: readOnly,
|
|
38
|
+
children: /* @__PURE__ */ jsx(
|
|
39
|
+
SecretTextArea,
|
|
40
|
+
{
|
|
41
|
+
id: "self-signed-certificate-input",
|
|
42
|
+
isConfigured: certificateConfigured,
|
|
43
|
+
onChange: (e) => onCertificateChange(e.currentTarget.value),
|
|
44
|
+
onReset: readOnly ? () => {
|
|
45
|
+
} : onCertificateReset,
|
|
46
|
+
placeholder: "Begins with --- BEGIN CERTIFICATE ---",
|
|
47
|
+
rows: 6,
|
|
48
|
+
required: true
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
51
|
}
|
|
52
52
|
)
|
|
53
|
-
|
|
53
|
+
}
|
|
54
54
|
);
|
|
55
55
|
};
|
|
56
56
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelfSignedCertificate.js","sources":["../../../../../../src/components/ConfigEditor/Auth/tls/SelfSignedCertificate.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"SelfSignedCertificate.js","sources":["../../../../../../src/components/ConfigEditor/Auth/tls/SelfSignedCertificate.tsx"],"sourcesContent":["import { cx } from '@emotion/css';\nimport { InlineField, SecretTextArea } from '@grafana/ui';\nimport { TLSSettingsSection } from './TLSSettingsSection';\nimport { useCommonStyles } from '../styles';\n\nexport type Props = {\n enabled: boolean;\n onToggle: (enabled: boolean) => void;\n certificateConfigured: boolean;\n onCertificateChange: (certificate: string) => void;\n onCertificateReset: () => void;\n tooltips?: {\n certificateLabel?: string;\n };\n readOnly: boolean;\n};\n\nexport const SelfSignedCertificate = ({\n enabled,\n certificateConfigured,\n onToggle,\n onCertificateChange,\n onCertificateReset,\n tooltips,\n readOnly,\n}: Props) => {\n const commonStyles = useCommonStyles();\n\n return (\n <TLSSettingsSection\n enabled={enabled}\n label=\"Add self-signed certificate\"\n tooltipText=\"Add your own Certificate Authority (CA) certificate on top of one generated by the certificate authorities for additional security measures\"\n onToggle={(newEnabled) => onToggle(newEnabled)}\n readOnly={readOnly}\n >\n <InlineField\n label=\"CA Certificate\"\n labelWidth={24}\n tooltip={tooltips?.certificateLabel ?? 'Your self-signed certificate'}\n required\n htmlFor=\"self-signed-certificate-input\"\n interactive\n grow\n className={cx(commonStyles.inlineFieldNoMarginRight, commonStyles.inlineFieldWithSecret)}\n disabled={readOnly}\n >\n <SecretTextArea\n id=\"self-signed-certificate-input\"\n isConfigured={certificateConfigured}\n onChange={(e) => onCertificateChange(e.currentTarget.value)}\n onReset={readOnly ? () => {} : onCertificateReset}\n placeholder=\"Begins with --- BEGIN CERTIFICATE ---\"\n rows={6}\n required\n />\n </InlineField>\n </TLSSettingsSection>\n );\n};\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,wBAAwB,CAAC;AAAA,EACpC,OAAA;AAAA,EACA,qBAAA;AAAA,EACA,QAAA;AAAA,EACA,mBAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAa,KAAA;AAzBb,EAAA,IAAA,EAAA;AA0BE,EAAA,MAAM,eAAe,eAAgB,EAAA;AAErC,EACE,uBAAA,GAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,KAAM,EAAA,6BAAA;AAAA,MACN,WAAY,EAAA,6IAAA;AAAA,MACZ,QAAU,EAAA,CAAC,UAAe,KAAA,QAAA,CAAS,UAAU,CAAA;AAAA,MAC7C,QAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,KAAM,EAAA,gBAAA;AAAA,UACN,UAAY,EAAA,EAAA;AAAA,UACZ,OAAA,EAAA,CAAS,EAAU,GAAA,QAAA,IAAA,IAAA,GAAA,SAAA,GAAA,QAAA,CAAA,gBAAA,KAAV,IAA8B,GAAA,EAAA,GAAA,8BAAA;AAAA,UACvC,QAAQ,EAAA,IAAA;AAAA,UACR,OAAQ,EAAA,+BAAA;AAAA,UACR,WAAW,EAAA,IAAA;AAAA,UACX,IAAI,EAAA,IAAA;AAAA,UACJ,SAAW,EAAA,EAAA,CAAG,YAAa,CAAA,wBAAA,EAA0B,aAAa,qBAAqB,CAAA;AAAA,UACvF,QAAU,EAAA,QAAA;AAAA,UAEV,QAAA,kBAAA,GAAA;AAAA,YAAC,cAAA;AAAA,YAAA;AAAA,cACC,EAAG,EAAA,+BAAA;AAAA,cACH,YAAc,EAAA,qBAAA;AAAA,cACd,UAAU,CAAC,CAAA,KAAM,mBAAoB,CAAA,CAAA,CAAE,cAAc,KAAK,CAAA;AAAA,cAC1D,OAAA,EAAS,WAAW,MAAM;AAAA,eAAK,GAAA,kBAAA;AAAA,cAC/B,WAAY,EAAA,uCAAA;AAAA,cACZ,IAAM,EAAA,CAAA;AAAA,cACN,QAAQ,EAAA;AAAA;AAAA;AACV;AAAA;AACF;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { TLSSettingsSection } from './TLSSettingsSection.js';
|
|
3
3
|
|
|
4
4
|
const SkipTLSVerification = ({ enabled, onToggle, readOnly }) => {
|
|
5
|
-
return /* @__PURE__ */
|
|
5
|
+
return /* @__PURE__ */ jsx(
|
|
6
6
|
TLSSettingsSection,
|
|
7
7
|
{
|
|
8
8
|
enabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkipTLSVerification.js","sources":["../../../../../../src/components/ConfigEditor/Auth/tls/SkipTLSVerification.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"SkipTLSVerification.js","sources":["../../../../../../src/components/ConfigEditor/Auth/tls/SkipTLSVerification.tsx"],"sourcesContent":["import { TLSSettingsSection } from './TLSSettingsSection';\n\nexport type Props = {\n enabled: boolean;\n onToggle: (enabled: boolean) => void;\n readOnly: boolean;\n};\n\nexport const SkipTLSVerification = ({ enabled, onToggle, readOnly }: Props) => {\n return (\n <TLSSettingsSection\n enabled={enabled}\n label=\"Skip TLS certificate validation\"\n tooltipText=\"Skipping TLS certificate validation is not recommended unless absolutely necessary or for testing\"\n onToggle={(newEnabled) => onToggle(newEnabled)}\n readOnly={readOnly}\n />\n );\n};\n"],"names":[],"mappings":";;;AAQO,MAAM,sBAAsB,CAAC,EAAE,OAAS,EAAA,QAAA,EAAU,UAAsB,KAAA;AAC7E,EACE,uBAAA,GAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,KAAM,EAAA,iCAAA;AAAA,MACN,WAAY,EAAA,mGAAA;AAAA,MACZ,QAAU,EAAA,CAAC,UAAe,KAAA,QAAA,CAAS,UAAU,CAAA;AAAA,MAC7C;AAAA;AAAA,GACF;AAEJ;;;;"}
|