@grafana/sql 13.1.0-25858739282 → 13.1.0-26657291204
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/components/configuration/TLSSecretsConfig.cjs.map +1 -1
- package/dist/cjs/components/visual-query-builder/AwesomeQueryBuilder.cjs +0 -2
- package/dist/cjs/components/visual-query-builder/AwesomeQueryBuilder.cjs.map +1 -1
- package/dist/cjs/expressions.cjs.map +1 -1
- package/dist/cjs/locales/cs-CZ/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/cs-CZ/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/de-DE/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/de-DE/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/en-US/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/en-US/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/es-ES/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/es-ES/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/fr-FR/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/fr-FR/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/hu-HU/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/hu-HU/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/id-ID/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/id-ID/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/it-IT/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/it-IT/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/ja-JP/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/ja-JP/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/ko-KR/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/ko-KR/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/nl-NL/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/nl-NL/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/pl-PL/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/pl-PL/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/pt-BR/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/pt-BR/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/pt-PT/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/pt-PT/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/ru-RU/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/ru-RU/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/sv-SE/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/sv-SE/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/tr-TR/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/tr-TR/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/zh-Hans/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/zh-Hans/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/locales/zh-Hant/grafana-sql.json.cjs +0 -5
- package/dist/cjs/locales/zh-Hant/grafana-sql.json.cjs.map +1 -1
- package/dist/cjs/types.cjs.map +1 -1
- package/dist/esm/components/configuration/TLSSecretsConfig.mjs.map +1 -1
- package/dist/esm/components/visual-query-builder/AwesomeQueryBuilder.mjs +1 -1
- package/dist/esm/components/visual-query-builder/AwesomeQueryBuilder.mjs.map +1 -1
- package/dist/esm/expressions.mjs.map +1 -1
- package/dist/esm/locales/cs-CZ/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/cs-CZ/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/de-DE/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/de-DE/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/en-US/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/en-US/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/es-ES/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/es-ES/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/fr-FR/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/fr-FR/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/hu-HU/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/hu-HU/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/id-ID/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/id-ID/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/it-IT/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/it-IT/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/ja-JP/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/ja-JP/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/ko-KR/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/ko-KR/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/nl-NL/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/nl-NL/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/pl-PL/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/pl-PL/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/pt-BR/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/pt-BR/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/pt-PT/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/pt-PT/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/ru-RU/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/ru-RU/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/sv-SE/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/sv-SE/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/tr-TR/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/tr-TR/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/zh-Hans/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/zh-Hans/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/locales/zh-Hant/grafana-sql.json.mjs +0 -5
- package/dist/esm/locales/zh-Hant/grafana-sql.json.mjs.map +1 -1
- package/dist/esm/types.mjs.map +1 -1
- package/dist/types/components/SqlComponents.testHelpers.d.ts +0 -59
- package/dist/types/components/configuration/TLSSecretsConfig.d.ts +2 -1
- package/dist/types/components/visual-query-builder/AwesomeQueryBuilder.d.ts +1 -3
- package/dist/types/expressions.d.ts +1 -17
- package/dist/types/types.d.ts +4 -27
- package/package.json +4 -12
- package/dist/types/components/ErrorBoundary.d.ts +0 -12
- package/dist/types/components/index.d.ts +0 -1
- package/dist/types/components/visual-query-builder/index.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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\
|
|
1
|
+
{"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\ninterface 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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwesomeQueryBuilder.cjs","sources":["../../../../src/components/visual-query-builder/AwesomeQueryBuilder.tsx"],"sourcesContent":["import {\n type BaseOperator,\n BasicConfig,\n type Config,\n type Field,\n type ImmutableList,\n type JsonTree,\n type Operator,\n type OperatorOptionsI,\n type Settings,\n Utils,\n type ValueSource,\n type WidgetProps,\n type Widgets,\n} from '@react-awesome-query-builder/ui';\nimport { isString } from 'lodash';\n\nimport { dateTime, toOption } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { t } from '@grafana/i18n';\nimport { Button, DateTimePicker, Input, Select } from '@grafana/ui';\n\nconst buttonLabels = {\n add: 'Add',\n remove: 'Remove',\n};\n\nexport const emptyInitTree: JsonTree = {\n id: Utils.uuid(),\n type: 'group',\n};\n\nconst TIME_FILTER = 'timeFilter';\nconst macros = [TIME_FILTER];\n\n// Widgets are the components rendered for each field type see the docs for more info\n// https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc#configwidgets\nexport const widgets: Widgets = {\n ...BasicConfig.widgets,\n text: {\n ...BasicConfig.widgets.text,\n factory: function TextInput(props: WidgetProps) {\n return (\n <Input\n value={props?.value || ''}\n placeholder={props?.placeholder}\n onChange={(e) => props?.setValue(e.currentTarget.value)}\n />\n );\n },\n },\n number: {\n ...BasicConfig.widgets.number,\n factory: function NumberInput(props: WidgetProps) {\n return (\n <Input\n value={props?.value}\n placeholder={props?.placeholder}\n type=\"number\"\n onChange={(e) => props?.setValue(Number.parseInt(e.currentTarget.value, 10))}\n />\n );\n },\n },\n datetime: {\n ...BasicConfig.widgets.datetime,\n factory: function DateTimeInput(props: WidgetProps) {\n if (props?.operator === Op.MACROS) {\n return (\n <Select\n id={props.id}\n aria-label={t('grafana-sql.components.widgets.aria-label-macros-value-selector', 'Macros value selector')}\n menuShouldPortal\n options={macros.map(toOption)}\n value={props?.value}\n onChange={(val) => props.setValue(val.value)}\n />\n );\n }\n const dateValue = dateTime(props?.value).isValid() ? dateTime(props?.value).utc() : undefined;\n return (\n <DateTimePicker\n onChange={(e) => {\n props?.setValue(e?.format(BasicConfig.widgets.datetime.valueFormat));\n }}\n date={dateValue}\n />\n );\n },\n // Function for formatting widget’s value in SQL WHERE query.\n sqlFormatValue: (val, field, widget, operator, operatorDefinition, rightFieldDef) => {\n if (operator === Op.MACROS) {\n if (macros.includes(val)) {\n return val;\n }\n return undefined;\n }\n\n // This is just satisfying the type checker, this should never happen\n if (\n typeof BasicConfig.widgets.datetime.sqlFormatValue === 'string' ||\n typeof BasicConfig.widgets.datetime.sqlFormatValue === 'object'\n ) {\n return undefined;\n }\n const func = BasicConfig.widgets.datetime.sqlFormatValue;\n // We need to pass the ctx to this function this way so *this* is correct\n return func?.call(BasicConfig.ctx, val, field, widget, operator, operatorDefinition, rightFieldDef) || '';\n },\n },\n};\n\n// Settings are the configuration options for the query builder see the docs for more info\n// https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc#configsettings\nexport const settings: Settings = {\n ...BasicConfig.settings,\n canRegroup: false,\n maxNesting: 1,\n canReorder: false,\n showNot: false,\n addRuleLabel: buttonLabels.add,\n deleteLabel: buttonLabels.remove,\n // This is the component that renders conjunctions (logical operators)\n renderConjs: function Conjunctions(conjProps) {\n return (\n <Select\n id={conjProps?.id}\n aria-label={t('grafana-sql.components.settings.aria-label-conjunction', 'Conjunction')}\n data-testid={selectors.components.SQLQueryEditor.filterConjunction}\n menuShouldPortal\n options={conjProps?.conjunctionOptions ? Object.keys(conjProps?.conjunctionOptions).map(toOption) : undefined}\n value={conjProps?.selectedConjunction}\n onChange={(val) => conjProps?.setConjunction(val.value!)}\n />\n );\n },\n // This is the component that renders fields\n renderField: function Field(fieldProps) {\n const fields = fieldProps?.config?.fields || {};\n return (\n <Select\n id={fieldProps?.id}\n width={25}\n aria-label={t('grafana-sql.components.settings.aria-label-field', 'Field')}\n data-testid={selectors.components.SQLQueryEditor.filterField}\n menuShouldPortal\n options={fieldProps?.items.map((f) => {\n // @ts-ignore\n const icon = fields[f.key].mainWidgetProps?.customProps?.icon;\n return {\n label: f.label,\n value: f.key,\n icon,\n };\n })}\n value={fieldProps?.selectedKey}\n onChange={(val) => {\n fieldProps?.setField(val.label!);\n }}\n />\n );\n },\n // This is the component used for the Add/Remove buttons\n renderButton: function RAQBButton(buttonProps) {\n return (\n <Button\n type=\"button\"\n aria-label={t('grafana-sql.components.settings.title-button-filter', '{{ buttonLabel }} filter', {\n buttonLabel: buttonProps?.label,\n })}\n onClick={buttonProps?.onClick}\n variant=\"secondary\"\n size=\"md\"\n icon={buttonProps?.label === buttonLabels.add ? 'plus' : 'times'}\n />\n );\n },\n // This is the component used for the fields operator selector\n renderOperator: function Operator(operatorProps) {\n return (\n <Select\n options={operatorProps?.items.map((op) => ({ label: op.label, value: op.key }))}\n aria-label={t('grafana-sql.components.settings.aria-label-operator', 'Operator')}\n data-testid={selectors.components.SQLQueryEditor.filterOperator}\n menuShouldPortal\n value={operatorProps?.selectedKey}\n onChange={(val) => {\n operatorProps?.setField(val.value || '');\n }}\n />\n );\n },\n};\n\n// add IN / NOT IN operators to text to support multi-value variables\nconst enum Op {\n IN = 'select_any_in',\n NOT_IN = 'select_not_any_in',\n MACROS = 'macros',\n}\nconst customOperators = getCustomOperators(BasicConfig);\nconst textWidget = BasicConfig.types.text.widgets.text;\nconst opers = [...(textWidget.operators || []), Op.IN, Op.NOT_IN];\nconst customTextWidget = {\n ...textWidget,\n operators: opers,\n};\n\nconst customTypes = {\n ...BasicConfig.types,\n text: {\n ...BasicConfig.types.text,\n widgets: {\n ...BasicConfig.types.text.widgets,\n text: customTextWidget,\n },\n },\n datetime: {\n ...BasicConfig.types.datetime,\n widgets: {\n ...BasicConfig.types.datetime.widgets,\n datetime: {\n ...BasicConfig.types.datetime.widgets.datetime,\n operators: [Op.MACROS, ...(BasicConfig.types.datetime.widgets.datetime.operators || [])],\n },\n },\n },\n};\n\n// This is the configuration for the query builder that doesn't include the fields but all the other configuration for the UI\n// Fields should be added dynamically based on returned data\n// See the doc for more info https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc\nexport const raqbConfig: Config = {\n ...BasicConfig,\n widgets,\n settings,\n operators: customOperators,\n types: customTypes,\n};\n\nexport type { Config };\n\nconst noop = () => '';\n\nfunction getCustomOperators(config: BasicConfig) {\n const { ...supportedOperators } = config.operators;\n\n // IN operator expects array, override IN formatter for multi-value variables\n const sqlFormatInOp = supportedOperators[Op.IN].sqlFormatOp?.bind(config.ctx) || noop;\n const formatInOp = supportedOperators[Op.IN].formatOp?.bind(config.ctx) || noop;\n const customSqlInFormatter = (\n field: string,\n op: string,\n value: string | string[] | ImmutableList<string>,\n valueSrc: ValueSource | undefined,\n valueType: string | undefined,\n opDef: Operator | undefined,\n operatorOptions: OperatorOptionsI | undefined,\n fieldDef: Field | undefined\n ) => {\n return sqlFormatInOp(field, op, splitIfString(value), valueSrc, valueType, opDef, operatorOptions, fieldDef);\n };\n\n // NOT IN operator expects array, override NOT IN formatter for multi-value variables\n const sqlFormatNotInOp = supportedOperators[Op.NOT_IN].sqlFormatOp?.bind(config.ctx) || noop;\n const formatNotInOp = supportedOperators[Op.NOT_IN].formatOp?.bind(config.ctx) || noop;\n const customSqlNotInFormatter = (\n field: string,\n op: string,\n value: string | string[] | ImmutableList<string>,\n valueSrc: ValueSource | undefined,\n valueType: string | undefined,\n opDef: Operator | undefined,\n operatorOptions: OperatorOptionsI | undefined,\n fieldDef: Field | undefined\n ) => {\n return sqlFormatNotInOp(field, op, splitIfString(value), valueSrc, valueType, opDef, operatorOptions, fieldDef);\n };\n\n const customOperators: Record<string, BaseOperator> = {\n ...supportedOperators,\n [Op.IN]: {\n ...supportedOperators[Op.IN],\n formatOp: (\n field: string,\n op: string,\n value: string | string[] | ImmutableList<string>,\n valueSrc?: ValueSource\n ) => {\n return formatInOp(field, op, splitIfString(value), valueSrc);\n },\n sqlFormatOp: customSqlInFormatter,\n },\n [Op.NOT_IN]: {\n ...supportedOperators[Op.NOT_IN],\n formatOp: (\n field: string,\n op: string,\n value: string | string[] | ImmutableList<string>,\n valueSrc?: ValueSource\n ) => {\n return formatNotInOp(field, op, splitIfString(value), valueSrc);\n },\n sqlFormatOp: customSqlNotInFormatter,\n },\n [Op.MACROS]: {\n label: t('grafana-sql.components.get-custom-operators.custom-operators.label.macros', 'Macros'),\n sqlFormatOp: (field: string, _operator: string, value: string | string[] | ImmutableList<string>) => {\n if (value === TIME_FILTER) {\n return `$__timeFilter(${field})`;\n }\n throw new Error('Invalid macro');\n },\n },\n };\n\n return customOperators;\n}\n\n// value: string | List<string> but AQB uses a different version of Immutable\nfunction splitIfString(value: string | string[] | ImmutableList<string>) {\n if (isString(value)) {\n return value.split(',');\n }\n return value;\n}\n"],"names":["Utils","BasicConfig","jsx","Input","Select","t","toOption","dateTime","DateTimePicker","selectors","_a","Button","Op","customOperators","isString"],"mappings":";;;;;;;;;;;;;AAsBA,MAAM,YAAA,GAAe;AAAA,EACnB,GAAA,EAAK,KAAA;AAAA,EACL,MAAA,EAAQ;AACV,CAAA;AAEO,MAAM,aAAA,GAA0B;AAAA,EACrC,EAAA,EAAIA,SAAM,IAAA,EAAK;AAAA,EACf,IAAA,EAAM;AACR;AAEA,MAAM,WAAA,GAAc,YAAA;AACpB,MAAM,MAAA,GAAS,CAAC,WAAW,CAAA;AAIpB,MAAM,OAAA,GAAmB;AAAA,EAC9B,GAAGC,cAAA,CAAY,OAAA;AAAA,EACf,IAAA,EAAM;AAAA,IACJ,GAAGA,eAAY,OAAA,CAAQ,IAAA;AAAA,IACvB,OAAA,EAAS,SAAS,SAAA,CAAU,KAAA,EAAoB;AAC9C,MAAA,uBACEC,cAAA;AAAA,QAACC,UAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAA,CAAO,+BAAO,KAAA,KAAS,EAAA;AAAA,UACvB,aAAa,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,WAAA;AAAA,UACpB,UAAU,CAAC,CAAA,KAAM,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,QAAA,CAAS,EAAE,aAAA,CAAc,KAAA;AAAA;AAAA,OACnD;AAAA,IAEJ;AAAA,GACF;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,GAAGF,eAAY,OAAA,CAAQ,MAAA;AAAA,IACvB,OAAA,EAAS,SAAS,WAAA,CAAY,KAAA,EAAoB;AAChD,MAAA,uBACEC,cAAA;AAAA,QAACC,UAAA;AAAA,QAAA;AAAA,UACC,OAAO,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,KAAA;AAAA,UACd,aAAa,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,WAAA;AAAA,UACpB,IAAA,EAAK,QAAA;AAAA,UACL,QAAA,EAAU,CAAC,CAAA,KAAM,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,QAAA,CAAS,OAAO,QAAA,CAAS,CAAA,CAAE,aAAA,CAAc,KAAA,EAAO,EAAE,CAAA;AAAA;AAAA,OAC5E;AAAA,IAEJ;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,GAAGF,eAAY,OAAA,CAAQ,QAAA;AAAA,IACvB,OAAA,EAAS,SAAS,aAAA,CAAc,KAAA,EAAoB;AAClD,MAAA,IAAA,CAAI,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,cAAa,QAAA,eAAW;AACjC,QAAA,uBACEC,cAAA;AAAA,UAACE,WAAA;AAAA,UAAA;AAAA,YACC,IAAI,KAAA,CAAM,EAAA;AAAA,YACV,YAAA,EAAYC,MAAA,CAAE,iEAAA,EAAmE,uBAAuB,CAAA;AAAA,YACxG,gBAAA,EAAgB,IAAA;AAAA,YAChB,OAAA,EAAS,MAAA,CAAO,GAAA,CAAIC,aAAQ,CAAA;AAAA,YAC5B,OAAO,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,KAAA;AAAA,YACd,UAAU,CAAC,GAAA,KAAQ,KAAA,CAAM,QAAA,CAAS,IAAI,KAAK;AAAA;AAAA,SAC7C;AAAA,MAEJ;AACA,MAAA,MAAM,SAAA,GAAYC,aAAA,CAAS,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,KAAK,CAAA,CAAE,OAAA,EAAQ,GAAIA,aAAA,CAAS,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,KAAK,CAAA,CAAE,GAAA,EAAI,GAAI,KAAA,CAAA;AACpF,MAAA,uBACEL,cAAA;AAAA,QAACM,mBAAA;AAAA,QAAA;AAAA,UACC,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,YAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,QAAA,CAAS,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,MAAA,CAAOP,cAAA,CAAY,QAAQ,QAAA,CAAS,WAAA,CAAA,CAAA;AAAA,UACzD,CAAA;AAAA,UACA,IAAA,EAAM;AAAA;AAAA,OACR;AAAA,IAEJ,CAAA;AAAA;AAAA,IAEA,gBAAgB,CAAC,GAAA,EAAK,OAAO,MAAA,EAAQ,QAAA,EAAU,oBAAoB,aAAA,KAAkB;AACnF,MAAA,IAAI,aAAa,QAAA,eAAW;AAC1B,QAAA,IAAI,MAAA,CAAO,QAAA,CAAS,GAAG,CAAA,EAAG;AACxB,UAAA,OAAO,GAAA;AAAA,QACT;AACA,QAAA,OAAO,KAAA,CAAA;AAAA,MACT;AAGA,MAAA,IACE,OAAOA,cAAA,CAAY,OAAA,CAAQ,QAAA,CAAS,cAAA,KAAmB,QAAA,IACvD,OAAOA,cAAA,CAAY,OAAA,CAAQ,QAAA,CAAS,cAAA,KAAmB,QAAA,EACvD;AACA,QAAA,OAAO,KAAA,CAAA;AAAA,MACT;AACA,MAAA,MAAM,IAAA,GAAOA,cAAA,CAAY,OAAA,CAAQ,QAAA,CAAS,cAAA;AAE1C,MAAA,OAAA,CAAO,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,KAAKA,cAAA,CAAY,GAAA,EAAK,KAAK,KAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,kBAAA,EAAoB,aAAA,CAAA,KAAkB,EAAA;AAAA,IACzG;AAAA;AAEJ;AAIO,MAAM,QAAA,GAAqB;AAAA,EAChC,GAAGA,cAAA,CAAY,QAAA;AAAA,EACf,UAAA,EAAY,KAAA;AAAA,EACZ,UAAA,EAAY,CAAA;AAAA,EACZ,UAAA,EAAY,KAAA;AAAA,EACZ,OAAA,EAAS,KAAA;AAAA,EACT,cAAc,YAAA,CAAa,GAAA;AAAA,EAC3B,aAAa,YAAA,CAAa,MAAA;AAAA;AAAA,EAE1B,WAAA,EAAa,SAAS,YAAA,CAAa,SAAA,EAAW;AAC5C,IAAA,uBACEC,cAAA;AAAA,MAACE,WAAA;AAAA,MAAA;AAAA,QACC,IAAI,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,EAAA;AAAA,QACf,YAAA,EAAYC,MAAA,CAAE,wDAAA,EAA0D,aAAa,CAAA;AAAA,QACrF,aAAA,EAAaI,sBAAA,CAAU,UAAA,CAAW,cAAA,CAAe,iBAAA;AAAA,QACjD,gBAAA,EAAgB,IAAA;AAAA,QAChB,OAAA,EAAA,CAAS,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,kBAAA,IAAqB,MAAA,CAAO,IAAA,CAAK,uCAAW,kBAAkB,CAAA,CAAE,GAAA,CAAIH,aAAQ,CAAA,GAAI,KAAA,CAAA;AAAA,QACpG,OAAO,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,mBAAA;AAAA,QAClB,QAAA,EAAU,CAAC,GAAA,KAAQ,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,eAAe,GAAA,CAAI,KAAA;AAAA;AAAA,KACnD;AAAA,EAEJ,CAAA;AAAA;AAAA,EAEA,WAAA,EAAa,SAAS,KAAA,CAAM,UAAA,EAAY;AAzI1C,IAAA,IAAA,EAAA;AA0II,IAAA,MAAM,MAAA,GAAA,CAAA,CAAS,EAAA,GAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,MAAA,KAAZ,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAoB,WAAU,EAAC;AAC9C,IAAA,uBACEJ,cAAA;AAAA,MAACE,WAAA;AAAA,MAAA;AAAA,QACC,IAAI,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,EAAA;AAAA,QAChB,KAAA,EAAO,EAAA;AAAA,QACP,YAAA,EAAYC,MAAA,CAAE,kDAAA,EAAoD,OAAO,CAAA;AAAA,QACzE,aAAA,EAAaI,sBAAA,CAAU,UAAA,CAAW,cAAA,CAAe,WAAA;AAAA,QACjD,gBAAA,EAAgB,IAAA;AAAA,QAChB,OAAA,EAAS,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM;AAlJ9C,UAAA,IAAAC,GAAAA,EAAA,EAAA;AAoJU,UAAA,MAAM,IAAA,GAAA,CAAO,EAAA,GAAA,CAAAA,GAAAA,GAAA,MAAA,CAAO,CAAA,CAAE,GAAG,CAAA,CAAE,eAAA,KAAd,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAAA,CAA+B,WAAA,KAA/B,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAA4C,IAAA;AACzD,UAAA,OAAO;AAAA,YACL,OAAO,CAAA,CAAE,KAAA;AAAA,YACT,OAAO,CAAA,CAAE,GAAA;AAAA,YACT;AAAA,WACF;AAAA,QACF,CAAA,CAAA;AAAA,QACA,OAAO,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,WAAA;AAAA,QACnB,QAAA,EAAU,CAAC,GAAA,KAAQ;AACjB,UAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,SAAS,GAAA,CAAI,KAAA,CAAA;AAAA,QAC3B;AAAA;AAAA,KACF;AAAA,EAEJ,CAAA;AAAA;AAAA,EAEA,YAAA,EAAc,SAAS,UAAA,CAAW,WAAA,EAAa;AAC7C,IAAA,uBACER,cAAA;AAAA,MAACS,WAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAYN,MAAA,CAAE,qDAAA,EAAuD,0BAAA,EAA4B;AAAA,UAC/F,aAAa,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa;AAAA,SAC3B,CAAA;AAAA,QACD,SAAS,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,OAAA;AAAA,QACtB,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,IAAA;AAAA,QACL,IAAA,EAAA,CAAM,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,KAAA,MAAU,YAAA,CAAa,MAAM,MAAA,GAAS;AAAA;AAAA,KAC3D;AAAA,EAEJ,CAAA;AAAA;AAAA,EAEA,cAAA,EAAgB,SAAS,QAAA,CAAS,aAAA,EAAe;AAC/C,IAAA,uBACEH,cAAA;AAAA,MAACE,WAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,KAAA,CAAM,GAAA,CAAI,CAAC,EAAA,MAAQ,EAAE,KAAA,EAAO,EAAA,CAAG,KAAA,EAAO,KAAA,EAAO,EAAA,CAAG,GAAA,EAAI,CAAA,CAAA;AAAA,QAC5E,YAAA,EAAYC,MAAA,CAAE,qDAAA,EAAuD,UAAU,CAAA;AAAA,QAC/E,aAAA,EAAaI,sBAAA,CAAU,UAAA,CAAW,cAAA,CAAe,cAAA;AAAA,QACjD,gBAAA,EAAgB,IAAA;AAAA,QAChB,OAAO,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,WAAA;AAAA,QACtB,QAAA,EAAU,CAAC,GAAA,KAAQ;AACjB,UAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,QAAA,CAAS,IAAI,KAAA,IAAS,EAAA,CAAA;AAAA,QACvC;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAGA,IAAW,EAAA,qBAAAG,GAAAA,KAAX;AACE,EAAAA,IAAA,IAAA,CAAA,GAAK,eAAA;AACL,EAAAA,IAAA,QAAA,CAAA,GAAS,mBAAA;AACT,EAAAA,IAAA,QAAA,CAAA,GAAS,QAAA;AAHA,EAAA,OAAAA,GAAAA;AAAA,CAAA,EAAA,EAAA,IAAA,EAAA,CAAA;AAKX,MAAM,eAAA,GAAkB,mBAAmBX,cAAW,CAAA;AACtD,MAAM,UAAA,GAAaA,cAAA,CAAY,KAAA,CAAM,IAAA,CAAK,OAAA,CAAQ,IAAA;AAClD,MAAM,KAAA,GAAQ,CAAC,GAAI,UAAA,CAAW,aAAa,EAAC,EAAI,0BAAO,mBAAA,cAAS;AAChE,MAAM,gBAAA,GAAmB;AAAA,EACvB,GAAG,UAAA;AAAA,EACH,SAAA,EAAW;AACb,CAAA;AAEA,MAAM,WAAA,GAAc;AAAA,EAClB,GAAGA,cAAA,CAAY,KAAA;AAAA,EACf,IAAA,EAAM;AAAA,IACJ,GAAGA,eAAY,KAAA,CAAM,IAAA;AAAA,IACrB,OAAA,EAAS;AAAA,MACP,GAAGA,cAAA,CAAY,KAAA,CAAM,IAAA,CAAK,OAAA;AAAA,MAC1B,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,GAAGA,eAAY,KAAA,CAAM,QAAA;AAAA,IACrB,OAAA,EAAS;AAAA,MACP,GAAGA,cAAA,CAAY,KAAA,CAAM,QAAA,CAAS,OAAA;AAAA,MAC9B,QAAA,EAAU;AAAA,QACR,GAAGA,cAAA,CAAY,KAAA,CAAM,QAAA,CAAS,OAAA,CAAQ,QAAA;AAAA,QACtC,SAAA,EAAW,CAAC,QAAA,eAAW,GAAIA,cAAA,CAAY,KAAA,CAAM,QAAA,CAAS,OAAA,CAAQ,QAAA,CAAS,SAAA,IAAa,EAAG;AAAA;AACzF;AACF;AAEJ,CAAA;AAKO,MAAM,UAAA,GAAqB;AAAA,EAChC,GAAGA,cAAA;AAAA,EACH,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,EAAW,eAAA;AAAA,EACX,KAAA,EAAO;AACT;AAIA,MAAM,OAAO,MAAM,EAAA;AAEnB,SAAS,mBAAmB,MAAA,EAAqB;AApPjD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAqPE,EAAA,MAAM,EAAE,GAAG,kBAAA,EAAmB,GAAI,MAAA,CAAO,SAAA;AAGzC,EAAA,MAAM,aAAA,GAAA,CAAA,CAAgB,wBAAmB,eAAA,UAAK,CAAE,gBAA1B,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAuC,IAAA,CAAK,OAAO,GAAA,CAAA,KAAQ,IAAA;AACjF,EAAA,MAAM,UAAA,GAAA,CAAA,CAAa,wBAAmB,eAAA,UAAK,CAAE,aAA1B,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAoC,IAAA,CAAK,OAAO,GAAA,CAAA,KAAQ,IAAA;AAC3E,EAAA,MAAM,oBAAA,GAAuB,CAC3B,KAAA,EACA,EAAA,EACA,OACA,QAAA,EACA,SAAA,EACA,KAAA,EACA,eAAA,EACA,QAAA,KACG;AACH,IAAA,OAAO,aAAA,CAAc,KAAA,EAAO,EAAA,EAAI,aAAA,CAAc,KAAK,GAAG,QAAA,EAAU,SAAA,EAAW,KAAA,EAAO,eAAA,EAAiB,QAAQ,CAAA;AAAA,EAC7G,CAAA;AAGA,EAAA,MAAM,gBAAA,GAAA,CAAA,CAAmB,wBAAmB,mBAAA,cAAS,CAAE,gBAA9B,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAA2C,IAAA,CAAK,OAAO,GAAA,CAAA,KAAQ,IAAA;AACxF,EAAA,MAAM,aAAA,GAAA,CAAA,CAAgB,wBAAmB,mBAAA,cAAS,CAAE,aAA9B,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAwC,IAAA,CAAK,OAAO,GAAA,CAAA,KAAQ,IAAA;AAClF,EAAA,MAAM,uBAAA,GAA0B,CAC9B,KAAA,EACA,EAAA,EACA,OACA,QAAA,EACA,SAAA,EACA,KAAA,EACA,eAAA,EACA,QAAA,KACG;AACH,IAAA,OAAO,gBAAA,CAAiB,KAAA,EAAO,EAAA,EAAI,aAAA,CAAc,KAAK,GAAG,QAAA,EAAU,SAAA,EAAW,KAAA,EAAO,eAAA,EAAiB,QAAQ,CAAA;AAAA,EAChH,CAAA;AAEA,EAAA,MAAMY,gBAAAA,GAAgD;AAAA,IACpD,GAAG,kBAAA;AAAA,IACH,CAAC,2BAAQ;AAAA,MACP,GAAG,mBAAmB,eAAA,UAAK;AAAA,MAC3B,QAAA,EAAU,CACR,KAAA,EACA,EAAA,EACA,OACA,QAAA,KACG;AACH,QAAA,OAAO,WAAW,KAAA,EAAO,EAAA,EAAI,aAAA,CAAc,KAAK,GAAG,QAAQ,CAAA;AAAA,MAC7D,CAAA;AAAA,MACA,WAAA,EAAa;AAAA,KACf;AAAA,IACA,CAAC,mCAAY;AAAA,MACX,GAAG,mBAAmB,mBAAA,cAAS;AAAA,MAC/B,QAAA,EAAU,CACR,KAAA,EACA,EAAA,EACA,OACA,QAAA,KACG;AACH,QAAA,OAAO,cAAc,KAAA,EAAO,EAAA,EAAI,aAAA,CAAc,KAAK,GAAG,QAAQ,CAAA;AAAA,MAChE,CAAA;AAAA,MACA,WAAA,EAAa;AAAA,KACf;AAAA,IACA,CAAC,wBAAY;AAAA,MACX,KAAA,EAAOR,MAAA,CAAE,2EAAA,EAA6E,QAAQ,CAAA;AAAA,MAC9F,WAAA,EAAa,CAAC,KAAA,EAAe,SAAA,EAAmB,KAAA,KAAqD;AACnG,QAAA,IAAI,UAAU,WAAA,EAAa;AACzB,UAAA,OAAO,iBAAiB,KAAK,CAAA,CAAA,CAAA;AAAA,QAC/B;AACA,QAAA,MAAM,IAAI,MAAM,eAAe,CAAA;AAAA,MACjC;AAAA;AACF,GACF;AAEA,EAAA,OAAOQ,gBAAAA;AACT;AAGA,SAAS,cAAc,KAAA,EAAkD;AACvE,EAAA,IAAIC,eAAA,CAAS,KAAK,CAAA,EAAG;AACnB,IAAA,OAAO,KAAA,CAAM,MAAM,GAAG,CAAA;AAAA,EACxB;AACA,EAAA,OAAO,KAAA;AACT;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"AwesomeQueryBuilder.cjs","sources":["../../../../src/components/visual-query-builder/AwesomeQueryBuilder.tsx"],"sourcesContent":["import {\n type BaseOperator,\n BasicConfig,\n type Config,\n type Field,\n type ImmutableList,\n type JsonTree,\n type Operator,\n type OperatorOptionsI,\n type Settings,\n Utils,\n type ValueSource,\n type WidgetProps,\n type Widgets,\n} from '@react-awesome-query-builder/ui';\nimport { isString } from 'lodash';\n\nimport { dateTime, toOption } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { t } from '@grafana/i18n';\nimport { Button, DateTimePicker, Input, Select } from '@grafana/ui';\n\nconst buttonLabels = {\n add: 'Add',\n remove: 'Remove',\n};\n\nexport const emptyInitTree: JsonTree = {\n id: Utils.uuid(),\n type: 'group',\n};\n\nconst TIME_FILTER = 'timeFilter';\nconst macros = [TIME_FILTER];\n\n// Widgets are the components rendered for each field type see the docs for more info\n// https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc#configwidgets\nconst widgets: Widgets = {\n ...BasicConfig.widgets,\n text: {\n ...BasicConfig.widgets.text,\n factory: function TextInput(props: WidgetProps) {\n return (\n <Input\n value={props?.value || ''}\n placeholder={props?.placeholder}\n onChange={(e) => props?.setValue(e.currentTarget.value)}\n />\n );\n },\n },\n number: {\n ...BasicConfig.widgets.number,\n factory: function NumberInput(props: WidgetProps) {\n return (\n <Input\n value={props?.value}\n placeholder={props?.placeholder}\n type=\"number\"\n onChange={(e) => props?.setValue(Number.parseInt(e.currentTarget.value, 10))}\n />\n );\n },\n },\n datetime: {\n ...BasicConfig.widgets.datetime,\n factory: function DateTimeInput(props: WidgetProps) {\n if (props?.operator === Op.MACROS) {\n return (\n <Select\n id={props.id}\n aria-label={t('grafana-sql.components.widgets.aria-label-macros-value-selector', 'Macros value selector')}\n menuShouldPortal\n options={macros.map(toOption)}\n value={props?.value}\n onChange={(val) => props.setValue(val.value)}\n />\n );\n }\n const dateValue = dateTime(props?.value).isValid() ? dateTime(props?.value).utc() : undefined;\n return (\n <DateTimePicker\n onChange={(e) => {\n props?.setValue(e?.format(BasicConfig.widgets.datetime.valueFormat));\n }}\n date={dateValue}\n />\n );\n },\n // Function for formatting widget’s value in SQL WHERE query.\n sqlFormatValue: (val, field, widget, operator, operatorDefinition, rightFieldDef) => {\n if (operator === Op.MACROS) {\n if (macros.includes(val)) {\n return val;\n }\n return undefined;\n }\n\n // This is just satisfying the type checker, this should never happen\n if (\n typeof BasicConfig.widgets.datetime.sqlFormatValue === 'string' ||\n typeof BasicConfig.widgets.datetime.sqlFormatValue === 'object'\n ) {\n return undefined;\n }\n const func = BasicConfig.widgets.datetime.sqlFormatValue;\n // We need to pass the ctx to this function this way so *this* is correct\n return func?.call(BasicConfig.ctx, val, field, widget, operator, operatorDefinition, rightFieldDef) || '';\n },\n },\n};\n\n// Settings are the configuration options for the query builder see the docs for more info\n// https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc#configsettings\nconst settings: Settings = {\n ...BasicConfig.settings,\n canRegroup: false,\n maxNesting: 1,\n canReorder: false,\n showNot: false,\n addRuleLabel: buttonLabels.add,\n deleteLabel: buttonLabels.remove,\n // This is the component that renders conjunctions (logical operators)\n renderConjs: function Conjunctions(conjProps) {\n return (\n <Select\n id={conjProps?.id}\n aria-label={t('grafana-sql.components.settings.aria-label-conjunction', 'Conjunction')}\n data-testid={selectors.components.SQLQueryEditor.filterConjunction}\n menuShouldPortal\n options={conjProps?.conjunctionOptions ? Object.keys(conjProps?.conjunctionOptions).map(toOption) : undefined}\n value={conjProps?.selectedConjunction}\n onChange={(val) => conjProps?.setConjunction(val.value!)}\n />\n );\n },\n // This is the component that renders fields\n renderField: function Field(fieldProps) {\n const fields = fieldProps?.config?.fields || {};\n return (\n <Select\n id={fieldProps?.id}\n width={25}\n aria-label={t('grafana-sql.components.settings.aria-label-field', 'Field')}\n data-testid={selectors.components.SQLQueryEditor.filterField}\n menuShouldPortal\n options={fieldProps?.items.map((f) => {\n // @ts-ignore\n const icon = fields[f.key].mainWidgetProps?.customProps?.icon;\n return {\n label: f.label,\n value: f.key,\n icon,\n };\n })}\n value={fieldProps?.selectedKey}\n onChange={(val) => {\n fieldProps?.setField(val.label!);\n }}\n />\n );\n },\n // This is the component used for the Add/Remove buttons\n renderButton: function RAQBButton(buttonProps) {\n return (\n <Button\n type=\"button\"\n aria-label={t('grafana-sql.components.settings.title-button-filter', '{{ buttonLabel }} filter', {\n buttonLabel: buttonProps?.label,\n })}\n onClick={buttonProps?.onClick}\n variant=\"secondary\"\n size=\"md\"\n icon={buttonProps?.label === buttonLabels.add ? 'plus' : 'times'}\n />\n );\n },\n // This is the component used for the fields operator selector\n renderOperator: function Operator(operatorProps) {\n return (\n <Select\n options={operatorProps?.items.map((op) => ({ label: op.label, value: op.key }))}\n aria-label={t('grafana-sql.components.settings.aria-label-operator', 'Operator')}\n data-testid={selectors.components.SQLQueryEditor.filterOperator}\n menuShouldPortal\n value={operatorProps?.selectedKey}\n onChange={(val) => {\n operatorProps?.setField(val.value || '');\n }}\n />\n );\n },\n};\n\n// add IN / NOT IN operators to text to support multi-value variables\nconst enum Op {\n IN = 'select_any_in',\n NOT_IN = 'select_not_any_in',\n MACROS = 'macros',\n}\nconst customOperators = getCustomOperators(BasicConfig);\nconst textWidget = BasicConfig.types.text.widgets.text;\nconst opers = [...(textWidget.operators || []), Op.IN, Op.NOT_IN];\nconst customTextWidget = {\n ...textWidget,\n operators: opers,\n};\n\nconst customTypes = {\n ...BasicConfig.types,\n text: {\n ...BasicConfig.types.text,\n widgets: {\n ...BasicConfig.types.text.widgets,\n text: customTextWidget,\n },\n },\n datetime: {\n ...BasicConfig.types.datetime,\n widgets: {\n ...BasicConfig.types.datetime.widgets,\n datetime: {\n ...BasicConfig.types.datetime.widgets.datetime,\n operators: [Op.MACROS, ...(BasicConfig.types.datetime.widgets.datetime.operators || [])],\n },\n },\n },\n};\n\n// This is the configuration for the query builder that doesn't include the fields but all the other configuration for the UI\n// Fields should be added dynamically based on returned data\n// See the doc for more info https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc\nexport const raqbConfig: Config = {\n ...BasicConfig,\n widgets,\n settings,\n operators: customOperators,\n types: customTypes,\n};\n\nexport type { Config };\n\nconst noop = () => '';\n\nfunction getCustomOperators(config: BasicConfig) {\n const { ...supportedOperators } = config.operators;\n\n // IN operator expects array, override IN formatter for multi-value variables\n const sqlFormatInOp = supportedOperators[Op.IN].sqlFormatOp?.bind(config.ctx) || noop;\n const formatInOp = supportedOperators[Op.IN].formatOp?.bind(config.ctx) || noop;\n const customSqlInFormatter = (\n field: string,\n op: string,\n value: string | string[] | ImmutableList<string>,\n valueSrc: ValueSource | undefined,\n valueType: string | undefined,\n opDef: Operator | undefined,\n operatorOptions: OperatorOptionsI | undefined,\n fieldDef: Field | undefined\n ) => {\n return sqlFormatInOp(field, op, splitIfString(value), valueSrc, valueType, opDef, operatorOptions, fieldDef);\n };\n\n // NOT IN operator expects array, override NOT IN formatter for multi-value variables\n const sqlFormatNotInOp = supportedOperators[Op.NOT_IN].sqlFormatOp?.bind(config.ctx) || noop;\n const formatNotInOp = supportedOperators[Op.NOT_IN].formatOp?.bind(config.ctx) || noop;\n const customSqlNotInFormatter = (\n field: string,\n op: string,\n value: string | string[] | ImmutableList<string>,\n valueSrc: ValueSource | undefined,\n valueType: string | undefined,\n opDef: Operator | undefined,\n operatorOptions: OperatorOptionsI | undefined,\n fieldDef: Field | undefined\n ) => {\n return sqlFormatNotInOp(field, op, splitIfString(value), valueSrc, valueType, opDef, operatorOptions, fieldDef);\n };\n\n const customOperators: Record<string, BaseOperator> = {\n ...supportedOperators,\n [Op.IN]: {\n ...supportedOperators[Op.IN],\n formatOp: (\n field: string,\n op: string,\n value: string | string[] | ImmutableList<string>,\n valueSrc?: ValueSource\n ) => {\n return formatInOp(field, op, splitIfString(value), valueSrc);\n },\n sqlFormatOp: customSqlInFormatter,\n },\n [Op.NOT_IN]: {\n ...supportedOperators[Op.NOT_IN],\n formatOp: (\n field: string,\n op: string,\n value: string | string[] | ImmutableList<string>,\n valueSrc?: ValueSource\n ) => {\n return formatNotInOp(field, op, splitIfString(value), valueSrc);\n },\n sqlFormatOp: customSqlNotInFormatter,\n },\n [Op.MACROS]: {\n label: t('grafana-sql.components.get-custom-operators.custom-operators.label.macros', 'Macros'),\n sqlFormatOp: (field: string, _operator: string, value: string | string[] | ImmutableList<string>) => {\n if (value === TIME_FILTER) {\n return `$__timeFilter(${field})`;\n }\n throw new Error('Invalid macro');\n },\n },\n };\n\n return customOperators;\n}\n\n// value: string | List<string> but AQB uses a different version of Immutable\nfunction splitIfString(value: string | string[] | ImmutableList<string>) {\n if (isString(value)) {\n return value.split(',');\n }\n return value;\n}\n"],"names":["Utils","BasicConfig","jsx","Input","Select","t","toOption","dateTime","DateTimePicker","selectors","_a","Button","Op","customOperators","isString"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.cjs","sources":["../../src/expressions.ts"],"sourcesContent":["export enum QueryEditorPropertyType {\n String = 'string',\n}\n\
|
|
1
|
+
{"version":3,"file":"expressions.cjs","sources":["../../src/expressions.ts"],"sourcesContent":["export enum QueryEditorPropertyType {\n String = 'string',\n}\n\ninterface QueryEditorProperty {\n type: QueryEditorPropertyType;\n name?: string;\n}\n\ntype QueryEditorOperatorType = string | boolean | number;\ntype QueryEditorOperatorValueType = QueryEditorOperatorType | QueryEditorOperatorType[];\n\ninterface QueryEditorOperator<T extends QueryEditorOperatorValueType> {\n name?: string;\n value?: T;\n}\n\ninterface QueryEditorOperatorExpression {\n type: QueryEditorExpressionType.Operator;\n property: QueryEditorProperty;\n operator: QueryEditorOperator<QueryEditorOperatorValueType>;\n}\n\ninterface QueryEditorArrayExpression {\n type: QueryEditorExpressionType.And | QueryEditorExpressionType.Or;\n expressions: QueryEditorExpression[] | QueryEditorArrayExpression[];\n}\n\nexport interface QueryEditorPropertyExpression {\n type: QueryEditorExpressionType.Property;\n property: QueryEditorProperty;\n}\n\nexport enum QueryEditorExpressionType {\n Property = 'property',\n Operator = 'operator',\n Or = 'or',\n And = 'and',\n GroupBy = 'groupBy',\n Function = 'function',\n FunctionParameter = 'functionParameter',\n}\n\ntype QueryEditorExpression =\n | QueryEditorArrayExpression\n | QueryEditorPropertyExpression\n | QueryEditorGroupByExpression\n | QueryEditorFunctionExpression\n | QueryEditorFunctionParameterExpression\n | QueryEditorOperatorExpression;\n\nexport interface QueryEditorGroupByExpression {\n type: QueryEditorExpressionType.GroupBy;\n property: QueryEditorProperty;\n}\n\nexport interface QueryEditorFunctionExpression {\n type: QueryEditorExpressionType.Function;\n name?: string;\n alias?: string;\n parameters?: QueryEditorFunctionParameterExpression[];\n}\n\nexport interface QueryEditorFunctionParameterExpression {\n type: QueryEditorExpressionType.FunctionParameter;\n name?: string;\n}\n"],"names":["QueryEditorPropertyType","QueryEditorExpressionType"],"mappings":";;;;;AAAO,IAAK,uBAAA,qBAAAA,wBAAAA,KAAL;AACL,EAAAA,yBAAA,QAAA,CAAA,GAAS,QAAA;AADC,EAAA,OAAAA,wBAAAA;AAAA,CAAA,EAAA,uBAAA,IAAA,EAAA;AAiCL,IAAK,yBAAA,qBAAAC,0BAAAA,KAAL;AACL,EAAAA,2BAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,2BAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,2BAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,2BAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,2BAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,2BAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,2BAAA,mBAAA,CAAA,GAAoB,mBAAA;AAPV,EAAA,OAAAA,0BAAAA;AAAA,CAAA,EAAA,yBAAA,IAAA,EAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -25,11 +25,6 @@ var grafanaSql = {
|
|
|
25
25
|
"dataset-selector": {
|
|
26
26
|
"aria-label-dataset-selector": "Sélecteur d’ensemble de données"
|
|
27
27
|
},
|
|
28
|
-
"error-boundary": {
|
|
29
|
-
"fall-back": {
|
|
30
|
-
error: "Erreur"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
28
|
"get-custom-operators": {
|
|
34
29
|
"custom-operators": {
|
|
35
30
|
label: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/cjs/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs","sources":["../../src/types.ts"],"sourcesContent":["import type { JsonTree } from '@react-awesome-query-builder/ui';\n\nimport {\n type DataFrame,\n type DataQuery,\n type DataSourceJsonData,\n type MetricFindValue,\n type SelectableValue,\n type TimeRange,\n toOption as toOptionFromData,\n} from '@grafana/data';\nimport { type
|
|
1
|
+
{"version":3,"file":"types.cjs","sources":["../../src/types.ts"],"sourcesContent":["import type { JsonTree } from '@react-awesome-query-builder/ui';\n\nimport {\n type DataFrame,\n type DataQuery,\n type DataSourceJsonData,\n type MetricFindValue,\n type SelectableValue,\n type TimeRange,\n toOption as toOptionFromData,\n} from '@grafana/data';\nimport { type EditorMode, type LanguageDefinition } from '@grafana/plugin-ui';\n\nimport { type QueryWithDefaults } from './defaults';\nimport {\n type QueryEditorFunctionExpression,\n type QueryEditorGroupByExpression,\n type QueryEditorPropertyExpression,\n} from './expressions';\n\nexport interface SQLConnectionLimits {\n maxOpenConns: number;\n maxIdleConns: number;\n maxIdleConnsAuto: boolean;\n connMaxLifetime: number;\n}\n\nexport interface SQLOptions extends SQLConnectionLimits, DataSourceJsonData {\n tlsAuth: boolean;\n tlsAuthWithCACert: boolean;\n timezone: string;\n tlsSkipVerify: boolean;\n user: string;\n database: string;\n url: string;\n timeInterval: string;\n}\n\nexport enum QueryFormat {\n Timeseries = 'time_series',\n Table = 'table',\n}\n\nexport type SQLQueryMeta = { valueField?: string; textField?: string };\n\nexport interface SQLQuery extends DataQuery {\n alias?: string;\n format?: QueryFormat;\n rawSql?: string;\n dataset?: string;\n table?: string;\n sql?: SQLExpression;\n editorMode?: EditorMode;\n rawQuery?: boolean;\n meta?: SQLQueryMeta;\n}\n\nexport type SQLVariableQuery = { query: string } & SQLQuery;\n\ninterface NameValue {\n name: string;\n value: string;\n}\n\ntype SQLFilters = NameValue[];\n\nexport interface SQLExpression {\n columns?: QueryEditorFunctionExpression[];\n whereJsonTree?: JsonTree;\n whereString?: string;\n filters?: SQLFilters;\n groupBy?: QueryEditorGroupByExpression[];\n orderBy?: QueryEditorPropertyExpression;\n orderByDirection?: 'ASC' | 'DESC';\n limit?: number;\n offset?: number;\n}\n\nexport interface QueryRowFilter {\n filter: boolean;\n group: boolean;\n order: boolean;\n preview: boolean;\n}\n\nexport const QUERY_FORMAT_OPTIONS = [\n { label: 'Time series', value: QueryFormat.Timeseries },\n { label: 'Table', value: QueryFormat.Table },\n];\n\nconst backWardToOption = (value: string) => ({ label: value, value });\n\nexport const toOption = toOptionFromData ?? backWardToOption;\n\nexport interface ResourceSelectorProps {\n disabled?: boolean;\n className?: string;\n applyDefault?: boolean;\n}\n// React Awesome Query builder field types.\n// These are responsible for rendering the correct UI for the field.\nexport type RAQBFieldTypes = 'text' | 'number' | 'boolean' | 'datetime' | 'date' | 'time';\n\nexport interface SQLSelectableValue extends SelectableValue {\n type?: string;\n raqbFieldType?: RAQBFieldTypes;\n}\n\nexport interface DB {\n init?: (datasourceId?: string) => Promise<boolean>;\n datasets: () => Promise<string[]>;\n tables: (dataset?: string) => Promise<string[]>;\n fields: (query: SQLQuery, order?: boolean) => Promise<SQLSelectableValue[]>;\n validateQuery: (query: SQLQuery, range?: TimeRange) => Promise<ValidationResults>;\n dispose?: (dsID?: string) => void;\n lookup?: (path?: string) => Promise<Array<{ name: string; completion: string }>>;\n getEditorLanguageDefinition: () => LanguageDefinition;\n toRawSql: (query: SQLQuery) => string;\n functions: () => Func[];\n}\n\nexport interface FuncParameter {\n name: string;\n required?: boolean;\n options?: (query: SQLQuery) => Promise<SelectableValue[]>;\n}\nexport interface Func {\n name: string;\n parameters?: FuncParameter[];\n description?: string;\n}\n\nexport interface QueryEditorProps {\n db: DB;\n query: QueryWithDefaults;\n onChange: (query: SQLQuery) => void;\n range?: TimeRange;\n}\n\nexport interface ValidationResults {\n query: SQLQuery;\n rawSql?: string;\n error: string;\n isError: boolean;\n isValid: boolean;\n statistics?: {\n TotalBytesProcessed: number;\n } | null;\n}\n\nexport interface SqlQueryModel {\n quoteLiteral: (v: string) => string;\n}\n\nexport interface ResponseParser {\n transformMetricFindResponse: (frame: DataFrame) => MetricFindValue[];\n}\n\nexport type SQLDialect = 'postgres' | 'influx' | 'other';\n"],"names":["QueryFormat","toOptionFromData"],"mappings":";;;;;;;AAAA,IAAA,EAAA;AAsCO,IAAK,WAAA,qBAAAA,YAAAA,KAAL;AACL,EAAAA,aAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,aAAA,OAAA,CAAA,GAAQ,OAAA;AAFE,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AA+CL,MAAM,oBAAA,GAAuB;AAAA,EAClC,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,aAAA,mBAAuB;AAAA,EACtD,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA;AAC3B;AAEA,MAAM,mBAAmB,CAAC,KAAA,MAAmB,EAAE,KAAA,EAAO,OAAO,KAAA,EAAM,CAAA;AAE5D,MAAM,YAAW,EAAA,GAAAC,aAAA,KAAA,IAAA,GAAA,EAAA,GAAoB;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TLSSecretsConfig.mjs","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\
|
|
1
|
+
{"version":3,"file":"TLSSecretsConfig.mjs","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\ninterface 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":[],"mappings":"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"}
|