{"version":3,"file":"QueryEditorRaw.cjs","sources":["../../../../src/components/query-editor-raw/QueryEditorRaw.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport * as React from 'react';\n\nimport { type LanguageDefinition, SQLEditor } from '@grafana/plugin-ui';\n\nimport { type SQLQuery } from '../../types';\n\ntype Props = {\n  query: SQLQuery;\n  onChange: (value: SQLQuery, processQuery: boolean) => void;\n  children?: (props: { formatQuery: () => void }) => React.ReactNode;\n  width?: number;\n  height?: number;\n  editorLanguageDefinition: LanguageDefinition;\n};\n\nexport function QueryEditorRaw({ children, onChange, query, width, height, editorLanguageDefinition }: Props) {\n  // We need to pass query via ref to SQLEditor as onChange is executed via monacoEditor.onDidChangeModelContent callback, not onChange property\n  const queryRef = useRef<SQLQuery>(query);\n  useEffect(() => {\n    queryRef.current = query;\n  }, [query]);\n\n  const onRawQueryChange = useCallback(\n    (rawSql: string, processQuery: boolean) => {\n      const newQuery = {\n        ...queryRef.current,\n        rawQuery: true,\n        rawSql,\n      };\n      onChange(newQuery, processQuery);\n    },\n    [onChange]\n  );\n\n  return (\n    <SQLEditor\n      width={width}\n      height={height}\n      query={query.rawSql!}\n      onChange={onRawQueryChange}\n      language={editorLanguageDefinition}\n    >\n      {children}\n    </SQLEditor>\n  );\n}\n"],"names":["useRef","useEffect","useCallback","jsx","SQLEditor"],"mappings":";;;;;;;;;AAgBO,SAAS,cAAA,CAAe,EAAE,QAAA,EAAU,QAAA,EAAU,OAAO,KAAA,EAAO,MAAA,EAAQ,0BAAyB,EAAU;AAE5G,EAAA,MAAM,QAAA,GAAWA,aAAiB,KAAK,CAAA;AACvC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,OAAA,GAAU,KAAA;AAAA,EACrB,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,gBAAA,GAAmBC,iBAAA;AAAA,IACvB,CAAC,QAAgB,YAAA,KAA0B;AACzC,MAAA,MAAM,QAAA,GAAW;AAAA,QACf,GAAG,QAAA,CAAS,OAAA;AAAA,QACZ,QAAA,EAAU,IAAA;AAAA,QACV;AAAA,OACF;AACA,MAAA,QAAA,CAAS,UAAU,YAAY,CAAA;AAAA,IACjC,CAAA;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,uBACEC,cAAA;AAAA,IAACC,kBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAO,KAAA,CAAM,MAAA;AAAA,MACb,QAAA,EAAU,gBAAA;AAAA,MACV,QAAA,EAAU,wBAAA;AAAA,MAET;AAAA;AAAA,GACH;AAEJ;;;;"}