{"version":3,"file":"NestedQuery.cjs","sources":["../../../../src/querybuilder/components/NestedQuery.tsx"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/querybuilder/components/NestedQuery.tsx\nimport { css } from '@emotion/css';\nimport { memo } from 'react';\n\nimport { type GrafanaTheme2, toOption } from '@grafana/data';\nimport { Trans, t } from '@grafana/i18n';\nimport { EditorRows, FlexItem } from '@grafana/plugin-ui';\nimport { AutoSizeInput, IconButton, Select, useStyles2 } from '@grafana/ui';\n\nimport { type PrometheusDatasource } from '../../datasource';\nimport { binaryScalarDefs } from '../binaryScalarOperations';\nimport { type PromVisualQueryBinary } from '../types';\n\nimport { QueryBuilderContent } from './QueryBuilderContent';\n\ninterface NestedQueryProps {\n  nestedQuery: PromVisualQueryBinary;\n  datasource: PrometheusDatasource;\n  index: number;\n  onChange: (index: number, update: PromVisualQueryBinary) => void;\n  onRemove: (index: number) => void;\n  onRunQuery: () => void;\n  showExplain: boolean;\n}\n\nexport const NestedQuery = memo<NestedQueryProps>((props) => {\n  const { nestedQuery, index, datasource, onChange, onRemove, onRunQuery, showExplain } = props;\n  const styles = useStyles2(getStyles);\n\n  return (\n    <div className={styles.card}>\n      <div className={styles.header}>\n        <div className={styles.name}>\n          <Trans i18nKey=\"grafana-prometheus.querybuilder.nested-query.operator\">Operator</Trans>\n        </div>\n        <Select\n          width=\"auto\"\n          options={operators}\n          value={toOption(nestedQuery.operator)}\n          onChange={(value) => {\n            onChange(index, {\n              ...nestedQuery,\n              operator: value.value!,\n            });\n          }}\n        />\n        <div className={styles.name}>\n          <Trans i18nKey=\"grafana-prometheus.querybuilder.nested-query.vector-matches\">Vector matches</Trans>\n        </div>\n        <div className={styles.vectorMatchWrapper}>\n          <Select<PromVisualQueryBinary['vectorMatchesType']>\n            width=\"auto\"\n            value={nestedQuery.vectorMatchesType || 'on'}\n            allowCustomValue\n            options={[\n              { value: 'on', label: t('grafana-prometheus.querybuilder.nested-query.label.on', 'On') },\n              {\n                value: 'ignoring',\n                label: t('grafana-prometheus.querybuilder.nested-query.label.ignoring', 'Ignoring'),\n              },\n            ]}\n            onChange={(val) => {\n              onChange(index, {\n                ...nestedQuery,\n                vectorMatchesType: val.value,\n              });\n            }}\n          />\n          <AutoSizeInput\n            className={styles.vectorMatchInput}\n            minWidth={20}\n            defaultValue={nestedQuery.vectorMatches}\n            onCommitChange={(evt) => {\n              onChange(index, {\n                ...nestedQuery,\n                vectorMatches: evt.currentTarget.value,\n                vectorMatchesType: nestedQuery.vectorMatchesType || 'on',\n              });\n            }}\n          />\n        </div>\n        <FlexItem grow={1} />\n        <IconButton\n          name=\"times\"\n          size=\"sm\"\n          onClick={() => onRemove(index)}\n          tooltip={t('grafana-prometheus.querybuilder.nested-query.tooltip-remove-match', 'Remove match')}\n        />\n      </div>\n      <div className={styles.body}>\n        <EditorRows>\n          <QueryBuilderContent\n            showExplain={showExplain}\n            query={nestedQuery.query}\n            datasource={datasource}\n            onRunQuery={onRunQuery}\n            onChange={(update) => {\n              onChange(index, { ...nestedQuery, query: update });\n            }}\n          />\n        </EditorRows>\n      </div>\n    </div>\n  );\n});\n\nconst operators = binaryScalarDefs.map((def) => ({ label: def.sign, value: def.sign }));\n\nNestedQuery.displayName = 'NestedQuery';\n\nconst getStyles = (theme: GrafanaTheme2) => {\n  return {\n    card: css({\n      label: 'card',\n      display: 'flex',\n      flexDirection: 'column',\n      gap: theme.spacing(0.5),\n    }),\n    header: css({\n      label: 'header',\n      padding: theme.spacing(0.5, 0.5, 0.5, 1),\n      gap: theme.spacing(1),\n      display: 'flex',\n      alignItems: 'center',\n    }),\n    name: css({\n      label: 'name',\n      whiteSpace: 'nowrap',\n    }),\n    body: css({\n      label: 'body',\n      paddingLeft: theme.spacing(2),\n    }),\n    vectorMatchInput: css({\n      label: 'vectorMatchInput',\n      marginLeft: -1,\n    }),\n    vectorMatchWrapper: css({\n      label: 'vectorMatchWrapper',\n      display: 'flex',\n    }),\n  };\n};\n"],"names":["memo","useStyles2","jsxs","jsx","Trans","Select","toOption","t","AutoSizeInput","FlexItem","IconButton","EditorRows","QueryBuilderContent","binaryScalarDefs","css"],"mappings":"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"}