{"version":3,"file":"VisualEditor.mjs","sources":["../../../../src/components/visual-query-builder/VisualEditor.tsx"],"sourcesContent":["import { useAsync } from 'react-use';\n\nimport { t } from '@grafana/i18n';\nimport { EditorRows, EditorRow, EditorField } from '@grafana/plugin-ui';\n\nimport { type DB, type QueryEditorProps, type QueryRowFilter } from '../../types';\nimport { QueryToolbox } from '../query-editor-raw/QueryToolbox';\n\nimport { Preview } from './Preview';\nimport { SQLGroupByRow } from './SQLGroupByRow';\nimport { SQLOrderByRow } from './SQLOrderByRow';\nimport { SQLWhereRow } from './SQLWhereRow';\nimport { SelectRow } from './SelectRow';\n\ninterface VisualEditorProps extends QueryEditorProps {\n  db: DB;\n  queryRowFilter: QueryRowFilter;\n  onValidate: (isValid: boolean) => void;\n}\n\nexport const VisualEditor = ({ query, db, queryRowFilter, onChange, onValidate, range }: VisualEditorProps) => {\n  const state = useAsync(async () => {\n    const fields = await db.fields(query);\n    return fields;\n  }, [db, query.dataset, query.table]);\n\n  return (\n    <>\n      <EditorRows>\n        <EditorRow>\n          <SelectRow columns={state.value || []} query={query} onQueryChange={onChange} db={db} />\n        </EditorRow>\n        {queryRowFilter.filter && (\n          <EditorRow>\n            <EditorField\n              label={t('grafana-sql.components.visual-editor.label-filter-by-column-value', 'Filter by column value')}\n              optional\n            >\n              <SQLWhereRow fields={state.value || []} query={query} onQueryChange={onChange} db={db} />\n            </EditorField>\n          </EditorRow>\n        )}\n        {queryRowFilter.group && (\n          <EditorRow>\n            <EditorField label={t('grafana-sql.components.visual-editor.label-group-by-column', 'Group by column')}>\n              <SQLGroupByRow fields={state.value || []} query={query} onQueryChange={onChange} db={db} />\n            </EditorField>\n          </EditorRow>\n        )}\n        {queryRowFilter.order && (\n          <EditorRow>\n            <SQLOrderByRow fields={state.value || []} query={query} onQueryChange={onChange} db={db} />\n          </EditorRow>\n        )}\n        {queryRowFilter.preview && query.rawSql && (\n          <EditorRow>\n            <Preview rawSql={query.rawSql} datasourceType={query.datasource?.type} />\n          </EditorRow>\n        )}\n      </EditorRows>\n      <QueryToolbox db={db} query={query} onValidate={onValidate} range={range} />\n    </>\n  );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAoBO,MAAM,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,IAAI,cAAA,EAAgB,QAAA,EAAU,UAAA,EAAY,KAAA,EAAM,KAAyB;AApB/G,EAAA,IAAA,EAAA;AAqBE,EAAA,MAAM,KAAA,GAAQ,SAAS,YAAY;AACjC,IAAA,MAAM,MAAA,GAAS,MAAM,EAAA,CAAG,MAAA,CAAO,KAAK,CAAA;AACpC,IAAA,OAAO,MAAA;AAAA,EACT,GAAG,CAAC,EAAA,EAAI,MAAM,OAAA,EAAS,KAAA,CAAM,KAAK,CAAC,CAAA;AAEnC,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,UAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,SAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,OAAA,EAAS,KAAA,CAAM,KAAA,IAAS,EAAC,EAAG,KAAA,EAAc,aAAA,EAAe,QAAA,EAAU,EAAA,EAAQ,CAAA,EACxF,CAAA;AAAA,MACC,cAAA,CAAe,MAAA,oBACd,GAAA,CAAC,SAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,CAAA,CAAE,mEAAA,EAAqE,wBAAwB,CAAA;AAAA,UACtG,QAAA,EAAQ,IAAA;AAAA,UAER,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,MAAA,EAAQ,KAAA,CAAM,KAAA,IAAS,EAAC,EAAG,KAAA,EAAc,aAAA,EAAe,QAAA,EAAU,EAAA,EAAQ;AAAA;AAAA,OACzF,EACF,CAAA;AAAA,MAED,cAAA,CAAe,yBACd,GAAA,CAAC,SAAA,EAAA,EACC,8BAAC,WAAA,EAAA,EAAY,KAAA,EAAO,CAAA,CAAE,4DAAA,EAA8D,iBAAiB,CAAA,EACnG,8BAAC,aAAA,EAAA,EAAc,MAAA,EAAQ,KAAA,CAAM,KAAA,IAAS,EAAC,EAAG,OAAc,aAAA,EAAe,QAAA,EAAU,EAAA,EAAQ,CAAA,EAC3F,CAAA,EACF,CAAA;AAAA,MAED,cAAA,CAAe,KAAA,oBACd,GAAA,CAAC,SAAA,EAAA,EACC,8BAAC,aAAA,EAAA,EAAc,MAAA,EAAQ,KAAA,CAAM,KAAA,IAAS,EAAC,EAAG,KAAA,EAAc,aAAA,EAAe,QAAA,EAAU,IAAQ,CAAA,EAC3F,CAAA;AAAA,MAED,eAAe,OAAA,IAAW,KAAA,CAAM,MAAA,oBAC/B,GAAA,CAAC,aACC,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,MAAA,EAAQ,KAAA,CAAM,QAAQ,cAAA,EAAA,CAAgB,EAAA,GAAA,KAAA,CAAM,UAAA,KAAN,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,MAAM,CAAA,EACzE;AAAA,KAAA,EAEJ,CAAA;AAAA,oBACA,GAAA,CAAC,YAAA,EAAA,EAAa,EAAA,EAAQ,KAAA,EAAc,YAAwB,KAAA,EAAc;AAAA,GAAA,EAC5E,CAAA;AAEJ;;;;"}