{"version":3,"file":"VisualEditor.cjs","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":["useAsync","jsxs","Fragment","EditorRows","jsx","EditorRow","SelectRow","EditorField","t","SQLWhereRow","SQLGroupByRow","SQLOrderByRow","Preview","QueryToolbox"],"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,GAAQA,kBAAS,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,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAD,eAAA,CAACE,mBAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAACC,kBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA,CAACE,mBAAA,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,oBACdF,cAAA,CAACC,kBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA;AAAA,QAACG,oBAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAOC,MAAA,CAAE,mEAAA,EAAqE,wBAAwB,CAAA;AAAA,UACtG,QAAA,EAAQ,IAAA;AAAA,UAER,QAAA,kBAAAJ,cAAA,CAACK,uBAAA,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,yBACdL,cAAA,CAACC,kBAAA,EAAA,EACC,yCAACE,oBAAA,EAAA,EAAY,KAAA,EAAOC,MAAA,CAAE,4DAAA,EAA8D,iBAAiB,CAAA,EACnG,yCAACE,2BAAA,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,oBACdN,cAAA,CAACC,kBAAA,EAAA,EACC,yCAACM,2BAAA,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/BP,cAAA,CAACC,sBACC,QAAA,kBAAAD,cAAA,CAACQ,eAAA,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,oBACAR,cAAA,CAACS,yBAAA,EAAA,EAAa,EAAA,EAAQ,KAAA,EAAc,YAAwB,KAAA,EAAc;AAAA,GAAA,EAC5E,CAAA;AAEJ;;;;"}