{"version":3,"file":"TLSSecretsConfig.cjs","sources":["../../../../src/components/configuration/TLSSecretsConfig.tsx"],"sourcesContent":["import {\n  type DataSourceJsonData,\n  type DataSourcePluginOptionsEditorProps,\n  type KeyValue,\n  onUpdateDatasourceSecureJsonDataOption,\n  updateDatasourcePluginResetOption,\n} from '@grafana/data';\nimport { Trans } from '@grafana/i18n';\nimport { Field, Icon, Label, SecretTextArea, Tooltip, Stack } from '@grafana/ui';\n\nexport interface Props<T extends DataSourceJsonData, S> {\n  editorProps: DataSourcePluginOptionsEditorProps<T, S>;\n  showCACert?: boolean;\n  showKeyPair?: boolean;\n  secureJsonFields?: KeyValue<Boolean>;\n  labelWidth?: number;\n}\n\nexport const TLSSecretsConfig = <T extends DataSourceJsonData, S extends {} = {}>(props: Props<T, S>) => {\n  const { editorProps, showCACert, showKeyPair = true } = props;\n  const { secureJsonFields } = editorProps.options;\n  return (\n    <>\n      {showKeyPair ? (\n        <Field\n          noMargin\n          label={\n            <Label>\n              <Stack gap={0.5}>\n                <span>\n                  <Trans i18nKey=\"grafana-sql.components.tlssecrets-config.tlsssl-client-certificate\">\n                    TLS/SSL Client Certificate\n                  </Trans>\n                </span>\n                <Tooltip\n                  content={\n                    <span>\n                      <Trans i18nKey=\"grafana-sql.components.tlssecrets-config.content-tlsssl-client-certificate\">\n                        To authenticate with an TLS/SSL client certificate, provide the client certificate here.\n                      </Trans>\n                    </span>\n                  }\n                >\n                  <Icon name=\"info-circle\" size=\"sm\" />\n                </Tooltip>\n              </Stack>\n            </Label>\n          }\n        >\n          <SecretTextArea\n            // eslint-disable-next-line @grafana/i18n/no-untranslated-strings\n            placeholder=\"-----BEGIN CERTIFICATE-----\"\n            cols={45}\n            rows={7}\n            isConfigured={secureJsonFields && secureJsonFields.tlsClientCert}\n            onChange={onUpdateDatasourceSecureJsonDataOption(editorProps, 'tlsClientCert')}\n            onReset={() => {\n              updateDatasourcePluginResetOption(editorProps, 'tlsClientCert');\n            }}\n          />\n        </Field>\n      ) : null}\n      {showCACert ? (\n        <Field\n          noMargin\n          label={\n            <Label>\n              <Stack gap={0.5}>\n                <span>\n                  <Trans i18nKey=\"grafana-sql.components.tlssecrets-config.tlsssl-root-certificate\">\n                    TLS/SSL Root Certificate\n                  </Trans>\n                </span>\n                <Tooltip\n                  content={\n                    <span>\n                      <Trans i18nKey=\"grafana-sql.components.tlssecrets-config.content-tlsssl-root-certificate\">\n                        If the selected TLS/SSL mode requires a server root certificate, provide it here\n                      </Trans>\n                    </span>\n                  }\n                >\n                  <Icon name=\"info-circle\" size=\"sm\" />\n                </Tooltip>\n              </Stack>\n            </Label>\n          }\n        >\n          <SecretTextArea\n            // eslint-disable-next-line @grafana/i18n/no-untranslated-strings\n            placeholder=\"-----BEGIN CERTIFICATE-----\"\n            cols={45}\n            rows={7}\n            isConfigured={secureJsonFields && secureJsonFields.tlsCACert}\n            onChange={onUpdateDatasourceSecureJsonDataOption(editorProps, 'tlsCACert')}\n            onReset={() => {\n              updateDatasourcePluginResetOption(editorProps, 'tlsCACert');\n            }}\n          />\n        </Field>\n      ) : null}\n      {showKeyPair ? (\n        <Field\n          noMargin\n          label={\n            <Label>\n              <Stack gap={0.5}>\n                <span>\n                  <Trans i18nKey=\"grafana-sql.components.tlssecrets-config.tlsssl-client-key\">TLS/SSL Client Key</Trans>\n                </span>\n                <Tooltip\n                  content={\n                    <span>\n                      <Trans i18nKey=\"grafana-sql.components.tlssecrets-config.content-tlsssl-client-key\">\n                        To authenticate with a client TLS/SSL certificate, provide the key here.\n                      </Trans>\n                    </span>\n                  }\n                >\n                  <Icon name=\"info-circle\" size=\"sm\" />\n                </Tooltip>\n              </Stack>\n            </Label>\n          }\n        >\n          <SecretTextArea\n            // eslint-disable-next-line @grafana/i18n/no-untranslated-strings\n            placeholder=\"-----BEGIN RSA PRIVATE KEY-----\"\n            cols={45}\n            rows={7}\n            isConfigured={secureJsonFields && secureJsonFields.tlsClientKey}\n            onChange={onUpdateDatasourceSecureJsonDataOption(editorProps, 'tlsClientKey')}\n            onReset={() => {\n              updateDatasourcePluginResetOption(editorProps, 'tlsClientKey');\n            }}\n          />\n        </Field>\n      ) : null}\n    </>\n  );\n};\n"],"names":["jsxs","Fragment","jsx","Field","Label","Stack","Trans","Tooltip","Icon","SecretTextArea","onUpdateDatasourceSecureJsonDataOption","updateDatasourcePluginResetOption"],"mappings":"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"}